== Physical Plan ==
Execute SaveIntoDataSourceCommand (1)
+- SaveIntoDataSourceCommand (2)
+- Project (2676)
+- Project (2675)
+- Project (2674)
+- Project (2673)
+- Project (2672)
+- Project (2671)
+- Project (2670)
+- Project (2669)
+- Join (2668)
:- Project (1331)
: +- Project (1330)
: +- Project (1329)
: +- Join (1328)
: :- Project (419)
: : +- Project (418)
: : +- Join (417)
: : :- Project (205)
: : : +- Project (204)
: : : +- Project (203)
: : : +- Project (202)
: : : +- Project (201)
: : : +- Project (200)
: : : +- Join (199)
: : : :- Project (29)
: : : : +- Project (28)
: : : : +- Project (27)
: : : : +- Project (26)
: : : : +- Generate (25)
: : : : +- Project (24)
: : : : +- Generate (23)
: : : : +- Project (22)
: : : : +- Join (21)
: : : : :- Project (18)
: : : : : +- Project (17)
: : : : : +- Join (16)
: : : : : :- SubqueryAlias (12)
: : : : : : +- Project (11)
: : : : : : +- Join (10)
: : : : : : :- Project (5)
: : : : : : : +- RepartitionByExpression (4)
: : : : : : : +- LogicalRelation (3)
: : : : : : +- Project (9)
: : : : : : +- Project (8)
: : : : : : +- Repartition (7)
: : : : : : +- LogicalRelation (6)
: : : : : +- Project (15)
: : : : : +- Repartition (14)
: : : : : +- LogicalRelation (13)
: : : : +- Repartition (20)
: : : : +- LogicalRelation (19)
: : : +- Project (198)
: : : +- Aggregate (197)
: : : +- Project (196)
: : : +- Join (195)
: : : :- Project (111)
: : : : +- Filter (110)
: : : : +- Join (109)
: : : : :- Filter (81)
: : : : : +- Project (80)
: : : : : +- Project (79)
: : : : : +- Generate (78)
: : : : : +- Project (77)
: : : : : +- Aggregate (76)
: : : : : +- Project (75)
: : : : : +- Generate (74)
: : : : : +- Join (73)
: : : : : :- Repartition (31)
: : : : : : +- LogicalRelation (30)
: : : : : +- Project (72)
: : : : : +- Join (71)
: : : : : :- Project (41)
: : : : : : +- Project (40)
: : : : : : +- Generate (39)
: : : : : : +- Project (38)
: : : : : : +- Generate (37)
: : : : : : +- Project (36)
: : : : : : +- Project (35)
: : : : : : +- Filter (34)
: : : : : : +- Repartition (33)
: : : : : : +- LogicalRelation (32)
: : : : : +- Deduplicate (70)
: : : : : +- Project (69)
: : : : : +- Project (68)
: : : : : +- Project (67)
: : : : : +- Project (66)
: : : : : +- Project (65)
: : : : : +- Generate (64)
: : : : : +- Project (63)
: : : : : +- Generate (62)
: : : : : +- Project (61)
: : : : : +- Join (60)
: : : : : :- Project (57)
: : : : : : +- Project (56)
: : : : : : +- Join (55)
: : : : : : :- SubqueryAlias (51)
: : : : : : : +- Project (50)
: : : : : : : +- Join (49)
: : : : : : : :- Project (44)
: : : : : : : : +- RepartitionByExpression (43)
: : : : : : : : +- LogicalRelation (42)
: : : : : : : +- Project (48)
: : : : : : : +- Project (47)
: : : : : : : +- Repartition (46)
: : : : : : : +- LogicalRelation (45)
: : : : : : +- Project (54)
: : : : : : +- Repartition (53)
: : : : : : +- LogicalRelation (52)
: : : : : +- Repartition (59)
: : : : : +- LogicalRelation (58)
: : : : +- Project (108)
: : : : +- Project (107)
: : : : +- Project (106)
: : : : +- Project (105)
: : : : +- Generate (104)
: : : : +- Project (103)
: : : : +- Generate (102)
: : : : +- Project (101)
: : : : +- Join (100)
: : : : :- Project (97)
: : : : : +- Project (96)
: : : : : +- Join (95)
: : : : : :- SubqueryAlias (91)
: : : : : : +- Project (90)
: : : : : : +- Join (89)
: : : : : : :- Project (84)
: : : : : : : +- RepartitionByExpression (83)
: : : : : : : +- LogicalRelation (82)
: : : : : : +- Project (88)
: : : : : : +- Project (87)
: : : : : : +- Repartition (86)
: : : : : : +- LogicalRelation (85)
: : : : : +- Project (94)
: : : : : +- Repartition (93)
: : : : : +- LogicalRelation (92)
: : : : +- Repartition (99)
: : : : +- LogicalRelation (98)
: : : +- Aggregate (194)
: : : +- Project (193)
: : : +- Filter (192)
: : : +- Join (191)
: : : :- Filter (163)
: : : : +- Project (162)
: : : : +- Project (161)
: : : : +- Generate (160)
: : : : +- Project (159)
: : : : +- Aggregate (158)
: : : : +- Project (157)
: : : : +- Generate (156)
: : : : +- Join (155)
: : : : :- Repartition (113)
: : : : : +- LogicalRelation (112)
: : : : +- Project (154)
: : : : +- Join (153)
: : : : :- Project (123)
: : : : : +- Project (122)
: : : : : +- Generate (121)
: : : : : +- Project (120)
: : : : : +- Generate (119)
: : : : : +- Project (118)
: : : : : +- Project (117)
: : : : : +- Filter (116)
: : : : : +- Repartition (115)
: : : : : +- LogicalRelation (114)
: : : : +- Deduplicate (152)
: : : : +- Project (151)
: : : : +- Project (150)
: : : : +- Project (149)
: : : : +- Project (148)
: : : : +- Project (147)
: : : : +- Generate (146)
: : : : +- Project (145)
: : : : +- Generate (144)
: : : : +- Project (143)
: : : : +- Join (142)
: : : : :- Project (139)
: : : : : +- Project (138)
: : : : : +- Join (137)
: : : : : :- SubqueryAlias (133)
: : : : : : +- Project (132)
: : : : : : +- Join (131)
: : : : : : :- Project (126)
: : : : : : : +- RepartitionByExpression (125)
: : : : : : : +- LogicalRelation (124)
: : : : : : +- Project (130)
: : : : : : +- Project (129)
: : : : : : +- Repartition (128)
: : : : : : +- LogicalRelation (127)
: : : : : +- Project (136)
: : : : : +- Repartition (135)
: : : : : +- LogicalRelation (134)
: : : : +- Repartition (141)
: : : : +- LogicalRelation (140)
: : : +- Project (190)
: : : +- Project (189)
: : : +- Project (188)
: : : +- Project (187)
: : : +- Generate (186)
: : : +- Project (185)
: : : +- Generate (184)
: : : +- Project (183)
: : : +- Join (182)
: : : :- Project (179)
: : : : +- Project (178)
: : : : +- Join (177)
: : : : :- SubqueryAlias (173)
: : : : : +- Project (172)
: : : : : +- Join (171)
: : : : : :- Project (166)
: : : : : : +- RepartitionByExpression (165)
: : : : : : +- LogicalRelation (164)
: : : : : +- Project (170)
: : : : : +- Project (169)
: : : : : +- Repartition (168)
: : : : : +- LogicalRelation (167)
: : : : +- Project (176)
: : : : +- Repartition (175)
: : : : +- LogicalRelation (174)
: : : +- Repartition (181)
: : : +- LogicalRelation (180)
: : +- SerializeFromObject (416)
: : +- MapElements (415)
: : +- DeserializeToObject (414)
: : +- Aggregate (413)
: : +- Project (412)
: : +- Project (411)
: : +- Join (410)
: : :- Project (408)
: : : +- Project (407)
: : : +- Project (406)
: : : +- Project (405)
: : : +- Project (404)
: : : +- Project (403)
: : : +- Join (402)
: : : :- Project (232)
: : : : +- Project (231)
: : : : +- Project (230)
: : : : +- Project (229)
: : : : +- Generate (228)
: : : : +- Project (227)
: : : : +- Generate (226)
: : : : +- Project (225)
: : : : +- Join (224)
: : : : :- Project (221)
: : : : : +- Project (220)
: : : : : +- Join (219)
: : : : : :- SubqueryAlias (215)
: : : : : : +- Project (214)
: : : : : : +- Join (213)
: : : : : : :- Project (208)
: : : : : : : +- RepartitionByExpression (207)
: : : : : : : +- LogicalRelation (206)
: : : : : : +- Project (212)
: : : : : : +- Project (211)
: : : : : : +- Repartition (210)
: : : : : : +- LogicalRelation (209)
: : : : : +- Project (218)
: : : : : +- Repartition (217)
: : : : : +- LogicalRelation (216)
: : : : +- Repartition (223)
: : : : +- LogicalRelation (222)
: : : +- Project (401)
: : : +- Aggregate (400)
: : : +- Project (399)
: : : +- Join (398)
: : : :- Project (314)
: : : : +- Filter (313)
: : : : +- Join (312)
: : : : :- Filter (284)
: : : : : +- Project (283)
: : : : : +- Project (282)
: : : : : +- Generate (281)
: : : : : +- Project (280)
: : : : : +- Aggregate (279)
: : : : : +- Project (278)
: : : : : +- Generate (277)
: : : : : +- Join (276)
: : : : : :- Repartition (234)
: : : : : : +- LogicalRelation (233)
: : : : : +- Project (275)
: : : : : +- Join (274)
: : : : : :- Project (244)
: : : : : : +- Project (243)
: : : : : : +- Generate (242)
: : : : : : +- Project (241)
: : : : : : +- Generate (240)
: : : : : : +- Project (239)
: : : : : : +- Project (238)
: : : : : : +- Filter (237)
: : : : : : +- Repartition (236)
: : : : : : +- LogicalRelation (235)
: : : : : +- Deduplicate (273)
: : : : : +- Project (272)
: : : : : +- Project (271)
: : : : : +- Project (270)
: : : : : +- Project (269)
: : : : : +- Project (268)
: : : : : +- Generate (267)
: : : : : +- Project (266)
: : : : : +- Generate (265)
: : : : : +- Project (264)
: : : : : +- Join (263)
: : : : : :- Project (260)
: : : : : : +- Project (259)
: : : : : : +- Join (258)
: : : : : : :- SubqueryAlias (254)
: : : : : : : +- Project (253)
: : : : : : : +- Join (252)
: : : : : : : :- Project (247)
: : : : : : : : +- RepartitionByExpression (246)
: : : : : : : : +- LogicalRelation (245)
: : : : : : : +- Project (251)
: : : : : : : +- Project (250)
: : : : : : : +- Repartition (249)
: : : : : : : +- LogicalRelation (248)
: : : : : : +- Project (257)
: : : : : : +- Repartition (256)
: : : : : : +- LogicalRelation (255)
: : : : : +- Repartition (262)
: : : : : +- LogicalRelation (261)
: : : : +- Project (311)
: : : : +- Project (310)
: : : : +- Project (309)
: : : : +- Project (308)
: : : : +- Generate (307)
: : : : +- Project (306)
: : : : +- Generate (305)
: : : : +- Project (304)
: : : : +- Join (303)
: : : : :- Project (300)
: : : : : +- Project (299)
: : : : : +- Join (298)
: : : : : :- SubqueryAlias (294)
: : : : : : +- Project (293)
: : : : : : +- Join (292)
: : : : : : :- Project (287)
: : : : : : : +- RepartitionByExpression (286)
: : : : : : : +- LogicalRelation (285)
: : : : : : +- Project (291)
: : : : : : +- Project (290)
: : : : : : +- Repartition (289)
: : : : : : +- LogicalRelation (288)
: : : : : +- Project (297)
: : : : : +- Repartition (296)
: : : : : +- LogicalRelation (295)
: : : : +- Repartition (302)
: : : : +- LogicalRelation (301)
: : : +- Aggregate (397)
: : : +- Project (396)
: : : +- Filter (395)
: : : +- Join (394)
: : : :- Filter (366)
: : : : +- Project (365)
: : : : +- Project (364)
: : : : +- Generate (363)
: : : : +- Project (362)
: : : : +- Aggregate (361)
: : : : +- Project (360)
: : : : +- Generate (359)
: : : : +- Join (358)
: : : : :- Repartition (316)
: : : : : +- LogicalRelation (315)
: : : : +- Project (357)
: : : : +- Join (356)
: : : : :- Project (326)
: : : : : +- Project (325)
: : : : : +- Generate (324)
: : : : : +- Project (323)
: : : : : +- Generate (322)
: : : : : +- Project (321)
: : : : : +- Project (320)
: : : : : +- Filter (319)
: : : : : +- Repartition (318)
: : : : : +- LogicalRelation (317)
: : : : +- Deduplicate (355)
: : : : +- Project (354)
: : : : +- Project (353)
: : : : +- Project (352)
: : : : +- Project (351)
: : : : +- Project (350)
: : : : +- Generate (349)
: : : : +- Project (348)
: : : : +- Generate (347)
: : : : +- Project (346)
: : : : +- Join (345)
: : : : :- Project (342)
: : : : : +- Project (341)
: : : : : +- Join (340)
: : : : : :- SubqueryAlias (336)
: : : : : : +- Project (335)
: : : : : : +- Join (334)
: : : : : : :- Project (329)
: : : : : : : +- RepartitionByExpression (328)
: : : : : : : +- LogicalRelation (327)
: : : : : : +- Project (333)
: : : : : : +- Project (332)
: : : : : : +- Repartition (331)
: : : : : : +- LogicalRelation (330)
: : : : : +- Project (339)
: : : : : +- Repartition (338)
: : : : : +- LogicalRelation (337)
: : : : +- Repartition (344)
: : : : +- LogicalRelation (343)
: : : +- Project (393)
: : : +- Project (392)
: : : +- Project (391)
: : : +- Project (390)
: : : +- Generate (389)
: : : +- Project (388)
: : : +- Generate (387)
: : : +- Project (386)
: : : +- Join (385)
: : : :- Project (382)
: : : : +- Project (381)
: : : : +- Join (380)
: : : : :- SubqueryAlias (376)
: : : : : +- Project (375)
: : : : : +- Join (374)
: : : : : :- Project (369)
: : : : : : +- RepartitionByExpression (368)
: : : : : : +- LogicalRelation (367)
: : : : : +- Project (373)
: : : : : +- Project (372)
: : : : : +- Repartition (371)
: : : : : +- LogicalRelation (370)
: : : : +- Project (379)
: : : : +- Repartition (378)
: : : : +- LogicalRelation (377)
: : : +- Repartition (384)
: : : +- LogicalRelation (383)
: : +- LogicalRelation (409)
: +- Aggregate (1327)
: +- Union (1326)
: :- Filter (896)
: : +- Aggregate (895)
: : +- Project (894)
: : +- Project (893)
: : +- Window (892)
: : +- Project (891)
: : +- Project (890)
: : +- Project (889)
: : +- Project (888)
: : +- Join (887)
: : :- Project (880)
: : : +- Join (879)
: : : :- Project (836)
: : : : +- Project (835)
: : : : +- Join (834)
: : : : :- Project (622)
: : : : : +- Project (621)
: : : : : +- Project (620)
: : : : : +- Project (619)
: : : : : +- Project (618)
: : : : : +- Project (617)
: : : : : +- Join (616)
: : : : : :- Project (446)
: : : : : : +- Project (445)
: : : : : : +- Project (444)
: : : : : : +- Project (443)
: : : : : : +- Generate (442)
: : : : : : +- Project (441)
: : : : : : +- Generate (440)
: : : : : : +- Project (439)
: : : : : : +- Join (438)
: : : : : : :- Project (435)
: : : : : : : +- Project (434)
: : : : : : : +- Join (433)
: : : : : : : :- SubqueryAlias (429)
: : : : : : : : +- Project (428)
: : : : : : : : +- Join (427)
: : : : : : : : :- Project (422)
: : : : : : : : : +- RepartitionByExpression (421)
: : : : : : : : : +- LogicalRelation (420)
: : : : : : : : +- Project (426)
: : : : : : : : +- Project (425)
: : : : : : : : +- Repartition (424)
: : : : : : : : +- LogicalRelation (423)
: : : : : : : +- Project (432)
: : : : : : : +- Repartition (431)
: : : : : : : +- LogicalRelation (430)
: : : : : : +- Repartition (437)
: : : : : : +- LogicalRelation (436)
: : : : : +- Project (615)
: : : : : +- Aggregate (614)
: : : : : +- Project (613)
: : : : : +- Join (612)
: : : : : :- Project (528)
: : : : : : +- Filter (527)
: : : : : : +- Join (526)
: : : : : : :- Filter (498)
: : : : : : : +- Project (497)
: : : : : : : +- Project (496)
: : : : : : : +- Generate (495)
: : : : : : : +- Project (494)
: : : : : : : +- Aggregate (493)
: : : : : : : +- Project (492)
: : : : : : : +- Generate (491)
: : : : : : : +- Join (490)
: : : : : : : :- Repartition (448)
: : : : : : : : +- LogicalRelation (447)
: : : : : : : +- Project (489)
: : : : : : : +- Join (488)
: : : : : : : :- Project (458)
: : : : : : : : +- Project (457)
: : : : : : : : +- Generate (456)
: : : : : : : : +- Project (455)
: : : : : : : : +- Generate (454)
: : : : : : : : +- Project (453)
: : : : : : : : +- Project (452)
: : : : : : : : +- Filter (451)
: : : : : : : : +- Repartition (450)
: : : : : : : : +- LogicalRelation (449)
: : : : : : : +- Deduplicate (487)
: : : : : : : +- Project (486)
: : : : : : : +- Project (485)
: : : : : : : +- Project (484)
: : : : : : : +- Project (483)
: : : : : : : +- Project (482)
: : : : : : : +- Generate (481)
: : : : : : : +- Project (480)
: : : : : : : +- Generate (479)
: : : : : : : +- Project (478)
: : : : : : : +- Join (477)
: : : : : : : :- Project (474)
: : : : : : : : +- Project (473)
: : : : : : : : +- Join (472)
: : : : : : : : :- SubqueryAlias (468)
: : : : : : : : : +- Project (467)
: : : : : : : : : +- Join (466)
: : : : : : : : : :- Project (461)
: : : : : : : : : : +- RepartitionByExpression (460)
: : : : : : : : : : +- LogicalRelation (459)
: : : : : : : : : +- Project (465)
: : : : : : : : : +- Project (464)
: : : : : : : : : +- Repartition (463)
: : : : : : : : : +- LogicalRelation (462)
: : : : : : : : +- Project (471)
: : : : : : : : +- Repartition (470)
: : : : : : : : +- LogicalRelation (469)
: : : : : : : +- Repartition (476)
: : : : : : : +- LogicalRelation (475)
: : : : : : +- Project (525)
: : : : : : +- Project (524)
: : : : : : +- Project (523)
: : : : : : +- Project (522)
: : : : : : +- Generate (521)
: : : : : : +- Project (520)
: : : : : : +- Generate (519)
: : : : : : +- Project (518)
: : : : : : +- Join (517)
: : : : : : :- Project (514)
: : : : : : : +- Project (513)
: : : : : : : +- Join (512)
: : : : : : : :- SubqueryAlias (508)
: : : : : : : : +- Project (507)
: : : : : : : : +- Join (506)
: : : : : : : : :- Project (501)
: : : : : : : : : +- RepartitionByExpression (500)
: : : : : : : : : +- LogicalRelation (499)
: : : : : : : : +- Project (505)
: : : : : : : : +- Project (504)
: : : : : : : : +- Repartition (503)
: : : : : : : : +- LogicalRelation (502)
: : : : : : : +- Project (511)
: : : : : : : +- Repartition (510)
: : : : : : : +- LogicalRelation (509)
: : : : : : +- Repartition (516)
: : : : : : +- LogicalRelation (515)
: : : : : +- Aggregate (611)
: : : : : +- Project (610)
: : : : : +- Filter (609)
: : : : : +- Join (608)
: : : : : :- Filter (580)
: : : : : : +- Project (579)
: : : : : : +- Project (578)
: : : : : : +- Generate (577)
: : : : : : +- Project (576)
: : : : : : +- Aggregate (575)
: : : : : : +- Project (574)
: : : : : : +- Generate (573)
: : : : : : +- Join (572)
: : : : : : :- Repartition (530)
: : : : : : : +- LogicalRelation (529)
: : : : : : +- Project (571)
: : : : : : +- Join (570)
: : : : : : :- Project (540)
: : : : : : : +- Project (539)
: : : : : : : +- Generate (538)
: : : : : : : +- Project (537)
: : : : : : : +- Generate (536)
: : : : : : : +- Project (535)
: : : : : : : +- Project (534)
: : : : : : : +- Filter (533)
: : : : : : : +- Repartition (532)
: : : : : : : +- LogicalRelation (531)
: : : : : : +- Deduplicate (569)
: : : : : : +- Project (568)
: : : : : : +- Project (567)
: : : : : : +- Project (566)
: : : : : : +- Project (565)
: : : : : : +- Project (564)
: : : : : : +- Generate (563)
: : : : : : +- Project (562)
: : : : : : +- Generate (561)
: : : : : : +- Project (560)
: : : : : : +- Join (559)
: : : : : : :- Project (556)
: : : : : : : +- Project (555)
: : : : : : : +- Join (554)
: : : : : : : :- SubqueryAlias (550)
: : : : : : : : +- Project (549)
: : : : : : : : +- Join (548)
: : : : : : : : :- Project (543)
: : : : : : : : : +- RepartitionByExpression (542)
: : : : : : : : : +- LogicalRelation (541)
: : : : : : : : +- Project (547)
: : : : : : : : +- Project (546)
: : : : : : : : +- Repartition (545)
: : : : : : : : +- LogicalRelation (544)
: : : : : : : +- Project (553)
: : : : : : : +- Repartition (552)
: : : : : : : +- LogicalRelation (551)
: : : : : : +- Repartition (558)
: : : : : : +- LogicalRelation (557)
: : : : : +- Project (607)
: : : : : +- Project (606)
: : : : : +- Project (605)
: : : : : +- Project (604)
: : : : : +- Generate (603)
: : : : : +- Project (602)
: : : : : +- Generate (601)
: : : : : +- Project (600)
: : : : : +- Join (599)
: : : : : :- Project (596)
: : : : : : +- Project (595)
: : : : : : +- Join (594)
: : : : : : :- SubqueryAlias (590)
: : : : : : : +- Project (589)
: : : : : : : +- Join (588)
: : : : : : : :- Project (583)
: : : : : : : : +- RepartitionByExpression (582)
: : : : : : : : +- LogicalRelation (581)
: : : : : : : +- Project (587)
: : : : : : : +- Project (586)
: : : : : : : +- Repartition (585)
: : : : : : : +- LogicalRelation (584)
: : : : : : +- Project (593)
: : : : : : +- Repartition (592)
: : : : : : +- LogicalRelation (591)
: : : : : +- Repartition (598)
: : : : : +- LogicalRelation (597)
: : : : +- SerializeFromObject (833)
: : : : +- MapElements (832)
: : : : +- DeserializeToObject (831)
: : : : +- Aggregate (830)
: : : : +- Project (829)
: : : : +- Project (828)
: : : : +- Join (827)
: : : : :- Project (825)
: : : : : +- Project (824)
: : : : : +- Project (823)
: : : : : +- Project (822)
: : : : : +- Project (821)
: : : : : +- Project (820)
: : : : : +- Join (819)
: : : : : :- Project (649)
: : : : : : +- Project (648)
: : : : : : +- Project (647)
: : : : : : +- Project (646)
: : : : : : +- Generate (645)
: : : : : : +- Project (644)
: : : : : : +- Generate (643)
: : : : : : +- Project (642)
: : : : : : +- Join (641)
: : : : : : :- Project (638)
: : : : : : : +- Project (637)
: : : : : : : +- Join (636)
: : : : : : : :- SubqueryAlias (632)
: : : : : : : : +- Project (631)
: : : : : : : : +- Join (630)
: : : : : : : : :- Project (625)
: : : : : : : : : +- RepartitionByExpression (624)
: : : : : : : : : +- LogicalRelation (623)
: : : : : : : : +- Project (629)
: : : : : : : : +- Project (628)
: : : : : : : : +- Repartition (627)
: : : : : : : : +- LogicalRelation (626)
: : : : : : : +- Project (635)
: : : : : : : +- Repartition (634)
: : : : : : : +- LogicalRelation (633)
: : : : : : +- Repartition (640)
: : : : : : +- LogicalRelation (639)
: : : : : +- Project (818)
: : : : : +- Aggregate (817)
: : : : : +- Project (816)
: : : : : +- Join (815)
: : : : : :- Project (731)
: : : : : : +- Filter (730)
: : : : : : +- Join (729)
: : : : : : :- Filter (701)
: : : : : : : +- Project (700)
: : : : : : : +- Project (699)
: : : : : : : +- Generate (698)
: : : : : : : +- Project (697)
: : : : : : : +- Aggregate (696)
: : : : : : : +- Project (695)
: : : : : : : +- Generate (694)
: : : : : : : +- Join (693)
: : : : : : : :- Repartition (651)
: : : : : : : : +- LogicalRelation (650)
: : : : : : : +- Project (692)
: : : : : : : +- Join (691)
: : : : : : : :- Project (661)
: : : : : : : : +- Project (660)
: : : : : : : : +- Generate (659)
: : : : : : : : +- Project (658)
: : : : : : : : +- Generate (657)
: : : : : : : : +- Project (656)
: : : : : : : : +- Project (655)
: : : : : : : : +- Filter (654)
: : : : : : : : +- Repartition (653)
: : : : : : : : +- LogicalRelation (652)
: : : : : : : +- Deduplicate (690)
: : : : : : : +- Project (689)
: : : : : : : +- Project (688)
: : : : : : : +- Project (687)
: : : : : : : +- Project (686)
: : : : : : : +- Project (685)
: : : : : : : +- Generate (684)
: : : : : : : +- Project (683)
: : : : : : : +- Generate (682)
: : : : : : : +- Project (681)
: : : : : : : +- Join (680)
: : : : : : : :- Project (677)
: : : : : : : : +- Project (676)
: : : : : : : : +- Join (675)
: : : : : : : : :- SubqueryAlias (671)
: : : : : : : : : +- Project (670)
: : : : : : : : : +- Join (669)
: : : : : : : : : :- Project (664)
: : : : : : : : : : +- RepartitionByExpression (663)
: : : : : : : : : : +- LogicalRelation (662)
: : : : : : : : : +- Project (668)
: : : : : : : : : +- Project (667)
: : : : : : : : : +- Repartition (666)
: : : : : : : : : +- LogicalRelation (665)
: : : : : : : : +- Project (674)
: : : : : : : : +- Repartition (673)
: : : : : : : : +- LogicalRelation (672)
: : : : : : : +- Repartition (679)
: : : : : : : +- LogicalRelation (678)
: : : : : : +- Project (728)
: : : : : : +- Project (727)
: : : : : : +- Project (726)
: : : : : : +- Project (725)
: : : : : : +- Generate (724)
: : : : : : +- Project (723)
: : : : : : +- Generate (722)
: : : : : : +- Project (721)
: : : : : : +- Join (720)
: : : : : : :- Project (717)
: : : : : : : +- Project (716)
: : : : : : : +- Join (715)
: : : : : : : :- SubqueryAlias (711)
: : : : : : : : +- Project (710)
: : : : : : : : +- Join (709)
: : : : : : : : :- Project (704)
: : : : : : : : : +- RepartitionByExpression (703)
: : : : : : : : : +- LogicalRelation (702)
: : : : : : : : +- Project (708)
: : : : : : : : +- Project (707)
: : : : : : : : +- Repartition (706)
: : : : : : : : +- LogicalRelation (705)
: : : : : : : +- Project (714)
: : : : : : : +- Repartition (713)
: : : : : : : +- LogicalRelation (712)
: : : : : : +- Repartition (719)
: : : : : : +- LogicalRelation (718)
: : : : : +- Aggregate (814)
: : : : : +- Project (813)
: : : : : +- Filter (812)
: : : : : +- Join (811)
: : : : : :- Filter (783)
: : : : : : +- Project (782)
: : : : : : +- Project (781)
: : : : : : +- Generate (780)
: : : : : : +- Project (779)
: : : : : : +- Aggregate (778)
: : : : : : +- Project (777)
: : : : : : +- Generate (776)
: : : : : : +- Join (775)
: : : : : : :- Repartition (733)
: : : : : : : +- LogicalRelation (732)
: : : : : : +- Project (774)
: : : : : : +- Join (773)
: : : : : : :- Project (743)
: : : : : : : +- Project (742)
: : : : : : : +- Generate (741)
: : : : : : : +- Project (740)
: : : : : : : +- Generate (739)
: : : : : : : +- Project (738)
: : : : : : : +- Project (737)
: : : : : : : +- Filter (736)
: : : : : : : +- Repartition (735)
: : : : : : : +- LogicalRelation (734)
: : : : : : +- Deduplicate (772)
: : : : : : +- Project (771)
: : : : : : +- Project (770)
: : : : : : +- Project (769)
: : : : : : +- Project (768)
: : : : : : +- Project (767)
: : : : : : +- Generate (766)
: : : : : : +- Project (765)
: : : : : : +- Generate (764)
: : : : : : +- Project (763)
: : : : : : +- Join (762)
: : : : : : :- Project (759)
: : : : : : : +- Project (758)
: : : : : : : +- Join (757)
: : : : : : : :- SubqueryAlias (753)
: : : : : : : : +- Project (752)
: : : : : : : : +- Join (751)
: : : : : : : : :- Project (746)
: : : : : : : : : +- RepartitionByExpression (745)
: : : : : : : : : +- LogicalRelation (744)
: : : : : : : : +- Project (750)
: : : : : : : : +- Project (749)
: : : : : : : : +- Repartition (748)
: : : : : : : : +- LogicalRelation (747)
: : : : : : : +- Project (756)
: : : : : : : +- Repartition (755)
: : : : : : : +- LogicalRelation (754)
: : : : : : +- Repartition (761)
: : : : : : +- LogicalRelation (760)
: : : : : +- Project (810)
: : : : : +- Project (809)
: : : : : +- Project (808)
: : : : : +- Project (807)
: : : : : +- Generate (806)
: : : : : +- Project (805)
: : : : : +- Generate (804)
: : : : : +- Project (803)
: : : : : +- Join (802)
: : : : : :- Project (799)
: : : : : : +- Project (798)
: : : : : : +- Join (797)
: : : : : : :- SubqueryAlias (793)
: : : : : : : +- Project (792)
: : : : : : : +- Join (791)
: : : : : : : :- Project (786)
: : : : : : : : +- RepartitionByExpression (785)
: : : : : : : : +- LogicalRelation (784)
: : : : : : : +- Project (790)
: : : : : : : +- Project (789)
: : : : : : : +- Repartition (788)
: : : : : : : +- LogicalRelation (787)
: : : : : : +- Project (796)
: : : : : : +- Repartition (795)
: : : : : : +- LogicalRelation (794)
: : : : : +- Repartition (801)
: : : : : +- LogicalRelation (800)
: : : : +- LogicalRelation (826)
: : : +- Project (878)
: : : +- Project (877)
: : : +- Join (876)
: : : :- Project (846)
: : : : +- Project (845)
: : : : +- Generate (844)
: : : : +- Project (843)
: : : : +- Generate (842)
: : : : +- Project (841)
: : : : +- Project (840)
: : : : +- Filter (839)
: : : : +- Repartition (838)
: : : : +- LogicalRelation (837)
: : : +- Deduplicate (875)
: : : +- Project (874)
: : : +- Project (873)
: : : +- Project (872)
: : : +- Project (871)
: : : +- Project (870)
: : : +- Generate (869)
: : : +- Project (868)
: : : +- Generate (867)
: : : +- Project (866)
: : : +- Join (865)
: : : :- Project (862)
: : : : +- Project (861)
: : : : +- Join (860)
: : : : :- SubqueryAlias (856)
: : : : : +- Project (855)
: : : : : +- Join (854)
: : : : : :- Project (849)
: : : : : : +- RepartitionByExpression (848)
: : : : : : +- LogicalRelation (847)
: : : : : +- Project (853)
: : : : : +- Project (852)
: : : : : +- Repartition (851)
: : : : : +- LogicalRelation (850)
: : : : +- Project (859)
: : : : +- Repartition (858)
: : : : +- LogicalRelation (857)
: : : +- Repartition (864)
: : : +- LogicalRelation (863)
: : +- Project (886)
: : +- Filter (885)
: : +- Project (884)
: : +- Generate (883)
: : +- Repartition (882)
: : +- LogicalRelation (881)
: +- Filter (1325)
: +- Aggregate (1324)
: +- Project (1323)
: +- Project (1322)
: +- Project (1321)
: +- Join (1320)
: :- Project (1313)
: : +- Project (1312)
: : +- Join (1311)
: : :- Project (1099)
: : : +- Project (1098)
: : : +- Project (1097)
: : : +- Project (1096)
: : : +- Project (1095)
: : : +- Project (1094)
: : : +- Join (1093)
: : : :- Project (923)
: : : : +- Project (922)
: : : : +- Project (921)
: : : : +- Project (920)
: : : : +- Generate (919)
: : : : +- Project (918)
: : : : +- Generate (917)
: : : : +- Project (916)
: : : : +- Join (915)
: : : : :- Project (912)
: : : : : +- Project (911)
: : : : : +- Join (910)
: : : : : :- SubqueryAlias (906)
: : : : : : +- Project (905)
: : : : : : +- Join (904)
: : : : : : :- Project (899)
: : : : : : : +- RepartitionByExpression (898)
: : : : : : : +- LogicalRelation (897)
: : : : : : +- Project (903)
: : : : : : +- Project (902)
: : : : : : +- Repartition (901)
: : : : : : +- LogicalRelation (900)
: : : : : +- Project (909)
: : : : : +- Repartition (908)
: : : : : +- LogicalRelation (907)
: : : : +- Repartition (914)
: : : : +- LogicalRelation (913)
: : : +- Project (1092)
: : : +- Aggregate (1091)
: : : +- Project (1090)
: : : +- Join (1089)
: : : :- Project (1005)
: : : : +- Filter (1004)
: : : : +- Join (1003)
: : : : :- Filter (975)
: : : : : +- Project (974)
: : : : : +- Project (973)
: : : : : +- Generate (972)
: : : : : +- Project (971)
: : : : : +- Aggregate (970)
: : : : : +- Project (969)
: : : : : +- Generate (968)
: : : : : +- Join (967)
: : : : : :- Repartition (925)
: : : : : : +- LogicalRelation (924)
: : : : : +- Project (966)
: : : : : +- Join (965)
: : : : : :- Project (935)
: : : : : : +- Project (934)
: : : : : : +- Generate (933)
: : : : : : +- Project (932)
: : : : : : +- Generate (931)
: : : : : : +- Project (930)
: : : : : : +- Project (929)
: : : : : : +- Filter (928)
: : : : : : +- Repartition (927)
: : : : : : +- LogicalRelation (926)
: : : : : +- Deduplicate (964)
: : : : : +- Project (963)
: : : : : +- Project (962)
: : : : : +- Project (961)
: : : : : +- Project (960)
: : : : : +- Project (959)
: : : : : +- Generate (958)
: : : : : +- Project (957)
: : : : : +- Generate (956)
: : : : : +- Project (955)
: : : : : +- Join (954)
: : : : : :- Project (951)
: : : : : : +- Project (950)
: : : : : : +- Join (949)
: : : : : : :- SubqueryAlias (945)
: : : : : : : +- Project (944)
: : : : : : : +- Join (943)
: : : : : : : :- Project (938)
: : : : : : : : +- RepartitionByExpression (937)
: : : : : : : : +- LogicalRelation (936)
: : : : : : : +- Project (942)
: : : : : : : +- Project (941)
: : : : : : : +- Repartition (940)
: : : : : : : +- LogicalRelation (939)
: : : : : : +- Project (948)
: : : : : : +- Repartition (947)
: : : : : : +- LogicalRelation (946)
: : : : : +- Repartition (953)
: : : : : +- LogicalRelation (952)
: : : : +- Project (1002)
: : : : +- Project (1001)
: : : : +- Project (1000)
: : : : +- Project (999)
: : : : +- Generate (998)
: : : : +- Project (997)
: : : : +- Generate (996)
: : : : +- Project (995)
: : : : +- Join (994)
: : : : :- Project (991)
: : : : : +- Project (990)
: : : : : +- Join (989)
: : : : : :- SubqueryAlias (985)
: : : : : : +- Project (984)
: : : : : : +- Join (983)
: : : : : : :- Project (978)
: : : : : : : +- RepartitionByExpression (977)
: : : : : : : +- LogicalRelation (976)
: : : : : : +- Project (982)
: : : : : : +- Project (981)
: : : : : : +- Repartition (980)
: : : : : : +- LogicalRelation (979)
: : : : : +- Project (988)
: : : : : +- Repartition (987)
: : : : : +- LogicalRelation (986)
: : : : +- Repartition (993)
: : : : +- LogicalRelation (992)
: : : +- Aggregate (1088)
: : : +- Project (1087)
: : : +- Filter (1086)
: : : +- Join (1085)
: : : :- Filter (1057)
: : : : +- Project (1056)
: : : : +- Project (1055)
: : : : +- Generate (1054)
: : : : +- Project (1053)
: : : : +- Aggregate (1052)
: : : : +- Project (1051)
: : : : +- Generate (1050)
: : : : +- Join (1049)
: : : : :- Repartition (1007)
: : : : : +- LogicalRelation (1006)
: : : : +- Project (1048)
: : : : +- Join (1047)
: : : : :- Project (1017)
: : : : : +- Project (1016)
: : : : : +- Generate (1015)
: : : : : +- Project (1014)
: : : : : +- Generate (1013)
: : : : : +- Project (1012)
: : : : : +- Project (1011)
: : : : : +- Filter (1010)
: : : : : +- Repartition (1009)
: : : : : +- LogicalRelation (1008)
: : : : +- Deduplicate (1046)
: : : : +- Project (1045)
: : : : +- Project (1044)
: : : : +- Project (1043)
: : : : +- Project (1042)
: : : : +- Project (1041)
: : : : +- Generate (1040)
: : : : +- Project (1039)
: : : : +- Generate (1038)
: : : : +- Project (1037)
: : : : +- Join (1036)
: : : : :- Project (1033)
: : : : : +- Project (1032)
: : : : : +- Join (1031)
: : : : : :- SubqueryAlias (1027)
: : : : : : +- Project (1026)
: : : : : : +- Join (1025)
: : : : : : :- Project (1020)
: : : : : : : +- RepartitionByExpression (1019)
: : : : : : : +- LogicalRelation (1018)
: : : : : : +- Project (1024)
: : : : : : +- Project (1023)
: : : : : : +- Repartition (1022)
: : : : : : +- LogicalRelation (1021)
: : : : : +- Project (1030)
: : : : : +- Repartition (1029)
: : : : : +- LogicalRelation (1028)
: : : : +- Repartition (1035)
: : : : +- LogicalRelation (1034)
: : : +- Project (1084)
: : : +- Project (1083)
: : : +- Project (1082)
: : : +- Project (1081)
: : : +- Generate (1080)
: : : +- Project (1079)
: : : +- Generate (1078)
: : : +- Project (1077)
: : : +- Join (1076)
: : : :- Project (1073)
: : : : +- Project (1072)
: : : : +- Join (1071)
: : : : :- SubqueryAlias (1067)
: : : : : +- Project (1066)
: : : : : +- Join (1065)
: : : : : :- Project (1060)
: : : : : : +- RepartitionByExpression (1059)
: : : : : : +- LogicalRelation (1058)
: : : : : +- Project (1064)
: : : : : +- Project (1063)
: : : : : +- Repartition (1062)
: : : : : +- LogicalRelation (1061)
: : : : +- Project (1070)
: : : : +- Repartition (1069)
: : : : +- LogicalRelation (1068)
: : : +- Repartition (1075)
: : : +- LogicalRelation (1074)
: : +- SerializeFromObject (1310)
: : +- MapElements (1309)
: : +- DeserializeToObject (1308)
: : +- Aggregate (1307)
: : +- Project (1306)
: : +- Project (1305)
: : +- Join (1304)
: : :- Project (1302)
: : : +- Project (1301)
: : : +- Project (1300)
: : : +- Project (1299)
: : : +- Project (1298)
: : : +- Project (1297)
: : : +- Join (1296)
: : : :- Project (1126)
: : : : +- Project (1125)
: : : : +- Project (1124)
: : : : +- Project (1123)
: : : : +- Generate (1122)
: : : : +- Project (1121)
: : : : +- Generate (1120)
: : : : +- Project (1119)
: : : : +- Join (1118)
: : : : :- Project (1115)
: : : : : +- Project (1114)
: : : : : +- Join (1113)
: : : : : :- SubqueryAlias (1109)
: : : : : : +- Project (1108)
: : : : : : +- Join (1107)
: : : : : : :- Project (1102)
: : : : : : : +- RepartitionByExpression (1101)
: : : : : : : +- LogicalRelation (1100)
: : : : : : +- Project (1106)
: : : : : : +- Project (1105)
: : : : : : +- Repartition (1104)
: : : : : : +- LogicalRelation (1103)
: : : : : +- Project (1112)
: : : : : +- Repartition (1111)
: : : : : +- LogicalRelation (1110)
: : : : +- Repartition (1117)
: : : : +- LogicalRelation (1116)
: : : +- Project (1295)
: : : +- Aggregate (1294)
: : : +- Project (1293)
: : : +- Join (1292)
: : : :- Project (1208)
: : : : +- Filter (1207)
: : : : +- Join (1206)
: : : : :- Filter (1178)
: : : : : +- Project (1177)
: : : : : +- Project (1176)
: : : : : +- Generate (1175)
: : : : : +- Project (1174)
: : : : : +- Aggregate (1173)
: : : : : +- Project (1172)
: : : : : +- Generate (1171)
: : : : : +- Join (1170)
: : : : : :- Repartition (1128)
: : : : : : +- LogicalRelation (1127)
: : : : : +- Project (1169)
: : : : : +- Join (1168)
: : : : : :- Project (1138)
: : : : : : +- Project (1137)
: : : : : : +- Generate (1136)
: : : : : : +- Project (1135)
: : : : : : +- Generate (1134)
: : : : : : +- Project (1133)
: : : : : : +- Project (1132)
: : : : : : +- Filter (1131)
: : : : : : +- Repartition (1130)
: : : : : : +- LogicalRelation (1129)
: : : : : +- Deduplicate (1167)
: : : : : +- Project (1166)
: : : : : +- Project (1165)
: : : : : +- Project (1164)
: : : : : +- Project (1163)
: : : : : +- Project (1162)
: : : : : +- Generate (1161)
: : : : : +- Project (1160)
: : : : : +- Generate (1159)
: : : : : +- Project (1158)
: : : : : +- Join (1157)
: : : : : :- Project (1154)
: : : : : : +- Project (1153)
: : : : : : +- Join (1152)
: : : : : : :- SubqueryAlias (1148)
: : : : : : : +- Project (1147)
: : : : : : : +- Join (1146)
: : : : : : : :- Project (1141)
: : : : : : : : +- RepartitionByExpression (1140)
: : : : : : : : +- LogicalRelation (1139)
: : : : : : : +- Project (1145)
: : : : : : : +- Project (1144)
: : : : : : : +- Repartition (1143)
: : : : : : : +- LogicalRelation (1142)
: : : : : : +- Project (1151)
: : : : : : +- Repartition (1150)
: : : : : : +- LogicalRelation (1149)
: : : : : +- Repartition (1156)
: : : : : +- LogicalRelation (1155)
: : : : +- Project (1205)
: : : : +- Project (1204)
: : : : +- Project (1203)
: : : : +- Project (1202)
: : : : +- Generate (1201)
: : : : +- Project (1200)
: : : : +- Generate (1199)
: : : : +- Project (1198)
: : : : +- Join (1197)
: : : : :- Project (1194)
: : : : : +- Project (1193)
: : : : : +- Join (1192)
: : : : : :- SubqueryAlias (1188)
: : : : : : +- Project (1187)
: : : : : : +- Join (1186)
: : : : : : :- Project (1181)
: : : : : : : +- RepartitionByExpression (1180)
: : : : : : : +- LogicalRelation (1179)
: : : : : : +- Project (1185)
: : : : : : +- Project (1184)
: : : : : : +- Repartition (1183)
: : : : : : +- LogicalRelation (1182)
: : : : : +- Project (1191)
: : : : : +- Repartition (1190)
: : : : : +- LogicalRelation (1189)
: : : : +- Repartition (1196)
: : : : +- LogicalRelation (1195)
: : : +- Aggregate (1291)
: : : +- Project (1290)
: : : +- Filter (1289)
: : : +- Join (1288)
: : : :- Filter (1260)
: : : : +- Project (1259)
: : : : +- Project (1258)
: : : : +- Generate (1257)
: : : : +- Project (1256)
: : : : +- Aggregate (1255)
: : : : +- Project (1254)
: : : : +- Generate (1253)
: : : : +- Join (1252)
: : : : :- Repartition (1210)
: : : : : +- LogicalRelation (1209)
: : : : +- Project (1251)
: : : : +- Join (1250)
: : : : :- Project (1220)
: : : : : +- Project (1219)
: : : : : +- Generate (1218)
: : : : : +- Project (1217)
: : : : : +- Generate (1216)
: : : : : +- Project (1215)
: : : : : +- Project (1214)
: : : : : +- Filter (1213)
: : : : : +- Repartition (1212)
: : : : : +- LogicalRelation (1211)
: : : : +- Deduplicate (1249)
: : : : +- Project (1248)
: : : : +- Project (1247)
: : : : +- Project (1246)
: : : : +- Project (1245)
: : : : +- Project (1244)
: : : : +- Generate (1243)
: : : : +- Project (1242)
: : : : +- Generate (1241)
: : : : +- Project (1240)
: : : : +- Join (1239)
: : : : :- Project (1236)
: : : : : +- Project (1235)
: : : : : +- Join (1234)
: : : : : :- SubqueryAlias (1230)
: : : : : : +- Project (1229)
: : : : : : +- Join (1228)
: : : : : : :- Project (1223)
: : : : : : : +- RepartitionByExpression (1222)
: : : : : : : +- LogicalRelation (1221)
: : : : : : +- Project (1227)
: : : : : : +- Project (1226)
: : : : : : +- Repartition (1225)
: : : : : : +- LogicalRelation (1224)
: : : : : +- Project (1233)
: : : : : +- Repartition (1232)
: : : : : +- LogicalRelation (1231)
: : : : +- Repartition (1238)
: : : : +- LogicalRelation (1237)
: : : +- Project (1287)
: : : +- Project (1286)
: : : +- Project (1285)
: : : +- Project (1284)
: : : +- Generate (1283)
: : : +- Project (1282)
: : : +- Generate (1281)
: : : +- Project (1280)
: : : +- Join (1279)
: : : :- Project (1276)
: : : : +- Project (1275)
: : : : +- Join (1274)
: : : : :- SubqueryAlias (1270)
: : : : : +- Project (1269)
: : : : : +- Join (1268)
: : : : : :- Project (1263)
: : : : : : +- RepartitionByExpression (1262)
: : : : : : +- LogicalRelation (1261)
: : : : : +- Project (1267)
: : : : : +- Project (1266)
: : : : : +- Repartition (1265)
: : : : : +- LogicalRelation (1264)
: : : : +- Project (1273)
: : : : +- Repartition (1272)
: : : : +- LogicalRelation (1271)
: : : +- Repartition (1278)
: : : +- LogicalRelation (1277)
: : +- LogicalRelation (1303)
: +- Project (1319)
: +- Filter (1318)
: +- Project (1317)
: +- Generate (1316)
: +- Repartition (1315)
: +- LogicalRelation (1314)
+- SerializeFromObject (2667)
+- MapElements (2666)
+- DeserializeToObject (2665)
+- Project (2664)
+- Project (2663)
+- Project (2662)
+- Project (2661)
+- Project (2660)
+- Project (2659)
+- Project (2658)
+- Join (2657)
:- Project (1748)
: +- Project (1747)
: +- Join (1746)
: :- Project (1534)
: : +- Project (1533)
: : +- Project (1532)
: : +- Project (1531)
: : +- Project (1530)
: : +- Project (1529)
: : +- Join (1528)
: : :- Project (1358)
: : : +- Project (1357)
: : : +- Project (1356)
: : : +- Project (1355)
: : : +- Generate (1354)
: : : +- Project (1353)
: : : +- Generate (1352)
: : : +- Project (1351)
: : : +- Join (1350)
: : : :- Project (1347)
: : : : +- Project (1346)
: : : : +- Join (1345)
: : : : :- SubqueryAlias (1341)
: : : : : +- Project (1340)
: : : : : +- Join (1339)
: : : : : :- Project (1334)
: : : : : : +- RepartitionByExpression (1333)
: : : : : : +- LogicalRelation (1332)
: : : : : +- Project (1338)
: : : : : +- Project (1337)
: : : : : +- Repartition (1336)
: : : : : +- LogicalRelation (1335)
: : : : +- Project (1344)
: : : : +- Repartition (1343)
: : : : +- LogicalRelation (1342)
: : : +- Repartition (1349)
: : : +- LogicalRelation (1348)
: : +- Project (1527)
: : +- Aggregate (1526)
: : +- Project (1525)
: : +- Join (1524)
: : :- Project (1440)
: : : +- Filter (1439)
: : : +- Join (1438)
: : : :- Filter (1410)
: : : : +- Project (1409)
: : : : +- Project (1408)
: : : : +- Generate (1407)
: : : : +- Project (1406)
: : : : +- Aggregate (1405)
: : : : +- Project (1404)
: : : : +- Generate (1403)
: : : : +- Join (1402)
: : : : :- Repartition (1360)
: : : : : +- LogicalRelation (1359)
: : : : +- Project (1401)
: : : : +- Join (1400)
: : : : :- Project (1370)
: : : : : +- Project (1369)
: : : : : +- Generate (1368)
: : : : : +- Project (1367)
: : : : : +- Generate (1366)
: : : : : +- Project (1365)
: : : : : +- Project (1364)
: : : : : +- Filter (1363)
: : : : : +- Repartition (1362)
: : : : : +- LogicalRelation (1361)
: : : : +- Deduplicate (1399)
: : : : +- Project (1398)
: : : : +- Project (1397)
: : : : +- Project (1396)
: : : : +- Project (1395)
: : : : +- Project (1394)
: : : : +- Generate (1393)
: : : : +- Project (1392)
: : : : +- Generate (1391)
: : : : +- Project (1390)
: : : : +- Join (1389)
: : : : :- Project (1386)
: : : : : +- Project (1385)
: : : : : +- Join (1384)
: : : : : :- SubqueryAlias (1380)
: : : : : : +- Project (1379)
: : : : : : +- Join (1378)
: : : : : : :- Project (1373)
: : : : : : : +- RepartitionByExpression (1372)
: : : : : : : +- LogicalRelation (1371)
: : : : : : +- Project (1377)
: : : : : : +- Project (1376)
: : : : : : +- Repartition (1375)
: : : : : : +- LogicalRelation (1374)
: : : : : +- Project (1383)
: : : : : +- Repartition (1382)
: : : : : +- LogicalRelation (1381)
: : : : +- Repartition (1388)
: : : : +- LogicalRelation (1387)
: : : +- Project (1437)
: : : +- Project (1436)
: : : +- Project (1435)
: : : +- Project (1434)
: : : +- Generate (1433)
: : : +- Project (1432)
: : : +- Generate (1431)
: : : +- Project (1430)
: : : +- Join (1429)
: : : :- Project (1426)
: : : : +- Project (1425)
: : : : +- Join (1424)
: : : : :- SubqueryAlias (1420)
: : : : : +- Project (1419)
: : : : : +- Join (1418)
: : : : : :- Project (1413)
: : : : : : +- RepartitionByExpression (1412)
: : : : : : +- LogicalRelation (1411)
: : : : : +- Project (1417)
: : : : : +- Project (1416)
: : : : : +- Repartition (1415)
: : : : : +- LogicalRelation (1414)
: : : : +- Project (1423)
: : : : +- Repartition (1422)
: : : : +- LogicalRelation (1421)
: : : +- Repartition (1428)
: : : +- LogicalRelation (1427)
: : +- Aggregate (1523)
: : +- Project (1522)
: : +- Filter (1521)
: : +- Join (1520)
: : :- Filter (1492)
: : : +- Project (1491)
: : : +- Project (1490)
: : : +- Generate (1489)
: : : +- Project (1488)
: : : +- Aggregate (1487)
: : : +- Project (1486)
: : : +- Generate (1485)
: : : +- Join (1484)
: : : :- Repartition (1442)
: : : : +- LogicalRelation (1441)
: : : +- Project (1483)
: : : +- Join (1482)
: : : :- Project (1452)
: : : : +- Project (1451)
: : : : +- Generate (1450)
: : : : +- Project (1449)
: : : : +- Generate (1448)
: : : : +- Project (1447)
: : : : +- Project (1446)
: : : : +- Filter (1445)
: : : : +- Repartition (1444)
: : : : +- LogicalRelation (1443)
: : : +- Deduplicate (1481)
: : : +- Project (1480)
: : : +- Project (1479)
: : : +- Project (1478)
: : : +- Project (1477)
: : : +- Project (1476)
: : : +- Generate (1475)
: : : +- Project (1474)
: : : +- Generate (1473)
: : : +- Project (1472)
: : : +- Join (1471)
: : : :- Project (1468)
: : : : +- Project (1467)
: : : : +- Join (1466)
: : : : :- SubqueryAlias (1462)
: : : : : +- Project (1461)
: : : : : +- Join (1460)
: : : : : :- Project (1455)
: : : : : : +- RepartitionByExpression (1454)
: : : : : : +- LogicalRelation (1453)
: : : : : +- Project (1459)
: : : : : +- Project (1458)
: : : : : +- Repartition (1457)
: : : : : +- LogicalRelation (1456)
: : : : +- Project (1465)
: : : : +- Repartition (1464)
: : : : +- LogicalRelation (1463)
: : : +- Repartition (1470)
: : : +- LogicalRelation (1469)
: : +- Project (1519)
: : +- Project (1518)
: : +- Project (1517)
: : +- Project (1516)
: : +- Generate (1515)
: : +- Project (1514)
: : +- Generate (1513)
: : +- Project (1512)
: : +- Join (1511)
: : :- Project (1508)
: : : +- Project (1507)
: : : +- Join (1506)
: : : :- SubqueryAlias (1502)
: : : : +- Project (1501)
: : : : +- Join (1500)
: : : : :- Project (1495)
: : : : : +- RepartitionByExpression (1494)
: : : : : +- LogicalRelation (1493)
: : : : +- Project (1499)
: : : : +- Project (1498)
: : : : +- Repartition (1497)
: : : : +- LogicalRelation (1496)
: : : +- Project (1505)
: : : +- Repartition (1504)
: : : +- LogicalRelation (1503)
: : +- Repartition (1510)
: : +- LogicalRelation (1509)
: +- SerializeFromObject (1745)
: +- MapElements (1744)
: +- DeserializeToObject (1743)
: +- Aggregate (1742)
: +- Project (1741)
: +- Project (1740)
: +- Join (1739)
: :- Project (1737)
: : +- Project (1736)
: : +- Project (1735)
: : +- Project (1734)
: : +- Project (1733)
: : +- Project (1732)
: : +- Join (1731)
: : :- Project (1561)
: : : +- Project (1560)
: : : +- Project (1559)
: : : +- Project (1558)
: : : +- Generate (1557)
: : : +- Project (1556)
: : : +- Generate (1555)
: : : +- Project (1554)
: : : +- Join (1553)
: : : :- Project (1550)
: : : : +- Project (1549)
: : : : +- Join (1548)
: : : : :- SubqueryAlias (1544)
: : : : : +- Project (1543)
: : : : : +- Join (1542)
: : : : : :- Project (1537)
: : : : : : +- RepartitionByExpression (1536)
: : : : : : +- LogicalRelation (1535)
: : : : : +- Project (1541)
: : : : : +- Project (1540)
: : : : : +- Repartition (1539)
: : : : : +- LogicalRelation (1538)
: : : : +- Project (1547)
: : : : +- Repartition (1546)
: : : : +- LogicalRelation (1545)
: : : +- Repartition (1552)
: : : +- LogicalRelation (1551)
: : +- Project (1730)
: : +- Aggregate (1729)
: : +- Project (1728)
: : +- Join (1727)
: : :- Project (1643)
: : : +- Filter (1642)
: : : +- Join (1641)
: : : :- Filter (1613)
: : : : +- Project (1612)
: : : : +- Project (1611)
: : : : +- Generate (1610)
: : : : +- Project (1609)
: : : : +- Aggregate (1608)
: : : : +- Project (1607)
: : : : +- Generate (1606)
: : : : +- Join (1605)
: : : : :- Repartition (1563)
: : : : : +- LogicalRelation (1562)
: : : : +- Project (1604)
: : : : +- Join (1603)
: : : : :- Project (1573)
: : : : : +- Project (1572)
: : : : : +- Generate (1571)
: : : : : +- Project (1570)
: : : : : +- Generate (1569)
: : : : : +- Project (1568)
: : : : : +- Project (1567)
: : : : : +- Filter (1566)
: : : : : +- Repartition (1565)
: : : : : +- LogicalRelation (1564)
: : : : +- Deduplicate (1602)
: : : : +- Project (1601)
: : : : +- Project (1600)
: : : : +- Project (1599)
: : : : +- Project (1598)
: : : : +- Project (1597)
: : : : +- Generate (1596)
: : : : +- Project (1595)
: : : : +- Generate (1594)
: : : : +- Project (1593)
: : : : +- Join (1592)
: : : : :- Project (1589)
: : : : : +- Project (1588)
: : : : : +- Join (1587)
: : : : : :- SubqueryAlias (1583)
: : : : : : +- Project (1582)
: : : : : : +- Join (1581)
: : : : : : :- Project (1576)
: : : : : : : +- RepartitionByExpression (1575)
: : : : : : : +- LogicalRelation (1574)
: : : : : : +- Project (1580)
: : : : : : +- Project (1579)
: : : : : : +- Repartition (1578)
: : : : : : +- LogicalRelation (1577)
: : : : : +- Project (1586)
: : : : : +- Repartition (1585)
: : : : : +- LogicalRelation (1584)
: : : : +- Repartition (1591)
: : : : +- LogicalRelation (1590)
: : : +- Project (1640)
: : : +- Project (1639)
: : : +- Project (1638)
: : : +- Project (1637)
: : : +- Generate (1636)
: : : +- Project (1635)
: : : +- Generate (1634)
: : : +- Project (1633)
: : : +- Join (1632)
: : : :- Project (1629)
: : : : +- Project (1628)
: : : : +- Join (1627)
: : : : :- SubqueryAlias (1623)
: : : : : +- Project (1622)
: : : : : +- Join (1621)
: : : : : :- Project (1616)
: : : : : : +- RepartitionByExpression (1615)
: : : : : : +- LogicalRelation (1614)
: : : : : +- Project (1620)
: : : : : +- Project (1619)
: : : : : +- Repartition (1618)
: : : : : +- LogicalRelation (1617)
: : : : +- Project (1626)
: : : : +- Repartition (1625)
: : : : +- LogicalRelation (1624)
: : : +- Repartition (1631)
: : : +- LogicalRelation (1630)
: : +- Aggregate (1726)
: : +- Project (1725)
: : +- Filter (1724)
: : +- Join (1723)
: : :- Filter (1695)
: : : +- Project (1694)
: : : +- Project (1693)
: : : +- Generate (1692)
: : : +- Project (1691)
: : : +- Aggregate (1690)
: : : +- Project (1689)
: : : +- Generate (1688)
: : : +- Join (1687)
: : : :- Repartition (1645)
: : : : +- LogicalRelation (1644)
: : : +- Project (1686)
: : : +- Join (1685)
: : : :- Project (1655)
: : : : +- Project (1654)
: : : : +- Generate (1653)
: : : : +- Project (1652)
: : : : +- Generate (1651)
: : : : +- Project (1650)
: : : : +- Project (1649)
: : : : +- Filter (1648)
: : : : +- Repartition (1647)
: : : : +- LogicalRelation (1646)
: : : +- Deduplicate (1684)
: : : +- Project (1683)
: : : +- Project (1682)
: : : +- Project (1681)
: : : +- Project (1680)
: : : +- Project (1679)
: : : +- Generate (1678)
: : : +- Project (1677)
: : : +- Generate (1676)
: : : +- Project (1675)
: : : +- Join (1674)
: : : :- Project (1671)
: : : : +- Project (1670)
: : : : +- Join (1669)
: : : : :- SubqueryAlias (1665)
: : : : : +- Project (1664)
: : : : : +- Join (1663)
: : : : : :- Project (1658)
: : : : : : +- RepartitionByExpression (1657)
: : : : : : +- LogicalRelation (1656)
: : : : : +- Project (1662)
: : : : : +- Project (1661)
: : : : : +- Repartition (1660)
: : : : : +- LogicalRelation (1659)
: : : : +- Project (1668)
: : : : +- Repartition (1667)
: : : : +- LogicalRelation (1666)
: : : +- Repartition (1673)
: : : +- LogicalRelation (1672)
: : +- Project (1722)
: : +- Project (1721)
: : +- Project (1720)
: : +- Project (1719)
: : +- Generate (1718)
: : +- Project (1717)
: : +- Generate (1716)
: : +- Project (1715)
: : +- Join (1714)
: : :- Project (1711)
: : : +- Project (1710)
: : : +- Join (1709)
: : : :- SubqueryAlias (1705)
: : : : +- Project (1704)
: : : : +- Join (1703)
: : : : :- Project (1698)
: : : : : +- RepartitionByExpression (1697)
: : : : : +- LogicalRelation (1696)
: : : : +- Project (1702)
: : : : +- Project (1701)
: : : : +- Repartition (1700)
: : : : +- LogicalRelation (1699)
: : : +- Project (1708)
: : : +- Repartition (1707)
: : : +- LogicalRelation (1706)
: : +- Repartition (1713)
: : +- LogicalRelation (1712)
: +- LogicalRelation (1738)
+- Aggregate (2656)
+- Union (2655)
:- Filter (2225)
: +- Aggregate (2224)
: +- Project (2223)
: +- Project (2222)
: +- Window (2221)
: +- Project (2220)
: +- Project (2219)
: +- Project (2218)
: +- Project (2217)
: +- Join (2216)
: :- Project (2209)
: : +- Join (2208)
: : :- Project (2165)
: : : +- Project (2164)
: : : +- Join (2163)
: : : :- Project (1951)
: : : : +- Project (1950)
: : : : +- Project (1949)
: : : : +- Project (1948)
: : : : +- Project (1947)
: : : : +- Project (1946)
: : : : +- Join (1945)
: : : : :- Project (1775)
: : : : : +- Project (1774)
: : : : : +- Project (1773)
: : : : : +- Project (1772)
: : : : : +- Generate (1771)
: : : : : +- Project (1770)
: : : : : +- Generate (1769)
: : : : : +- Project (1768)
: : : : : +- Join (1767)
: : : : : :- Project (1764)
: : : : : : +- Project (1763)
: : : : : : +- Join (1762)
: : : : : : :- SubqueryAlias (1758)
: : : : : : : +- Project (1757)
: : : : : : : +- Join (1756)
: : : : : : : :- Project (1751)
: : : : : : : : +- RepartitionByExpression (1750)
: : : : : : : : +- LogicalRelation (1749)
: : : : : : : +- Project (1755)
: : : : : : : +- Project (1754)
: : : : : : : +- Repartition (1753)
: : : : : : : +- LogicalRelation (1752)
: : : : : : +- Project (1761)
: : : : : : +- Repartition (1760)
: : : : : : +- LogicalRelation (1759)
: : : : : +- Repartition (1766)
: : : : : +- LogicalRelation (1765)
: : : : +- Project (1944)
: : : : +- Aggregate (1943)
: : : : +- Project (1942)
: : : : +- Join (1941)
: : : : :- Project (1857)
: : : : : +- Filter (1856)
: : : : : +- Join (1855)
: : : : : :- Filter (1827)
: : : : : : +- Project (1826)
: : : : : : +- Project (1825)
: : : : : : +- Generate (1824)
: : : : : : +- Project (1823)
: : : : : : +- Aggregate (1822)
: : : : : : +- Project (1821)
: : : : : : +- Generate (1820)
: : : : : : +- Join (1819)
: : : : : : :- Repartition (1777)
: : : : : : : +- LogicalRelation (1776)
: : : : : : +- Project (1818)
: : : : : : +- Join (1817)
: : : : : : :- Project (1787)
: : : : : : : +- Project (1786)
: : : : : : : +- Generate (1785)
: : : : : : : +- Project (1784)
: : : : : : : +- Generate (1783)
: : : : : : : +- Project (1782)
: : : : : : : +- Project (1781)
: : : : : : : +- Filter (1780)
: : : : : : : +- Repartition (1779)
: : : : : : : +- LogicalRelation (1778)
: : : : : : +- Deduplicate (1816)
: : : : : : +- Project (1815)
: : : : : : +- Project (1814)
: : : : : : +- Project (1813)
: : : : : : +- Project (1812)
: : : : : : +- Project (1811)
: : : : : : +- Generate (1810)
: : : : : : +- Project (1809)
: : : : : : +- Generate (1808)
: : : : : : +- Project (1807)
: : : : : : +- Join (1806)
: : : : : : :- Project (1803)
: : : : : : : +- Project (1802)
: : : : : : : +- Join (1801)
: : : : : : : :- SubqueryAlias (1797)
: : : : : : : : +- Project (1796)
: : : : : : : : +- Join (1795)
: : : : : : : : :- Project (1790)
: : : : : : : : : +- RepartitionByExpression (1789)
: : : : : : : : : +- LogicalRelation (1788)
: : : : : : : : +- Project (1794)
: : : : : : : : +- Project (1793)
: : : : : : : : +- Repartition (1792)
: : : : : : : : +- LogicalRelation (1791)
: : : : : : : +- Project (1800)
: : : : : : : +- Repartition (1799)
: : : : : : : +- LogicalRelation (1798)
: : : : : : +- Repartition (1805)
: : : : : : +- LogicalRelation (1804)
: : : : : +- Project (1854)
: : : : : +- Project (1853)
: : : : : +- Project (1852)
: : : : : +- Project (1851)
: : : : : +- Generate (1850)
: : : : : +- Project (1849)
: : : : : +- Generate (1848)
: : : : : +- Project (1847)
: : : : : +- Join (1846)
: : : : : :- Project (1843)
: : : : : : +- Project (1842)
: : : : : : +- Join (1841)
: : : : : : :- SubqueryAlias (1837)
: : : : : : : +- Project (1836)
: : : : : : : +- Join (1835)
: : : : : : : :- Project (1830)
: : : : : : : : +- RepartitionByExpression (1829)
: : : : : : : : +- LogicalRelation (1828)
: : : : : : : +- Project (1834)
: : : : : : : +- Project (1833)
: : : : : : : +- Repartition (1832)
: : : : : : : +- LogicalRelation (1831)
: : : : : : +- Project (1840)
: : : : : : +- Repartition (1839)
: : : : : : +- LogicalRelation (1838)
: : : : : +- Repartition (1845)
: : : : : +- LogicalRelation (1844)
: : : : +- Aggregate (1940)
: : : : +- Project (1939)
: : : : +- Filter (1938)
: : : : +- Join (1937)
: : : : :- Filter (1909)
: : : : : +- Project (1908)
: : : : : +- Project (1907)
: : : : : +- Generate (1906)
: : : : : +- Project (1905)
: : : : : +- Aggregate (1904)
: : : : : +- Project (1903)
: : : : : +- Generate (1902)
: : : : : +- Join (1901)
: : : : : :- Repartition (1859)
: : : : : : +- LogicalRelation (1858)
: : : : : +- Project (1900)
: : : : : +- Join (1899)
: : : : : :- Project (1869)
: : : : : : +- Project (1868)
: : : : : : +- Generate (1867)
: : : : : : +- Project (1866)
: : : : : : +- Generate (1865)
: : : : : : +- Project (1864)
: : : : : : +- Project (1863)
: : : : : : +- Filter (1862)
: : : : : : +- Repartition (1861)
: : : : : : +- LogicalRelation (1860)
: : : : : +- Deduplicate (1898)
: : : : : +- Project (1897)
: : : : : +- Project (1896)
: : : : : +- Project (1895)
: : : : : +- Project (1894)
: : : : : +- Project (1893)
: : : : : +- Generate (1892)
: : : : : +- Project (1891)
: : : : : +- Generate (1890)
: : : : : +- Project (1889)
: : : : : +- Join (1888)
: : : : : :- Project (1885)
: : : : : : +- Project (1884)
: : : : : : +- Join (1883)
: : : : : : :- SubqueryAlias (1879)
: : : : : : : +- Project (1878)
: : : : : : : +- Join (1877)
: : : : : : : :- Project (1872)
: : : : : : : : +- RepartitionByExpression (1871)
: : : : : : : : +- LogicalRelation (1870)
: : : : : : : +- Project (1876)
: : : : : : : +- Project (1875)
: : : : : : : +- Repartition (1874)
: : : : : : : +- LogicalRelation (1873)
: : : : : : +- Project (1882)
: : : : : : +- Repartition (1881)
: : : : : : +- LogicalRelation (1880)
: : : : : +- Repartition (1887)
: : : : : +- LogicalRelation (1886)
: : : : +- Project (1936)
: : : : +- Project (1935)
: : : : +- Project (1934)
: : : : +- Project (1933)
: : : : +- Generate (1932)
: : : : +- Project (1931)
: : : : +- Generate (1930)
: : : : +- Project (1929)
: : : : +- Join (1928)
: : : : :- Project (1925)
: : : : : +- Project (1924)
: : : : : +- Join (1923)
: : : : : :- SubqueryAlias (1919)
: : : : : : +- Project (1918)
: : : : : : +- Join (1917)
: : : : : : :- Project (1912)
: : : : : : : +- RepartitionByExpression (1911)
: : : : : : : +- LogicalRelation (1910)
: : : : : : +- Project (1916)
: : : : : : +- Project (1915)
: : : : : : +- Repartition (1914)
: : : : : : +- LogicalRelation (1913)
: : : : : +- Project (1922)
: : : : : +- Repartition (1921)
: : : : : +- LogicalRelation (1920)
: : : : +- Repartition (1927)
: : : : +- LogicalRelation (1926)
: : : +- SerializeFromObject (2162)
: : : +- MapElements (2161)
: : : +- DeserializeToObject (2160)
: : : +- Aggregate (2159)
: : : +- Project (2158)
: : : +- Project (2157)
: : : +- Join (2156)
: : : :- Project (2154)
: : : : +- Project (2153)
: : : : +- Project (2152)
: : : : +- Project (2151)
: : : : +- Project (2150)
: : : : +- Project (2149)
: : : : +- Join (2148)
: : : : :- Project (1978)
: : : : : +- Project (1977)
: : : : : +- Project (1976)
: : : : : +- Project (1975)
: : : : : +- Generate (1974)
: : : : : +- Project (1973)
: : : : : +- Generate (1972)
: : : : : +- Project (1971)
: : : : : +- Join (1970)
: : : : : :- Project (1967)
: : : : : : +- Project (1966)
: : : : : : +- Join (1965)
: : : : : : :- SubqueryAlias (1961)
: : : : : : : +- Project (1960)
: : : : : : : +- Join (1959)
: : : : : : : :- Project (1954)
: : : : : : : : +- RepartitionByExpression (1953)
: : : : : : : : +- LogicalRelation (1952)
: : : : : : : +- Project (1958)
: : : : : : : +- Project (1957)
: : : : : : : +- Repartition (1956)
: : : : : : : +- LogicalRelation (1955)
: : : : : : +- Project (1964)
: : : : : : +- Repartition (1963)
: : : : : : +- LogicalRelation (1962)
: : : : : +- Repartition (1969)
: : : : : +- LogicalRelation (1968)
: : : : +- Project (2147)
: : : : +- Aggregate (2146)
: : : : +- Project (2145)
: : : : +- Join (2144)
: : : : :- Project (2060)
: : : : : +- Filter (2059)
: : : : : +- Join (2058)
: : : : : :- Filter (2030)
: : : : : : +- Project (2029)
: : : : : : +- Project (2028)
: : : : : : +- Generate (2027)
: : : : : : +- Project (2026)
: : : : : : +- Aggregate (2025)
: : : : : : +- Project (2024)
: : : : : : +- Generate (2023)
: : : : : : +- Join (2022)
: : : : : : :- Repartition (1980)
: : : : : : : +- LogicalRelation (1979)
: : : : : : +- Project (2021)
: : : : : : +- Join (2020)
: : : : : : :- Project (1990)
: : : : : : : +- Project (1989)
: : : : : : : +- Generate (1988)
: : : : : : : +- Project (1987)
: : : : : : : +- Generate (1986)
: : : : : : : +- Project (1985)
: : : : : : : +- Project (1984)
: : : : : : : +- Filter (1983)
: : : : : : : +- Repartition (1982)
: : : : : : : +- LogicalRelation (1981)
: : : : : : +- Deduplicate (2019)
: : : : : : +- Project (2018)
: : : : : : +- Project (2017)
: : : : : : +- Project (2016)
: : : : : : +- Project (2015)
: : : : : : +- Project (2014)
: : : : : : +- Generate (2013)
: : : : : : +- Project (2012)
: : : : : : +- Generate (2011)
: : : : : : +- Project (2010)
: : : : : : +- Join (2009)
: : : : : : :- Project (2006)
: : : : : : : +- Project (2005)
: : : : : : : +- Join (2004)
: : : : : : : :- SubqueryAlias (2000)
: : : : : : : : +- Project (1999)
: : : : : : : : +- Join (1998)
: : : : : : : : :- Project (1993)
: : : : : : : : : +- RepartitionByExpression (1992)
: : : : : : : : : +- LogicalRelation (1991)
: : : : : : : : +- Project (1997)
: : : : : : : : +- Project (1996)
: : : : : : : : +- Repartition (1995)
: : : : : : : : +- LogicalRelation (1994)
: : : : : : : +- Project (2003)
: : : : : : : +- Repartition (2002)
: : : : : : : +- LogicalRelation (2001)
: : : : : : +- Repartition (2008)
: : : : : : +- LogicalRelation (2007)
: : : : : +- Project (2057)
: : : : : +- Project (2056)
: : : : : +- Project (2055)
: : : : : +- Project (2054)
: : : : : +- Generate (2053)
: : : : : +- Project (2052)
: : : : : +- Generate (2051)
: : : : : +- Project (2050)
: : : : : +- Join (2049)
: : : : : :- Project (2046)
: : : : : : +- Project (2045)
: : : : : : +- Join (2044)
: : : : : : :- SubqueryAlias (2040)
: : : : : : : +- Project (2039)
: : : : : : : +- Join (2038)
: : : : : : : :- Project (2033)
: : : : : : : : +- RepartitionByExpression (2032)
: : : : : : : : +- LogicalRelation (2031)
: : : : : : : +- Project (2037)
: : : : : : : +- Project (2036)
: : : : : : : +- Repartition (2035)
: : : : : : : +- LogicalRelation (2034)
: : : : : : +- Project (2043)
: : : : : : +- Repartition (2042)
: : : : : : +- LogicalRelation (2041)
: : : : : +- Repartition (2048)
: : : : : +- LogicalRelation (2047)
: : : : +- Aggregate (2143)
: : : : +- Project (2142)
: : : : +- Filter (2141)
: : : : +- Join (2140)
: : : : :- Filter (2112)
: : : : : +- Project (2111)
: : : : : +- Project (2110)
: : : : : +- Generate (2109)
: : : : : +- Project (2108)
: : : : : +- Aggregate (2107)
: : : : : +- Project (2106)
: : : : : +- Generate (2105)
: : : : : +- Join (2104)
: : : : : :- Repartition (2062)
: : : : : : +- LogicalRelation (2061)
: : : : : +- Project (2103)
: : : : : +- Join (2102)
: : : : : :- Project (2072)
: : : : : : +- Project (2071)
: : : : : : +- Generate (2070)
: : : : : : +- Project (2069)
: : : : : : +- Generate (2068)
: : : : : : +- Project (2067)
: : : : : : +- Project (2066)
: : : : : : +- Filter (2065)
: : : : : : +- Repartition (2064)
: : : : : : +- LogicalRelation (2063)
: : : : : +- Deduplicate (2101)
: : : : : +- Project (2100)
: : : : : +- Project (2099)
: : : : : +- Project (2098)
: : : : : +- Project (2097)
: : : : : +- Project (2096)
: : : : : +- Generate (2095)
: : : : : +- Project (2094)
: : : : : +- Generate (2093)
: : : : : +- Project (2092)
: : : : : +- Join (2091)
: : : : : :- Project (2088)
: : : : : : +- Project (2087)
: : : : : : +- Join (2086)
: : : : : : :- SubqueryAlias (2082)
: : : : : : : +- Project (2081)
: : : : : : : +- Join (2080)
: : : : : : : :- Project (2075)
: : : : : : : : +- RepartitionByExpression (2074)
: : : : : : : : +- LogicalRelation (2073)
: : : : : : : +- Project (2079)
: : : : : : : +- Project (2078)
: : : : : : : +- Repartition (2077)
: : : : : : : +- LogicalRelation (2076)
: : : : : : +- Project (2085)
: : : : : : +- Repartition (2084)
: : : : : : +- LogicalRelation (2083)
: : : : : +- Repartition (2090)
: : : : : +- LogicalRelation (2089)
: : : : +- Project (2139)
: : : : +- Project (2138)
: : : : +- Project (2137)
: : : : +- Project (2136)
: : : : +- Generate (2135)
: : : : +- Project (2134)
: : : : +- Generate (2133)
: : : : +- Project (2132)
: : : : +- Join (2131)
: : : : :- Project (2128)
: : : : : +- Project (2127)
: : : : : +- Join (2126)
: : : : : :- SubqueryAlias (2122)
: : : : : : +- Project (2121)
: : : : : : +- Join (2120)
: : : : : : :- Project (2115)
: : : : : : : +- RepartitionByExpression (2114)
: : : : : : : +- LogicalRelation (2113)
: : : : : : +- Project (2119)
: : : : : : +- Project (2118)
: : : : : : +- Repartition (2117)
: : : : : : +- LogicalRelation (2116)
: : : : : +- Project (2125)
: : : : : +- Repartition (2124)
: : : : : +- LogicalRelation (2123)
: : : : +- Repartition (2130)
: : : : +- LogicalRelation (2129)
: : : +- LogicalRelation (2155)
: : +- Project (2207)
: : +- Project (2206)
: : +- Join (2205)
: : :- Project (2175)
: : : +- Project (2174)
: : : +- Generate (2173)
: : : +- Project (2172)
: : : +- Generate (2171)
: : : +- Project (2170)
: : : +- Project (2169)
: : : +- Filter (2168)
: : : +- Repartition (2167)
: : : +- LogicalRelation (2166)
: : +- Deduplicate (2204)
: : +- Project (2203)
: : +- Project (2202)
: : +- Project (2201)
: : +- Project (2200)
: : +- Project (2199)
: : +- Generate (2198)
: : +- Project (2197)
: : +- Generate (2196)
: : +- Project (2195)
: : +- Join (2194)
: : :- Project (2191)
: : : +- Project (2190)
: : : +- Join (2189)
: : : :- SubqueryAlias (2185)
: : : : +- Project (2184)
: : : : +- Join (2183)
: : : : :- Project (2178)
: : : : : +- RepartitionByExpression (2177)
: : : : : +- LogicalRelation (2176)
: : : : +- Project (2182)
: : : : +- Project (2181)
: : : : +- Repartition (2180)
: : : : +- LogicalRelation (2179)
: : : +- Project (2188)
: : : +- Repartition (2187)
: : : +- LogicalRelation (2186)
: : +- Repartition (2193)
: : +- LogicalRelation (2192)
: +- Project (2215)
: +- Filter (2214)
: +- Project (2213)
: +- Generate (2212)
: +- Repartition (2211)
: +- LogicalRelation (2210)
+- Filter (2654)
+- Aggregate (2653)
+- Project (2652)
+- Project (2651)
+- Project (2650)
+- Join (2649)
:- Project (2642)
: +- Project (2641)
: +- Join (2640)
: :- Project (2428)
: : +- Project (2427)
: : +- Project (2426)
: : +- Project (2425)
: : +- Project (2424)
: : +- Project (2423)
: : +- Join (2422)
: : :- Project (2252)
: : : +- Project (2251)
: : : +- Project (2250)
: : : +- Project (2249)
: : : +- Generate (2248)
: : : +- Project (2247)
: : : +- Generate (2246)
: : : +- Project (2245)
: : : +- Join (2244)
: : : :- Project (2241)
: : : : +- Project (2240)
: : : : +- Join (2239)
: : : : :- SubqueryAlias (2235)
: : : : : +- Project (2234)
: : : : : +- Join (2233)
: : : : : :- Project (2228)
: : : : : : +- RepartitionByExpression (2227)
: : : : : : +- LogicalRelation (2226)
: : : : : +- Project (2232)
: : : : : +- Project (2231)
: : : : : +- Repartition (2230)
: : : : : +- LogicalRelation (2229)
: : : : +- Project (2238)
: : : : +- Repartition (2237)
: : : : +- LogicalRelation (2236)
: : : +- Repartition (2243)
: : : +- LogicalRelation (2242)
: : +- Project (2421)
: : +- Aggregate (2420)
: : +- Project (2419)
: : +- Join (2418)
: : :- Project (2334)
: : : +- Filter (2333)
: : : +- Join (2332)
: : : :- Filter (2304)
: : : : +- Project (2303)
: : : : +- Project (2302)
: : : : +- Generate (2301)
: : : : +- Project (2300)
: : : : +- Aggregate (2299)
: : : : +- Project (2298)
: : : : +- Generate (2297)
: : : : +- Join (2296)
: : : : :- Repartition (2254)
: : : : : +- LogicalRelation (2253)
: : : : +- Project (2295)
: : : : +- Join (2294)
: : : : :- Project (2264)
: : : : : +- Project (2263)
: : : : : +- Generate (2262)
: : : : : +- Project (2261)
: : : : : +- Generate (2260)
: : : : : +- Project (2259)
: : : : : +- Project (2258)
: : : : : +- Filter (2257)
: : : : : +- Repartition (2256)
: : : : : +- LogicalRelation (2255)
: : : : +- Deduplicate (2293)
: : : : +- Project (2292)
: : : : +- Project (2291)
: : : : +- Project (2290)
: : : : +- Project (2289)
: : : : +- Project (2288)
: : : : +- Generate (2287)
: : : : +- Project (2286)
: : : : +- Generate (2285)
: : : : +- Project (2284)
: : : : +- Join (2283)
: : : : :- Project (2280)
: : : : : +- Project (2279)
: : : : : +- Join (2278)
: : : : : :- SubqueryAlias (2274)
: : : : : : +- Project (2273)
: : : : : : +- Join (2272)
: : : : : : :- Project (2267)
: : : : : : : +- RepartitionByExpression (2266)
: : : : : : : +- LogicalRelation (2265)
: : : : : : +- Project (2271)
: : : : : : +- Project (2270)
: : : : : : +- Repartition (2269)
: : : : : : +- LogicalRelation (2268)
: : : : : +- Project (2277)
: : : : : +- Repartition (2276)
: : : : : +- LogicalRelation (2275)
: : : : +- Repartition (2282)
: : : : +- LogicalRelation (2281)
: : : +- Project (2331)
: : : +- Project (2330)
: : : +- Project (2329)
: : : +- Project (2328)
: : : +- Generate (2327)
: : : +- Project (2326)
: : : +- Generate (2325)
: : : +- Project (2324)
: : : +- Join (2323)
: : : :- Project (2320)
: : : : +- Project (2319)
: : : : +- Join (2318)
: : : : :- SubqueryAlias (2314)
: : : : : +- Project (2313)
: : : : : +- Join (2312)
: : : : : :- Project (2307)
: : : : : : +- RepartitionByExpression (2306)
: : : : : : +- LogicalRelation (2305)
: : : : : +- Project (2311)
: : : : : +- Project (2310)
: : : : : +- Repartition (2309)
: : : : : +- LogicalRelation (2308)
: : : : +- Project (2317)
: : : : +- Repartition (2316)
: : : : +- LogicalRelation (2315)
: : : +- Repartition (2322)
: : : +- LogicalRelation (2321)
: : +- Aggregate (2417)
: : +- Project (2416)
: : +- Filter (2415)
: : +- Join (2414)
: : :- Filter (2386)
: : : +- Project (2385)
: : : +- Project (2384)
: : : +- Generate (2383)
: : : +- Project (2382)
: : : +- Aggregate (2381)
: : : +- Project (2380)
: : : +- Generate (2379)
: : : +- Join (2378)
: : : :- Repartition (2336)
: : : : +- LogicalRelation (2335)
: : : +- Project (2377)
: : : +- Join (2376)
: : : :- Project (2346)
: : : : +- Project (2345)
: : : : +- Generate (2344)
: : : : +- Project (2343)
: : : : +- Generate (2342)
: : : : +- Project (2341)
: : : : +- Project (2340)
: : : : +- Filter (2339)
: : : : +- Repartition (2338)
: : : : +- LogicalRelation (2337)
: : : +- Deduplicate (2375)
: : : +- Project (2374)
: : : +- Project (2373)
: : : +- Project (2372)
: : : +- Project (2371)
: : : +- Project (2370)
: : : +- Generate (2369)
: : : +- Project (2368)
: : : +- Generate (2367)
: : : +- Project (2366)
: : : +- Join (2365)
: : : :- Project (2362)
: : : : +- Project (2361)
: : : : +- Join (2360)
: : : : :- SubqueryAlias (2356)
: : : : : +- Project (2355)
: : : : : +- Join (2354)
: : : : : :- Project (2349)
: : : : : : +- RepartitionByExpression (2348)
: : : : : : +- LogicalRelation (2347)
: : : : : +- Project (2353)
: : : : : +- Project (2352)
: : : : : +- Repartition (2351)
: : : : : +- LogicalRelation (2350)
: : : : +- Project (2359)
: : : : +- Repartition (2358)
: : : : +- LogicalRelation (2357)
: : : +- Repartition (2364)
: : : +- LogicalRelation (2363)
: : +- Project (2413)
: : +- Project (2412)
: : +- Project (2411)
: : +- Project (2410)
: : +- Generate (2409)
: : +- Project (2408)
: : +- Generate (2407)
: : +- Project (2406)
: : +- Join (2405)
: : :- Project (2402)
: : : +- Project (2401)
: : : +- Join (2400)
: : : :- SubqueryAlias (2396)
: : : : +- Project (2395)
: : : : +- Join (2394)
: : : : :- Project (2389)
: : : : : +- RepartitionByExpression (2388)
: : : : : +- LogicalRelation (2387)
: : : : +- Project (2393)
: : : : +- Project (2392)
: : : : +- Repartition (2391)
: : : : +- LogicalRelation (2390)
: : : +- Project (2399)
: : : +- Repartition (2398)
: : : +- LogicalRelation (2397)
: : +- Repartition (2404)
: : +- LogicalRelation (2403)
: +- SerializeFromObject (2639)
: +- MapElements (2638)
: +- DeserializeToObject (2637)
: +- Aggregate (2636)
: +- Project (2635)
: +- Project (2634)
: +- Join (2633)
: :- Project (2631)
: : +- Project (2630)
: : +- Project (2629)
: : +- Project (2628)
: : +- Project (2627)
: : +- Project (2626)
: : +- Join (2625)
: : :- Project (2455)
: : : +- Project (2454)
: : : +- Project (2453)
: : : +- Project (2452)
: : : +- Generate (2451)
: : : +- Project (2450)
: : : +- Generate (2449)
: : : +- Project (2448)
: : : +- Join (2447)
: : : :- Project (2444)
: : : : +- Project (2443)
: : : : +- Join (2442)
: : : : :- SubqueryAlias (2438)
: : : : : +- Project (2437)
: : : : : +- Join (2436)
: : : : : :- Project (2431)
: : : : : : +- RepartitionByExpression (2430)
: : : : : : +- LogicalRelation (2429)
: : : : : +- Project (2435)
: : : : : +- Project (2434)
: : : : : +- Repartition (2433)
: : : : : +- LogicalRelation (2432)
: : : : +- Project (2441)
: : : : +- Repartition (2440)
: : : : +- LogicalRelation (2439)
: : : +- Repartition (2446)
: : : +- LogicalRelation (2445)
: : +- Project (2624)
: : +- Aggregate (2623)
: : +- Project (2622)
: : +- Join (2621)
: : :- Project (2537)
: : : +- Filter (2536)
: : : +- Join (2535)
: : : :- Filter (2507)
: : : : +- Project (2506)
: : : : +- Project (2505)
: : : : +- Generate (2504)
: : : : +- Project (2503)
: : : : +- Aggregate (2502)
: : : : +- Project (2501)
: : : : +- Generate (2500)
: : : : +- Join (2499)
: : : : :- Repartition (2457)
: : : : : +- LogicalRelation (2456)
: : : : +- Project (2498)
: : : : +- Join (2497)
: : : : :- Project (2467)
: : : : : +- Project (2466)
: : : : : +- Generate (2465)
: : : : : +- Project (2464)
: : : : : +- Generate (2463)
: : : : : +- Project (2462)
: : : : : +- Project (2461)
: : : : : +- Filter (2460)
: : : : : +- Repartition (2459)
: : : : : +- LogicalRelation (2458)
: : : : +- Deduplicate (2496)
: : : : +- Project (2495)
: : : : +- Project (2494)
: : : : +- Project (2493)
: : : : +- Project (2492)
: : : : +- Project (2491)
: : : : +- Generate (2490)
: : : : +- Project (2489)
: : : : +- Generate (2488)
: : : : +- Project (2487)
: : : : +- Join (2486)
: : : : :- Project (2483)
: : : : : +- Project (2482)
: : : : : +- Join (2481)
: : : : : :- SubqueryAlias (2477)
: : : : : : +- Project (2476)
: : : : : : +- Join (2475)
: : : : : : :- Project (2470)
: : : : : : : +- RepartitionByExpression (2469)
: : : : : : : +- LogicalRelation (2468)
: : : : : : +- Project (2474)
: : : : : : +- Project (2473)
: : : : : : +- Repartition (2472)
: : : : : : +- LogicalRelation (2471)
: : : : : +- Project (2480)
: : : : : +- Repartition (2479)
: : : : : +- LogicalRelation (2478)
: : : : +- Repartition (2485)
: : : : +- LogicalRelation (2484)
: : : +- Project (2534)
: : : +- Project (2533)
: : : +- Project (2532)
: : : +- Project (2531)
: : : +- Generate (2530)
: : : +- Project (2529)
: : : +- Generate (2528)
: : : +- Project (2527)
: : : +- Join (2526)
: : : :- Project (2523)
: : : : +- Project (2522)
: : : : +- Join (2521)
: : : : :- SubqueryAlias (2517)
: : : : : +- Project (2516)
: : : : : +- Join (2515)
: : : : : :- Project (2510)
: : : : : : +- RepartitionByExpression (2509)
: : : : : : +- LogicalRelation (2508)
: : : : : +- Project (2514)
: : : : : +- Project (2513)
: : : : : +- Repartition (2512)
: : : : : +- LogicalRelation (2511)
: : : : +- Project (2520)
: : : : +- Repartition (2519)
: : : : +- LogicalRelation (2518)
: : : +- Repartition (2525)
: : : +- LogicalRelation (2524)
: : +- Aggregate (2620)
: : +- Project (2619)
: : +- Filter (2618)
: : +- Join (2617)
: : :- Filter (2589)
: : : +- Project (2588)
: : : +- Project (2587)
: : : +- Generate (2586)
: : : +- Project (2585)
: : : +- Aggregate (2584)
: : : +- Project (2583)
: : : +- Generate (2582)
: : : +- Join (2581)
: : : :- Repartition (2539)
: : : : +- LogicalRelation (2538)
: : : +- Project (2580)
: : : +- Join (2579)
: : : :- Project (2549)
: : : : +- Project (2548)
: : : : +- Generate (2547)
: : : : +- Project (2546)
: : : : +- Generate (2545)
: : : : +- Project (2544)
: : : : +- Project (2543)
: : : : +- Filter (2542)
: : : : +- Repartition (2541)
: : : : +- LogicalRelation (2540)
: : : +- Deduplicate (2578)
: : : +- Project (2577)
: : : +- Project (2576)
: : : +- Project (2575)
: : : +- Project (2574)
: : : +- Project (2573)
: : : +- Generate (2572)
: : : +- Project (2571)
: : : +- Generate (2570)
: : : +- Project (2569)
: : : +- Join (2568)
: : : :- Project (2565)
: : : : +- Project (2564)
: : : : +- Join (2563)
: : : : :- SubqueryAlias (2559)
: : : : : +- Project (2558)
: : : : : +- Join (2557)
: : : : : :- Project (2552)
: : : : : : +- RepartitionByExpression (2551)
: : : : : : +- LogicalRelation (2550)
: : : : : +- Project (2556)
: : : : : +- Project (2555)
: : : : : +- Repartition (2554)
: : : : : +- LogicalRelation (2553)
: : : : +- Project (2562)
: : : : +- Repartition (2561)
: : : : +- LogicalRelation (2560)
: : : +- Repartition (2567)
: : : +- LogicalRelation (2566)
: : +- Project (2616)
: : +- Project (2615)
: : +- Project (2614)
: : +- Project (2613)
: : +- Generate (2612)
: : +- Project (2611)
: : +- Generate (2610)
: : +- Project (2609)
: : +- Join (2608)
: : :- Project (2605)
: : : +- Project (2604)
: : : +- Join (2603)
: : : :- SubqueryAlias (2599)
: : : : +- Project (2598)
: : : : +- Join (2597)
: : : : :- Project (2592)
: : : : : +- RepartitionByExpression (2591)
: : : : : +- LogicalRelation (2590)
: : : : +- Project (2596)
: : : : +- Project (2595)
: : : : +- Repartition (2594)
: : : : +- LogicalRelation (2593)
: : : +- Project (2602)
: : : +- Repartition (2601)
: : : +- LogicalRelation (2600)
: : +- Repartition (2607)
: : +- LogicalRelation (2606)
: +- LogicalRelation (2632)
+- Project (2648)
+- Filter (2647)
+- Project (2646)
+- Generate (2645)
+- Repartition (2644)
+- LogicalRelation (2643)
(1) Execute SaveIntoDataSourceCommand
Output: []
(2) SaveIntoDataSourceCommand
Arguments: org.apache.spark.sql.delta.sources.DeltaDataSource@207d71ce, [path=hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-quantity-kpi-service/internal/data-snapshot/10000001353/0_1_10000001353], Overwrite
(3) LogicalRelation
Arguments: parquet, [product#1135691, plant#1135692, orderDateTime#1135693, planningStartDateTime#1135694], false
(4) RepartitionByExpression
Arguments: [product#1135691, plant#1135692], 37
(5) Project
Arguments: [product#1135691, plant#1135692, orderDateTime#1135693]
(6) LogicalRelation
Arguments: parquet, [systemId#1135696, internalUUID#1135697, plant#1135698, product#1135699, blockedForReplenishmentStartingFrom#1135700, productionAspect#1135701, salesPlant#1135702, listing#1135703], false
(7) Repartition
Arguments: 37, true
(8) Project
Arguments: [systemId#1135696, internalUUID#1135697, plant#1135698, product#1135699, blockedForReplenishmentStartingFrom#1135700, productionAspect#1135701, salesPlant#1135702, listing#1135703, struct(systemId, systemId#1135696, internalUUID, internalUUID#1135697, plant, plant#1135698, product, product#1135699, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1135700, productionAspect, productionAspect#1135701, salesPlant, salesPlant#1135702, listing, listing#1135703) AS productPlant#1135705]
(9) Project
Arguments: [productPlant#1135705]
(10) Join
Arguments: LeftOuter, ((product#1135691 <=> productPlant#1135705.product.internalRefUUID) AND (plant#1135692 <=> productPlant#1135705.plant.internalRefUUID))
(11) Project
Arguments: [product#1135691, plant#1135692, orderDateTime#1135693, productPlant#1135705]
(12) SubqueryAlias
Arguments: wl
(13) LogicalRelation
Arguments: parquet, [systemId#1135708, internalUUID#1135709, id#1135710, displayId#1135711, name#1135712, category#1135713, companyCode#1135714, address#1135715, mainDistributionChain#1135716, mainPurchasingOrganization#1135717, validPurchasingOrganizations#1135718, productGroup#1135719], false
(14) Repartition
Arguments: 37, true
(15) Project
Arguments: [internalUUID#1135709, address#1135715.timeZone.code AS timezonecode#1135720]
(16) Join
Arguments: LeftOuter, (plant#1135692 <=> internalUUID#1135709)
(17) Project
Arguments: [product#1135691, plant#1135692, orderDateTime#1135693, productPlant#1135705, internalUUID#1135709, CASE WHEN isnotnull(timezonecode#1135720) THEN timezonecode#1135720 ELSE UTC END AS timezonecode#1135723]
(18) Project
Arguments: [product#1135691, plant#1135692, orderDateTime#1135693, productPlant#1135705, timezonecode#1135723]
(19) LogicalRelation
Arguments: parquet, [systemId#1135724, internalUUID#1135725, id#1135726, displayId#1135727, name#1135728, baseUnitOfMeasure#1135729, unitOfMeasures#1135730, unitOfMeasureConversions#1135731, productionAspect#1135732, salesAspect#1135733, procurementAspect#1135734, productGroup#1135735], false
(20) Repartition
Arguments: 37, true
(21) Join
Arguments: LeftOuter, (product#1135691 = internalUUID#1135725)
(22) Project
Arguments: [product#1135691, plant#1135692, orderDateTime#1135693, productPlant#1135705, timezonecode#1135723, systemId#1135724, internalUUID#1135725, id#1135726, displayId#1135727, name#1135728, baseUnitOfMeasure#1135729, unitOfMeasures#1135730, unitOfMeasureConversions#1135731, productionAspect#1135732, salesAspect#1135733, procurementAspect#1135734, productGroup#1135735, filter(unitOfMeasureConversions#1135731, lambdafunction((((lambda u#1135738.measurementUnit1.code = productPlant#1135705.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1135738.measurementUnit1.internalRefUUID = productPlant#1135705.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1135729.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1135729.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1135737]
(23) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1135737.quantityNumerator), true, [quantityNumerator#1135745]
(24) Project
Arguments: [product#1135691, plant#1135692, orderDateTime#1135693, productPlant#1135705, timezonecode#1135723, systemId#1135724, internalUUID#1135725, id#1135726, displayId#1135727, name#1135728, baseUnitOfMeasure#1135729, unitOfMeasures#1135730, unitOfMeasureConversions#1135731, productionAspect#1135732, salesAspect#1135733, procurementAspect#1135734, productGroup#1135735, filteredUnitOfMeasureConversions#1135737, quantityNumerator#1135745]
(25) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1135737.quantityDenominator), true, [quantityDenominator#1135748]
(26) Project
Arguments: [product#1135691, plant#1135692, orderDateTime#1135693, productPlant#1135705, timezonecode#1135723, systemId#1135724, internalUUID#1135725, id#1135726, displayId#1135727, name#1135728, baseUnitOfMeasure#1135729, unitOfMeasures#1135730, unitOfMeasureConversions#1135731, productionAspect#1135732, salesAspect#1135733, procurementAspect#1135734, productGroup#1135735, filteredUnitOfMeasureConversions#1135737, quantityNumerator#1135745, quantityDenominator#1135748]
(27) Project
Arguments: [product#1135691, plant#1135692, orderDateTime#1135693, productPlant#1135705, timezonecode#1135723, systemId#1135724, internalUUID#1135725, id#1135726, displayId#1135727, name#1135728, baseUnitOfMeasure#1135729, unitOfMeasures#1135730, unitOfMeasureConversions#1135731, productionAspect#1135732, salesAspect#1135733, procurementAspect#1135734, productGroup#1135735, filteredUnitOfMeasureConversions#1135737, quantityNumerator#1135745, quantityDenominator#1135748, (cast(quantityNumerator#1135745 as double) / cast(quantityDenominator#1135748 as double)) AS outboundUnit#1135749]
(28) Project
Arguments: [product#1135691, plant#1135692, orderDateTime#1135693, productPlant#1135705, timezonecode#1135723, systemId#1135724, internalUUID#1135725, id#1135726, displayId#1135727, name#1135728, baseUnitOfMeasure#1135729, unitOfMeasures#1135730, unitOfMeasureConversions#1135731, productionAspect#1135732, salesAspect#1135733, procurementAspect#1135734, productGroup#1135735, filteredUnitOfMeasureConversions#1135737, quantityNumerator#1135745, quantityDenominator#1135748, CASE WHEN (isnull(outboundUnit#1135749) OR (outboundUnit#1135749 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1135749 END AS outboundUnit#1135750]
(29) Project
Arguments: [product#1135691, plant#1135692, orderDateTime#1135693, productPlant#1135705, timezonecode#1135723, outboundUnit#1135750]
(30) LogicalRelation
Arguments: parquet, [systemId#1135787, internalUUID#1135788, product#1135789, plant#1135790, calculationDateTime#1135791, stockQuantities#1135792], false
(31) Repartition
Arguments: 37, true
(32) LogicalRelation
Arguments: parquet, [marketUnit#1135751, description#1135752, articleHierarchy#1135753, defaultCurrency#1135754, responsibilities#1135755, replenishmentTypes#1135756, distributionCenters#1135757, assignedArticleHierarchyNodes#1135758, minOrderQtySetting#1135759, listingCheck#1135760, odsSelection#1135761, demandProfiles#1135762, constraintProfiles#1135763, optimizationProfiles#1135764, orderGroupSplitProfiles#1135765, supplierMinimumProfiles#1135766, multipleRestrictionProfiles#1135767, preferredUomSource#1135768, handlingOfUnfulfilledDemands#1135769, negligibleQuantitiesThreshold#1135770, eventtype#1135771, minOrderQtySettingInternal#1135772], false
(33) Repartition
Arguments: 37, true
(34) Filter
Arguments: (marketUnit#1135751 <=> Alert_Test1)
(35) Project
Arguments: [marketUnit#1135751, description#1135752, articleHierarchy#1135753, defaultCurrency#1135754, responsibilities#1135755, replenishmentTypes#1135756, distributionCenters#1135757, assignedArticleHierarchyNodes#1135758, minOrderQtySetting#1135759, listingCheck#1135760, odsSelection#1135761, demandProfiles#1135762, constraintProfiles#1135763, optimizationProfiles#1135764, orderGroupSplitProfiles#1135765, supplierMinimumProfiles#1135766, multipleRestrictionProfiles#1135767, preferredUomSource#1135768, handlingOfUnfulfilledDemands#1135769, negligibleQuantitiesThreshold#1135770, eventtype#1135771, minOrderQtySettingInternal#1135772]
(36) Project
Arguments: [distributionCenters#1135757]
(37) Generate
Arguments: explode(distributionCenters#1135757), false, [distributionCenters#1135775]
(38) Project
Arguments: [distributionCenters#1135775]
(39) Generate
Arguments: explode(distributionCenters#1135775.storageLocations), false, [storageLocations#1135782]
(40) Project
Arguments: [distributionCenters#1135775.id AS plantId#1135776, distributionCenters#1135775.internalRefUUID AS plantUuid#1135777, storageLocations#1135782]
(41) Project
Arguments: [plantId#1135776, plantUuid#1135777, storageLocations#1135782.id AS storageLocId#1135783, storageLocations#1135782.internalRefUUID AS storageLocUuid#1135784]
(42) LogicalRelation
Arguments: parquet, [product#1136047, plant#1136048, orderDateTime#1136049, planningStartDateTime#1136050], false
(43) RepartitionByExpression
Arguments: [product#1136047, plant#1136048], 37
(44) Project
Arguments: [product#1136047, plant#1136048, orderDateTime#1136049]
(45) LogicalRelation
Arguments: parquet, [systemId#1136051, internalUUID#1136052, plant#1136053, product#1136054, blockedForReplenishmentStartingFrom#1136055, productionAspect#1136056, salesPlant#1136057, listing#1136058], false
(46) Repartition
Arguments: 37, true
(47) Project
Arguments: [systemId#1136051, internalUUID#1136052, plant#1136053, product#1136054, blockedForReplenishmentStartingFrom#1136055, productionAspect#1136056, salesPlant#1136057, listing#1136058, struct(systemId, systemId#1136051, internalUUID, internalUUID#1136052, plant, plant#1136053, product, product#1136054, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1136055, productionAspect, productionAspect#1136056, salesPlant, salesPlant#1136057, listing, listing#1136058) AS productPlant#1136059]
(48) Project
Arguments: [productPlant#1136059]
(49) Join
Arguments: LeftOuter, ((product#1136047 <=> productPlant#1136059.product.internalRefUUID) AND (plant#1136048 <=> productPlant#1136059.plant.internalRefUUID))
(50) Project
Arguments: [product#1136047, plant#1136048, orderDateTime#1136049, productPlant#1136059]
(51) SubqueryAlias
Arguments: wl
(52) LogicalRelation
Arguments: parquet, [systemId#1136060, internalUUID#1136061, id#1136062, displayId#1136063, name#1136064, category#1136065, companyCode#1136066, address#1136067, mainDistributionChain#1136068, mainPurchasingOrganization#1136069, validPurchasingOrganizations#1136070, productGroup#1136071], false
(53) Repartition
Arguments: 37, true
(54) Project
Arguments: [internalUUID#1136061, address#1136067.timeZone.code AS timezonecode#1136072]
(55) Join
Arguments: LeftOuter, (plant#1136048 <=> internalUUID#1136061)
(56) Project
Arguments: [product#1136047, plant#1136048, orderDateTime#1136049, productPlant#1136059, internalUUID#1136061, CASE WHEN isnotnull(timezonecode#1136072) THEN timezonecode#1136072 ELSE UTC END AS timezonecode#1136073]
(57) Project
Arguments: [product#1136047, plant#1136048, orderDateTime#1136049, productPlant#1136059, timezonecode#1136073]
(58) LogicalRelation
Arguments: parquet, [systemId#1136074, internalUUID#1136075, id#1136076, displayId#1136077, name#1136078, baseUnitOfMeasure#1136079, unitOfMeasures#1136080, unitOfMeasureConversions#1136081, productionAspect#1136082, salesAspect#1136083, procurementAspect#1136084, productGroup#1136085], false
(59) Repartition
Arguments: 37, true
(60) Join
Arguments: LeftOuter, (product#1136047 = internalUUID#1136075)
(61) Project
Arguments: [product#1136047, plant#1136048, orderDateTime#1136049, productPlant#1136059, timezonecode#1136073, systemId#1136074, internalUUID#1136075, id#1136076, displayId#1136077, name#1136078, baseUnitOfMeasure#1136079, unitOfMeasures#1136080, unitOfMeasureConversions#1136081, productionAspect#1136082, salesAspect#1136083, procurementAspect#1136084, productGroup#1136085, filter(unitOfMeasureConversions#1136081, lambdafunction((((lambda u#1135738.measurementUnit1.code = productPlant#1136059.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1135738.measurementUnit1.internalRefUUID = productPlant#1136059.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1136079.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1136079.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1136086]
(62) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1136086.quantityNumerator), true, [quantityNumerator#1136087]
(63) Project
Arguments: [product#1136047, plant#1136048, orderDateTime#1136049, productPlant#1136059, timezonecode#1136073, systemId#1136074, internalUUID#1136075, id#1136076, displayId#1136077, name#1136078, baseUnitOfMeasure#1136079, unitOfMeasures#1136080, unitOfMeasureConversions#1136081, productionAspect#1136082, salesAspect#1136083, procurementAspect#1136084, productGroup#1136085, filteredUnitOfMeasureConversions#1136086, quantityNumerator#1136087]
(64) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1136086.quantityDenominator), true, [quantityDenominator#1136088]
(65) Project
Arguments: [product#1136047, plant#1136048, orderDateTime#1136049, productPlant#1136059, timezonecode#1136073, systemId#1136074, internalUUID#1136075, id#1136076, displayId#1136077, name#1136078, baseUnitOfMeasure#1136079, unitOfMeasures#1136080, unitOfMeasureConversions#1136081, productionAspect#1136082, salesAspect#1136083, procurementAspect#1136084, productGroup#1136085, filteredUnitOfMeasureConversions#1136086, quantityNumerator#1136087, quantityDenominator#1136088]
(66) Project
Arguments: [product#1136047, plant#1136048, orderDateTime#1136049, productPlant#1136059, timezonecode#1136073, systemId#1136074, internalUUID#1136075, id#1136076, displayId#1136077, name#1136078, baseUnitOfMeasure#1136079, unitOfMeasures#1136080, unitOfMeasureConversions#1136081, productionAspect#1136082, salesAspect#1136083, procurementAspect#1136084, productGroup#1136085, filteredUnitOfMeasureConversions#1136086, quantityNumerator#1136087, quantityDenominator#1136088, (cast(quantityNumerator#1136087 as double) / cast(quantityDenominator#1136088 as double)) AS outboundUnit#1136089]
(67) Project
Arguments: [product#1136047, plant#1136048, orderDateTime#1136049, productPlant#1136059, timezonecode#1136073, systemId#1136074, internalUUID#1136075, id#1136076, displayId#1136077, name#1136078, baseUnitOfMeasure#1136079, unitOfMeasures#1136080, unitOfMeasureConversions#1136081, productionAspect#1136082, salesAspect#1136083, procurementAspect#1136084, productGroup#1136085, filteredUnitOfMeasureConversions#1136086, quantityNumerator#1136087, quantityDenominator#1136088, CASE WHEN (isnull(outboundUnit#1136089) OR (outboundUnit#1136089 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1136089 END AS outboundUnit#1136090]
(68) Project
Arguments: [product#1136047, plant#1136048, orderDateTime#1136049, productPlant#1136059, timezonecode#1136073, outboundUnit#1136090]
(69) Project
Arguments: [plant#1136048]
(70) Deduplicate
Arguments: [plant#1136048]
(71) Join
Arguments: Inner, (plantUuid#1135777 = plant#1136048)
(72) Project
Arguments: [plantId#1135776, plantUuid#1135777, storageLocId#1135783, storageLocUuid#1135784]
(73) Join
Arguments: Inner, (plant#1135790.internalRefUUID <=> plantUuid#1135777)
(74) Generate
Arguments: explode(filter(stockQuantities#1135792, lambdafunction(((lambda x#1135796.storageLocation.internalRefUuid = storageLocUuid#1135784) AND (lambda x#1135796.storageLocation.Id = storageLocId#1135783)), lambda x#1135796, false))), false, [stockQuantity#1135797]
(75) Project
Arguments: [systemId#1135787, internalUUID#1135788, product#1135789, plant#1135790, calculationDateTime#1135791, stockQuantities#1135792, plantId#1135776, plantUuid#1135777, storageLocId#1135783, storageLocUuid#1135784, stockQuantity#1135797]
(76) Aggregate
Arguments: [plantUuid#1135777, internalUUID#1135788, plant#1135790, product#1135789, systemId#1135787], [plantUuid#1135777, internalUUID#1135788, plant#1135790, product#1135789, systemId#1135787, first(calculationDateTime#1135791, false) AS calculationDateTime#1135798, collect_list(stockQuantity#1135797, 0, 0) AS stockQuantities#1135799]
(77) Project
Arguments: [systemId#1135787, internalUUID#1135788, product#1135789, plant#1135790, calculationDateTime#1135798, stockQuantities#1135799]
(78) Generate
Arguments: explode(stockQuantities#1135799), false, [stockQuantity#1135814]
(79) Project
Arguments: [systemId#1135787, internalUUID#1135788, product#1135789, plant#1135790, calculationDateTime#1135798, stockQuantities#1135799, stockQuantity#1135814]
(80) Project
Arguments: [plant#1135790.id AS plant#1135815, plant#1135790.internalRefUUID AS plantUuid#1135816, product#1135789.id AS product#1135817, product#1135789.internalRefUUID AS productUuid#1135818, calculationDateTime#1135798, stockQuantity#1135814.storagelocation.id AS storageLocId#1135819, stockQuantity#1135814.storagelocation.internalRefUUID AS storageLocUuid#1135820, stockQuantity#1135814.quantity.measure AS quantity#1135821, stockQuantity#1135814.specialStockIndicator.code AS specialStockIndicator#1135822, stockQuantity#1135814.stockType.code AS stockType#1135823]
(81) Filter
Arguments: ((specialStockIndicator#1135822 = ) AND (stockType#1135823 = 01))
(82) LogicalRelation
Arguments: parquet, [product#1135833, plant#1135834, orderDateTime#1135835, planningStartDateTime#1135836], false
(83) RepartitionByExpression
Arguments: [product#1135833, plant#1135834], 37
(84) Project
Arguments: [product#1135833, plant#1135834, orderDateTime#1135835]
(85) LogicalRelation
Arguments: parquet, [systemId#1135837, internalUUID#1135838, plant#1135839, product#1135840, blockedForReplenishmentStartingFrom#1135841, productionAspect#1135842, salesPlant#1135843, listing#1135844], false
(86) Repartition
Arguments: 37, true
(87) Project
Arguments: [systemId#1135837, internalUUID#1135838, plant#1135839, product#1135840, blockedForReplenishmentStartingFrom#1135841, productionAspect#1135842, salesPlant#1135843, listing#1135844, struct(systemId, systemId#1135837, internalUUID, internalUUID#1135838, plant, plant#1135839, product, product#1135840, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1135841, productionAspect, productionAspect#1135842, salesPlant, salesPlant#1135843, listing, listing#1135844) AS productPlant#1135845]
(88) Project
Arguments: [productPlant#1135845]
(89) Join
Arguments: LeftOuter, ((product#1135833 <=> productPlant#1135845.product.internalRefUUID) AND (plant#1135834 <=> productPlant#1135845.plant.internalRefUUID))
(90) Project
Arguments: [product#1135833, plant#1135834, orderDateTime#1135835, productPlant#1135845]
(91) SubqueryAlias
Arguments: wl
(92) LogicalRelation
Arguments: parquet, [systemId#1135846, internalUUID#1135847, id#1135848, displayId#1135849, name#1135850, category#1135851, companyCode#1135852, address#1135853, mainDistributionChain#1135854, mainPurchasingOrganization#1135855, validPurchasingOrganizations#1135856, productGroup#1135857], false
(93) Repartition
Arguments: 37, true
(94) Project
Arguments: [internalUUID#1135847, address#1135853.timeZone.code AS timezonecode#1135858]
(95) Join
Arguments: LeftOuter, (plant#1135834 <=> internalUUID#1135847)
(96) Project
Arguments: [product#1135833, plant#1135834, orderDateTime#1135835, productPlant#1135845, internalUUID#1135847, CASE WHEN isnotnull(timezonecode#1135858) THEN timezonecode#1135858 ELSE UTC END AS timezonecode#1135859]
(97) Project
Arguments: [product#1135833, plant#1135834, orderDateTime#1135835, productPlant#1135845, timezonecode#1135859]
(98) LogicalRelation
Arguments: parquet, [systemId#1135860, internalUUID#1135861, id#1135862, displayId#1135863, name#1135864, baseUnitOfMeasure#1135865, unitOfMeasures#1135866, unitOfMeasureConversions#1135867, productionAspect#1135868, salesAspect#1135869, procurementAspect#1135870, productGroup#1135871], false
(99) Repartition
Arguments: 37, true
(100) Join
Arguments: LeftOuter, (product#1135833 = internalUUID#1135861)
(101) Project
Arguments: [product#1135833, plant#1135834, orderDateTime#1135835, productPlant#1135845, timezonecode#1135859, systemId#1135860, internalUUID#1135861, id#1135862, displayId#1135863, name#1135864, baseUnitOfMeasure#1135865, unitOfMeasures#1135866, unitOfMeasureConversions#1135867, productionAspect#1135868, salesAspect#1135869, procurementAspect#1135870, productGroup#1135871, filter(unitOfMeasureConversions#1135867, lambdafunction((((lambda u#1135738.measurementUnit1.code = productPlant#1135845.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1135738.measurementUnit1.internalRefUUID = productPlant#1135845.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1135865.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1135865.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1135872]
(102) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1135872.quantityNumerator), true, [quantityNumerator#1135873]
(103) Project
Arguments: [product#1135833, plant#1135834, orderDateTime#1135835, productPlant#1135845, timezonecode#1135859, systemId#1135860, internalUUID#1135861, id#1135862, displayId#1135863, name#1135864, baseUnitOfMeasure#1135865, unitOfMeasures#1135866, unitOfMeasureConversions#1135867, productionAspect#1135868, salesAspect#1135869, procurementAspect#1135870, productGroup#1135871, filteredUnitOfMeasureConversions#1135872, quantityNumerator#1135873]
(104) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1135872.quantityDenominator), true, [quantityDenominator#1135874]
(105) Project
Arguments: [product#1135833, plant#1135834, orderDateTime#1135835, productPlant#1135845, timezonecode#1135859, systemId#1135860, internalUUID#1135861, id#1135862, displayId#1135863, name#1135864, baseUnitOfMeasure#1135865, unitOfMeasures#1135866, unitOfMeasureConversions#1135867, productionAspect#1135868, salesAspect#1135869, procurementAspect#1135870, productGroup#1135871, filteredUnitOfMeasureConversions#1135872, quantityNumerator#1135873, quantityDenominator#1135874]
(106) Project
Arguments: [product#1135833, plant#1135834, orderDateTime#1135835, productPlant#1135845, timezonecode#1135859, systemId#1135860, internalUUID#1135861, id#1135862, displayId#1135863, name#1135864, baseUnitOfMeasure#1135865, unitOfMeasures#1135866, unitOfMeasureConversions#1135867, productionAspect#1135868, salesAspect#1135869, procurementAspect#1135870, productGroup#1135871, filteredUnitOfMeasureConversions#1135872, quantityNumerator#1135873, quantityDenominator#1135874, (cast(quantityNumerator#1135873 as double) / cast(quantityDenominator#1135874 as double)) AS outboundUnit#1135875]
(107) Project
Arguments: [product#1135833, plant#1135834, orderDateTime#1135835, productPlant#1135845, timezonecode#1135859, systemId#1135860, internalUUID#1135861, id#1135862, displayId#1135863, name#1135864, baseUnitOfMeasure#1135865, unitOfMeasures#1135866, unitOfMeasureConversions#1135867, productionAspect#1135868, salesAspect#1135869, procurementAspect#1135870, productGroup#1135871, filteredUnitOfMeasureConversions#1135872, quantityNumerator#1135873, quantityDenominator#1135874, CASE WHEN (isnull(outboundUnit#1135875) OR (outboundUnit#1135875 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1135875 END AS outboundUnit#1135876]
(108) Project
Arguments: [product#1135833, plant#1135834, orderDateTime#1135835, productPlant#1135845, timezonecode#1135859, outboundUnit#1135876]
(109) Join
Arguments: Inner, ((plantUuid#1135816 = plant#1135834) AND (productUuid#1135818 = product#1135833))
(110) Filter
Arguments: (calculationDateTime#1135798 <= orderDateTime#1135835)
(111) Project
Arguments: [plantUuid#1135816 AS plant#1135881, productUuid#1135818 AS product#1135882, storageLocId#1135819, calculationDateTime#1135798, quantity#1135821]
(112) LogicalRelation
Arguments: parquet, [systemId#1135890, internalUUID#1135891, product#1135892, plant#1135893, calculationDateTime#1135894, stockQuantities#1135895], false
(113) Repartition
Arguments: 37, true
(114) LogicalRelation
Arguments: parquet, [marketUnit#1135896, description#1135897, articleHierarchy#1135898, defaultCurrency#1135899, responsibilities#1135900, replenishmentTypes#1135901, distributionCenters#1135902, assignedArticleHierarchyNodes#1135903, minOrderQtySetting#1135904, listingCheck#1135905, odsSelection#1135906, demandProfiles#1135907, constraintProfiles#1135908, optimizationProfiles#1135909, orderGroupSplitProfiles#1135910, supplierMinimumProfiles#1135911, multipleRestrictionProfiles#1135912, preferredUomSource#1135913, handlingOfUnfulfilledDemands#1135914, negligibleQuantitiesThreshold#1135915, eventtype#1135916, minOrderQtySettingInternal#1135917], false
(115) Repartition
Arguments: 37, true
(116) Filter
Arguments: (marketUnit#1135896 <=> Alert_Test1)
(117) Project
Arguments: [marketUnit#1135896, description#1135897, articleHierarchy#1135898, defaultCurrency#1135899, responsibilities#1135900, replenishmentTypes#1135901, distributionCenters#1135902, assignedArticleHierarchyNodes#1135903, minOrderQtySetting#1135904, listingCheck#1135905, odsSelection#1135906, demandProfiles#1135907, constraintProfiles#1135908, optimizationProfiles#1135909, orderGroupSplitProfiles#1135910, supplierMinimumProfiles#1135911, multipleRestrictionProfiles#1135912, preferredUomSource#1135913, handlingOfUnfulfilledDemands#1135914, negligibleQuantitiesThreshold#1135915, eventtype#1135916, minOrderQtySettingInternal#1135917]
(118) Project
Arguments: [distributionCenters#1135902]
(119) Generate
Arguments: explode(distributionCenters#1135902), false, [distributionCenters#1135918]
(120) Project
Arguments: [distributionCenters#1135918]
(121) Generate
Arguments: explode(distributionCenters#1135918.storageLocations), false, [storageLocations#1135919]
(122) Project
Arguments: [distributionCenters#1135918.id AS plantId#1135920, distributionCenters#1135918.internalRefUUID AS plantUuid#1135921, storageLocations#1135919]
(123) Project
Arguments: [plantId#1135920, plantUuid#1135921, storageLocations#1135919.id AS storageLocId#1135922, storageLocations#1135919.internalRefUUID AS storageLocUuid#1135923]
(124) LogicalRelation
Arguments: parquet, [product#1135924, plant#1135925, orderDateTime#1135926, planningStartDateTime#1135927], false
(125) RepartitionByExpression
Arguments: [product#1135924, plant#1135925], 37
(126) Project
Arguments: [product#1135924, plant#1135925, orderDateTime#1135926]
(127) LogicalRelation
Arguments: parquet, [systemId#1135928, internalUUID#1135929, plant#1135930, product#1135931, blockedForReplenishmentStartingFrom#1135932, productionAspect#1135933, salesPlant#1135934, listing#1135935], false
(128) Repartition
Arguments: 37, true
(129) Project
Arguments: [systemId#1135928, internalUUID#1135929, plant#1135930, product#1135931, blockedForReplenishmentStartingFrom#1135932, productionAspect#1135933, salesPlant#1135934, listing#1135935, struct(systemId, systemId#1135928, internalUUID, internalUUID#1135929, plant, plant#1135930, product, product#1135931, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1135932, productionAspect, productionAspect#1135933, salesPlant, salesPlant#1135934, listing, listing#1135935) AS productPlant#1135936]
(130) Project
Arguments: [productPlant#1135936]
(131) Join
Arguments: LeftOuter, ((product#1135924 <=> productPlant#1135936.product.internalRefUUID) AND (plant#1135925 <=> productPlant#1135936.plant.internalRefUUID))
(132) Project
Arguments: [product#1135924, plant#1135925, orderDateTime#1135926, productPlant#1135936]
(133) SubqueryAlias
Arguments: wl
(134) LogicalRelation
Arguments: parquet, [systemId#1135937, internalUUID#1135938, id#1135939, displayId#1135940, name#1135941, category#1135942, companyCode#1135943, address#1135944, mainDistributionChain#1135945, mainPurchasingOrganization#1135946, validPurchasingOrganizations#1135947, productGroup#1135948], false
(135) Repartition
Arguments: 37, true
(136) Project
Arguments: [internalUUID#1135938, address#1135944.timeZone.code AS timezonecode#1135949]
(137) Join
Arguments: LeftOuter, (plant#1135925 <=> internalUUID#1135938)
(138) Project
Arguments: [product#1135924, plant#1135925, orderDateTime#1135926, productPlant#1135936, internalUUID#1135938, CASE WHEN isnotnull(timezonecode#1135949) THEN timezonecode#1135949 ELSE UTC END AS timezonecode#1135950]
(139) Project
Arguments: [product#1135924, plant#1135925, orderDateTime#1135926, productPlant#1135936, timezonecode#1135950]
(140) LogicalRelation
Arguments: parquet, [systemId#1135951, internalUUID#1135952, id#1135953, displayId#1135954, name#1135955, baseUnitOfMeasure#1135956, unitOfMeasures#1135957, unitOfMeasureConversions#1135958, productionAspect#1135959, salesAspect#1135960, procurementAspect#1135961, productGroup#1135962], false
(141) Repartition
Arguments: 37, true
(142) Join
Arguments: LeftOuter, (product#1135924 = internalUUID#1135952)
(143) Project
Arguments: [product#1135924, plant#1135925, orderDateTime#1135926, productPlant#1135936, timezonecode#1135950, systemId#1135951, internalUUID#1135952, id#1135953, displayId#1135954, name#1135955, baseUnitOfMeasure#1135956, unitOfMeasures#1135957, unitOfMeasureConversions#1135958, productionAspect#1135959, salesAspect#1135960, procurementAspect#1135961, productGroup#1135962, filter(unitOfMeasureConversions#1135958, lambdafunction((((lambda u#1135738.measurementUnit1.code = productPlant#1135936.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1135738.measurementUnit1.internalRefUUID = productPlant#1135936.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1135956.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1135956.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1135963]
(144) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1135963.quantityNumerator), true, [quantityNumerator#1135964]
(145) Project
Arguments: [product#1135924, plant#1135925, orderDateTime#1135926, productPlant#1135936, timezonecode#1135950, systemId#1135951, internalUUID#1135952, id#1135953, displayId#1135954, name#1135955, baseUnitOfMeasure#1135956, unitOfMeasures#1135957, unitOfMeasureConversions#1135958, productionAspect#1135959, salesAspect#1135960, procurementAspect#1135961, productGroup#1135962, filteredUnitOfMeasureConversions#1135963, quantityNumerator#1135964]
(146) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1135963.quantityDenominator), true, [quantityDenominator#1135965]
(147) Project
Arguments: [product#1135924, plant#1135925, orderDateTime#1135926, productPlant#1135936, timezonecode#1135950, systemId#1135951, internalUUID#1135952, id#1135953, displayId#1135954, name#1135955, baseUnitOfMeasure#1135956, unitOfMeasures#1135957, unitOfMeasureConversions#1135958, productionAspect#1135959, salesAspect#1135960, procurementAspect#1135961, productGroup#1135962, filteredUnitOfMeasureConversions#1135963, quantityNumerator#1135964, quantityDenominator#1135965]
(148) Project
Arguments: [product#1135924, plant#1135925, orderDateTime#1135926, productPlant#1135936, timezonecode#1135950, systemId#1135951, internalUUID#1135952, id#1135953, displayId#1135954, name#1135955, baseUnitOfMeasure#1135956, unitOfMeasures#1135957, unitOfMeasureConversions#1135958, productionAspect#1135959, salesAspect#1135960, procurementAspect#1135961, productGroup#1135962, filteredUnitOfMeasureConversions#1135963, quantityNumerator#1135964, quantityDenominator#1135965, (cast(quantityNumerator#1135964 as double) / cast(quantityDenominator#1135965 as double)) AS outboundUnit#1135966]
(149) Project
Arguments: [product#1135924, plant#1135925, orderDateTime#1135926, productPlant#1135936, timezonecode#1135950, systemId#1135951, internalUUID#1135952, id#1135953, displayId#1135954, name#1135955, baseUnitOfMeasure#1135956, unitOfMeasures#1135957, unitOfMeasureConversions#1135958, productionAspect#1135959, salesAspect#1135960, procurementAspect#1135961, productGroup#1135962, filteredUnitOfMeasureConversions#1135963, quantityNumerator#1135964, quantityDenominator#1135965, CASE WHEN (isnull(outboundUnit#1135966) OR (outboundUnit#1135966 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1135966 END AS outboundUnit#1135967]
(150) Project
Arguments: [product#1135924, plant#1135925, orderDateTime#1135926, productPlant#1135936, timezonecode#1135950, outboundUnit#1135967]
(151) Project
Arguments: [plant#1135925]
(152) Deduplicate
Arguments: [plant#1135925]
(153) Join
Arguments: Inner, (plantUuid#1135921 = plant#1135925)
(154) Project
Arguments: [plantId#1135920, plantUuid#1135921, storageLocId#1135922, storageLocUuid#1135923]
(155) Join
Arguments: Inner, (plant#1135893.internalRefUUID <=> plantUuid#1135921)
(156) Generate
Arguments: explode(filter(stockQuantities#1135895, lambdafunction(((lambda x#1135796.storageLocation.internalRefUuid = storageLocUuid#1135923) AND (lambda x#1135796.storageLocation.Id = storageLocId#1135922)), lambda x#1135796, false))), false, [stockQuantity#1135968]
(157) Project
Arguments: [systemId#1135890, internalUUID#1135891, product#1135892, plant#1135893, calculationDateTime#1135894, stockQuantities#1135895, plantId#1135920, plantUuid#1135921, storageLocId#1135922, storageLocUuid#1135923, stockQuantity#1135968]
(158) Aggregate
Arguments: [plantUuid#1135921, internalUUID#1135891, plant#1135893, product#1135892, systemId#1135890], [plantUuid#1135921, internalUUID#1135891, plant#1135893, product#1135892, systemId#1135890, first(calculationDateTime#1135894, false) AS calculationDateTime#1135969, collect_list(stockQuantity#1135968, 0, 0) AS stockQuantities#1135970]
(159) Project
Arguments: [systemId#1135890, internalUUID#1135891, product#1135892, plant#1135893, calculationDateTime#1135969, stockQuantities#1135970]
(160) Generate
Arguments: explode(stockQuantities#1135970), false, [stockQuantity#1135971]
(161) Project
Arguments: [systemId#1135890, internalUUID#1135891, product#1135892, plant#1135893, calculationDateTime#1135969, stockQuantities#1135970, stockQuantity#1135971]
(162) Project
Arguments: [plant#1135893.id AS plant#1135972, plant#1135893.internalRefUUID AS plantUuid#1135973, product#1135892.id AS product#1135974, product#1135892.internalRefUUID AS productUuid#1135975, calculationDateTime#1135969, stockQuantity#1135971.storagelocation.id AS storageLocId#1135976, stockQuantity#1135971.storagelocation.internalRefUUID AS storageLocUuid#1135977, stockQuantity#1135971.quantity.measure AS quantity#1135978, stockQuantity#1135971.specialStockIndicator.code AS specialStockIndicator#1135979, stockQuantity#1135971.stockType.code AS stockType#1135980]
(163) Filter
Arguments: ((specialStockIndicator#1135979 = ) AND (stockType#1135980 = 01))
(164) LogicalRelation
Arguments: parquet, [product#1135981, plant#1135982, orderDateTime#1135983, planningStartDateTime#1135984], false
(165) RepartitionByExpression
Arguments: [product#1135981, plant#1135982], 37
(166) Project
Arguments: [product#1135981, plant#1135982, orderDateTime#1135983]
(167) LogicalRelation
Arguments: parquet, [systemId#1135985, internalUUID#1135986, plant#1135987, product#1135988, blockedForReplenishmentStartingFrom#1135989, productionAspect#1135990, salesPlant#1135991, listing#1135992], false
(168) Repartition
Arguments: 37, true
(169) Project
Arguments: [systemId#1135985, internalUUID#1135986, plant#1135987, product#1135988, blockedForReplenishmentStartingFrom#1135989, productionAspect#1135990, salesPlant#1135991, listing#1135992, struct(systemId, systemId#1135985, internalUUID, internalUUID#1135986, plant, plant#1135987, product, product#1135988, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1135989, productionAspect, productionAspect#1135990, salesPlant, salesPlant#1135991, listing, listing#1135992) AS productPlant#1135993]
(170) Project
Arguments: [productPlant#1135993]
(171) Join
Arguments: LeftOuter, ((product#1135981 <=> productPlant#1135993.product.internalRefUUID) AND (plant#1135982 <=> productPlant#1135993.plant.internalRefUUID))
(172) Project
Arguments: [product#1135981, plant#1135982, orderDateTime#1135983, productPlant#1135993]
(173) SubqueryAlias
Arguments: wl
(174) LogicalRelation
Arguments: parquet, [systemId#1135994, internalUUID#1135995, id#1135996, displayId#1135997, name#1135998, category#1135999, companyCode#1136000, address#1136001, mainDistributionChain#1136002, mainPurchasingOrganization#1136003, validPurchasingOrganizations#1136004, productGroup#1136005], false
(175) Repartition
Arguments: 37, true
(176) Project
Arguments: [internalUUID#1135995, address#1136001.timeZone.code AS timezonecode#1136006]
(177) Join
Arguments: LeftOuter, (plant#1135982 <=> internalUUID#1135995)
(178) Project
Arguments: [product#1135981, plant#1135982, orderDateTime#1135983, productPlant#1135993, internalUUID#1135995, CASE WHEN isnotnull(timezonecode#1136006) THEN timezonecode#1136006 ELSE UTC END AS timezonecode#1136007]
(179) Project
Arguments: [product#1135981, plant#1135982, orderDateTime#1135983, productPlant#1135993, timezonecode#1136007]
(180) LogicalRelation
Arguments: parquet, [systemId#1136008, internalUUID#1136009, id#1136010, displayId#1136011, name#1136012, baseUnitOfMeasure#1136013, unitOfMeasures#1136014, unitOfMeasureConversions#1136015, productionAspect#1136016, salesAspect#1136017, procurementAspect#1136018, productGroup#1136019], false
(181) Repartition
Arguments: 37, true
(182) Join
Arguments: LeftOuter, (product#1135981 = internalUUID#1136009)
(183) Project
Arguments: [product#1135981, plant#1135982, orderDateTime#1135983, productPlant#1135993, timezonecode#1136007, systemId#1136008, internalUUID#1136009, id#1136010, displayId#1136011, name#1136012, baseUnitOfMeasure#1136013, unitOfMeasures#1136014, unitOfMeasureConversions#1136015, productionAspect#1136016, salesAspect#1136017, procurementAspect#1136018, productGroup#1136019, filter(unitOfMeasureConversions#1136015, lambdafunction((((lambda u#1135738.measurementUnit1.code = productPlant#1135993.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1135738.measurementUnit1.internalRefUUID = productPlant#1135993.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1136013.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1136013.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1136020]
(184) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1136020.quantityNumerator), true, [quantityNumerator#1136021]
(185) Project
Arguments: [product#1135981, plant#1135982, orderDateTime#1135983, productPlant#1135993, timezonecode#1136007, systemId#1136008, internalUUID#1136009, id#1136010, displayId#1136011, name#1136012, baseUnitOfMeasure#1136013, unitOfMeasures#1136014, unitOfMeasureConversions#1136015, productionAspect#1136016, salesAspect#1136017, procurementAspect#1136018, productGroup#1136019, filteredUnitOfMeasureConversions#1136020, quantityNumerator#1136021]
(186) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1136020.quantityDenominator), true, [quantityDenominator#1136022]
(187) Project
Arguments: [product#1135981, plant#1135982, orderDateTime#1135983, productPlant#1135993, timezonecode#1136007, systemId#1136008, internalUUID#1136009, id#1136010, displayId#1136011, name#1136012, baseUnitOfMeasure#1136013, unitOfMeasures#1136014, unitOfMeasureConversions#1136015, productionAspect#1136016, salesAspect#1136017, procurementAspect#1136018, productGroup#1136019, filteredUnitOfMeasureConversions#1136020, quantityNumerator#1136021, quantityDenominator#1136022]
(188) Project
Arguments: [product#1135981, plant#1135982, orderDateTime#1135983, productPlant#1135993, timezonecode#1136007, systemId#1136008, internalUUID#1136009, id#1136010, displayId#1136011, name#1136012, baseUnitOfMeasure#1136013, unitOfMeasures#1136014, unitOfMeasureConversions#1136015, productionAspect#1136016, salesAspect#1136017, procurementAspect#1136018, productGroup#1136019, filteredUnitOfMeasureConversions#1136020, quantityNumerator#1136021, quantityDenominator#1136022, (cast(quantityNumerator#1136021 as double) / cast(quantityDenominator#1136022 as double)) AS outboundUnit#1136023]
(189) Project
Arguments: [product#1135981, plant#1135982, orderDateTime#1135983, productPlant#1135993, timezonecode#1136007, systemId#1136008, internalUUID#1136009, id#1136010, displayId#1136011, name#1136012, baseUnitOfMeasure#1136013, unitOfMeasures#1136014, unitOfMeasureConversions#1136015, productionAspect#1136016, salesAspect#1136017, procurementAspect#1136018, productGroup#1136019, filteredUnitOfMeasureConversions#1136020, quantityNumerator#1136021, quantityDenominator#1136022, CASE WHEN (isnull(outboundUnit#1136023) OR (outboundUnit#1136023 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1136023 END AS outboundUnit#1136024]
(190) Project
Arguments: [product#1135981, plant#1135982, orderDateTime#1135983, productPlant#1135993, timezonecode#1136007, outboundUnit#1136024]
(191) Join
Arguments: Inner, ((plantUuid#1135973 = plant#1135982) AND (productUuid#1135975 = product#1135981))
(192) Filter
Arguments: (calculationDateTime#1135969 <= orderDateTime#1135983)
(193) Project
Arguments: [plantUuid#1135973 AS plant#1136025, productUuid#1135975 AS product#1136026, storageLocId#1135976, calculationDateTime#1135969, quantity#1135978]
(194) Aggregate
Arguments: [plant#1136025, product#1136026, storageLocId#1135976], [plant#1136025, product#1136026, storageLocId#1135976, max(calculationDateTime#1135969) AS max_calc_datetime#1135883]
(195) Join
Arguments: Inner, ((((plant#1135881 <=> plant#1136025) AND (product#1135882 <=> product#1136026)) AND (storageLocId#1135819 <=> storageLocId#1135976)) AND (calculationDateTime#1135798 <=> max_calc_datetime#1135883))
(196) Project
Arguments: [plant#1135881, product#1135882, storageLocId#1135819, calculationDateTime#1135798, quantity#1135821]
(197) Aggregate
Arguments: [product#1135882, plant#1135881], [product#1135882, plant#1135881, sum(quantity#1135821) AS quantitySum#1136037, min(calculationDateTime#1135798) AS minCalculationDateTime#1136038]
(198) Project
Arguments: [product#1135882, plant#1135881, quantitySum#1136037, minCalculationDateTime#1136038, round(quantitySum#1136037, 0) AS roundedQuantitySum#1136046]
(199) Join
Arguments: LeftOuter, ((plant#1135692 = plant#1135881) AND (product#1135691 = product#1135882))
(200) Project
Arguments: [product#1135691, plant#1135692, orderDateTime#1135693, productPlant#1135705, timezonecode#1135723, outboundUnit#1135750, roundedQuantitySum#1136046, minCalculationDateTime#1136038]
(201) Project
Arguments: [product#1135691, plant#1135692, orderDateTime#1135693, productPlant#1135705, timezonecode#1135723, outboundUnit#1135750, roundedQuantitySum#1136046, minCalculationDateTime#1136038, CASE WHEN isnotnull(minCalculationDateTime#1136038) THEN minCalculationDateTime#1136038 ELSE orderDateTime#1135693 END AS stockDatetime#1136095]
(202) Project
Arguments: [product#1135691, plant#1135692, orderDateTime#1135693, productPlant#1135705, timezonecode#1135723, outboundUnit#1135750, roundedQuantitySum#1136046, minCalculationDateTime#1136038, stockDatetime#1136095, CASE WHEN isnotnull(roundedQuantitySum#1136046) THEN array(roundedQuantitySum#1136046) ELSE array(0.0) END AS stockBatchQuantities#1136096]
(203) Project
Arguments: [product#1135691, plant#1135692, orderDateTime#1135693, productPlant#1135705, timezonecode#1135723, outboundUnit#1135750, roundedQuantitySum#1136046, minCalculationDateTime#1136038, stockDatetime#1136095, stockBatchQuantities#1136096, array(2199-01-01 00:00:00) AS stockBatchShelfLifeEndDatetimes#1136097]
(204) Project
Arguments: [product#1135691, plant#1135692, orderDateTime#1135693, productPlant#1135705, timezonecode#1135723, outboundUnit#1135750, roundedQuantitySum#1136046, stockDatetime#1136095, stockBatchQuantities#1136096, stockBatchShelfLifeEndDatetimes#1136097]
(205) Project
Arguments: [product#1135691, plant#1135692, orderDateTime#1135693, productPlant#1135705, timezonecode#1135723, outboundUnit#1135750, stockDatetime#1136095, stockBatchQuantities#1136096, stockBatchShelfLifeEndDatetimes#1136097]
(206) LogicalRelation
Arguments: parquet, [product#1136173, plant#1136174, orderDateTime#1136175, planningStartDateTime#1136176], false
(207) RepartitionByExpression
Arguments: [product#1136173, plant#1136174], 37
(208) Project
Arguments: [product#1136173, plant#1136174, orderDateTime#1136175]
(209) LogicalRelation
Arguments: parquet, [systemId#1136177, internalUUID#1136178, plant#1136179, product#1136180, blockedForReplenishmentStartingFrom#1136181, productionAspect#1136182, salesPlant#1136183, listing#1136184], false
(210) Repartition
Arguments: 37, true
(211) Project
Arguments: [systemId#1136177, internalUUID#1136178, plant#1136179, product#1136180, blockedForReplenishmentStartingFrom#1136181, productionAspect#1136182, salesPlant#1136183, listing#1136184, struct(systemId, systemId#1136177, internalUUID, internalUUID#1136178, plant, plant#1136179, product, product#1136180, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1136181, productionAspect, productionAspect#1136182, salesPlant, salesPlant#1136183, listing, listing#1136184) AS productPlant#1136185]
(212) Project
Arguments: [productPlant#1136185]
(213) Join
Arguments: LeftOuter, ((product#1136173 <=> productPlant#1136185.product.internalRefUUID) AND (plant#1136174 <=> productPlant#1136185.plant.internalRefUUID))
(214) Project
Arguments: [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185]
(215) SubqueryAlias
Arguments: wl
(216) LogicalRelation
Arguments: parquet, [systemId#1136186, internalUUID#1136187, id#1136188, displayId#1136189, name#1136190, category#1136191, companyCode#1136192, address#1136193, mainDistributionChain#1136194, mainPurchasingOrganization#1136195, validPurchasingOrganizations#1136196, productGroup#1136197], false
(217) Repartition
Arguments: 37, true
(218) Project
Arguments: [internalUUID#1136187, address#1136193.timeZone.code AS timezonecode#1136198]
(219) Join
Arguments: LeftOuter, (plant#1136174 <=> internalUUID#1136187)
(220) Project
Arguments: [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, internalUUID#1136187, CASE WHEN isnotnull(timezonecode#1136198) THEN timezonecode#1136198 ELSE UTC END AS timezonecode#1136199]
(221) Project
Arguments: [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199]
(222) LogicalRelation
Arguments: parquet, [systemId#1136200, internalUUID#1136201, id#1136202, displayId#1136203, name#1136204, baseUnitOfMeasure#1136205, unitOfMeasures#1136206, unitOfMeasureConversions#1136207, productionAspect#1136208, salesAspect#1136209, procurementAspect#1136210, productGroup#1136211], false
(223) Repartition
Arguments: 37, true
(224) Join
Arguments: LeftOuter, (product#1136173 = internalUUID#1136201)
(225) Project
Arguments: [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, systemId#1136200, internalUUID#1136201, id#1136202, displayId#1136203, name#1136204, baseUnitOfMeasure#1136205, unitOfMeasures#1136206, unitOfMeasureConversions#1136207, productionAspect#1136208, salesAspect#1136209, procurementAspect#1136210, productGroup#1136211, filter(unitOfMeasureConversions#1136207, lambdafunction((((lambda u#1135738.measurementUnit1.code = productPlant#1136185.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1135738.measurementUnit1.internalRefUUID = productPlant#1136185.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1136205.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1136205.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1136212]
(226) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1136212.quantityNumerator), true, [quantityNumerator#1136213]
(227) Project
Arguments: [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, systemId#1136200, internalUUID#1136201, id#1136202, displayId#1136203, name#1136204, baseUnitOfMeasure#1136205, unitOfMeasures#1136206, unitOfMeasureConversions#1136207, productionAspect#1136208, salesAspect#1136209, procurementAspect#1136210, productGroup#1136211, filteredUnitOfMeasureConversions#1136212, quantityNumerator#1136213]
(228) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1136212.quantityDenominator), true, [quantityDenominator#1136214]
(229) Project
Arguments: [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, systemId#1136200, internalUUID#1136201, id#1136202, displayId#1136203, name#1136204, baseUnitOfMeasure#1136205, unitOfMeasures#1136206, unitOfMeasureConversions#1136207, productionAspect#1136208, salesAspect#1136209, procurementAspect#1136210, productGroup#1136211, filteredUnitOfMeasureConversions#1136212, quantityNumerator#1136213, quantityDenominator#1136214]
(230) Project
Arguments: [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, systemId#1136200, internalUUID#1136201, id#1136202, displayId#1136203, name#1136204, baseUnitOfMeasure#1136205, unitOfMeasures#1136206, unitOfMeasureConversions#1136207, productionAspect#1136208, salesAspect#1136209, procurementAspect#1136210, productGroup#1136211, filteredUnitOfMeasureConversions#1136212, quantityNumerator#1136213, quantityDenominator#1136214, (cast(quantityNumerator#1136213 as double) / cast(quantityDenominator#1136214 as double)) AS outboundUnit#1136215]
(231) Project
Arguments: [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, systemId#1136200, internalUUID#1136201, id#1136202, displayId#1136203, name#1136204, baseUnitOfMeasure#1136205, unitOfMeasures#1136206, unitOfMeasureConversions#1136207, productionAspect#1136208, salesAspect#1136209, procurementAspect#1136210, productGroup#1136211, filteredUnitOfMeasureConversions#1136212, quantityNumerator#1136213, quantityDenominator#1136214, CASE WHEN (isnull(outboundUnit#1136215) OR (outboundUnit#1136215 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1136215 END AS outboundUnit#1136216]
(232) Project
Arguments: [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, outboundUnit#1136216]
(233) LogicalRelation
Arguments: parquet, [systemId#1136217, internalUUID#1136218, product#1136219, plant#1136220, calculationDateTime#1136221, stockQuantities#1136222], false
(234) Repartition
Arguments: 37, true
(235) LogicalRelation
Arguments: parquet, [marketUnit#1136223, description#1136224, articleHierarchy#1136225, defaultCurrency#1136226, responsibilities#1136227, replenishmentTypes#1136228, distributionCenters#1136229, assignedArticleHierarchyNodes#1136230, minOrderQtySetting#1136231, listingCheck#1136232, odsSelection#1136233, demandProfiles#1136234, constraintProfiles#1136235, optimizationProfiles#1136236, orderGroupSplitProfiles#1136237, supplierMinimumProfiles#1136238, multipleRestrictionProfiles#1136239, preferredUomSource#1136240, handlingOfUnfulfilledDemands#1136241, negligibleQuantitiesThreshold#1136242, eventtype#1136243, minOrderQtySettingInternal#1136244], false
(236) Repartition
Arguments: 37, true
(237) Filter
Arguments: (marketUnit#1136223 <=> Alert_Test1)
(238) Project
Arguments: [marketUnit#1136223, description#1136224, articleHierarchy#1136225, defaultCurrency#1136226, responsibilities#1136227, replenishmentTypes#1136228, distributionCenters#1136229, assignedArticleHierarchyNodes#1136230, minOrderQtySetting#1136231, listingCheck#1136232, odsSelection#1136233, demandProfiles#1136234, constraintProfiles#1136235, optimizationProfiles#1136236, orderGroupSplitProfiles#1136237, supplierMinimumProfiles#1136238, multipleRestrictionProfiles#1136239, preferredUomSource#1136240, handlingOfUnfulfilledDemands#1136241, negligibleQuantitiesThreshold#1136242, eventtype#1136243, minOrderQtySettingInternal#1136244]
(239) Project
Arguments: [distributionCenters#1136229]
(240) Generate
Arguments: explode(distributionCenters#1136229), false, [distributionCenters#1136245]
(241) Project
Arguments: [distributionCenters#1136245]
(242) Generate
Arguments: explode(distributionCenters#1136245.storageLocations), false, [storageLocations#1136246]
(243) Project
Arguments: [distributionCenters#1136245.id AS plantId#1136247, distributionCenters#1136245.internalRefUUID AS plantUuid#1136248, storageLocations#1136246]
(244) Project
Arguments: [plantId#1136247, plantUuid#1136248, storageLocations#1136246.id AS storageLocId#1136249, storageLocations#1136246.internalRefUUID AS storageLocUuid#1136250]
(245) LogicalRelation
Arguments: parquet, [product#1136251, plant#1136252, orderDateTime#1136253, planningStartDateTime#1136254], false
(246) RepartitionByExpression
Arguments: [product#1136251, plant#1136252], 37
(247) Project
Arguments: [product#1136251, plant#1136252, orderDateTime#1136253]
(248) LogicalRelation
Arguments: parquet, [systemId#1136255, internalUUID#1136256, plant#1136257, product#1136258, blockedForReplenishmentStartingFrom#1136259, productionAspect#1136260, salesPlant#1136261, listing#1136262], false
(249) Repartition
Arguments: 37, true
(250) Project
Arguments: [systemId#1136255, internalUUID#1136256, plant#1136257, product#1136258, blockedForReplenishmentStartingFrom#1136259, productionAspect#1136260, salesPlant#1136261, listing#1136262, struct(systemId, systemId#1136255, internalUUID, internalUUID#1136256, plant, plant#1136257, product, product#1136258, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1136259, productionAspect, productionAspect#1136260, salesPlant, salesPlant#1136261, listing, listing#1136262) AS productPlant#1136263]
(251) Project
Arguments: [productPlant#1136263]
(252) Join
Arguments: LeftOuter, ((product#1136251 <=> productPlant#1136263.product.internalRefUUID) AND (plant#1136252 <=> productPlant#1136263.plant.internalRefUUID))
(253) Project
Arguments: [product#1136251, plant#1136252, orderDateTime#1136253, productPlant#1136263]
(254) SubqueryAlias
Arguments: wl
(255) LogicalRelation
Arguments: parquet, [systemId#1136264, internalUUID#1136265, id#1136266, displayId#1136267, name#1136268, category#1136269, companyCode#1136270, address#1136271, mainDistributionChain#1136272, mainPurchasingOrganization#1136273, validPurchasingOrganizations#1136274, productGroup#1136275], false
(256) Repartition
Arguments: 37, true
(257) Project
Arguments: [internalUUID#1136265, address#1136271.timeZone.code AS timezonecode#1136276]
(258) Join
Arguments: LeftOuter, (plant#1136252 <=> internalUUID#1136265)
(259) Project
Arguments: [product#1136251, plant#1136252, orderDateTime#1136253, productPlant#1136263, internalUUID#1136265, CASE WHEN isnotnull(timezonecode#1136276) THEN timezonecode#1136276 ELSE UTC END AS timezonecode#1136277]
(260) Project
Arguments: [product#1136251, plant#1136252, orderDateTime#1136253, productPlant#1136263, timezonecode#1136277]
(261) LogicalRelation
Arguments: parquet, [systemId#1136278, internalUUID#1136279, id#1136280, displayId#1136281, name#1136282, baseUnitOfMeasure#1136283, unitOfMeasures#1136284, unitOfMeasureConversions#1136285, productionAspect#1136286, salesAspect#1136287, procurementAspect#1136288, productGroup#1136289], false
(262) Repartition
Arguments: 37, true
(263) Join
Arguments: LeftOuter, (product#1136251 = internalUUID#1136279)
(264) Project
Arguments: [product#1136251, plant#1136252, orderDateTime#1136253, productPlant#1136263, timezonecode#1136277, systemId#1136278, internalUUID#1136279, id#1136280, displayId#1136281, name#1136282, baseUnitOfMeasure#1136283, unitOfMeasures#1136284, unitOfMeasureConversions#1136285, productionAspect#1136286, salesAspect#1136287, procurementAspect#1136288, productGroup#1136289, filter(unitOfMeasureConversions#1136285, lambdafunction((((lambda u#1135738.measurementUnit1.code = productPlant#1136263.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1135738.measurementUnit1.internalRefUUID = productPlant#1136263.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1136283.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1136283.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1136290]
(265) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1136290.quantityNumerator), true, [quantityNumerator#1136291]
(266) Project
Arguments: [product#1136251, plant#1136252, orderDateTime#1136253, productPlant#1136263, timezonecode#1136277, systemId#1136278, internalUUID#1136279, id#1136280, displayId#1136281, name#1136282, baseUnitOfMeasure#1136283, unitOfMeasures#1136284, unitOfMeasureConversions#1136285, productionAspect#1136286, salesAspect#1136287, procurementAspect#1136288, productGroup#1136289, filteredUnitOfMeasureConversions#1136290, quantityNumerator#1136291]
(267) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1136290.quantityDenominator), true, [quantityDenominator#1136292]
(268) Project
Arguments: [product#1136251, plant#1136252, orderDateTime#1136253, productPlant#1136263, timezonecode#1136277, systemId#1136278, internalUUID#1136279, id#1136280, displayId#1136281, name#1136282, baseUnitOfMeasure#1136283, unitOfMeasures#1136284, unitOfMeasureConversions#1136285, productionAspect#1136286, salesAspect#1136287, procurementAspect#1136288, productGroup#1136289, filteredUnitOfMeasureConversions#1136290, quantityNumerator#1136291, quantityDenominator#1136292]
(269) Project
Arguments: [product#1136251, plant#1136252, orderDateTime#1136253, productPlant#1136263, timezonecode#1136277, systemId#1136278, internalUUID#1136279, id#1136280, displayId#1136281, name#1136282, baseUnitOfMeasure#1136283, unitOfMeasures#1136284, unitOfMeasureConversions#1136285, productionAspect#1136286, salesAspect#1136287, procurementAspect#1136288, productGroup#1136289, filteredUnitOfMeasureConversions#1136290, quantityNumerator#1136291, quantityDenominator#1136292, (cast(quantityNumerator#1136291 as double) / cast(quantityDenominator#1136292 as double)) AS outboundUnit#1136293]
(270) Project
Arguments: [product#1136251, plant#1136252, orderDateTime#1136253, productPlant#1136263, timezonecode#1136277, systemId#1136278, internalUUID#1136279, id#1136280, displayId#1136281, name#1136282, baseUnitOfMeasure#1136283, unitOfMeasures#1136284, unitOfMeasureConversions#1136285, productionAspect#1136286, salesAspect#1136287, procurementAspect#1136288, productGroup#1136289, filteredUnitOfMeasureConversions#1136290, quantityNumerator#1136291, quantityDenominator#1136292, CASE WHEN (isnull(outboundUnit#1136293) OR (outboundUnit#1136293 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1136293 END AS outboundUnit#1136294]
(271) Project
Arguments: [product#1136251, plant#1136252, orderDateTime#1136253, productPlant#1136263, timezonecode#1136277, outboundUnit#1136294]
(272) Project
Arguments: [plant#1136252]
(273) Deduplicate
Arguments: [plant#1136252]
(274) Join
Arguments: Inner, (plantUuid#1136248 = plant#1136252)
(275) Project
Arguments: [plantId#1136247, plantUuid#1136248, storageLocId#1136249, storageLocUuid#1136250]
(276) Join
Arguments: Inner, (plant#1136220.internalRefUUID <=> plantUuid#1136248)
(277) Generate
Arguments: explode(filter(stockQuantities#1136222, lambdafunction(((lambda x#1135796.storageLocation.internalRefUuid = storageLocUuid#1136250) AND (lambda x#1135796.storageLocation.Id = storageLocId#1136249)), lambda x#1135796, false))), false, [stockQuantity#1136295]
(278) Project
Arguments: [systemId#1136217, internalUUID#1136218, product#1136219, plant#1136220, calculationDateTime#1136221, stockQuantities#1136222, plantId#1136247, plantUuid#1136248, storageLocId#1136249, storageLocUuid#1136250, stockQuantity#1136295]
(279) Aggregate
Arguments: [plantUuid#1136248, internalUUID#1136218, plant#1136220, product#1136219, systemId#1136217], [plantUuid#1136248, internalUUID#1136218, plant#1136220, product#1136219, systemId#1136217, first(calculationDateTime#1136221, false) AS calculationDateTime#1136296, collect_list(stockQuantity#1136295, 0, 0) AS stockQuantities#1136297]
(280) Project
Arguments: [systemId#1136217, internalUUID#1136218, product#1136219, plant#1136220, calculationDateTime#1136296, stockQuantities#1136297]
(281) Generate
Arguments: explode(stockQuantities#1136297), false, [stockQuantity#1136298]
(282) Project
Arguments: [systemId#1136217, internalUUID#1136218, product#1136219, plant#1136220, calculationDateTime#1136296, stockQuantities#1136297, stockQuantity#1136298]
(283) Project
Arguments: [plant#1136220.id AS plant#1136299, plant#1136220.internalRefUUID AS plantUuid#1136300, product#1136219.id AS product#1136301, product#1136219.internalRefUUID AS productUuid#1136302, calculationDateTime#1136296, stockQuantity#1136298.storagelocation.id AS storageLocId#1136303, stockQuantity#1136298.storagelocation.internalRefUUID AS storageLocUuid#1136304, stockQuantity#1136298.quantity.measure AS quantity#1136305, stockQuantity#1136298.specialStockIndicator.code AS specialStockIndicator#1136306, stockQuantity#1136298.stockType.code AS stockType#1136307]
(284) Filter
Arguments: ((specialStockIndicator#1136306 = ) AND (stockType#1136307 = 01))
(285) LogicalRelation
Arguments: parquet, [product#1136308, plant#1136309, orderDateTime#1136310, planningStartDateTime#1136311], false
(286) RepartitionByExpression
Arguments: [product#1136308, plant#1136309], 37
(287) Project
Arguments: [product#1136308, plant#1136309, orderDateTime#1136310]
(288) LogicalRelation
Arguments: parquet, [systemId#1136312, internalUUID#1136313, plant#1136314, product#1136315, blockedForReplenishmentStartingFrom#1136316, productionAspect#1136317, salesPlant#1136318, listing#1136319], false
(289) Repartition
Arguments: 37, true
(290) Project
Arguments: [systemId#1136312, internalUUID#1136313, plant#1136314, product#1136315, blockedForReplenishmentStartingFrom#1136316, productionAspect#1136317, salesPlant#1136318, listing#1136319, struct(systemId, systemId#1136312, internalUUID, internalUUID#1136313, plant, plant#1136314, product, product#1136315, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1136316, productionAspect, productionAspect#1136317, salesPlant, salesPlant#1136318, listing, listing#1136319) AS productPlant#1136320]
(291) Project
Arguments: [productPlant#1136320]
(292) Join
Arguments: LeftOuter, ((product#1136308 <=> productPlant#1136320.product.internalRefUUID) AND (plant#1136309 <=> productPlant#1136320.plant.internalRefUUID))
(293) Project
Arguments: [product#1136308, plant#1136309, orderDateTime#1136310, productPlant#1136320]
(294) SubqueryAlias
Arguments: wl
(295) LogicalRelation
Arguments: parquet, [systemId#1136321, internalUUID#1136322, id#1136323, displayId#1136324, name#1136325, category#1136326, companyCode#1136327, address#1136328, mainDistributionChain#1136329, mainPurchasingOrganization#1136330, validPurchasingOrganizations#1136331, productGroup#1136332], false
(296) Repartition
Arguments: 37, true
(297) Project
Arguments: [internalUUID#1136322, address#1136328.timeZone.code AS timezonecode#1136333]
(298) Join
Arguments: LeftOuter, (plant#1136309 <=> internalUUID#1136322)
(299) Project
Arguments: [product#1136308, plant#1136309, orderDateTime#1136310, productPlant#1136320, internalUUID#1136322, CASE WHEN isnotnull(timezonecode#1136333) THEN timezonecode#1136333 ELSE UTC END AS timezonecode#1136334]
(300) Project
Arguments: [product#1136308, plant#1136309, orderDateTime#1136310, productPlant#1136320, timezonecode#1136334]
(301) LogicalRelation
Arguments: parquet, [systemId#1136335, internalUUID#1136336, id#1136337, displayId#1136338, name#1136339, baseUnitOfMeasure#1136340, unitOfMeasures#1136341, unitOfMeasureConversions#1136342, productionAspect#1136343, salesAspect#1136344, procurementAspect#1136345, productGroup#1136346], false
(302) Repartition
Arguments: 37, true
(303) Join
Arguments: LeftOuter, (product#1136308 = internalUUID#1136336)
(304) Project
Arguments: [product#1136308, plant#1136309, orderDateTime#1136310, productPlant#1136320, timezonecode#1136334, systemId#1136335, internalUUID#1136336, id#1136337, displayId#1136338, name#1136339, baseUnitOfMeasure#1136340, unitOfMeasures#1136341, unitOfMeasureConversions#1136342, productionAspect#1136343, salesAspect#1136344, procurementAspect#1136345, productGroup#1136346, filter(unitOfMeasureConversions#1136342, lambdafunction((((lambda u#1135738.measurementUnit1.code = productPlant#1136320.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1135738.measurementUnit1.internalRefUUID = productPlant#1136320.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1136340.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1136340.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1136347]
(305) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1136347.quantityNumerator), true, [quantityNumerator#1136348]
(306) Project
Arguments: [product#1136308, plant#1136309, orderDateTime#1136310, productPlant#1136320, timezonecode#1136334, systemId#1136335, internalUUID#1136336, id#1136337, displayId#1136338, name#1136339, baseUnitOfMeasure#1136340, unitOfMeasures#1136341, unitOfMeasureConversions#1136342, productionAspect#1136343, salesAspect#1136344, procurementAspect#1136345, productGroup#1136346, filteredUnitOfMeasureConversions#1136347, quantityNumerator#1136348]
(307) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1136347.quantityDenominator), true, [quantityDenominator#1136349]
(308) Project
Arguments: [product#1136308, plant#1136309, orderDateTime#1136310, productPlant#1136320, timezonecode#1136334, systemId#1136335, internalUUID#1136336, id#1136337, displayId#1136338, name#1136339, baseUnitOfMeasure#1136340, unitOfMeasures#1136341, unitOfMeasureConversions#1136342, productionAspect#1136343, salesAspect#1136344, procurementAspect#1136345, productGroup#1136346, filteredUnitOfMeasureConversions#1136347, quantityNumerator#1136348, quantityDenominator#1136349]
(309) Project
Arguments: [product#1136308, plant#1136309, orderDateTime#1136310, productPlant#1136320, timezonecode#1136334, systemId#1136335, internalUUID#1136336, id#1136337, displayId#1136338, name#1136339, baseUnitOfMeasure#1136340, unitOfMeasures#1136341, unitOfMeasureConversions#1136342, productionAspect#1136343, salesAspect#1136344, procurementAspect#1136345, productGroup#1136346, filteredUnitOfMeasureConversions#1136347, quantityNumerator#1136348, quantityDenominator#1136349, (cast(quantityNumerator#1136348 as double) / cast(quantityDenominator#1136349 as double)) AS outboundUnit#1136350]
(310) Project
Arguments: [product#1136308, plant#1136309, orderDateTime#1136310, productPlant#1136320, timezonecode#1136334, systemId#1136335, internalUUID#1136336, id#1136337, displayId#1136338, name#1136339, baseUnitOfMeasure#1136340, unitOfMeasures#1136341, unitOfMeasureConversions#1136342, productionAspect#1136343, salesAspect#1136344, procurementAspect#1136345, productGroup#1136346, filteredUnitOfMeasureConversions#1136347, quantityNumerator#1136348, quantityDenominator#1136349, CASE WHEN (isnull(outboundUnit#1136350) OR (outboundUnit#1136350 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1136350 END AS outboundUnit#1136351]
(311) Project
Arguments: [product#1136308, plant#1136309, orderDateTime#1136310, productPlant#1136320, timezonecode#1136334, outboundUnit#1136351]
(312) Join
Arguments: Inner, ((plantUuid#1136300 = plant#1136309) AND (productUuid#1136302 = product#1136308))
(313) Filter
Arguments: (calculationDateTime#1136296 <= orderDateTime#1136310)
(314) Project
Arguments: [plantUuid#1136300 AS plant#1136352, productUuid#1136302 AS product#1136353, storageLocId#1136303, calculationDateTime#1136296, quantity#1136305]
(315) LogicalRelation
Arguments: parquet, [systemId#1136354, internalUUID#1136355, product#1136356, plant#1136357, calculationDateTime#1136358, stockQuantities#1136359], false
(316) Repartition
Arguments: 37, true
(317) LogicalRelation
Arguments: parquet, [marketUnit#1136360, description#1136361, articleHierarchy#1136362, defaultCurrency#1136363, responsibilities#1136364, replenishmentTypes#1136365, distributionCenters#1136366, assignedArticleHierarchyNodes#1136367, minOrderQtySetting#1136368, listingCheck#1136369, odsSelection#1136370, demandProfiles#1136371, constraintProfiles#1136372, optimizationProfiles#1136373, orderGroupSplitProfiles#1136374, supplierMinimumProfiles#1136375, multipleRestrictionProfiles#1136376, preferredUomSource#1136377, handlingOfUnfulfilledDemands#1136378, negligibleQuantitiesThreshold#1136379, eventtype#1136380, minOrderQtySettingInternal#1136381], false
(318) Repartition
Arguments: 37, true
(319) Filter
Arguments: (marketUnit#1136360 <=> Alert_Test1)
(320) Project
Arguments: [marketUnit#1136360, description#1136361, articleHierarchy#1136362, defaultCurrency#1136363, responsibilities#1136364, replenishmentTypes#1136365, distributionCenters#1136366, assignedArticleHierarchyNodes#1136367, minOrderQtySetting#1136368, listingCheck#1136369, odsSelection#1136370, demandProfiles#1136371, constraintProfiles#1136372, optimizationProfiles#1136373, orderGroupSplitProfiles#1136374, supplierMinimumProfiles#1136375, multipleRestrictionProfiles#1136376, preferredUomSource#1136377, handlingOfUnfulfilledDemands#1136378, negligibleQuantitiesThreshold#1136379, eventtype#1136380, minOrderQtySettingInternal#1136381]
(321) Project
Arguments: [distributionCenters#1136366]
(322) Generate
Arguments: explode(distributionCenters#1136366), false, [distributionCenters#1136382]
(323) Project
Arguments: [distributionCenters#1136382]
(324) Generate
Arguments: explode(distributionCenters#1136382.storageLocations), false, [storageLocations#1136383]
(325) Project
Arguments: [distributionCenters#1136382.id AS plantId#1136384, distributionCenters#1136382.internalRefUUID AS plantUuid#1136385, storageLocations#1136383]
(326) Project
Arguments: [plantId#1136384, plantUuid#1136385, storageLocations#1136383.id AS storageLocId#1136386, storageLocations#1136383.internalRefUUID AS storageLocUuid#1136387]
(327) LogicalRelation
Arguments: parquet, [product#1136388, plant#1136389, orderDateTime#1136390, planningStartDateTime#1136391], false
(328) RepartitionByExpression
Arguments: [product#1136388, plant#1136389], 37
(329) Project
Arguments: [product#1136388, plant#1136389, orderDateTime#1136390]
(330) LogicalRelation
Arguments: parquet, [systemId#1136392, internalUUID#1136393, plant#1136394, product#1136395, blockedForReplenishmentStartingFrom#1136396, productionAspect#1136397, salesPlant#1136398, listing#1136399], false
(331) Repartition
Arguments: 37, true
(332) Project
Arguments: [systemId#1136392, internalUUID#1136393, plant#1136394, product#1136395, blockedForReplenishmentStartingFrom#1136396, productionAspect#1136397, salesPlant#1136398, listing#1136399, struct(systemId, systemId#1136392, internalUUID, internalUUID#1136393, plant, plant#1136394, product, product#1136395, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1136396, productionAspect, productionAspect#1136397, salesPlant, salesPlant#1136398, listing, listing#1136399) AS productPlant#1136400]
(333) Project
Arguments: [productPlant#1136400]
(334) Join
Arguments: LeftOuter, ((product#1136388 <=> productPlant#1136400.product.internalRefUUID) AND (plant#1136389 <=> productPlant#1136400.plant.internalRefUUID))
(335) Project
Arguments: [product#1136388, plant#1136389, orderDateTime#1136390, productPlant#1136400]
(336) SubqueryAlias
Arguments: wl
(337) LogicalRelation
Arguments: parquet, [systemId#1136401, internalUUID#1136402, id#1136403, displayId#1136404, name#1136405, category#1136406, companyCode#1136407, address#1136408, mainDistributionChain#1136409, mainPurchasingOrganization#1136410, validPurchasingOrganizations#1136411, productGroup#1136412], false
(338) Repartition
Arguments: 37, true
(339) Project
Arguments: [internalUUID#1136402, address#1136408.timeZone.code AS timezonecode#1136413]
(340) Join
Arguments: LeftOuter, (plant#1136389 <=> internalUUID#1136402)
(341) Project
Arguments: [product#1136388, plant#1136389, orderDateTime#1136390, productPlant#1136400, internalUUID#1136402, CASE WHEN isnotnull(timezonecode#1136413) THEN timezonecode#1136413 ELSE UTC END AS timezonecode#1136414]
(342) Project
Arguments: [product#1136388, plant#1136389, orderDateTime#1136390, productPlant#1136400, timezonecode#1136414]
(343) LogicalRelation
Arguments: parquet, [systemId#1136415, internalUUID#1136416, id#1136417, displayId#1136418, name#1136419, baseUnitOfMeasure#1136420, unitOfMeasures#1136421, unitOfMeasureConversions#1136422, productionAspect#1136423, salesAspect#1136424, procurementAspect#1136425, productGroup#1136426], false
(344) Repartition
Arguments: 37, true
(345) Join
Arguments: LeftOuter, (product#1136388 = internalUUID#1136416)
(346) Project
Arguments: [product#1136388, plant#1136389, orderDateTime#1136390, productPlant#1136400, timezonecode#1136414, systemId#1136415, internalUUID#1136416, id#1136417, displayId#1136418, name#1136419, baseUnitOfMeasure#1136420, unitOfMeasures#1136421, unitOfMeasureConversions#1136422, productionAspect#1136423, salesAspect#1136424, procurementAspect#1136425, productGroup#1136426, filter(unitOfMeasureConversions#1136422, lambdafunction((((lambda u#1135738.measurementUnit1.code = productPlant#1136400.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1135738.measurementUnit1.internalRefUUID = productPlant#1136400.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1136420.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1136420.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1136427]
(347) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1136427.quantityNumerator), true, [quantityNumerator#1136428]
(348) Project
Arguments: [product#1136388, plant#1136389, orderDateTime#1136390, productPlant#1136400, timezonecode#1136414, systemId#1136415, internalUUID#1136416, id#1136417, displayId#1136418, name#1136419, baseUnitOfMeasure#1136420, unitOfMeasures#1136421, unitOfMeasureConversions#1136422, productionAspect#1136423, salesAspect#1136424, procurementAspect#1136425, productGroup#1136426, filteredUnitOfMeasureConversions#1136427, quantityNumerator#1136428]
(349) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1136427.quantityDenominator), true, [quantityDenominator#1136429]
(350) Project
Arguments: [product#1136388, plant#1136389, orderDateTime#1136390, productPlant#1136400, timezonecode#1136414, systemId#1136415, internalUUID#1136416, id#1136417, displayId#1136418, name#1136419, baseUnitOfMeasure#1136420, unitOfMeasures#1136421, unitOfMeasureConversions#1136422, productionAspect#1136423, salesAspect#1136424, procurementAspect#1136425, productGroup#1136426, filteredUnitOfMeasureConversions#1136427, quantityNumerator#1136428, quantityDenominator#1136429]
(351) Project
Arguments: [product#1136388, plant#1136389, orderDateTime#1136390, productPlant#1136400, timezonecode#1136414, systemId#1136415, internalUUID#1136416, id#1136417, displayId#1136418, name#1136419, baseUnitOfMeasure#1136420, unitOfMeasures#1136421, unitOfMeasureConversions#1136422, productionAspect#1136423, salesAspect#1136424, procurementAspect#1136425, productGroup#1136426, filteredUnitOfMeasureConversions#1136427, quantityNumerator#1136428, quantityDenominator#1136429, (cast(quantityNumerator#1136428 as double) / cast(quantityDenominator#1136429 as double)) AS outboundUnit#1136430]
(352) Project
Arguments: [product#1136388, plant#1136389, orderDateTime#1136390, productPlant#1136400, timezonecode#1136414, systemId#1136415, internalUUID#1136416, id#1136417, displayId#1136418, name#1136419, baseUnitOfMeasure#1136420, unitOfMeasures#1136421, unitOfMeasureConversions#1136422, productionAspect#1136423, salesAspect#1136424, procurementAspect#1136425, productGroup#1136426, filteredUnitOfMeasureConversions#1136427, quantityNumerator#1136428, quantityDenominator#1136429, CASE WHEN (isnull(outboundUnit#1136430) OR (outboundUnit#1136430 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1136430 END AS outboundUnit#1136431]
(353) Project
Arguments: [product#1136388, plant#1136389, orderDateTime#1136390, productPlant#1136400, timezonecode#1136414, outboundUnit#1136431]
(354) Project
Arguments: [plant#1136389]
(355) Deduplicate
Arguments: [plant#1136389]
(356) Join
Arguments: Inner, (plantUuid#1136385 = plant#1136389)
(357) Project
Arguments: [plantId#1136384, plantUuid#1136385, storageLocId#1136386, storageLocUuid#1136387]
(358) Join
Arguments: Inner, (plant#1136357.internalRefUUID <=> plantUuid#1136385)
(359) Generate
Arguments: explode(filter(stockQuantities#1136359, lambdafunction(((lambda x#1135796.storageLocation.internalRefUuid = storageLocUuid#1136387) AND (lambda x#1135796.storageLocation.Id = storageLocId#1136386)), lambda x#1135796, false))), false, [stockQuantity#1136432]
(360) Project
Arguments: [systemId#1136354, internalUUID#1136355, product#1136356, plant#1136357, calculationDateTime#1136358, stockQuantities#1136359, plantId#1136384, plantUuid#1136385, storageLocId#1136386, storageLocUuid#1136387, stockQuantity#1136432]
(361) Aggregate
Arguments: [plantUuid#1136385, internalUUID#1136355, plant#1136357, product#1136356, systemId#1136354], [plantUuid#1136385, internalUUID#1136355, plant#1136357, product#1136356, systemId#1136354, first(calculationDateTime#1136358, false) AS calculationDateTime#1136433, collect_list(stockQuantity#1136432, 0, 0) AS stockQuantities#1136434]
(362) Project
Arguments: [systemId#1136354, internalUUID#1136355, product#1136356, plant#1136357, calculationDateTime#1136433, stockQuantities#1136434]
(363) Generate
Arguments: explode(stockQuantities#1136434), false, [stockQuantity#1136435]
(364) Project
Arguments: [systemId#1136354, internalUUID#1136355, product#1136356, plant#1136357, calculationDateTime#1136433, stockQuantities#1136434, stockQuantity#1136435]
(365) Project
Arguments: [plant#1136357.id AS plant#1136436, plant#1136357.internalRefUUID AS plantUuid#1136437, product#1136356.id AS product#1136438, product#1136356.internalRefUUID AS productUuid#1136439, calculationDateTime#1136433, stockQuantity#1136435.storagelocation.id AS storageLocId#1136440, stockQuantity#1136435.storagelocation.internalRefUUID AS storageLocUuid#1136441, stockQuantity#1136435.quantity.measure AS quantity#1136442, stockQuantity#1136435.specialStockIndicator.code AS specialStockIndicator#1136443, stockQuantity#1136435.stockType.code AS stockType#1136444]
(366) Filter
Arguments: ((specialStockIndicator#1136443 = ) AND (stockType#1136444 = 01))
(367) LogicalRelation
Arguments: parquet, [product#1136445, plant#1136446, orderDateTime#1136447, planningStartDateTime#1136448], false
(368) RepartitionByExpression
Arguments: [product#1136445, plant#1136446], 37
(369) Project
Arguments: [product#1136445, plant#1136446, orderDateTime#1136447]
(370) LogicalRelation
Arguments: parquet, [systemId#1136449, internalUUID#1136450, plant#1136451, product#1136452, blockedForReplenishmentStartingFrom#1136453, productionAspect#1136454, salesPlant#1136455, listing#1136456], false
(371) Repartition
Arguments: 37, true
(372) Project
Arguments: [systemId#1136449, internalUUID#1136450, plant#1136451, product#1136452, blockedForReplenishmentStartingFrom#1136453, productionAspect#1136454, salesPlant#1136455, listing#1136456, struct(systemId, systemId#1136449, internalUUID, internalUUID#1136450, plant, plant#1136451, product, product#1136452, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1136453, productionAspect, productionAspect#1136454, salesPlant, salesPlant#1136455, listing, listing#1136456) AS productPlant#1136457]
(373) Project
Arguments: [productPlant#1136457]
(374) Join
Arguments: LeftOuter, ((product#1136445 <=> productPlant#1136457.product.internalRefUUID) AND (plant#1136446 <=> productPlant#1136457.plant.internalRefUUID))
(375) Project
Arguments: [product#1136445, plant#1136446, orderDateTime#1136447, productPlant#1136457]
(376) SubqueryAlias
Arguments: wl
(377) LogicalRelation
Arguments: parquet, [systemId#1136458, internalUUID#1136459, id#1136460, displayId#1136461, name#1136462, category#1136463, companyCode#1136464, address#1136465, mainDistributionChain#1136466, mainPurchasingOrganization#1136467, validPurchasingOrganizations#1136468, productGroup#1136469], false
(378) Repartition
Arguments: 37, true
(379) Project
Arguments: [internalUUID#1136459, address#1136465.timeZone.code AS timezonecode#1136470]
(380) Join
Arguments: LeftOuter, (plant#1136446 <=> internalUUID#1136459)
(381) Project
Arguments: [product#1136445, plant#1136446, orderDateTime#1136447, productPlant#1136457, internalUUID#1136459, CASE WHEN isnotnull(timezonecode#1136470) THEN timezonecode#1136470 ELSE UTC END AS timezonecode#1136471]
(382) Project
Arguments: [product#1136445, plant#1136446, orderDateTime#1136447, productPlant#1136457, timezonecode#1136471]
(383) LogicalRelation
Arguments: parquet, [systemId#1136472, internalUUID#1136473, id#1136474, displayId#1136475, name#1136476, baseUnitOfMeasure#1136477, unitOfMeasures#1136478, unitOfMeasureConversions#1136479, productionAspect#1136480, salesAspect#1136481, procurementAspect#1136482, productGroup#1136483], false
(384) Repartition
Arguments: 37, true
(385) Join
Arguments: LeftOuter, (product#1136445 = internalUUID#1136473)
(386) Project
Arguments: [product#1136445, plant#1136446, orderDateTime#1136447, productPlant#1136457, timezonecode#1136471, systemId#1136472, internalUUID#1136473, id#1136474, displayId#1136475, name#1136476, baseUnitOfMeasure#1136477, unitOfMeasures#1136478, unitOfMeasureConversions#1136479, productionAspect#1136480, salesAspect#1136481, procurementAspect#1136482, productGroup#1136483, filter(unitOfMeasureConversions#1136479, lambdafunction((((lambda u#1135738.measurementUnit1.code = productPlant#1136457.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1135738.measurementUnit1.internalRefUUID = productPlant#1136457.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1136477.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1136477.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1136484]
(387) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1136484.quantityNumerator), true, [quantityNumerator#1136485]
(388) Project
Arguments: [product#1136445, plant#1136446, orderDateTime#1136447, productPlant#1136457, timezonecode#1136471, systemId#1136472, internalUUID#1136473, id#1136474, displayId#1136475, name#1136476, baseUnitOfMeasure#1136477, unitOfMeasures#1136478, unitOfMeasureConversions#1136479, productionAspect#1136480, salesAspect#1136481, procurementAspect#1136482, productGroup#1136483, filteredUnitOfMeasureConversions#1136484, quantityNumerator#1136485]
(389) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1136484.quantityDenominator), true, [quantityDenominator#1136486]
(390) Project
Arguments: [product#1136445, plant#1136446, orderDateTime#1136447, productPlant#1136457, timezonecode#1136471, systemId#1136472, internalUUID#1136473, id#1136474, displayId#1136475, name#1136476, baseUnitOfMeasure#1136477, unitOfMeasures#1136478, unitOfMeasureConversions#1136479, productionAspect#1136480, salesAspect#1136481, procurementAspect#1136482, productGroup#1136483, filteredUnitOfMeasureConversions#1136484, quantityNumerator#1136485, quantityDenominator#1136486]
(391) Project
Arguments: [product#1136445, plant#1136446, orderDateTime#1136447, productPlant#1136457, timezonecode#1136471, systemId#1136472, internalUUID#1136473, id#1136474, displayId#1136475, name#1136476, baseUnitOfMeasure#1136477, unitOfMeasures#1136478, unitOfMeasureConversions#1136479, productionAspect#1136480, salesAspect#1136481, procurementAspect#1136482, productGroup#1136483, filteredUnitOfMeasureConversions#1136484, quantityNumerator#1136485, quantityDenominator#1136486, (cast(quantityNumerator#1136485 as double) / cast(quantityDenominator#1136486 as double)) AS outboundUnit#1136487]
(392) Project
Arguments: [product#1136445, plant#1136446, orderDateTime#1136447, productPlant#1136457, timezonecode#1136471, systemId#1136472, internalUUID#1136473, id#1136474, displayId#1136475, name#1136476, baseUnitOfMeasure#1136477, unitOfMeasures#1136478, unitOfMeasureConversions#1136479, productionAspect#1136480, salesAspect#1136481, procurementAspect#1136482, productGroup#1136483, filteredUnitOfMeasureConversions#1136484, quantityNumerator#1136485, quantityDenominator#1136486, CASE WHEN (isnull(outboundUnit#1136487) OR (outboundUnit#1136487 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1136487 END AS outboundUnit#1136488]
(393) Project
Arguments: [product#1136445, plant#1136446, orderDateTime#1136447, productPlant#1136457, timezonecode#1136471, outboundUnit#1136488]
(394) Join
Arguments: Inner, ((plantUuid#1136437 = plant#1136446) AND (productUuid#1136439 = product#1136445))
(395) Filter
Arguments: (calculationDateTime#1136433 <= orderDateTime#1136447)
(396) Project
Arguments: [plantUuid#1136437 AS plant#1136489, productUuid#1136439 AS product#1136490, storageLocId#1136440, calculationDateTime#1136433, quantity#1136442]
(397) Aggregate
Arguments: [plant#1136489, product#1136490, storageLocId#1136440], [plant#1136489, product#1136490, storageLocId#1136440, max(calculationDateTime#1136433) AS max_calc_datetime#1136491]
(398) Join
Arguments: Inner, ((((plant#1136352 <=> plant#1136489) AND (product#1136353 <=> product#1136490)) AND (storageLocId#1136303 <=> storageLocId#1136440)) AND (calculationDateTime#1136296 <=> max_calc_datetime#1136491))
(399) Project
Arguments: [plant#1136352, product#1136353, storageLocId#1136303, calculationDateTime#1136296, quantity#1136305]
(400) Aggregate
Arguments: [product#1136353, plant#1136352], [product#1136353, plant#1136352, sum(quantity#1136305) AS quantitySum#1136492, min(calculationDateTime#1136296) AS minCalculationDateTime#1136493]
(401) Project
Arguments: [product#1136353, plant#1136352, quantitySum#1136492, minCalculationDateTime#1136493, round(quantitySum#1136492, 0) AS roundedQuantitySum#1136494]
(402) Join
Arguments: LeftOuter, ((plant#1136174 = plant#1136352) AND (product#1136173 = product#1136353))
(403) Project
Arguments: [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, outboundUnit#1136216, roundedQuantitySum#1136494, minCalculationDateTime#1136493]
(404) Project
Arguments: [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, outboundUnit#1136216, roundedQuantitySum#1136494, minCalculationDateTime#1136493, CASE WHEN isnotnull(minCalculationDateTime#1136493) THEN minCalculationDateTime#1136493 ELSE orderDateTime#1136175 END AS stockDatetime#1136495]
(405) Project
Arguments: [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, outboundUnit#1136216, roundedQuantitySum#1136494, minCalculationDateTime#1136493, stockDatetime#1136495, CASE WHEN isnotnull(roundedQuantitySum#1136494) THEN array(roundedQuantitySum#1136494) ELSE array(0.0) END AS stockBatchQuantities#1136496]
(406) Project
Arguments: [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, outboundUnit#1136216, roundedQuantitySum#1136494, minCalculationDateTime#1136493, stockDatetime#1136495, stockBatchQuantities#1136496, array(2199-01-01 00:00:00) AS stockBatchShelfLifeEndDatetimes#1136497]
(407) Project
Arguments: [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, outboundUnit#1136216, roundedQuantitySum#1136494, stockDatetime#1136495, stockBatchQuantities#1136496, stockBatchShelfLifeEndDatetimes#1136497]
(408) Project
Arguments: [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, outboundUnit#1136216, stockDatetime#1136495, stockBatchQuantities#1136496, stockBatchShelfLifeEndDatetimes#1136497]
(409) LogicalRelation
Arguments: parquet, [product#1136098, plant#1136099, demandChannel#1136100, demandStream#1136101, considerVariance#1136102, demandTimeBuckets#1136103, demandPointInTimeStart#1136104, demandPointInTimeEnd#1136105, demandPointInTime#1136106], false
(410) Join
Arguments: LeftOuter, ((product#1136173 = product#1136098) AND (plant#1136174 = plant#1136099))
(411) Project
Arguments: [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, outboundUnit#1136216, stockDatetime#1136495, stockBatchQuantities#1136496, stockBatchShelfLifeEndDatetimes#1136497, demandChannel#1136100, demandStream#1136101, considerVariance#1136102, demandTimeBuckets#1136103, demandPointInTimeStart#1136104, demandPointInTimeEnd#1136105, demandPointInTime#1136106, product#1136098, plant#1136099]
(412) Project
Arguments: [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, outboundUnit#1136216, stockDatetime#1136495, stockBatchQuantities#1136496, stockBatchShelfLifeEndDatetimes#1136497, demandChannel#1136100, demandStream#1136101, considerVariance#1136102, demandTimeBuckets#1136103, demandPointInTimeStart#1136104, demandPointInTimeEnd#1136105, demandPointInTime#1136106, CASE WHEN isnotnull(product#1136098) THEN struct(demandChannel, demandChannel#1136100, demandStream, demandStream#1136101, considerVariance, considerVariance#1136102, demandTimeBuckets, demandTimeBuckets#1136103, demandPointInTimeStart, demandPointInTimeStart#1136104, demandPointInTimeEnd, demandPointInTimeEnd#1136105, demandPointInTime, demandPointInTime#1136106) ELSE cast(null as struct<demandChannel:string,demandStream:string,considerVariance:boolean,demandTimeBuckets:array<struct<demandStartDateTime:timestamp,demandQuantity:double,demandVariance:double>>,demandPointInTimeStart:timestamp,demandPointInTimeEnd:timestamp,demandPointInTime:array<struct<demandDateTime:timestamp,demandQuantity:double,demandVariance:double>>>) END AS rawDemands#1136119]
(413) Aggregate
Arguments: [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, outboundUnit#1136216, stockDatetime#1136495, stockBatchQuantities#1136496, stockBatchShelfLifeEndDatetimes#1136497], [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, outboundUnit#1136216, stockDatetime#1136495, stockBatchQuantities#1136496, stockBatchShelfLifeEndDatetimes#1136497, collect_list(rawDemands#1136119, 0, 0) AS rawDemands#1136120]
(414) DeserializeToObject
Arguments: createexternalrow(invoke(product#1136173.toString()), invoke(plant#1136174.toString()), static_invoke(DateTimeUtils.toJavaTimestamp(orderDateTime#1136175)), if (isnull(productPlant#1136185)) null else createexternalrow(invoke(productPlant#1136185.systemId.toString()), invoke(productPlant#1136185.internalUUID.toString()), if (isnull(productPlant#1136185.plant)) null else createexternalrow(invoke(productPlant#1136185.plant.internalRefUUID.toString()), invoke(productPlant#1136185.plant.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), if (isnull(productPlant#1136185.product)) null else createexternalrow(invoke(productPlant#1136185.product.internalRefUUID.toString()), invoke(productPlant#1136185.product.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(DateTimeUtils.toJavaDate(productPlant#1136185.blockedForReplenishmentStartingFrom)), if (isnull(productPlant#1136185.productionAspect)) null else createexternalrow(if (isnull(productPlant#1136185.productionAspect.productMovementPlants)) null else createexternalrow(if (isnull(productPlant#1136185.productionAspect.productMovementPlants.unitOfIssue)) null else createexternalrow(invoke(productPlant#1136185.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID.toString()), invoke(productPlant#1136185.productionAspect.productMovementPlants.unitOfIssue.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), if (isnull(productPlant#1136185.productionAspect.productPlanningPlants)) null else createexternalrow(if (isnull(productPlant#1136185.productionAspect.productPlanningPlants.mrpType)) null else createexternalrow(invoke(productPlant#1136185.productionAspect.productPlanningPlants.mrpType.internalRefUUID.toString()), invoke(productPlant#1136185.productionAspect.productPlanningPlants.mrpType.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1136185.productionAspect.productPlanningPlants.abcIndicator)) null else createexternalrow(invoke(productPlant#1136185.productionAspect.productPlanningPlants.abcIndicator.internalRefUUID.toString()), invoke(productPlant#1136185.productionAspect.productPlanningPlants.abcIndicator.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1136185.productionAspect.productPlanningPlants.mrpController)) null else createexternalrow(invoke(productPlant#1136185.productionAspect.productPlanningPlants.mrpController.internalRefUUID.toString()), invoke(productPlant#1136185.productionAspect.productPlanningPlants.mrpController.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(java.lang.Double.valueOf(productPlant#1136185.productionAspect.productPlanningPlants.minimumLotSize)), if (isnull(productPlant#1136185.productionAspect.productPlanningPlants.logisticalRoundingProfile)) null else createexternalrow(invoke(productPlant#1136185.productionAspect.productPlanningPlants.logisticalRoundingProfile.internalRefUUID.toString()), invoke(productPlant#1136185.productionAspect.productPlanningPlants.logisticalRoundingProfile.logisticalRoundingProfile.toString()), StructField(internalRefUUID,StringType,true), StructField(logisticalRoundingProfile,StringType,true)), if (isnull(productPlant#1136185.productionAspect.productPlanningPlants.sourceOfSupplyCategory)) null else createexternalrow(invoke(productPlant#1136185.productionAspect.productPlanningPlants.sourceOfSupplyCategory.internalRefUUID.toString()), invoke(productPlant#1136185.productionAspect.productPlanningPlants.sourceOfSupplyCategory.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true), StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true), StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(minimumLotSize,DoubleType,true), StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true), StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true), StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)), if (isnull(productPlant#1136185.salesPlant)) null else createexternalrow(if (isnull(productPlant#1136185.salesPlant.loadingGroup)) null else createexternalrow(invoke(productPlant#1136185.salesPlant.loadingGroup.internalRefUUID.toString()), invoke(productPlant#1136185.salesPlant.loadingGroup.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), mapobjects(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 152118), if (isnull(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 152118))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 152118).validFrom)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 152118).validTo)), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 152118).isListed)), StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true)), productPlant#1136185.listing, Some(class scala.collection.mutable.ArraySeq)), StructField(systemId,StringType,true), StructField(internalUUID,StringType,true), StructField(plant,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(product,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(blockedForReplenishmentStartingFrom,DateType,true), StructField(productionAspect,StructType(StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)),true), StructField(salesPlant,StructType(StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true), StructField(listing,ArrayType(StructType(StructField(validFrom,TimestampType,true),StructField(validTo,TimestampType,true),StructField(isListed,BooleanType,true)),true),true)), invoke(timezonecode#1136199.toString()), static_invoke(java.lang.Double.valueOf(outboundUnit#1136216)), static_invoke(DateTimeUtils.toJavaTimestamp(stockDatetime#1136495)), mapobjects(lambdavariable(MapObject, DoubleType, true, 152119), static_invoke(java.lang.Double.valueOf(cast(lambdavariable(MapObject, DoubleType, true, 152119) as double))), stockBatchQuantities#1136496, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, false, 152120), assertnotnull(static_invoke(DateTimeUtils.toJavaTimestamp(cast(lambdavariable(MapObject, TimestampType, false, 152120) as timestamp)))), stockBatchShelfLifeEndDatetimes#1136497, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, 152121), assertnotnull(if (isnull(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, 152121))) null else createexternalrow(invoke(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, 152121).demandChannel.toString()), invoke(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, 152121).demandStream.toString()), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, 152121).considerVariance)), mapobjects(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 152122), if (isnull(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 152122))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 152122).demandStartDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 152122).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 152122).demandVariance)), StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true)), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, 152121).demandTimeBuckets, Some(class scala.collection.mutable.ArraySeq)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, 152121).demandPointInTimeStart)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, 152121).demandPointInTimeEnd)), mapobjects(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 152123), if (isnull(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 152123))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 152123).demandDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 152123).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 152123).demandVariance)), StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true)), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, 152121).demandPointInTime, Some(class scala.collection.mutable.ArraySeq)), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true))), rawDemands#1136120, Some(class scala.collection.mutable.ArraySeq)), StructField(product,StringType,true), StructField(plant,StringType,true), StructField(orderDateTime,TimestampType,true), StructField(productPlant,StructType(StructField(systemId,StringType,true),StructField(internalUUID,StringType,true),StructField(plant,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(product,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(blockedForReplenishmentStartingFrom,DateType,true),StructField(productionAspect,StructType(StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)),true),StructField(salesPlant,StructType(StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(listing,ArrayType(StructType(StructField(validFrom,TimestampType,true),StructField(validTo,TimestampType,true),StructField(isListed,BooleanType,true)),true),true)),true), StructField(timezonecode,StringType,true), StructField(outboundUnit,DoubleType,true), StructField(stockDatetime,TimestampType,true), StructField(stockBatchQuantities,ArrayType(DoubleType,true),false), StructField(stockBatchShelfLifeEndDatetimes,ArrayType(TimestampType,false),false), StructField(rawDemands,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(considerVariance,BooleanType,true),StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true),StructField(demandPointInTimeStart,TimestampType,true),StructField(demandPointInTimeEnd,TimestampType,true),StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true)),false),false)), obj#1136159: org.apache.spark.sql.Row
(415) MapElements
Arguments: com.sap.s4hana.eureka.business.crporderquantitykpiservice.core.business.datasnapshot.DemandTransformatorImpl$$Lambda/0x00000008023bc120@a39b9be, interface org.apache.spark.sql.Row, [StructField(product,StringType,true), StructField(plant,StringType,true), StructField(orderDateTime,TimestampType,true), StructField(productPlant,StructType(StructField(systemId,StringType,true),StructField(internalUUID,StringType,true),StructField(plant,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(product,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(blockedForReplenishmentStartingFrom,DateType,true),StructField(productionAspect,StructType(StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)),true),StructField(salesPlant,StructType(StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(listing,ArrayType(StructType(StructField(validFrom,TimestampType,true),StructField(validTo,TimestampType,true),StructField(isListed,BooleanType,true)),true),true)),true), StructField(timezonecode,StringType,true), StructField(outboundUnit,DoubleType,true), StructField(stockDatetime,TimestampType,true), StructField(stockBatchQuantities,ArrayType(DoubleType,true),false), StructField(stockBatchShelfLifeEndDatetimes,ArrayType(TimestampType,false),false), StructField(rawDemands,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(considerVariance,BooleanType,true),StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true),StructField(demandPointInTimeStart,TimestampType,true),StructField(demandPointInTimeEnd,TimestampType,true),StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true)),false),false)], obj#1136164: org.apache.spark.sql.Row
(416) SerializeFromObject
Arguments: [if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(0))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 0, product), StringType, ObjectType(class java.lang.String)))) AS product#1136169, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(1))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 1, plant), StringType, ObjectType(class java.lang.String)))) AS plant#1136170, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(2))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), assertnotnull(if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)))) null else named_struct(demandChannel, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(0))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 0, demandChannel), StringType, ObjectType(class java.lang.String)))), demandStream, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(1))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 1, demandStream), StringType, ObjectType(class java.lang.String)))), considerVariance, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(2))) null else invoke(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 2, considerVariance), BooleanType, ObjectType(class java.lang.Boolean)).booleanValue()), demandValues, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(3))) null else if (invoke(class [D.isInstance(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 3, demandValues), ArrayType(DoubleType,false), ObjectType(class java.lang.Object))))) static_invoke(ArrayData.toArrayData(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 3, demandValues), ArrayType(DoubleType,false), ObjectType(class java.lang.Object)))) else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152109), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152109), DoubleType, ObjectType(class java.lang.Double)).doubleValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 3, demandValues), ArrayType(DoubleType,false), ObjectType(class java.lang.Object)), None), demandVariances, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(4))) null else if (invoke(class [D.isInstance(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 4, demandVariances), ArrayType(DoubleType,true), ObjectType(class java.lang.Object))))) static_invoke(ArrayData.toArrayData(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 4, demandVariances), ArrayType(DoubleType,true), ObjectType(class java.lang.Object)))) else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152110), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152110), DoubleType, ObjectType(class java.lang.Double)).doubleValue()), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 4, demandVariances), ArrayType(DoubleType,true), ObjectType(class java.lang.Object)), None), anchorDatetimes, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(5))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152111), assertnotnull(static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152111), TimestampType, ObjectType(class java.sql.Timestamp))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 5, anchorDatetimes), ArrayType(TimestampType,false), ObjectType(class java.lang.Object)), None), anchorWeekdays, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(6))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152112), assertnotnull(static_invoke(UTF8String.fromString(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152112), StringType, ObjectType(class java.lang.String))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 6, anchorWeekdays), ArrayType(StringType,false), ObjectType(class java.lang.Object)), None), anchorIndices, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(7))) null else if (invoke(class [I.isInstance(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 7, anchorIndices), ArrayType(IntegerType,false), ObjectType(class java.lang.Object))))) static_invoke(ArrayData.toArrayData(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 7, anchorIndices), ArrayType(IntegerType,false), ObjectType(class java.lang.Object)))) else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152113), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152113), IntegerType, ObjectType(class java.lang.Integer)).intValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 7, anchorIndices), ArrayType(IntegerType,false), ObjectType(class java.lang.Object)), None))), validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 2, dayBucketDemands), ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(considerVariance,BooleanType,true),StructField(demandValues,ArrayType(DoubleType,false),true),StructField(demandVariances,ArrayType(DoubleType,true),true),StructField(anchorDatetimes,ArrayType(TimestampType,false),true),StructField(anchorWeekdays,ArrayType(StringType,false),true),StructField(anchorIndices,ArrayType(IntegerType,false),true)),false), ObjectType(class java.lang.Object)), None) AS dayBucketDemands#1136171, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(3))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), assertnotnull(if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)))) null else named_struct(demandChannel, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(0))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 0, demandChannel), StringType, ObjectType(class java.lang.String)))), demandStream, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(1))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 1, demandStream), StringType, ObjectType(class java.lang.String)))), considerVariance, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(2))) null else invoke(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 2, considerVariance), BooleanType, ObjectType(class java.lang.Boolean)).booleanValue()), demandDatetimes, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(3))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152115), assertnotnull(static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152115), TimestampType, ObjectType(class java.sql.Timestamp))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 3, demandDatetimes), ArrayType(TimestampType,false), ObjectType(class java.lang.Object)), None), demandValues, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(4))) null else if (invoke(class [D.isInstance(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 4, demandValues), ArrayType(DoubleType,false), ObjectType(class java.lang.Object))))) static_invoke(ArrayData.toArrayData(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 4, demandValues), ArrayType(DoubleType,false), ObjectType(class java.lang.Object)))) else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152116), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152116), DoubleType, ObjectType(class java.lang.Double)).doubleValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 4, demandValues), ArrayType(DoubleType,false), ObjectType(class java.lang.Object)), None), demandVariances, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(5))) null else if (invoke(class [D.isInstance(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 5, demandVariances), ArrayType(DoubleType,true), ObjectType(class java.lang.Object))))) static_invoke(ArrayData.toArrayData(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 5, demandVariances), ArrayType(DoubleType,true), ObjectType(class java.lang.Object)))) else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152117), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152117), DoubleType, ObjectType(class java.lang.Double)).doubleValue()), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 5, demandVariances), ArrayType(DoubleType,true), ObjectType(class java.lang.Object)), None), horizonStartDatetime, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(6))) null else static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 6, horizonStartDatetime), TimestampType, ObjectType(class java.sql.Timestamp)))), horizonEndDatetime, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(7))) null else static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 7, horizonEndDatetime), TimestampType, ObjectType(class java.sql.Timestamp)))))), validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 3, pointInTimeDemands), ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(considerVariance,BooleanType,true),StructField(demandDatetimes,ArrayType(TimestampType,false),true),StructField(demandValues,ArrayType(DoubleType,false),true),StructField(demandVariances,ArrayType(DoubleType,true),true),StructField(horizonStartDatetime,TimestampType,true),StructField(horizonEndDatetime,TimestampType,true)),false), ObjectType(class java.lang.Object)), None) AS pointInTimeDemands#1136172]
(417) Join
Arguments: LeftOuter, ((plant#1136170 <=> plant#1135692) AND (product#1136169 <=> product#1135691))
(418) Project
Arguments: [product#1135691, plant#1135692, orderDateTime#1135693, productPlant#1135705, timezonecode#1135723, outboundUnit#1135750, stockDatetime#1136095, stockBatchQuantities#1136096, stockBatchShelfLifeEndDatetimes#1136097, plant#1136170, dayBucketDemands#1136171, pointInTimeDemands#1136172]
(419) Project
Arguments: [product#1135691, plant#1135692, orderDateTime#1135693, productPlant#1135705, timezonecode#1135723, outboundUnit#1135750, stockDatetime#1136095, stockBatchQuantities#1136096, stockBatchShelfLifeEndDatetimes#1136097, dayBucketDemands#1136171, pointInTimeDemands#1136172]
(420) LogicalRelation
Arguments: parquet, [product#1138723, plant#1138724, orderDateTime#1138725, planningStartDateTime#1138726], false
(421) RepartitionByExpression
Arguments: [product#1138723, plant#1138724], 37
(422) Project
Arguments: [product#1138723, plant#1138724, orderDateTime#1138725]
(423) LogicalRelation
Arguments: parquet, [systemId#1138727, internalUUID#1138728, plant#1138729, product#1138730, blockedForReplenishmentStartingFrom#1138731, productionAspect#1138732, salesPlant#1138733, listing#1138734], false
(424) Repartition
Arguments: 37, true
(425) Project
Arguments: [systemId#1138727, internalUUID#1138728, plant#1138729, product#1138730, blockedForReplenishmentStartingFrom#1138731, productionAspect#1138732, salesPlant#1138733, listing#1138734, struct(systemId, systemId#1138727, internalUUID, internalUUID#1138728, plant, plant#1138729, product, product#1138730, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1138731, productionAspect, productionAspect#1138732, salesPlant, salesPlant#1138733, listing, listing#1138734) AS productPlant#1138735]
(426) Project
Arguments: [productPlant#1138735]
(427) Join
Arguments: LeftOuter, ((product#1138723 <=> productPlant#1138735.product.internalRefUUID) AND (plant#1138724 <=> productPlant#1138735.plant.internalRefUUID))
(428) Project
Arguments: [product#1138723, plant#1138724, orderDateTime#1138725, productPlant#1138735]
(429) SubqueryAlias
Arguments: wl
(430) LogicalRelation
Arguments: parquet, [systemId#1138736, internalUUID#1138737, id#1138738, displayId#1138739, name#1138740, category#1138741, companyCode#1138742, address#1138743, mainDistributionChain#1138744, mainPurchasingOrganization#1138745, validPurchasingOrganizations#1138746, productGroup#1138747], false
(431) Repartition
Arguments: 37, true
(432) Project
Arguments: [internalUUID#1138737, address#1138743.timeZone.code AS timezonecode#1138748]
(433) Join
Arguments: LeftOuter, (plant#1138724 <=> internalUUID#1138737)
(434) Project
Arguments: [product#1138723, plant#1138724, orderDateTime#1138725, productPlant#1138735, internalUUID#1138737, CASE WHEN isnotnull(timezonecode#1138748) THEN timezonecode#1138748 ELSE UTC END AS timezonecode#1138749]
(435) Project
Arguments: [product#1138723, plant#1138724, orderDateTime#1138725, productPlant#1138735, timezonecode#1138749]
(436) LogicalRelation
Arguments: parquet, [systemId#1138750, internalUUID#1138751, id#1138752, displayId#1138753, name#1138754, baseUnitOfMeasure#1138755, unitOfMeasures#1138756, unitOfMeasureConversions#1138757, productionAspect#1138758, salesAspect#1138759, procurementAspect#1138760, productGroup#1138761], false
(437) Repartition
Arguments: 37, true
(438) Join
Arguments: LeftOuter, (product#1138723 = internalUUID#1138751)
(439) Project
Arguments: [product#1138723, plant#1138724, orderDateTime#1138725, productPlant#1138735, timezonecode#1138749, systemId#1138750, internalUUID#1138751, id#1138752, displayId#1138753, name#1138754, baseUnitOfMeasure#1138755, unitOfMeasures#1138756, unitOfMeasureConversions#1138757, productionAspect#1138758, salesAspect#1138759, procurementAspect#1138760, productGroup#1138761, filter(unitOfMeasureConversions#1138757, lambdafunction((((lambda u#1135738.measurementUnit1.code = productPlant#1138735.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1135738.measurementUnit1.internalRefUUID = productPlant#1138735.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1138755.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1138755.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1138762]
(440) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1138762.quantityNumerator), true, [quantityNumerator#1138763]
(441) Project
Arguments: [product#1138723, plant#1138724, orderDateTime#1138725, productPlant#1138735, timezonecode#1138749, systemId#1138750, internalUUID#1138751, id#1138752, displayId#1138753, name#1138754, baseUnitOfMeasure#1138755, unitOfMeasures#1138756, unitOfMeasureConversions#1138757, productionAspect#1138758, salesAspect#1138759, procurementAspect#1138760, productGroup#1138761, filteredUnitOfMeasureConversions#1138762, quantityNumerator#1138763]
(442) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1138762.quantityDenominator), true, [quantityDenominator#1138764]
(443) Project
Arguments: [product#1138723, plant#1138724, orderDateTime#1138725, productPlant#1138735, timezonecode#1138749, systemId#1138750, internalUUID#1138751, id#1138752, displayId#1138753, name#1138754, baseUnitOfMeasure#1138755, unitOfMeasures#1138756, unitOfMeasureConversions#1138757, productionAspect#1138758, salesAspect#1138759, procurementAspect#1138760, productGroup#1138761, filteredUnitOfMeasureConversions#1138762, quantityNumerator#1138763, quantityDenominator#1138764]
(444) Project
Arguments: [product#1138723, plant#1138724, orderDateTime#1138725, productPlant#1138735, timezonecode#1138749, systemId#1138750, internalUUID#1138751, id#1138752, displayId#1138753, name#1138754, baseUnitOfMeasure#1138755, unitOfMeasures#1138756, unitOfMeasureConversions#1138757, productionAspect#1138758, salesAspect#1138759, procurementAspect#1138760, productGroup#1138761, filteredUnitOfMeasureConversions#1138762, quantityNumerator#1138763, quantityDenominator#1138764, (cast(quantityNumerator#1138763 as double) / cast(quantityDenominator#1138764 as double)) AS outboundUnit#1138765]
(445) Project
Arguments: [product#1138723, plant#1138724, orderDateTime#1138725, productPlant#1138735, timezonecode#1138749, systemId#1138750, internalUUID#1138751, id#1138752, displayId#1138753, name#1138754, baseUnitOfMeasure#1138755, unitOfMeasures#1138756, unitOfMeasureConversions#1138757, productionAspect#1138758, salesAspect#1138759, procurementAspect#1138760, productGroup#1138761, filteredUnitOfMeasureConversions#1138762, quantityNumerator#1138763, quantityDenominator#1138764, CASE WHEN (isnull(outboundUnit#1138765) OR (outboundUnit#1138765 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1138765 END AS outboundUnit#1138766]
(446) Project
Arguments: [product#1138723, plant#1138724, orderDateTime#1138725, productPlant#1138735, timezonecode#1138749, outboundUnit#1138766]
(447) LogicalRelation
Arguments: parquet, [systemId#1138767, internalUUID#1138768, product#1138769, plant#1138770, calculationDateTime#1138771, stockQuantities#1138772], false
(448) Repartition
Arguments: 37, true
(449) LogicalRelation
Arguments: parquet, [marketUnit#1138773, description#1138774, articleHierarchy#1138775, defaultCurrency#1138776, responsibilities#1138777, replenishmentTypes#1138778, distributionCenters#1138779, assignedArticleHierarchyNodes#1138780, minOrderQtySetting#1138781, listingCheck#1138782, odsSelection#1138783, demandProfiles#1138784, constraintProfiles#1138785, optimizationProfiles#1138786, orderGroupSplitProfiles#1138787, supplierMinimumProfiles#1138788, multipleRestrictionProfiles#1138789, preferredUomSource#1138790, handlingOfUnfulfilledDemands#1138791, negligibleQuantitiesThreshold#1138792, eventtype#1138793, minOrderQtySettingInternal#1138794], false
(450) Repartition
Arguments: 37, true
(451) Filter
Arguments: (marketUnit#1138773 <=> Alert_Test1)
(452) Project
Arguments: [marketUnit#1138773, description#1138774, articleHierarchy#1138775, defaultCurrency#1138776, responsibilities#1138777, replenishmentTypes#1138778, distributionCenters#1138779, assignedArticleHierarchyNodes#1138780, minOrderQtySetting#1138781, listingCheck#1138782, odsSelection#1138783, demandProfiles#1138784, constraintProfiles#1138785, optimizationProfiles#1138786, orderGroupSplitProfiles#1138787, supplierMinimumProfiles#1138788, multipleRestrictionProfiles#1138789, preferredUomSource#1138790, handlingOfUnfulfilledDemands#1138791, negligibleQuantitiesThreshold#1138792, eventtype#1138793, minOrderQtySettingInternal#1138794]
(453) Project
Arguments: [distributionCenters#1138779]
(454) Generate
Arguments: explode(distributionCenters#1138779), false, [distributionCenters#1138795]
(455) Project
Arguments: [distributionCenters#1138795]
(456) Generate
Arguments: explode(distributionCenters#1138795.storageLocations), false, [storageLocations#1138796]
(457) Project
Arguments: [distributionCenters#1138795.id AS plantId#1138797, distributionCenters#1138795.internalRefUUID AS plantUuid#1138798, storageLocations#1138796]
(458) Project
Arguments: [plantId#1138797, plantUuid#1138798, storageLocations#1138796.id AS storageLocId#1138799, storageLocations#1138796.internalRefUUID AS storageLocUuid#1138800]
(459) LogicalRelation
Arguments: parquet, [product#1138801, plant#1138802, orderDateTime#1138803, planningStartDateTime#1138804], false
(460) RepartitionByExpression
Arguments: [product#1138801, plant#1138802], 37
(461) Project
Arguments: [product#1138801, plant#1138802, orderDateTime#1138803]
(462) LogicalRelation
Arguments: parquet, [systemId#1138805, internalUUID#1138806, plant#1138807, product#1138808, blockedForReplenishmentStartingFrom#1138809, productionAspect#1138810, salesPlant#1138811, listing#1138812], false
(463) Repartition
Arguments: 37, true
(464) Project
Arguments: [systemId#1138805, internalUUID#1138806, plant#1138807, product#1138808, blockedForReplenishmentStartingFrom#1138809, productionAspect#1138810, salesPlant#1138811, listing#1138812, struct(systemId, systemId#1138805, internalUUID, internalUUID#1138806, plant, plant#1138807, product, product#1138808, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1138809, productionAspect, productionAspect#1138810, salesPlant, salesPlant#1138811, listing, listing#1138812) AS productPlant#1138813]
(465) Project
Arguments: [productPlant#1138813]
(466) Join
Arguments: LeftOuter, ((product#1138801 <=> productPlant#1138813.product.internalRefUUID) AND (plant#1138802 <=> productPlant#1138813.plant.internalRefUUID))
(467) Project
Arguments: [product#1138801, plant#1138802, orderDateTime#1138803, productPlant#1138813]
(468) SubqueryAlias
Arguments: wl
(469) LogicalRelation
Arguments: parquet, [systemId#1138814, internalUUID#1138815, id#1138816, displayId#1138817, name#1138818, category#1138819, companyCode#1138820, address#1138821, mainDistributionChain#1138822, mainPurchasingOrganization#1138823, validPurchasingOrganizations#1138824, productGroup#1138825], false
(470) Repartition
Arguments: 37, true
(471) Project
Arguments: [internalUUID#1138815, address#1138821.timeZone.code AS timezonecode#1138826]
(472) Join
Arguments: LeftOuter, (plant#1138802 <=> internalUUID#1138815)
(473) Project
Arguments: [product#1138801, plant#1138802, orderDateTime#1138803, productPlant#1138813, internalUUID#1138815, CASE WHEN isnotnull(timezonecode#1138826) THEN timezonecode#1138826 ELSE UTC END AS timezonecode#1138827]
(474) Project
Arguments: [product#1138801, plant#1138802, orderDateTime#1138803, productPlant#1138813, timezonecode#1138827]
(475) LogicalRelation
Arguments: parquet, [systemId#1138828, internalUUID#1138829, id#1138830, displayId#1138831, name#1138832, baseUnitOfMeasure#1138833, unitOfMeasures#1138834, unitOfMeasureConversions#1138835, productionAspect#1138836, salesAspect#1138837, procurementAspect#1138838, productGroup#1138839], false
(476) Repartition
Arguments: 37, true
(477) Join
Arguments: LeftOuter, (product#1138801 = internalUUID#1138829)
(478) Project
Arguments: [product#1138801, plant#1138802, orderDateTime#1138803, productPlant#1138813, timezonecode#1138827, systemId#1138828, internalUUID#1138829, id#1138830, displayId#1138831, name#1138832, baseUnitOfMeasure#1138833, unitOfMeasures#1138834, unitOfMeasureConversions#1138835, productionAspect#1138836, salesAspect#1138837, procurementAspect#1138838, productGroup#1138839, filter(unitOfMeasureConversions#1138835, lambdafunction((((lambda u#1135738.measurementUnit1.code = productPlant#1138813.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1135738.measurementUnit1.internalRefUUID = productPlant#1138813.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1138833.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1138833.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1138840]
(479) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1138840.quantityNumerator), true, [quantityNumerator#1138841]
(480) Project
Arguments: [product#1138801, plant#1138802, orderDateTime#1138803, productPlant#1138813, timezonecode#1138827, systemId#1138828, internalUUID#1138829, id#1138830, displayId#1138831, name#1138832, baseUnitOfMeasure#1138833, unitOfMeasures#1138834, unitOfMeasureConversions#1138835, productionAspect#1138836, salesAspect#1138837, procurementAspect#1138838, productGroup#1138839, filteredUnitOfMeasureConversions#1138840, quantityNumerator#1138841]
(481) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1138840.quantityDenominator), true, [quantityDenominator#1138842]
(482) Project
Arguments: [product#1138801, plant#1138802, orderDateTime#1138803, productPlant#1138813, timezonecode#1138827, systemId#1138828, internalUUID#1138829, id#1138830, displayId#1138831, name#1138832, baseUnitOfMeasure#1138833, unitOfMeasures#1138834, unitOfMeasureConversions#1138835, productionAspect#1138836, salesAspect#1138837, procurementAspect#1138838, productGroup#1138839, filteredUnitOfMeasureConversions#1138840, quantityNumerator#1138841, quantityDenominator#1138842]
(483) Project
Arguments: [product#1138801, plant#1138802, orderDateTime#1138803, productPlant#1138813, timezonecode#1138827, systemId#1138828, internalUUID#1138829, id#1138830, displayId#1138831, name#1138832, baseUnitOfMeasure#1138833, unitOfMeasures#1138834, unitOfMeasureConversions#1138835, productionAspect#1138836, salesAspect#1138837, procurementAspect#1138838, productGroup#1138839, filteredUnitOfMeasureConversions#1138840, quantityNumerator#1138841, quantityDenominator#1138842, (cast(quantityNumerator#1138841 as double) / cast(quantityDenominator#1138842 as double)) AS outboundUnit#1138843]
(484) Project
Arguments: [product#1138801, plant#1138802, orderDateTime#1138803, productPlant#1138813, timezonecode#1138827, systemId#1138828, internalUUID#1138829, id#1138830, displayId#1138831, name#1138832, baseUnitOfMeasure#1138833, unitOfMeasures#1138834, unitOfMeasureConversions#1138835, productionAspect#1138836, salesAspect#1138837, procurementAspect#1138838, productGroup#1138839, filteredUnitOfMeasureConversions#1138840, quantityNumerator#1138841, quantityDenominator#1138842, CASE WHEN (isnull(outboundUnit#1138843) OR (outboundUnit#1138843 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1138843 END AS outboundUnit#1138844]
(485) Project
Arguments: [product#1138801, plant#1138802, orderDateTime#1138803, productPlant#1138813, timezonecode#1138827, outboundUnit#1138844]
(486) Project
Arguments: [plant#1138802]
(487) Deduplicate
Arguments: [plant#1138802]
(488) Join
Arguments: Inner, (plantUuid#1138798 = plant#1138802)
(489) Project
Arguments: [plantId#1138797, plantUuid#1138798, storageLocId#1138799, storageLocUuid#1138800]
(490) Join
Arguments: Inner, (plant#1138770.internalRefUUID <=> plantUuid#1138798)
(491) Generate
Arguments: explode(filter(stockQuantities#1138772, lambdafunction(((lambda x#1135796.storageLocation.internalRefUuid = storageLocUuid#1138800) AND (lambda x#1135796.storageLocation.Id = storageLocId#1138799)), lambda x#1135796, false))), false, [stockQuantity#1138845]
(492) Project
Arguments: [systemId#1138767, internalUUID#1138768, product#1138769, plant#1138770, calculationDateTime#1138771, stockQuantities#1138772, plantId#1138797, plantUuid#1138798, storageLocId#1138799, storageLocUuid#1138800, stockQuantity#1138845]
(493) Aggregate
Arguments: [plantUuid#1138798, internalUUID#1138768, plant#1138770, product#1138769, systemId#1138767], [plantUuid#1138798, internalUUID#1138768, plant#1138770, product#1138769, systemId#1138767, first(calculationDateTime#1138771, false) AS calculationDateTime#1138846, collect_list(stockQuantity#1138845, 0, 0) AS stockQuantities#1138847]
(494) Project
Arguments: [systemId#1138767, internalUUID#1138768, product#1138769, plant#1138770, calculationDateTime#1138846, stockQuantities#1138847]
(495) Generate
Arguments: explode(stockQuantities#1138847), false, [stockQuantity#1138848]
(496) Project
Arguments: [systemId#1138767, internalUUID#1138768, product#1138769, plant#1138770, calculationDateTime#1138846, stockQuantities#1138847, stockQuantity#1138848]
(497) Project
Arguments: [plant#1138770.id AS plant#1138849, plant#1138770.internalRefUUID AS plantUuid#1138850, product#1138769.id AS product#1138851, product#1138769.internalRefUUID AS productUuid#1138852, calculationDateTime#1138846, stockQuantity#1138848.storagelocation.id AS storageLocId#1138853, stockQuantity#1138848.storagelocation.internalRefUUID AS storageLocUuid#1138854, stockQuantity#1138848.quantity.measure AS quantity#1138855, stockQuantity#1138848.specialStockIndicator.code AS specialStockIndicator#1138856, stockQuantity#1138848.stockType.code AS stockType#1138857]
(498) Filter
Arguments: ((specialStockIndicator#1138856 = ) AND (stockType#1138857 = 01))
(499) LogicalRelation
Arguments: parquet, [product#1138858, plant#1138859, orderDateTime#1138860, planningStartDateTime#1138861], false
(500) RepartitionByExpression
Arguments: [product#1138858, plant#1138859], 37
(501) Project
Arguments: [product#1138858, plant#1138859, orderDateTime#1138860]
(502) LogicalRelation
Arguments: parquet, [systemId#1138862, internalUUID#1138863, plant#1138864, product#1138865, blockedForReplenishmentStartingFrom#1138866, productionAspect#1138867, salesPlant#1138868, listing#1138869], false
(503) Repartition
Arguments: 37, true
(504) Project
Arguments: [systemId#1138862, internalUUID#1138863, plant#1138864, product#1138865, blockedForReplenishmentStartingFrom#1138866, productionAspect#1138867, salesPlant#1138868, listing#1138869, struct(systemId, systemId#1138862, internalUUID, internalUUID#1138863, plant, plant#1138864, product, product#1138865, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1138866, productionAspect, productionAspect#1138867, salesPlant, salesPlant#1138868, listing, listing#1138869) AS productPlant#1138870]
(505) Project
Arguments: [productPlant#1138870]
(506) Join
Arguments: LeftOuter, ((product#1138858 <=> productPlant#1138870.product.internalRefUUID) AND (plant#1138859 <=> productPlant#1138870.plant.internalRefUUID))
(507) Project
Arguments: [product#1138858, plant#1138859, orderDateTime#1138860, productPlant#1138870]
(508) SubqueryAlias
Arguments: wl
(509) LogicalRelation
Arguments: parquet, [systemId#1138871, internalUUID#1138872, id#1138873, displayId#1138874, name#1138875, category#1138876, companyCode#1138877, address#1138878, mainDistributionChain#1138879, mainPurchasingOrganization#1138880, validPurchasingOrganizations#1138881, productGroup#1138882], false
(510) Repartition
Arguments: 37, true
(511) Project
Arguments: [internalUUID#1138872, address#1138878.timeZone.code AS timezonecode#1138883]
(512) Join
Arguments: LeftOuter, (plant#1138859 <=> internalUUID#1138872)
(513) Project
Arguments: [product#1138858, plant#1138859, orderDateTime#1138860, productPlant#1138870, internalUUID#1138872, CASE WHEN isnotnull(timezonecode#1138883) THEN timezonecode#1138883 ELSE UTC END AS timezonecode#1138884]
(514) Project
Arguments: [product#1138858, plant#1138859, orderDateTime#1138860, productPlant#1138870, timezonecode#1138884]
(515) LogicalRelation
Arguments: parquet, [systemId#1138885, internalUUID#1138886, id#1138887, displayId#1138888, name#1138889, baseUnitOfMeasure#1138890, unitOfMeasures#1138891, unitOfMeasureConversions#1138892, productionAspect#1138893, salesAspect#1138894, procurementAspect#1138895, productGroup#1138896], false
(516) Repartition
Arguments: 37, true
(517) Join
Arguments: LeftOuter, (product#1138858 = internalUUID#1138886)
(518) Project
Arguments: [product#1138858, plant#1138859, orderDateTime#1138860, productPlant#1138870, timezonecode#1138884, systemId#1138885, internalUUID#1138886, id#1138887, displayId#1138888, name#1138889, baseUnitOfMeasure#1138890, unitOfMeasures#1138891, unitOfMeasureConversions#1138892, productionAspect#1138893, salesAspect#1138894, procurementAspect#1138895, productGroup#1138896, filter(unitOfMeasureConversions#1138892, lambdafunction((((lambda u#1135738.measurementUnit1.code = productPlant#1138870.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1135738.measurementUnit1.internalRefUUID = productPlant#1138870.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1138890.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1138890.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1138897]
(519) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1138897.quantityNumerator), true, [quantityNumerator#1138898]
(520) Project
Arguments: [product#1138858, plant#1138859, orderDateTime#1138860, productPlant#1138870, timezonecode#1138884, systemId#1138885, internalUUID#1138886, id#1138887, displayId#1138888, name#1138889, baseUnitOfMeasure#1138890, unitOfMeasures#1138891, unitOfMeasureConversions#1138892, productionAspect#1138893, salesAspect#1138894, procurementAspect#1138895, productGroup#1138896, filteredUnitOfMeasureConversions#1138897, quantityNumerator#1138898]
(521) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1138897.quantityDenominator), true, [quantityDenominator#1138899]
(522) Project
Arguments: [product#1138858, plant#1138859, orderDateTime#1138860, productPlant#1138870, timezonecode#1138884, systemId#1138885, internalUUID#1138886, id#1138887, displayId#1138888, name#1138889, baseUnitOfMeasure#1138890, unitOfMeasures#1138891, unitOfMeasureConversions#1138892, productionAspect#1138893, salesAspect#1138894, procurementAspect#1138895, productGroup#1138896, filteredUnitOfMeasureConversions#1138897, quantityNumerator#1138898, quantityDenominator#1138899]
(523) Project
Arguments: [product#1138858, plant#1138859, orderDateTime#1138860, productPlant#1138870, timezonecode#1138884, systemId#1138885, internalUUID#1138886, id#1138887, displayId#1138888, name#1138889, baseUnitOfMeasure#1138890, unitOfMeasures#1138891, unitOfMeasureConversions#1138892, productionAspect#1138893, salesAspect#1138894, procurementAspect#1138895, productGroup#1138896, filteredUnitOfMeasureConversions#1138897, quantityNumerator#1138898, quantityDenominator#1138899, (cast(quantityNumerator#1138898 as double) / cast(quantityDenominator#1138899 as double)) AS outboundUnit#1138900]
(524) Project
Arguments: [product#1138858, plant#1138859, orderDateTime#1138860, productPlant#1138870, timezonecode#1138884, systemId#1138885, internalUUID#1138886, id#1138887, displayId#1138888, name#1138889, baseUnitOfMeasure#1138890, unitOfMeasures#1138891, unitOfMeasureConversions#1138892, productionAspect#1138893, salesAspect#1138894, procurementAspect#1138895, productGroup#1138896, filteredUnitOfMeasureConversions#1138897, quantityNumerator#1138898, quantityDenominator#1138899, CASE WHEN (isnull(outboundUnit#1138900) OR (outboundUnit#1138900 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1138900 END AS outboundUnit#1138901]
(525) Project
Arguments: [product#1138858, plant#1138859, orderDateTime#1138860, productPlant#1138870, timezonecode#1138884, outboundUnit#1138901]
(526) Join
Arguments: Inner, ((plantUuid#1138850 = plant#1138859) AND (productUuid#1138852 = product#1138858))
(527) Filter
Arguments: (calculationDateTime#1138846 <= orderDateTime#1138860)
(528) Project
Arguments: [plantUuid#1138850 AS plant#1138902, productUuid#1138852 AS product#1138903, storageLocId#1138853, calculationDateTime#1138846, quantity#1138855]
(529) LogicalRelation
Arguments: parquet, [systemId#1138904, internalUUID#1138905, product#1138906, plant#1138907, calculationDateTime#1138908, stockQuantities#1138909], false
(530) Repartition
Arguments: 37, true
(531) LogicalRelation
Arguments: parquet, [marketUnit#1138910, description#1138911, articleHierarchy#1138912, defaultCurrency#1138913, responsibilities#1138914, replenishmentTypes#1138915, distributionCenters#1138916, assignedArticleHierarchyNodes#1138917, minOrderQtySetting#1138918, listingCheck#1138919, odsSelection#1138920, demandProfiles#1138921, constraintProfiles#1138922, optimizationProfiles#1138923, orderGroupSplitProfiles#1138924, supplierMinimumProfiles#1138925, multipleRestrictionProfiles#1138926, preferredUomSource#1138927, handlingOfUnfulfilledDemands#1138928, negligibleQuantitiesThreshold#1138929, eventtype#1138930, minOrderQtySettingInternal#1138931], false
(532) Repartition
Arguments: 37, true
(533) Filter
Arguments: (marketUnit#1138910 <=> Alert_Test1)
(534) Project
Arguments: [marketUnit#1138910, description#1138911, articleHierarchy#1138912, defaultCurrency#1138913, responsibilities#1138914, replenishmentTypes#1138915, distributionCenters#1138916, assignedArticleHierarchyNodes#1138917, minOrderQtySetting#1138918, listingCheck#1138919, odsSelection#1138920, demandProfiles#1138921, constraintProfiles#1138922, optimizationProfiles#1138923, orderGroupSplitProfiles#1138924, supplierMinimumProfiles#1138925, multipleRestrictionProfiles#1138926, preferredUomSource#1138927, handlingOfUnfulfilledDemands#1138928, negligibleQuantitiesThreshold#1138929, eventtype#1138930, minOrderQtySettingInternal#1138931]
(535) Project
Arguments: [distributionCenters#1138916]
(536) Generate
Arguments: explode(distributionCenters#1138916), false, [distributionCenters#1138932]
(537) Project
Arguments: [distributionCenters#1138932]
(538) Generate
Arguments: explode(distributionCenters#1138932.storageLocations), false, [storageLocations#1138933]
(539) Project
Arguments: [distributionCenters#1138932.id AS plantId#1138934, distributionCenters#1138932.internalRefUUID AS plantUuid#1138935, storageLocations#1138933]
(540) Project
Arguments: [plantId#1138934, plantUuid#1138935, storageLocations#1138933.id AS storageLocId#1138936, storageLocations#1138933.internalRefUUID AS storageLocUuid#1138937]
(541) LogicalRelation
Arguments: parquet, [product#1138938, plant#1138939, orderDateTime#1138940, planningStartDateTime#1138941], false
(542) RepartitionByExpression
Arguments: [product#1138938, plant#1138939], 37
(543) Project
Arguments: [product#1138938, plant#1138939, orderDateTime#1138940]
(544) LogicalRelation
Arguments: parquet, [systemId#1138942, internalUUID#1138943, plant#1138944, product#1138945, blockedForReplenishmentStartingFrom#1138946, productionAspect#1138947, salesPlant#1138948, listing#1138949], false
(545) Repartition
Arguments: 37, true
(546) Project
Arguments: [systemId#1138942, internalUUID#1138943, plant#1138944, product#1138945, blockedForReplenishmentStartingFrom#1138946, productionAspect#1138947, salesPlant#1138948, listing#1138949, struct(systemId, systemId#1138942, internalUUID, internalUUID#1138943, plant, plant#1138944, product, product#1138945, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1138946, productionAspect, productionAspect#1138947, salesPlant, salesPlant#1138948, listing, listing#1138949) AS productPlant#1138950]
(547) Project
Arguments: [productPlant#1138950]
(548) Join
Arguments: LeftOuter, ((product#1138938 <=> productPlant#1138950.product.internalRefUUID) AND (plant#1138939 <=> productPlant#1138950.plant.internalRefUUID))
(549) Project
Arguments: [product#1138938, plant#1138939, orderDateTime#1138940, productPlant#1138950]
(550) SubqueryAlias
Arguments: wl
(551) LogicalRelation
Arguments: parquet, [systemId#1138951, internalUUID#1138952, id#1138953, displayId#1138954, name#1138955, category#1138956, companyCode#1138957, address#1138958, mainDistributionChain#1138959, mainPurchasingOrganization#1138960, validPurchasingOrganizations#1138961, productGroup#1138962], false
(552) Repartition
Arguments: 37, true
(553) Project
Arguments: [internalUUID#1138952, address#1138958.timeZone.code AS timezonecode#1138963]
(554) Join
Arguments: LeftOuter, (plant#1138939 <=> internalUUID#1138952)
(555) Project
Arguments: [product#1138938, plant#1138939, orderDateTime#1138940, productPlant#1138950, internalUUID#1138952, CASE WHEN isnotnull(timezonecode#1138963) THEN timezonecode#1138963 ELSE UTC END AS timezonecode#1138964]
(556) Project
Arguments: [product#1138938, plant#1138939, orderDateTime#1138940, productPlant#1138950, timezonecode#1138964]
(557) LogicalRelation
Arguments: parquet, [systemId#1138965, internalUUID#1138966, id#1138967, displayId#1138968, name#1138969, baseUnitOfMeasure#1138970, unitOfMeasures#1138971, unitOfMeasureConversions#1138972, productionAspect#1138973, salesAspect#1138974, procurementAspect#1138975, productGroup#1138976], false
(558) Repartition
Arguments: 37, true
(559) Join
Arguments: LeftOuter, (product#1138938 = internalUUID#1138966)
(560) Project
Arguments: [product#1138938, plant#1138939, orderDateTime#1138940, productPlant#1138950, timezonecode#1138964, systemId#1138965, internalUUID#1138966, id#1138967, displayId#1138968, name#1138969, baseUnitOfMeasure#1138970, unitOfMeasures#1138971, unitOfMeasureConversions#1138972, productionAspect#1138973, salesAspect#1138974, procurementAspect#1138975, productGroup#1138976, filter(unitOfMeasureConversions#1138972, lambdafunction((((lambda u#1135738.measurementUnit1.code = productPlant#1138950.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1135738.measurementUnit1.internalRefUUID = productPlant#1138950.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1138970.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1138970.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1138977]
(561) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1138977.quantityNumerator), true, [quantityNumerator#1138978]
(562) Project
Arguments: [product#1138938, plant#1138939, orderDateTime#1138940, productPlant#1138950, timezonecode#1138964, systemId#1138965, internalUUID#1138966, id#1138967, displayId#1138968, name#1138969, baseUnitOfMeasure#1138970, unitOfMeasures#1138971, unitOfMeasureConversions#1138972, productionAspect#1138973, salesAspect#1138974, procurementAspect#1138975, productGroup#1138976, filteredUnitOfMeasureConversions#1138977, quantityNumerator#1138978]
(563) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1138977.quantityDenominator), true, [quantityDenominator#1138979]
(564) Project
Arguments: [product#1138938, plant#1138939, orderDateTime#1138940, productPlant#1138950, timezonecode#1138964, systemId#1138965, internalUUID#1138966, id#1138967, displayId#1138968, name#1138969, baseUnitOfMeasure#1138970, unitOfMeasures#1138971, unitOfMeasureConversions#1138972, productionAspect#1138973, salesAspect#1138974, procurementAspect#1138975, productGroup#1138976, filteredUnitOfMeasureConversions#1138977, quantityNumerator#1138978, quantityDenominator#1138979]
(565) Project
Arguments: [product#1138938, plant#1138939, orderDateTime#1138940, productPlant#1138950, timezonecode#1138964, systemId#1138965, internalUUID#1138966, id#1138967, displayId#1138968, name#1138969, baseUnitOfMeasure#1138970, unitOfMeasures#1138971, unitOfMeasureConversions#1138972, productionAspect#1138973, salesAspect#1138974, procurementAspect#1138975, productGroup#1138976, filteredUnitOfMeasureConversions#1138977, quantityNumerator#1138978, quantityDenominator#1138979, (cast(quantityNumerator#1138978 as double) / cast(quantityDenominator#1138979 as double)) AS outboundUnit#1138980]
(566) Project
Arguments: [product#1138938, plant#1138939, orderDateTime#1138940, productPlant#1138950, timezonecode#1138964, systemId#1138965, internalUUID#1138966, id#1138967, displayId#1138968, name#1138969, baseUnitOfMeasure#1138970, unitOfMeasures#1138971, unitOfMeasureConversions#1138972, productionAspect#1138973, salesAspect#1138974, procurementAspect#1138975, productGroup#1138976, filteredUnitOfMeasureConversions#1138977, quantityNumerator#1138978, quantityDenominator#1138979, CASE WHEN (isnull(outboundUnit#1138980) OR (outboundUnit#1138980 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1138980 END AS outboundUnit#1138981]
(567) Project
Arguments: [product#1138938, plant#1138939, orderDateTime#1138940, productPlant#1138950, timezonecode#1138964, outboundUnit#1138981]
(568) Project
Arguments: [plant#1138939]
(569) Deduplicate
Arguments: [plant#1138939]
(570) Join
Arguments: Inner, (plantUuid#1138935 = plant#1138939)
(571) Project
Arguments: [plantId#1138934, plantUuid#1138935, storageLocId#1138936, storageLocUuid#1138937]
(572) Join
Arguments: Inner, (plant#1138907.internalRefUUID <=> plantUuid#1138935)
(573) Generate
Arguments: explode(filter(stockQuantities#1138909, lambdafunction(((lambda x#1135796.storageLocation.internalRefUuid = storageLocUuid#1138937) AND (lambda x#1135796.storageLocation.Id = storageLocId#1138936)), lambda x#1135796, false))), false, [stockQuantity#1138982]
(574) Project
Arguments: [systemId#1138904, internalUUID#1138905, product#1138906, plant#1138907, calculationDateTime#1138908, stockQuantities#1138909, plantId#1138934, plantUuid#1138935, storageLocId#1138936, storageLocUuid#1138937, stockQuantity#1138982]
(575) Aggregate
Arguments: [plantUuid#1138935, internalUUID#1138905, plant#1138907, product#1138906, systemId#1138904], [plantUuid#1138935, internalUUID#1138905, plant#1138907, product#1138906, systemId#1138904, first(calculationDateTime#1138908, false) AS calculationDateTime#1138983, collect_list(stockQuantity#1138982, 0, 0) AS stockQuantities#1138984]
(576) Project
Arguments: [systemId#1138904, internalUUID#1138905, product#1138906, plant#1138907, calculationDateTime#1138983, stockQuantities#1138984]
(577) Generate
Arguments: explode(stockQuantities#1138984), false, [stockQuantity#1138985]
(578) Project
Arguments: [systemId#1138904, internalUUID#1138905, product#1138906, plant#1138907, calculationDateTime#1138983, stockQuantities#1138984, stockQuantity#1138985]
(579) Project
Arguments: [plant#1138907.id AS plant#1138986, plant#1138907.internalRefUUID AS plantUuid#1138987, product#1138906.id AS product#1138988, product#1138906.internalRefUUID AS productUuid#1138989, calculationDateTime#1138983, stockQuantity#1138985.storagelocation.id AS storageLocId#1138990, stockQuantity#1138985.storagelocation.internalRefUUID AS storageLocUuid#1138991, stockQuantity#1138985.quantity.measure AS quantity#1138992, stockQuantity#1138985.specialStockIndicator.code AS specialStockIndicator#1138993, stockQuantity#1138985.stockType.code AS stockType#1138994]
(580) Filter
Arguments: ((specialStockIndicator#1138993 = ) AND (stockType#1138994 = 01))
(581) LogicalRelation
Arguments: parquet, [product#1138995, plant#1138996, orderDateTime#1138997, planningStartDateTime#1138998], false
(582) RepartitionByExpression
Arguments: [product#1138995, plant#1138996], 37
(583) Project
Arguments: [product#1138995, plant#1138996, orderDateTime#1138997]
(584) LogicalRelation
Arguments: parquet, [systemId#1138999, internalUUID#1139000, plant#1139001, product#1139002, blockedForReplenishmentStartingFrom#1139003, productionAspect#1139004, salesPlant#1139005, listing#1139006], false
(585) Repartition
Arguments: 37, true
(586) Project
Arguments: [systemId#1138999, internalUUID#1139000, plant#1139001, product#1139002, blockedForReplenishmentStartingFrom#1139003, productionAspect#1139004, salesPlant#1139005, listing#1139006, struct(systemId, systemId#1138999, internalUUID, internalUUID#1139000, plant, plant#1139001, product, product#1139002, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1139003, productionAspect, productionAspect#1139004, salesPlant, salesPlant#1139005, listing, listing#1139006) AS productPlant#1139007]
(587) Project
Arguments: [productPlant#1139007]
(588) Join
Arguments: LeftOuter, ((product#1138995 <=> productPlant#1139007.product.internalRefUUID) AND (plant#1138996 <=> productPlant#1139007.plant.internalRefUUID))
(589) Project
Arguments: [product#1138995, plant#1138996, orderDateTime#1138997, productPlant#1139007]
(590) SubqueryAlias
Arguments: wl
(591) LogicalRelation
Arguments: parquet, [systemId#1139008, internalUUID#1139009, id#1139010, displayId#1139011, name#1139012, category#1139013, companyCode#1139014, address#1139015, mainDistributionChain#1139016, mainPurchasingOrganization#1139017, validPurchasingOrganizations#1139018, productGroup#1139019], false
(592) Repartition
Arguments: 37, true
(593) Project
Arguments: [internalUUID#1139009, address#1139015.timeZone.code AS timezonecode#1139020]
(594) Join
Arguments: LeftOuter, (plant#1138996 <=> internalUUID#1139009)
(595) Project
Arguments: [product#1138995, plant#1138996, orderDateTime#1138997, productPlant#1139007, internalUUID#1139009, CASE WHEN isnotnull(timezonecode#1139020) THEN timezonecode#1139020 ELSE UTC END AS timezonecode#1139021]
(596) Project
Arguments: [product#1138995, plant#1138996, orderDateTime#1138997, productPlant#1139007, timezonecode#1139021]
(597) LogicalRelation
Arguments: parquet, [systemId#1139022, internalUUID#1139023, id#1139024, displayId#1139025, name#1139026, baseUnitOfMeasure#1139027, unitOfMeasures#1139028, unitOfMeasureConversions#1139029, productionAspect#1139030, salesAspect#1139031, procurementAspect#1139032, productGroup#1139033], false
(598) Repartition
Arguments: 37, true
(599) Join
Arguments: LeftOuter, (product#1138995 = internalUUID#1139023)
(600) Project
Arguments: [product#1138995, plant#1138996, orderDateTime#1138997, productPlant#1139007, timezonecode#1139021, systemId#1139022, internalUUID#1139023, id#1139024, displayId#1139025, name#1139026, baseUnitOfMeasure#1139027, unitOfMeasures#1139028, unitOfMeasureConversions#1139029, productionAspect#1139030, salesAspect#1139031, procurementAspect#1139032, productGroup#1139033, filter(unitOfMeasureConversions#1139029, lambdafunction((((lambda u#1135738.measurementUnit1.code = productPlant#1139007.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1135738.measurementUnit1.internalRefUUID = productPlant#1139007.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1139027.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1139027.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1139034]
(601) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1139034.quantityNumerator), true, [quantityNumerator#1139035]
(602) Project
Arguments: [product#1138995, plant#1138996, orderDateTime#1138997, productPlant#1139007, timezonecode#1139021, systemId#1139022, internalUUID#1139023, id#1139024, displayId#1139025, name#1139026, baseUnitOfMeasure#1139027, unitOfMeasures#1139028, unitOfMeasureConversions#1139029, productionAspect#1139030, salesAspect#1139031, procurementAspect#1139032, productGroup#1139033, filteredUnitOfMeasureConversions#1139034, quantityNumerator#1139035]
(603) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1139034.quantityDenominator), true, [quantityDenominator#1139036]
(604) Project
Arguments: [product#1138995, plant#1138996, orderDateTime#1138997, productPlant#1139007, timezonecode#1139021, systemId#1139022, internalUUID#1139023, id#1139024, displayId#1139025, name#1139026, baseUnitOfMeasure#1139027, unitOfMeasures#1139028, unitOfMeasureConversions#1139029, productionAspect#1139030, salesAspect#1139031, procurementAspect#1139032, productGroup#1139033, filteredUnitOfMeasureConversions#1139034, quantityNumerator#1139035, quantityDenominator#1139036]
(605) Project
Arguments: [product#1138995, plant#1138996, orderDateTime#1138997, productPlant#1139007, timezonecode#1139021, systemId#1139022, internalUUID#1139023, id#1139024, displayId#1139025, name#1139026, baseUnitOfMeasure#1139027, unitOfMeasures#1139028, unitOfMeasureConversions#1139029, productionAspect#1139030, salesAspect#1139031, procurementAspect#1139032, productGroup#1139033, filteredUnitOfMeasureConversions#1139034, quantityNumerator#1139035, quantityDenominator#1139036, (cast(quantityNumerator#1139035 as double) / cast(quantityDenominator#1139036 as double)) AS outboundUnit#1139037]
(606) Project
Arguments: [product#1138995, plant#1138996, orderDateTime#1138997, productPlant#1139007, timezonecode#1139021, systemId#1139022, internalUUID#1139023, id#1139024, displayId#1139025, name#1139026, baseUnitOfMeasure#1139027, unitOfMeasures#1139028, unitOfMeasureConversions#1139029, productionAspect#1139030, salesAspect#1139031, procurementAspect#1139032, productGroup#1139033, filteredUnitOfMeasureConversions#1139034, quantityNumerator#1139035, quantityDenominator#1139036, CASE WHEN (isnull(outboundUnit#1139037) OR (outboundUnit#1139037 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1139037 END AS outboundUnit#1139038]
(607) Project
Arguments: [product#1138995, plant#1138996, orderDateTime#1138997, productPlant#1139007, timezonecode#1139021, outboundUnit#1139038]
(608) Join
Arguments: Inner, ((plantUuid#1138987 = plant#1138996) AND (productUuid#1138989 = product#1138995))
(609) Filter
Arguments: (calculationDateTime#1138983 <= orderDateTime#1138997)
(610) Project
Arguments: [plantUuid#1138987 AS plant#1139039, productUuid#1138989 AS product#1139040, storageLocId#1138990, calculationDateTime#1138983, quantity#1138992]
(611) Aggregate
Arguments: [plant#1139039, product#1139040, storageLocId#1138990], [plant#1139039, product#1139040, storageLocId#1138990, max(calculationDateTime#1138983) AS max_calc_datetime#1139041]
(612) Join
Arguments: Inner, ((((plant#1138902 <=> plant#1139039) AND (product#1138903 <=> product#1139040)) AND (storageLocId#1138853 <=> storageLocId#1138990)) AND (calculationDateTime#1138846 <=> max_calc_datetime#1139041))
(613) Project
Arguments: [plant#1138902, product#1138903, storageLocId#1138853, calculationDateTime#1138846, quantity#1138855]
(614) Aggregate
Arguments: [product#1138903, plant#1138902], [product#1138903, plant#1138902, sum(quantity#1138855) AS quantitySum#1139042, min(calculationDateTime#1138846) AS minCalculationDateTime#1139043]
(615) Project
Arguments: [product#1138903, plant#1138902, quantitySum#1139042, minCalculationDateTime#1139043, round(quantitySum#1139042, 0) AS roundedQuantitySum#1139044]
(616) Join
Arguments: LeftOuter, ((plant#1138724 = plant#1138902) AND (product#1138723 = product#1138903))
(617) Project
Arguments: [product#1138723, plant#1138724, orderDateTime#1138725, productPlant#1138735, timezonecode#1138749, outboundUnit#1138766, roundedQuantitySum#1139044, minCalculationDateTime#1139043]
(618) Project
Arguments: [product#1138723, plant#1138724, orderDateTime#1138725, productPlant#1138735, timezonecode#1138749, outboundUnit#1138766, roundedQuantitySum#1139044, minCalculationDateTime#1139043, CASE WHEN isnotnull(minCalculationDateTime#1139043) THEN minCalculationDateTime#1139043 ELSE orderDateTime#1138725 END AS stockDatetime#1139045]
(619) Project
Arguments: [product#1138723, plant#1138724, orderDateTime#1138725, productPlant#1138735, timezonecode#1138749, outboundUnit#1138766, roundedQuantitySum#1139044, minCalculationDateTime#1139043, stockDatetime#1139045, CASE WHEN isnotnull(roundedQuantitySum#1139044) THEN array(roundedQuantitySum#1139044) ELSE array(0.0) END AS stockBatchQuantities#1139046]
(620) Project
Arguments: [product#1138723, plant#1138724, orderDateTime#1138725, productPlant#1138735, timezonecode#1138749, outboundUnit#1138766, roundedQuantitySum#1139044, minCalculationDateTime#1139043, stockDatetime#1139045, stockBatchQuantities#1139046, array(2199-01-01 00:00:00) AS stockBatchShelfLifeEndDatetimes#1139047]
(621) Project
Arguments: [product#1138723, plant#1138724, orderDateTime#1138725, productPlant#1138735, timezonecode#1138749, outboundUnit#1138766, roundedQuantitySum#1139044, stockDatetime#1139045, stockBatchQuantities#1139046, stockBatchShelfLifeEndDatetimes#1139047]
(622) Project
Arguments: [product#1138723, plant#1138724, orderDateTime#1138725, productPlant#1138735, timezonecode#1138749, outboundUnit#1138766, stockDatetime#1139045, stockBatchQuantities#1139046, stockBatchShelfLifeEndDatetimes#1139047]
(623) LogicalRelation
Arguments: parquet, [product#1139048, plant#1139049, orderDateTime#1139050, planningStartDateTime#1139051], false
(624) RepartitionByExpression
Arguments: [product#1139048, plant#1139049], 37
(625) Project
Arguments: [product#1139048, plant#1139049, orderDateTime#1139050]
(626) LogicalRelation
Arguments: parquet, [systemId#1139052, internalUUID#1139053, plant#1139054, product#1139055, blockedForReplenishmentStartingFrom#1139056, productionAspect#1139057, salesPlant#1139058, listing#1139059], false
(627) Repartition
Arguments: 37, true
(628) Project
Arguments: [systemId#1139052, internalUUID#1139053, plant#1139054, product#1139055, blockedForReplenishmentStartingFrom#1139056, productionAspect#1139057, salesPlant#1139058, listing#1139059, struct(systemId, systemId#1139052, internalUUID, internalUUID#1139053, plant, plant#1139054, product, product#1139055, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1139056, productionAspect, productionAspect#1139057, salesPlant, salesPlant#1139058, listing, listing#1139059) AS productPlant#1139060]
(629) Project
Arguments: [productPlant#1139060]
(630) Join
Arguments: LeftOuter, ((product#1139048 <=> productPlant#1139060.product.internalRefUUID) AND (plant#1139049 <=> productPlant#1139060.plant.internalRefUUID))
(631) Project
Arguments: [product#1139048, plant#1139049, orderDateTime#1139050, productPlant#1139060]
(632) SubqueryAlias
Arguments: wl
(633) LogicalRelation
Arguments: parquet, [systemId#1139061, internalUUID#1139062, id#1139063, displayId#1139064, name#1139065, category#1139066, companyCode#1139067, address#1139068, mainDistributionChain#1139069, mainPurchasingOrganization#1139070, validPurchasingOrganizations#1139071, productGroup#1139072], false
(634) Repartition
Arguments: 37, true
(635) Project
Arguments: [internalUUID#1139062, address#1139068.timeZone.code AS timezonecode#1139073]
(636) Join
Arguments: LeftOuter, (plant#1139049 <=> internalUUID#1139062)
(637) Project
Arguments: [product#1139048, plant#1139049, orderDateTime#1139050, productPlant#1139060, internalUUID#1139062, CASE WHEN isnotnull(timezonecode#1139073) THEN timezonecode#1139073 ELSE UTC END AS timezonecode#1139074]
(638) Project
Arguments: [product#1139048, plant#1139049, orderDateTime#1139050, productPlant#1139060, timezonecode#1139074]
(639) LogicalRelation
Arguments: parquet, [systemId#1139075, internalUUID#1139076, id#1139077, displayId#1139078, name#1139079, baseUnitOfMeasure#1139080, unitOfMeasures#1139081, unitOfMeasureConversions#1139082, productionAspect#1139083, salesAspect#1139084, procurementAspect#1139085, productGroup#1139086], false
(640) Repartition
Arguments: 37, true
(641) Join
Arguments: LeftOuter, (product#1139048 = internalUUID#1139076)
(642) Project
Arguments: [product#1139048, plant#1139049, orderDateTime#1139050, productPlant#1139060, timezonecode#1139074, systemId#1139075, internalUUID#1139076, id#1139077, displayId#1139078, name#1139079, baseUnitOfMeasure#1139080, unitOfMeasures#1139081, unitOfMeasureConversions#1139082, productionAspect#1139083, salesAspect#1139084, procurementAspect#1139085, productGroup#1139086, filter(unitOfMeasureConversions#1139082, lambdafunction((((lambda u#1135738.measurementUnit1.code = productPlant#1139060.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1135738.measurementUnit1.internalRefUUID = productPlant#1139060.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1139080.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1139080.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1139087]
(643) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1139087.quantityNumerator), true, [quantityNumerator#1139088]
(644) Project
Arguments: [product#1139048, plant#1139049, orderDateTime#1139050, productPlant#1139060, timezonecode#1139074, systemId#1139075, internalUUID#1139076, id#1139077, displayId#1139078, name#1139079, baseUnitOfMeasure#1139080, unitOfMeasures#1139081, unitOfMeasureConversions#1139082, productionAspect#1139083, salesAspect#1139084, procurementAspect#1139085, productGroup#1139086, filteredUnitOfMeasureConversions#1139087, quantityNumerator#1139088]
(645) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1139087.quantityDenominator), true, [quantityDenominator#1139089]
(646) Project
Arguments: [product#1139048, plant#1139049, orderDateTime#1139050, productPlant#1139060, timezonecode#1139074, systemId#1139075, internalUUID#1139076, id#1139077, displayId#1139078, name#1139079, baseUnitOfMeasure#1139080, unitOfMeasures#1139081, unitOfMeasureConversions#1139082, productionAspect#1139083, salesAspect#1139084, procurementAspect#1139085, productGroup#1139086, filteredUnitOfMeasureConversions#1139087, quantityNumerator#1139088, quantityDenominator#1139089]
(647) Project
Arguments: [product#1139048, plant#1139049, orderDateTime#1139050, productPlant#1139060, timezonecode#1139074, systemId#1139075, internalUUID#1139076, id#1139077, displayId#1139078, name#1139079, baseUnitOfMeasure#1139080, unitOfMeasures#1139081, unitOfMeasureConversions#1139082, productionAspect#1139083, salesAspect#1139084, procurementAspect#1139085, productGroup#1139086, filteredUnitOfMeasureConversions#1139087, quantityNumerator#1139088, quantityDenominator#1139089, (cast(quantityNumerator#1139088 as double) / cast(quantityDenominator#1139089 as double)) AS outboundUnit#1139090]
(648) Project
Arguments: [product#1139048, plant#1139049, orderDateTime#1139050, productPlant#1139060, timezonecode#1139074, systemId#1139075, internalUUID#1139076, id#1139077, displayId#1139078, name#1139079, baseUnitOfMeasure#1139080, unitOfMeasures#1139081, unitOfMeasureConversions#1139082, productionAspect#1139083, salesAspect#1139084, procurementAspect#1139085, productGroup#1139086, filteredUnitOfMeasureConversions#1139087, quantityNumerator#1139088, quantityDenominator#1139089, CASE WHEN (isnull(outboundUnit#1139090) OR (outboundUnit#1139090 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1139090 END AS outboundUnit#1139091]
(649) Project
Arguments: [product#1139048, plant#1139049, orderDateTime#1139050, productPlant#1139060, timezonecode#1139074, outboundUnit#1139091]
(650) LogicalRelation
Arguments: parquet, [systemId#1139092, internalUUID#1139093, product#1139094, plant#1139095, calculationDateTime#1139096, stockQuantities#1139097], false
(651) Repartition
Arguments: 37, true
(652) LogicalRelation
Arguments: parquet, [marketUnit#1139098, description#1139099, articleHierarchy#1139100, defaultCurrency#1139101, responsibilities#1139102, replenishmentTypes#1139103, distributionCenters#1139104, assignedArticleHierarchyNodes#1139105, minOrderQtySetting#1139106, listingCheck#1139107, odsSelection#1139108, demandProfiles#1139109, constraintProfiles#1139110, optimizationProfiles#1139111, orderGroupSplitProfiles#1139112, supplierMinimumProfiles#1139113, multipleRestrictionProfiles#1139114, preferredUomSource#1139115, handlingOfUnfulfilledDemands#1139116, negligibleQuantitiesThreshold#1139117, eventtype#1139118, minOrderQtySettingInternal#1139119], false
(653) Repartition
Arguments: 37, true
(654) Filter
Arguments: (marketUnit#1139098 <=> Alert_Test1)
(655) Project
Arguments: [marketUnit#1139098, description#1139099, articleHierarchy#1139100, defaultCurrency#1139101, responsibilities#1139102, replenishmentTypes#1139103, distributionCenters#1139104, assignedArticleHierarchyNodes#1139105, minOrderQtySetting#1139106, listingCheck#1139107, odsSelection#1139108, demandProfiles#1139109, constraintProfiles#1139110, optimizationProfiles#1139111, orderGroupSplitProfiles#1139112, supplierMinimumProfiles#1139113, multipleRestrictionProfiles#1139114, preferredUomSource#1139115, handlingOfUnfulfilledDemands#1139116, negligibleQuantitiesThreshold#1139117, eventtype#1139118, minOrderQtySettingInternal#1139119]
(656) Project
Arguments: [distributionCenters#1139104]
(657) Generate
Arguments: explode(distributionCenters#1139104), false, [distributionCenters#1139120]
(658) Project
Arguments: [distributionCenters#1139120]
(659) Generate
Arguments: explode(distributionCenters#1139120.storageLocations), false, [storageLocations#1139121]
(660) Project
Arguments: [distributionCenters#1139120.id AS plantId#1139122, distributionCenters#1139120.internalRefUUID AS plantUuid#1139123, storageLocations#1139121]
(661) Project
Arguments: [plantId#1139122, plantUuid#1139123, storageLocations#1139121.id AS storageLocId#1139124, storageLocations#1139121.internalRefUUID AS storageLocUuid#1139125]
(662) LogicalRelation
Arguments: parquet, [product#1139126, plant#1139127, orderDateTime#1139128, planningStartDateTime#1139129], false
(663) RepartitionByExpression
Arguments: [product#1139126, plant#1139127], 37
(664) Project
Arguments: [product#1139126, plant#1139127, orderDateTime#1139128]
(665) LogicalRelation
Arguments: parquet, [systemId#1139130, internalUUID#1139131, plant#1139132, product#1139133, blockedForReplenishmentStartingFrom#1139134, productionAspect#1139135, salesPlant#1139136, listing#1139137], false
(666) Repartition
Arguments: 37, true
(667) Project
Arguments: [systemId#1139130, internalUUID#1139131, plant#1139132, product#1139133, blockedForReplenishmentStartingFrom#1139134, productionAspect#1139135, salesPlant#1139136, listing#1139137, struct(systemId, systemId#1139130, internalUUID, internalUUID#1139131, plant, plant#1139132, product, product#1139133, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1139134, productionAspect, productionAspect#1139135, salesPlant, salesPlant#1139136, listing, listing#1139137) AS productPlant#1139138]
(668) Project
Arguments: [productPlant#1139138]
(669) Join
Arguments: LeftOuter, ((product#1139126 <=> productPlant#1139138.product.internalRefUUID) AND (plant#1139127 <=> productPlant#1139138.plant.internalRefUUID))
(670) Project
Arguments: [product#1139126, plant#1139127, orderDateTime#1139128, productPlant#1139138]
(671) SubqueryAlias
Arguments: wl
(672) LogicalRelation
Arguments: parquet, [systemId#1139139, internalUUID#1139140, id#1139141, displayId#1139142, name#1139143, category#1139144, companyCode#1139145, address#1139146, mainDistributionChain#1139147, mainPurchasingOrganization#1139148, validPurchasingOrganizations#1139149, productGroup#1139150], false
(673) Repartition
Arguments: 37, true
(674) Project
Arguments: [internalUUID#1139140, address#1139146.timeZone.code AS timezonecode#1139151]
(675) Join
Arguments: LeftOuter, (plant#1139127 <=> internalUUID#1139140)
(676) Project
Arguments: [product#1139126, plant#1139127, orderDateTime#1139128, productPlant#1139138, internalUUID#1139140, CASE WHEN isnotnull(timezonecode#1139151) THEN timezonecode#1139151 ELSE UTC END AS timezonecode#1139152]
(677) Project
Arguments: [product#1139126, plant#1139127, orderDateTime#1139128, productPlant#1139138, timezonecode#1139152]
(678) LogicalRelation
Arguments: parquet, [systemId#1139153, internalUUID#1139154, id#1139155, displayId#1139156, name#1139157, baseUnitOfMeasure#1139158, unitOfMeasures#1139159, unitOfMeasureConversions#1139160, productionAspect#1139161, salesAspect#1139162, procurementAspect#1139163, productGroup#1139164], false
(679) Repartition
Arguments: 37, true
(680) Join
Arguments: LeftOuter, (product#1139126 = internalUUID#1139154)
(681) Project
Arguments: [product#1139126, plant#1139127, orderDateTime#1139128, productPlant#1139138, timezonecode#1139152, systemId#1139153, internalUUID#1139154, id#1139155, displayId#1139156, name#1139157, baseUnitOfMeasure#1139158, unitOfMeasures#1139159, unitOfMeasureConversions#1139160, productionAspect#1139161, salesAspect#1139162, procurementAspect#1139163, productGroup#1139164, filter(unitOfMeasureConversions#1139160, lambdafunction((((lambda u#1135738.measurementUnit1.code = productPlant#1139138.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1135738.measurementUnit1.internalRefUUID = productPlant#1139138.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1139158.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1139158.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1139165]
(682) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1139165.quantityNumerator), true, [quantityNumerator#1139166]
(683) Project
Arguments: [product#1139126, plant#1139127, orderDateTime#1139128, productPlant#1139138, timezonecode#1139152, systemId#1139153, internalUUID#1139154, id#1139155, displayId#1139156, name#1139157, baseUnitOfMeasure#1139158, unitOfMeasures#1139159, unitOfMeasureConversions#1139160, productionAspect#1139161, salesAspect#1139162, procurementAspect#1139163, productGroup#1139164, filteredUnitOfMeasureConversions#1139165, quantityNumerator#1139166]
(684) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1139165.quantityDenominator), true, [quantityDenominator#1139167]
(685) Project
Arguments: [product#1139126, plant#1139127, orderDateTime#1139128, productPlant#1139138, timezonecode#1139152, systemId#1139153, internalUUID#1139154, id#1139155, displayId#1139156, name#1139157, baseUnitOfMeasure#1139158, unitOfMeasures#1139159, unitOfMeasureConversions#1139160, productionAspect#1139161, salesAspect#1139162, procurementAspect#1139163, productGroup#1139164, filteredUnitOfMeasureConversions#1139165, quantityNumerator#1139166, quantityDenominator#1139167]
(686) Project
Arguments: [product#1139126, plant#1139127, orderDateTime#1139128, productPlant#1139138, timezonecode#1139152, systemId#1139153, internalUUID#1139154, id#1139155, displayId#1139156, name#1139157, baseUnitOfMeasure#1139158, unitOfMeasures#1139159, unitOfMeasureConversions#1139160, productionAspect#1139161, salesAspect#1139162, procurementAspect#1139163, productGroup#1139164, filteredUnitOfMeasureConversions#1139165, quantityNumerator#1139166, quantityDenominator#1139167, (cast(quantityNumerator#1139166 as double) / cast(quantityDenominator#1139167 as double)) AS outboundUnit#1139168]
(687) Project
Arguments: [product#1139126, plant#1139127, orderDateTime#1139128, productPlant#1139138, timezonecode#1139152, systemId#1139153, internalUUID#1139154, id#1139155, displayId#1139156, name#1139157, baseUnitOfMeasure#1139158, unitOfMeasures#1139159, unitOfMeasureConversions#1139160, productionAspect#1139161, salesAspect#1139162, procurementAspect#1139163, productGroup#1139164, filteredUnitOfMeasureConversions#1139165, quantityNumerator#1139166, quantityDenominator#1139167, CASE WHEN (isnull(outboundUnit#1139168) OR (outboundUnit#1139168 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1139168 END AS outboundUnit#1139169]
(688) Project
Arguments: [product#1139126, plant#1139127, orderDateTime#1139128, productPlant#1139138, timezonecode#1139152, outboundUnit#1139169]
(689) Project
Arguments: [plant#1139127]
(690) Deduplicate
Arguments: [plant#1139127]
(691) Join
Arguments: Inner, (plantUuid#1139123 = plant#1139127)
(692) Project
Arguments: [plantId#1139122, plantUuid#1139123, storageLocId#1139124, storageLocUuid#1139125]
(693) Join
Arguments: Inner, (plant#1139095.internalRefUUID <=> plantUuid#1139123)
(694) Generate
Arguments: explode(filter(stockQuantities#1139097, lambdafunction(((lambda x#1135796.storageLocation.internalRefUuid = storageLocUuid#1139125) AND (lambda x#1135796.storageLocation.Id = storageLocId#1139124)), lambda x#1135796, false))), false, [stockQuantity#1139170]
(695) Project
Arguments: [systemId#1139092, internalUUID#1139093, product#1139094, plant#1139095, calculationDateTime#1139096, stockQuantities#1139097, plantId#1139122, plantUuid#1139123, storageLocId#1139124, storageLocUuid#1139125, stockQuantity#1139170]
(696) Aggregate
Arguments: [plantUuid#1139123, internalUUID#1139093, plant#1139095, product#1139094, systemId#1139092], [plantUuid#1139123, internalUUID#1139093, plant#1139095, product#1139094, systemId#1139092, first(calculationDateTime#1139096, false) AS calculationDateTime#1139171, collect_list(stockQuantity#1139170, 0, 0) AS stockQuantities#1139172]
(697) Project
Arguments: [systemId#1139092, internalUUID#1139093, product#1139094, plant#1139095, calculationDateTime#1139171, stockQuantities#1139172]
(698) Generate
Arguments: explode(stockQuantities#1139172), false, [stockQuantity#1139173]
(699) Project
Arguments: [systemId#1139092, internalUUID#1139093, product#1139094, plant#1139095, calculationDateTime#1139171, stockQuantities#1139172, stockQuantity#1139173]
(700) Project
Arguments: [plant#1139095.id AS plant#1139174, plant#1139095.internalRefUUID AS plantUuid#1139175, product#1139094.id AS product#1139176, product#1139094.internalRefUUID AS productUuid#1139177, calculationDateTime#1139171, stockQuantity#1139173.storagelocation.id AS storageLocId#1139178, stockQuantity#1139173.storagelocation.internalRefUUID AS storageLocUuid#1139179, stockQuantity#1139173.quantity.measure AS quantity#1139180, stockQuantity#1139173.specialStockIndicator.code AS specialStockIndicator#1139181, stockQuantity#1139173.stockType.code AS stockType#1139182]
(701) Filter
Arguments: ((specialStockIndicator#1139181 = ) AND (stockType#1139182 = 01))
(702) LogicalRelation
Arguments: parquet, [product#1139183, plant#1139184, orderDateTime#1139185, planningStartDateTime#1139186], false
(703) RepartitionByExpression
Arguments: [product#1139183, plant#1139184], 37
(704) Project
Arguments: [product#1139183, plant#1139184, orderDateTime#1139185]
(705) LogicalRelation
Arguments: parquet, [systemId#1139187, internalUUID#1139188, plant#1139189, product#1139190, blockedForReplenishmentStartingFrom#1139191, productionAspect#1139192, salesPlant#1139193, listing#1139194], false
(706) Repartition
Arguments: 37, true
(707) Project
Arguments: [systemId#1139187, internalUUID#1139188, plant#1139189, product#1139190, blockedForReplenishmentStartingFrom#1139191, productionAspect#1139192, salesPlant#1139193, listing#1139194, struct(systemId, systemId#1139187, internalUUID, internalUUID#1139188, plant, plant#1139189, product, product#1139190, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1139191, productionAspect, productionAspect#1139192, salesPlant, salesPlant#1139193, listing, listing#1139194) AS productPlant#1139195]
(708) Project
Arguments: [productPlant#1139195]
(709) Join
Arguments: LeftOuter, ((product#1139183 <=> productPlant#1139195.product.internalRefUUID) AND (plant#1139184 <=> productPlant#1139195.plant.internalRefUUID))
(710) Project
Arguments: [product#1139183, plant#1139184, orderDateTime#1139185, productPlant#1139195]
(711) SubqueryAlias
Arguments: wl
(712) LogicalRelation
Arguments: parquet, [systemId#1139196, internalUUID#1139197, id#1139198, displayId#1139199, name#1139200, category#1139201, companyCode#1139202, address#1139203, mainDistributionChain#1139204, mainPurchasingOrganization#1139205, validPurchasingOrganizations#1139206, productGroup#1139207], false
(713) Repartition
Arguments: 37, true
(714) Project
Arguments: [internalUUID#1139197, address#1139203.timeZone.code AS timezonecode#1139208]
(715) Join
Arguments: LeftOuter, (plant#1139184 <=> internalUUID#1139197)
(716) Project
Arguments: [product#1139183, plant#1139184, orderDateTime#1139185, productPlant#1139195, internalUUID#1139197, CASE WHEN isnotnull(timezonecode#1139208) THEN timezonecode#1139208 ELSE UTC END AS timezonecode#1139209]
(717) Project
Arguments: [product#1139183, plant#1139184, orderDateTime#1139185, productPlant#1139195, timezonecode#1139209]
(718) LogicalRelation
Arguments: parquet, [systemId#1139210, internalUUID#1139211, id#1139212, displayId#1139213, name#1139214, baseUnitOfMeasure#1139215, unitOfMeasures#1139216, unitOfMeasureConversions#1139217, productionAspect#1139218, salesAspect#1139219, procurementAspect#1139220, productGroup#1139221], false
(719) Repartition
Arguments: 37, true
(720) Join
Arguments: LeftOuter, (product#1139183 = internalUUID#1139211)
(721) Project
Arguments: [product#1139183, plant#1139184, orderDateTime#1139185, productPlant#1139195, timezonecode#1139209, systemId#1139210, internalUUID#1139211, id#1139212, displayId#1139213, name#1139214, baseUnitOfMeasure#1139215, unitOfMeasures#1139216, unitOfMeasureConversions#1139217, productionAspect#1139218, salesAspect#1139219, procurementAspect#1139220, productGroup#1139221, filter(unitOfMeasureConversions#1139217, lambdafunction((((lambda u#1135738.measurementUnit1.code = productPlant#1139195.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1135738.measurementUnit1.internalRefUUID = productPlant#1139195.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1139215.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1139215.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1139222]
(722) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1139222.quantityNumerator), true, [quantityNumerator#1139223]
(723) Project
Arguments: [product#1139183, plant#1139184, orderDateTime#1139185, productPlant#1139195, timezonecode#1139209, systemId#1139210, internalUUID#1139211, id#1139212, displayId#1139213, name#1139214, baseUnitOfMeasure#1139215, unitOfMeasures#1139216, unitOfMeasureConversions#1139217, productionAspect#1139218, salesAspect#1139219, procurementAspect#1139220, productGroup#1139221, filteredUnitOfMeasureConversions#1139222, quantityNumerator#1139223]
(724) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1139222.quantityDenominator), true, [quantityDenominator#1139224]
(725) Project
Arguments: [product#1139183, plant#1139184, orderDateTime#1139185, productPlant#1139195, timezonecode#1139209, systemId#1139210, internalUUID#1139211, id#1139212, displayId#1139213, name#1139214, baseUnitOfMeasure#1139215, unitOfMeasures#1139216, unitOfMeasureConversions#1139217, productionAspect#1139218, salesAspect#1139219, procurementAspect#1139220, productGroup#1139221, filteredUnitOfMeasureConversions#1139222, quantityNumerator#1139223, quantityDenominator#1139224]
(726) Project
Arguments: [product#1139183, plant#1139184, orderDateTime#1139185, productPlant#1139195, timezonecode#1139209, systemId#1139210, internalUUID#1139211, id#1139212, displayId#1139213, name#1139214, baseUnitOfMeasure#1139215, unitOfMeasures#1139216, unitOfMeasureConversions#1139217, productionAspect#1139218, salesAspect#1139219, procurementAspect#1139220, productGroup#1139221, filteredUnitOfMeasureConversions#1139222, quantityNumerator#1139223, quantityDenominator#1139224, (cast(quantityNumerator#1139223 as double) / cast(quantityDenominator#1139224 as double)) AS outboundUnit#1139225]
(727) Project
Arguments: [product#1139183, plant#1139184, orderDateTime#1139185, productPlant#1139195, timezonecode#1139209, systemId#1139210, internalUUID#1139211, id#1139212, displayId#1139213, name#1139214, baseUnitOfMeasure#1139215, unitOfMeasures#1139216, unitOfMeasureConversions#1139217, productionAspect#1139218, salesAspect#1139219, procurementAspect#1139220, productGroup#1139221, filteredUnitOfMeasureConversions#1139222, quantityNumerator#1139223, quantityDenominator#1139224, CASE WHEN (isnull(outboundUnit#1139225) OR (outboundUnit#1139225 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1139225 END AS outboundUnit#1139226]
(728) Project
Arguments: [product#1139183, plant#1139184, orderDateTime#1139185, productPlant#1139195, timezonecode#1139209, outboundUnit#1139226]
(729) Join
Arguments: Inner, ((plantUuid#1139175 = plant#1139184) AND (productUuid#1139177 = product#1139183))
(730) Filter
Arguments: (calculationDateTime#1139171 <= orderDateTime#1139185)
(731) Project
Arguments: [plantUuid#1139175 AS plant#1139227, productUuid#1139177 AS product#1139228, storageLocId#1139178, calculationDateTime#1139171, quantity#1139180]
(732) LogicalRelation
Arguments: parquet, [systemId#1139229, internalUUID#1139230, product#1139231, plant#1139232, calculationDateTime#1139233, stockQuantities#1139234], false
(733) Repartition
Arguments: 37, true
(734) LogicalRelation
Arguments: parquet, [marketUnit#1139235, description#1139236, articleHierarchy#1139237, defaultCurrency#1139238, responsibilities#1139239, replenishmentTypes#1139240, distributionCenters#1139241, assignedArticleHierarchyNodes#1139242, minOrderQtySetting#1139243, listingCheck#1139244, odsSelection#1139245, demandProfiles#1139246, constraintProfiles#1139247, optimizationProfiles#1139248, orderGroupSplitProfiles#1139249, supplierMinimumProfiles#1139250, multipleRestrictionProfiles#1139251, preferredUomSource#1139252, handlingOfUnfulfilledDemands#1139253, negligibleQuantitiesThreshold#1139254, eventtype#1139255, minOrderQtySettingInternal#1139256], false
(735) Repartition
Arguments: 37, true
(736) Filter
Arguments: (marketUnit#1139235 <=> Alert_Test1)
(737) Project
Arguments: [marketUnit#1139235, description#1139236, articleHierarchy#1139237, defaultCurrency#1139238, responsibilities#1139239, replenishmentTypes#1139240, distributionCenters#1139241, assignedArticleHierarchyNodes#1139242, minOrderQtySetting#1139243, listingCheck#1139244, odsSelection#1139245, demandProfiles#1139246, constraintProfiles#1139247, optimizationProfiles#1139248, orderGroupSplitProfiles#1139249, supplierMinimumProfiles#1139250, multipleRestrictionProfiles#1139251, preferredUomSource#1139252, handlingOfUnfulfilledDemands#1139253, negligibleQuantitiesThreshold#1139254, eventtype#1139255, minOrderQtySettingInternal#1139256]
(738) Project
Arguments: [distributionCenters#1139241]
(739) Generate
Arguments: explode(distributionCenters#1139241), false, [distributionCenters#1139257]
(740) Project
Arguments: [distributionCenters#1139257]
(741) Generate
Arguments: explode(distributionCenters#1139257.storageLocations), false, [storageLocations#1139258]
(742) Project
Arguments: [distributionCenters#1139257.id AS plantId#1139259, distributionCenters#1139257.internalRefUUID AS plantUuid#1139260, storageLocations#1139258]
(743) Project
Arguments: [plantId#1139259, plantUuid#1139260, storageLocations#1139258.id AS storageLocId#1139261, storageLocations#1139258.internalRefUUID AS storageLocUuid#1139262]
(744) LogicalRelation
Arguments: parquet, [product#1139263, plant#1139264, orderDateTime#1139265, planningStartDateTime#1139266], false
(745) RepartitionByExpression
Arguments: [product#1139263, plant#1139264], 37
(746) Project
Arguments: [product#1139263, plant#1139264, orderDateTime#1139265]
(747) LogicalRelation
Arguments: parquet, [systemId#1139267, internalUUID#1139268, plant#1139269, product#1139270, blockedForReplenishmentStartingFrom#1139271, productionAspect#1139272, salesPlant#1139273, listing#1139274], false
(748) Repartition
Arguments: 37, true
(749) Project
Arguments: [systemId#1139267, internalUUID#1139268, plant#1139269, product#1139270, blockedForReplenishmentStartingFrom#1139271, productionAspect#1139272, salesPlant#1139273, listing#1139274, struct(systemId, systemId#1139267, internalUUID, internalUUID#1139268, plant, plant#1139269, product, product#1139270, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1139271, productionAspect, productionAspect#1139272, salesPlant, salesPlant#1139273, listing, listing#1139274) AS productPlant#1139275]
(750) Project
Arguments: [productPlant#1139275]
(751) Join
Arguments: LeftOuter, ((product#1139263 <=> productPlant#1139275.product.internalRefUUID) AND (plant#1139264 <=> productPlant#1139275.plant.internalRefUUID))
(752) Project
Arguments: [product#1139263, plant#1139264, orderDateTime#1139265, productPlant#1139275]
(753) SubqueryAlias
Arguments: wl
(754) LogicalRelation
Arguments: parquet, [systemId#1139276, internalUUID#1139277, id#1139278, displayId#1139279, name#1139280, category#1139281, companyCode#1139282, address#1139283, mainDistributionChain#1139284, mainPurchasingOrganization#1139285, validPurchasingOrganizations#1139286, productGroup#1139287], false
(755) Repartition
Arguments: 37, true
(756) Project
Arguments: [internalUUID#1139277, address#1139283.timeZone.code AS timezonecode#1139288]
(757) Join
Arguments: LeftOuter, (plant#1139264 <=> internalUUID#1139277)
(758) Project
Arguments: [product#1139263, plant#1139264, orderDateTime#1139265, productPlant#1139275, internalUUID#1139277, CASE WHEN isnotnull(timezonecode#1139288) THEN timezonecode#1139288 ELSE UTC END AS timezonecode#1139289]
(759) Project
Arguments: [product#1139263, plant#1139264, orderDateTime#1139265, productPlant#1139275, timezonecode#1139289]
(760) LogicalRelation
Arguments: parquet, [systemId#1139290, internalUUID#1139291, id#1139292, displayId#1139293, name#1139294, baseUnitOfMeasure#1139295, unitOfMeasures#1139296, unitOfMeasureConversions#1139297, productionAspect#1139298, salesAspect#1139299, procurementAspect#1139300, productGroup#1139301], false
(761) Repartition
Arguments: 37, true
(762) Join
Arguments: LeftOuter, (product#1139263 = internalUUID#1139291)
(763) Project
Arguments: [product#1139263, plant#1139264, orderDateTime#1139265, productPlant#1139275, timezonecode#1139289, systemId#1139290, internalUUID#1139291, id#1139292, displayId#1139293, name#1139294, baseUnitOfMeasure#1139295, unitOfMeasures#1139296, unitOfMeasureConversions#1139297, productionAspect#1139298, salesAspect#1139299, procurementAspect#1139300, productGroup#1139301, filter(unitOfMeasureConversions#1139297, lambdafunction((((lambda u#1135738.measurementUnit1.code = productPlant#1139275.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1135738.measurementUnit1.internalRefUUID = productPlant#1139275.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1139295.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1139295.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1139302]
(764) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1139302.quantityNumerator), true, [quantityNumerator#1139303]
(765) Project
Arguments: [product#1139263, plant#1139264, orderDateTime#1139265, productPlant#1139275, timezonecode#1139289, systemId#1139290, internalUUID#1139291, id#1139292, displayId#1139293, name#1139294, baseUnitOfMeasure#1139295, unitOfMeasures#1139296, unitOfMeasureConversions#1139297, productionAspect#1139298, salesAspect#1139299, procurementAspect#1139300, productGroup#1139301, filteredUnitOfMeasureConversions#1139302, quantityNumerator#1139303]
(766) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1139302.quantityDenominator), true, [quantityDenominator#1139304]
(767) Project
Arguments: [product#1139263, plant#1139264, orderDateTime#1139265, productPlant#1139275, timezonecode#1139289, systemId#1139290, internalUUID#1139291, id#1139292, displayId#1139293, name#1139294, baseUnitOfMeasure#1139295, unitOfMeasures#1139296, unitOfMeasureConversions#1139297, productionAspect#1139298, salesAspect#1139299, procurementAspect#1139300, productGroup#1139301, filteredUnitOfMeasureConversions#1139302, quantityNumerator#1139303, quantityDenominator#1139304]
(768) Project
Arguments: [product#1139263, plant#1139264, orderDateTime#1139265, productPlant#1139275, timezonecode#1139289, systemId#1139290, internalUUID#1139291, id#1139292, displayId#1139293, name#1139294, baseUnitOfMeasure#1139295, unitOfMeasures#1139296, unitOfMeasureConversions#1139297, productionAspect#1139298, salesAspect#1139299, procurementAspect#1139300, productGroup#1139301, filteredUnitOfMeasureConversions#1139302, quantityNumerator#1139303, quantityDenominator#1139304, (cast(quantityNumerator#1139303 as double) / cast(quantityDenominator#1139304 as double)) AS outboundUnit#1139305]
(769) Project
Arguments: [product#1139263, plant#1139264, orderDateTime#1139265, productPlant#1139275, timezonecode#1139289, systemId#1139290, internalUUID#1139291, id#1139292, displayId#1139293, name#1139294, baseUnitOfMeasure#1139295, unitOfMeasures#1139296, unitOfMeasureConversions#1139297, productionAspect#1139298, salesAspect#1139299, procurementAspect#1139300, productGroup#1139301, filteredUnitOfMeasureConversions#1139302, quantityNumerator#1139303, quantityDenominator#1139304, CASE WHEN (isnull(outboundUnit#1139305) OR (outboundUnit#1139305 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1139305 END AS outboundUnit#1139306]
(770) Project
Arguments: [product#1139263, plant#1139264, orderDateTime#1139265, productPlant#1139275, timezonecode#1139289, outboundUnit#1139306]
(771) Project
Arguments: [plant#1139264]
(772) Deduplicate
Arguments: [plant#1139264]
(773) Join
Arguments: Inner, (plantUuid#1139260 = plant#1139264)
(774) Project
Arguments: [plantId#1139259, plantUuid#1139260, storageLocId#1139261, storageLocUuid#1139262]
(775) Join
Arguments: Inner, (plant#1139232.internalRefUUID <=> plantUuid#1139260)
(776) Generate
Arguments: explode(filter(stockQuantities#1139234, lambdafunction(((lambda x#1135796.storageLocation.internalRefUuid = storageLocUuid#1139262) AND (lambda x#1135796.storageLocation.Id = storageLocId#1139261)), lambda x#1135796, false))), false, [stockQuantity#1139307]
(777) Project
Arguments: [systemId#1139229, internalUUID#1139230, product#1139231, plant#1139232, calculationDateTime#1139233, stockQuantities#1139234, plantId#1139259, plantUuid#1139260, storageLocId#1139261, storageLocUuid#1139262, stockQuantity#1139307]
(778) Aggregate
Arguments: [plantUuid#1139260, internalUUID#1139230, plant#1139232, product#1139231, systemId#1139229], [plantUuid#1139260, internalUUID#1139230, plant#1139232, product#1139231, systemId#1139229, first(calculationDateTime#1139233, false) AS calculationDateTime#1139308, collect_list(stockQuantity#1139307, 0, 0) AS stockQuantities#1139309]
(779) Project
Arguments: [systemId#1139229, internalUUID#1139230, product#1139231, plant#1139232, calculationDateTime#1139308, stockQuantities#1139309]
(780) Generate
Arguments: explode(stockQuantities#1139309), false, [stockQuantity#1139310]
(781) Project
Arguments: [systemId#1139229, internalUUID#1139230, product#1139231, plant#1139232, calculationDateTime#1139308, stockQuantities#1139309, stockQuantity#1139310]
(782) Project
Arguments: [plant#1139232.id AS plant#1139311, plant#1139232.internalRefUUID AS plantUuid#1139312, product#1139231.id AS product#1139313, product#1139231.internalRefUUID AS productUuid#1139314, calculationDateTime#1139308, stockQuantity#1139310.storagelocation.id AS storageLocId#1139315, stockQuantity#1139310.storagelocation.internalRefUUID AS storageLocUuid#1139316, stockQuantity#1139310.quantity.measure AS quantity#1139317, stockQuantity#1139310.specialStockIndicator.code AS specialStockIndicator#1139318, stockQuantity#1139310.stockType.code AS stockType#1139319]
(783) Filter
Arguments: ((specialStockIndicator#1139318 = ) AND (stockType#1139319 = 01))
(784) LogicalRelation
Arguments: parquet, [product#1139320, plant#1139321, orderDateTime#1139322, planningStartDateTime#1139323], false
(785) RepartitionByExpression
Arguments: [product#1139320, plant#1139321], 37
(786) Project
Arguments: [product#1139320, plant#1139321, orderDateTime#1139322]
(787) LogicalRelation
Arguments: parquet, [systemId#1139324, internalUUID#1139325, plant#1139326, product#1139327, blockedForReplenishmentStartingFrom#1139328, productionAspect#1139329, salesPlant#1139330, listing#1139331], false
(788) Repartition
Arguments: 37, true
(789) Project
Arguments: [systemId#1139324, internalUUID#1139325, plant#1139326, product#1139327, blockedForReplenishmentStartingFrom#1139328, productionAspect#1139329, salesPlant#1139330, listing#1139331, struct(systemId, systemId#1139324, internalUUID, internalUUID#1139325, plant, plant#1139326, product, product#1139327, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1139328, productionAspect, productionAspect#1139329, salesPlant, salesPlant#1139330, listing, listing#1139331) AS productPlant#1139332]
(790) Project
Arguments: [productPlant#1139332]
(791) Join
Arguments: LeftOuter, ((product#1139320 <=> productPlant#1139332.product.internalRefUUID) AND (plant#1139321 <=> productPlant#1139332.plant.internalRefUUID))
(792) Project
Arguments: [product#1139320, plant#1139321, orderDateTime#1139322, productPlant#1139332]
(793) SubqueryAlias
Arguments: wl
(794) LogicalRelation
Arguments: parquet, [systemId#1139333, internalUUID#1139334, id#1139335, displayId#1139336, name#1139337, category#1139338, companyCode#1139339, address#1139340, mainDistributionChain#1139341, mainPurchasingOrganization#1139342, validPurchasingOrganizations#1139343, productGroup#1139344], false
(795) Repartition
Arguments: 37, true
(796) Project
Arguments: [internalUUID#1139334, address#1139340.timeZone.code AS timezonecode#1139345]
(797) Join
Arguments: LeftOuter, (plant#1139321 <=> internalUUID#1139334)
(798) Project
Arguments: [product#1139320, plant#1139321, orderDateTime#1139322, productPlant#1139332, internalUUID#1139334, CASE WHEN isnotnull(timezonecode#1139345) THEN timezonecode#1139345 ELSE UTC END AS timezonecode#1139346]
(799) Project
Arguments: [product#1139320, plant#1139321, orderDateTime#1139322, productPlant#1139332, timezonecode#1139346]
(800) LogicalRelation
Arguments: parquet, [systemId#1139347, internalUUID#1139348, id#1139349, displayId#1139350, name#1139351, baseUnitOfMeasure#1139352, unitOfMeasures#1139353, unitOfMeasureConversions#1139354, productionAspect#1139355, salesAspect#1139356, procurementAspect#1139357, productGroup#1139358], false
(801) Repartition
Arguments: 37, true
(802) Join
Arguments: LeftOuter, (product#1139320 = internalUUID#1139348)
(803) Project
Arguments: [product#1139320, plant#1139321, orderDateTime#1139322, productPlant#1139332, timezonecode#1139346, systemId#1139347, internalUUID#1139348, id#1139349, displayId#1139350, name#1139351, baseUnitOfMeasure#1139352, unitOfMeasures#1139353, unitOfMeasureConversions#1139354, productionAspect#1139355, salesAspect#1139356, procurementAspect#1139357, productGroup#1139358, filter(unitOfMeasureConversions#1139354, lambdafunction((((lambda u#1135738.measurementUnit1.code = productPlant#1139332.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1135738.measurementUnit1.internalRefUUID = productPlant#1139332.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1139352.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1139352.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1139359]
(804) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1139359.quantityNumerator), true, [quantityNumerator#1139360]
(805) Project
Arguments: [product#1139320, plant#1139321, orderDateTime#1139322, productPlant#1139332, timezonecode#1139346, systemId#1139347, internalUUID#1139348, id#1139349, displayId#1139350, name#1139351, baseUnitOfMeasure#1139352, unitOfMeasures#1139353, unitOfMeasureConversions#1139354, productionAspect#1139355, salesAspect#1139356, procurementAspect#1139357, productGroup#1139358, filteredUnitOfMeasureConversions#1139359, quantityNumerator#1139360]
(806) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1139359.quantityDenominator), true, [quantityDenominator#1139361]
(807) Project
Arguments: [product#1139320, plant#1139321, orderDateTime#1139322, productPlant#1139332, timezonecode#1139346, systemId#1139347, internalUUID#1139348, id#1139349, displayId#1139350, name#1139351, baseUnitOfMeasure#1139352, unitOfMeasures#1139353, unitOfMeasureConversions#1139354, productionAspect#1139355, salesAspect#1139356, procurementAspect#1139357, productGroup#1139358, filteredUnitOfMeasureConversions#1139359, quantityNumerator#1139360, quantityDenominator#1139361]
(808) Project
Arguments: [product#1139320, plant#1139321, orderDateTime#1139322, productPlant#1139332, timezonecode#1139346, systemId#1139347, internalUUID#1139348, id#1139349, displayId#1139350, name#1139351, baseUnitOfMeasure#1139352, unitOfMeasures#1139353, unitOfMeasureConversions#1139354, productionAspect#1139355, salesAspect#1139356, procurementAspect#1139357, productGroup#1139358, filteredUnitOfMeasureConversions#1139359, quantityNumerator#1139360, quantityDenominator#1139361, (cast(quantityNumerator#1139360 as double) / cast(quantityDenominator#1139361 as double)) AS outboundUnit#1139362]
(809) Project
Arguments: [product#1139320, plant#1139321, orderDateTime#1139322, productPlant#1139332, timezonecode#1139346, systemId#1139347, internalUUID#1139348, id#1139349, displayId#1139350, name#1139351, baseUnitOfMeasure#1139352, unitOfMeasures#1139353, unitOfMeasureConversions#1139354, productionAspect#1139355, salesAspect#1139356, procurementAspect#1139357, productGroup#1139358, filteredUnitOfMeasureConversions#1139359, quantityNumerator#1139360, quantityDenominator#1139361, CASE WHEN (isnull(outboundUnit#1139362) OR (outboundUnit#1139362 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1139362 END AS outboundUnit#1139363]
(810) Project
Arguments: [product#1139320, plant#1139321, orderDateTime#1139322, productPlant#1139332, timezonecode#1139346, outboundUnit#1139363]
(811) Join
Arguments: Inner, ((plantUuid#1139312 = plant#1139321) AND (productUuid#1139314 = product#1139320))
(812) Filter
Arguments: (calculationDateTime#1139308 <= orderDateTime#1139322)
(813) Project
Arguments: [plantUuid#1139312 AS plant#1139364, productUuid#1139314 AS product#1139365, storageLocId#1139315, calculationDateTime#1139308, quantity#1139317]
(814) Aggregate
Arguments: [plant#1139364, product#1139365, storageLocId#1139315], [plant#1139364, product#1139365, storageLocId#1139315, max(calculationDateTime#1139308) AS max_calc_datetime#1139366]
(815) Join
Arguments: Inner, ((((plant#1139227 <=> plant#1139364) AND (product#1139228 <=> product#1139365)) AND (storageLocId#1139178 <=> storageLocId#1139315)) AND (calculationDateTime#1139171 <=> max_calc_datetime#1139366))
(816) Project
Arguments: [plant#1139227, product#1139228, storageLocId#1139178, calculationDateTime#1139171, quantity#1139180]
(817) Aggregate
Arguments: [product#1139228, plant#1139227], [product#1139228, plant#1139227, sum(quantity#1139180) AS quantitySum#1139367, min(calculationDateTime#1139171) AS minCalculationDateTime#1139368]
(818) Project
Arguments: [product#1139228, plant#1139227, quantitySum#1139367, minCalculationDateTime#1139368, round(quantitySum#1139367, 0) AS roundedQuantitySum#1139369]
(819) Join
Arguments: LeftOuter, ((plant#1139049 = plant#1139227) AND (product#1139048 = product#1139228))
(820) Project
Arguments: [product#1139048, plant#1139049, orderDateTime#1139050, productPlant#1139060, timezonecode#1139074, outboundUnit#1139091, roundedQuantitySum#1139369, minCalculationDateTime#1139368]
(821) Project
Arguments: [product#1139048, plant#1139049, orderDateTime#1139050, productPlant#1139060, timezonecode#1139074, outboundUnit#1139091, roundedQuantitySum#1139369, minCalculationDateTime#1139368, CASE WHEN isnotnull(minCalculationDateTime#1139368) THEN minCalculationDateTime#1139368 ELSE orderDateTime#1139050 END AS stockDatetime#1139370]
(822) Project
Arguments: [product#1139048, plant#1139049, orderDateTime#1139050, productPlant#1139060, timezonecode#1139074, outboundUnit#1139091, roundedQuantitySum#1139369, minCalculationDateTime#1139368, stockDatetime#1139370, CASE WHEN isnotnull(roundedQuantitySum#1139369) THEN array(roundedQuantitySum#1139369) ELSE array(0.0) END AS stockBatchQuantities#1139371]
(823) Project
Arguments: [product#1139048, plant#1139049, orderDateTime#1139050, productPlant#1139060, timezonecode#1139074, outboundUnit#1139091, roundedQuantitySum#1139369, minCalculationDateTime#1139368, stockDatetime#1139370, stockBatchQuantities#1139371, array(2199-01-01 00:00:00) AS stockBatchShelfLifeEndDatetimes#1139372]
(824) Project
Arguments: [product#1139048, plant#1139049, orderDateTime#1139050, productPlant#1139060, timezonecode#1139074, outboundUnit#1139091, roundedQuantitySum#1139369, stockDatetime#1139370, stockBatchQuantities#1139371, stockBatchShelfLifeEndDatetimes#1139372]
(825) Project
Arguments: [product#1139048, plant#1139049, orderDateTime#1139050, productPlant#1139060, timezonecode#1139074, outboundUnit#1139091, stockDatetime#1139370, stockBatchQuantities#1139371, stockBatchShelfLifeEndDatetimes#1139372]
(826) LogicalRelation
Arguments: parquet, [product#1139373, plant#1139374, demandChannel#1139375, demandStream#1139376, considerVariance#1139377, demandTimeBuckets#1139378, demandPointInTimeStart#1139379, demandPointInTimeEnd#1139380, demandPointInTime#1139381], false
(827) Join
Arguments: LeftOuter, ((product#1139048 = product#1139373) AND (plant#1139049 = plant#1139374))
(828) Project
Arguments: [product#1139048, plant#1139049, orderDateTime#1139050, productPlant#1139060, timezonecode#1139074, outboundUnit#1139091, stockDatetime#1139370, stockBatchQuantities#1139371, stockBatchShelfLifeEndDatetimes#1139372, demandChannel#1139375, demandStream#1139376, considerVariance#1139377, demandTimeBuckets#1139378, demandPointInTimeStart#1139379, demandPointInTimeEnd#1139380, demandPointInTime#1139381, product#1139373, plant#1139374]
(829) Project
Arguments: [product#1139048, plant#1139049, orderDateTime#1139050, productPlant#1139060, timezonecode#1139074, outboundUnit#1139091, stockDatetime#1139370, stockBatchQuantities#1139371, stockBatchShelfLifeEndDatetimes#1139372, demandChannel#1139375, demandStream#1139376, considerVariance#1139377, demandTimeBuckets#1139378, demandPointInTimeStart#1139379, demandPointInTimeEnd#1139380, demandPointInTime#1139381, CASE WHEN isnotnull(product#1139373) THEN struct(demandChannel, demandChannel#1139375, demandStream, demandStream#1139376, considerVariance, considerVariance#1139377, demandTimeBuckets, demandTimeBuckets#1139378, demandPointInTimeStart, demandPointInTimeStart#1139379, demandPointInTimeEnd, demandPointInTimeEnd#1139380, demandPointInTime, demandPointInTime#1139381) ELSE cast(null as struct<demandChannel:string,demandStream:string,considerVariance:boolean,demandTimeBuckets:array<struct<demandStartDateTime:timestamp,demandQuantity:double,demandVariance:double>>,demandPointInTimeStart:timestamp,demandPointInTimeEnd:timestamp,demandPointInTime:array<struct<demandDateTime:timestamp,demandQuantity:double,demandVariance:double>>>) END AS rawDemands#1139382]
(830) Aggregate
Arguments: [product#1139048, plant#1139049, orderDateTime#1139050, productPlant#1139060, timezonecode#1139074, outboundUnit#1139091, stockDatetime#1139370, stockBatchQuantities#1139371, stockBatchShelfLifeEndDatetimes#1139372], [product#1139048, plant#1139049, orderDateTime#1139050, productPlant#1139060, timezonecode#1139074, outboundUnit#1139091, stockDatetime#1139370, stockBatchQuantities#1139371, stockBatchShelfLifeEndDatetimes#1139372, collect_list(rawDemands#1139382, 0, 0) AS rawDemands#1139383]
(831) DeserializeToObject
Arguments: createexternalrow(invoke(product#1139048.toString()), invoke(plant#1139049.toString()), static_invoke(DateTimeUtils.toJavaTimestamp(orderDateTime#1139050)), if (isnull(productPlant#1139060)) null else createexternalrow(invoke(productPlant#1139060.systemId.toString()), invoke(productPlant#1139060.internalUUID.toString()), if (isnull(productPlant#1139060.plant)) null else createexternalrow(invoke(productPlant#1139060.plant.internalRefUUID.toString()), invoke(productPlant#1139060.plant.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), if (isnull(productPlant#1139060.product)) null else createexternalrow(invoke(productPlant#1139060.product.internalRefUUID.toString()), invoke(productPlant#1139060.product.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(DateTimeUtils.toJavaDate(productPlant#1139060.blockedForReplenishmentStartingFrom)), if (isnull(productPlant#1139060.productionAspect)) null else createexternalrow(if (isnull(productPlant#1139060.productionAspect.productMovementPlants)) null else createexternalrow(if (isnull(productPlant#1139060.productionAspect.productMovementPlants.unitOfIssue)) null else createexternalrow(invoke(productPlant#1139060.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID.toString()), invoke(productPlant#1139060.productionAspect.productMovementPlants.unitOfIssue.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), if (isnull(productPlant#1139060.productionAspect.productPlanningPlants)) null else createexternalrow(if (isnull(productPlant#1139060.productionAspect.productPlanningPlants.mrpType)) null else createexternalrow(invoke(productPlant#1139060.productionAspect.productPlanningPlants.mrpType.internalRefUUID.toString()), invoke(productPlant#1139060.productionAspect.productPlanningPlants.mrpType.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1139060.productionAspect.productPlanningPlants.abcIndicator)) null else createexternalrow(invoke(productPlant#1139060.productionAspect.productPlanningPlants.abcIndicator.internalRefUUID.toString()), invoke(productPlant#1139060.productionAspect.productPlanningPlants.abcIndicator.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1139060.productionAspect.productPlanningPlants.mrpController)) null else createexternalrow(invoke(productPlant#1139060.productionAspect.productPlanningPlants.mrpController.internalRefUUID.toString()), invoke(productPlant#1139060.productionAspect.productPlanningPlants.mrpController.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(java.lang.Double.valueOf(productPlant#1139060.productionAspect.productPlanningPlants.minimumLotSize)), if (isnull(productPlant#1139060.productionAspect.productPlanningPlants.logisticalRoundingProfile)) null else createexternalrow(invoke(productPlant#1139060.productionAspect.productPlanningPlants.logisticalRoundingProfile.internalRefUUID.toString()), invoke(productPlant#1139060.productionAspect.productPlanningPlants.logisticalRoundingProfile.logisticalRoundingProfile.toString()), StructField(internalRefUUID,StringType,true), StructField(logisticalRoundingProfile,StringType,true)), if (isnull(productPlant#1139060.productionAspect.productPlanningPlants.sourceOfSupplyCategory)) null else createexternalrow(invoke(productPlant#1139060.productionAspect.productPlanningPlants.sourceOfSupplyCategory.internalRefUUID.toString()), invoke(productPlant#1139060.productionAspect.productPlanningPlants.sourceOfSupplyCategory.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true), StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true), StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(minimumLotSize,DoubleType,true), StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true), StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true), StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)), if (isnull(productPlant#1139060.salesPlant)) null else createexternalrow(if (isnull(productPlant#1139060.salesPlant.loadingGroup)) null else createexternalrow(invoke(productPlant#1139060.salesPlant.loadingGroup.internalRefUUID.toString()), invoke(productPlant#1139060.salesPlant.loadingGroup.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), mapobjects(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 152118), if (isnull(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 152118))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 152118).validFrom)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 152118).validTo)), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 152118).isListed)), StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true)), productPlant#1139060.listing, Some(class scala.collection.mutable.ArraySeq)), StructField(systemId,StringType,true), StructField(internalUUID,StringType,true), StructField(plant,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(product,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(blockedForReplenishmentStartingFrom,DateType,true), StructField(productionAspect,StructType(StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)),true), StructField(salesPlant,StructType(StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true), StructField(listing,ArrayType(StructType(StructField(validFrom,TimestampType,true),StructField(validTo,TimestampType,true),StructField(isListed,BooleanType,true)),true),true)), invoke(timezonecode#1139074.toString()), static_invoke(java.lang.Double.valueOf(outboundUnit#1139091)), static_invoke(DateTimeUtils.toJavaTimestamp(stockDatetime#1139370)), mapobjects(lambdavariable(MapObject, DoubleType, true, 152119), static_invoke(java.lang.Double.valueOf(cast(lambdavariable(MapObject, DoubleType, true, 152119) as double))), stockBatchQuantities#1139371, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, false, 152120), assertnotnull(static_invoke(DateTimeUtils.toJavaTimestamp(cast(lambdavariable(MapObject, TimestampType, false, 152120) as timestamp)))), stockBatchShelfLifeEndDatetimes#1139372, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, 152121), assertnotnull(if (isnull(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, 152121))) null else createexternalrow(invoke(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, 152121).demandChannel.toString()), invoke(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, 152121).demandStream.toString()), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, 152121).considerVariance)), mapobjects(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 152122), if (isnull(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 152122))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 152122).demandStartDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 152122).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 152122).demandVariance)), StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true)), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, 152121).demandTimeBuckets, Some(class scala.collection.mutable.ArraySeq)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, 152121).demandPointInTimeStart)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, 152121).demandPointInTimeEnd)), mapobjects(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 152123), if (isnull(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 152123))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 152123).demandDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 152123).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 152123).demandVariance)), StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true)), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, 152121).demandPointInTime, Some(class scala.collection.mutable.ArraySeq)), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true))), rawDemands#1139383, Some(class scala.collection.mutable.ArraySeq)), StructField(product,StringType,true), StructField(plant,StringType,true), StructField(orderDateTime,TimestampType,true), StructField(productPlant,StructType(StructField(systemId,StringType,true),StructField(internalUUID,StringType,true),StructField(plant,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(product,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(blockedForReplenishmentStartingFrom,DateType,true),StructField(productionAspect,StructType(StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)),true),StructField(salesPlant,StructType(StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(listing,ArrayType(StructType(StructField(validFrom,TimestampType,true),StructField(validTo,TimestampType,true),StructField(isListed,BooleanType,true)),true),true)),true), StructField(timezonecode,StringType,true), StructField(outboundUnit,DoubleType,true), StructField(stockDatetime,TimestampType,true), StructField(stockBatchQuantities,ArrayType(DoubleType,true),false), StructField(stockBatchShelfLifeEndDatetimes,ArrayType(TimestampType,false),false), StructField(rawDemands,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(considerVariance,BooleanType,true),StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true),StructField(demandPointInTimeStart,TimestampType,true),StructField(demandPointInTimeEnd,TimestampType,true),StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true)),false),false)), obj#1136159: org.apache.spark.sql.Row
(832) MapElements
Arguments: com.sap.s4hana.eureka.business.crporderquantitykpiservice.core.business.datasnapshot.DemandTransformatorImpl$$Lambda/0x00000008023bc120@a39b9be, interface org.apache.spark.sql.Row, [StructField(product,StringType,true), StructField(plant,StringType,true), StructField(orderDateTime,TimestampType,true), StructField(productPlant,StructType(StructField(systemId,StringType,true),StructField(internalUUID,StringType,true),StructField(plant,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(product,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(blockedForReplenishmentStartingFrom,DateType,true),StructField(productionAspect,StructType(StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)),true),StructField(salesPlant,StructType(StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(listing,ArrayType(StructType(StructField(validFrom,TimestampType,true),StructField(validTo,TimestampType,true),StructField(isListed,BooleanType,true)),true),true)),true), StructField(timezonecode,StringType,true), StructField(outboundUnit,DoubleType,true), StructField(stockDatetime,TimestampType,true), StructField(stockBatchQuantities,ArrayType(DoubleType,true),false), StructField(stockBatchShelfLifeEndDatetimes,ArrayType(TimestampType,false),false), StructField(rawDemands,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(considerVariance,BooleanType,true),StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true),StructField(demandPointInTimeStart,TimestampType,true),StructField(demandPointInTimeEnd,TimestampType,true),StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true)),false),false)], obj#1136164: org.apache.spark.sql.Row
(833) SerializeFromObject
Arguments: [if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(0))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 0, product), StringType, ObjectType(class java.lang.String)))) AS product#1139384, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(1))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 1, plant), StringType, ObjectType(class java.lang.String)))) AS plant#1139385, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(2))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), assertnotnull(if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)))) null else named_struct(demandChannel, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(0))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 0, demandChannel), StringType, ObjectType(class java.lang.String)))), demandStream, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(1))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 1, demandStream), StringType, ObjectType(class java.lang.String)))), considerVariance, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(2))) null else invoke(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 2, considerVariance), BooleanType, ObjectType(class java.lang.Boolean)).booleanValue()), demandValues, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(3))) null else if (invoke(class [D.isInstance(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 3, demandValues), ArrayType(DoubleType,false), ObjectType(class java.lang.Object))))) static_invoke(ArrayData.toArrayData(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 3, demandValues), ArrayType(DoubleType,false), ObjectType(class java.lang.Object)))) else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152109), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152109), DoubleType, ObjectType(class java.lang.Double)).doubleValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 3, demandValues), ArrayType(DoubleType,false), ObjectType(class java.lang.Object)), None), demandVariances, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(4))) null else if (invoke(class [D.isInstance(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 4, demandVariances), ArrayType(DoubleType,true), ObjectType(class java.lang.Object))))) static_invoke(ArrayData.toArrayData(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 4, demandVariances), ArrayType(DoubleType,true), ObjectType(class java.lang.Object)))) else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152110), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152110), DoubleType, ObjectType(class java.lang.Double)).doubleValue()), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 4, demandVariances), ArrayType(DoubleType,true), ObjectType(class java.lang.Object)), None), anchorDatetimes, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(5))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152111), assertnotnull(static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152111), TimestampType, ObjectType(class java.sql.Timestamp))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 5, anchorDatetimes), ArrayType(TimestampType,false), ObjectType(class java.lang.Object)), None), anchorWeekdays, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(6))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152112), assertnotnull(static_invoke(UTF8String.fromString(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152112), StringType, ObjectType(class java.lang.String))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 6, anchorWeekdays), ArrayType(StringType,false), ObjectType(class java.lang.Object)), None), anchorIndices, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(7))) null else if (invoke(class [I.isInstance(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 7, anchorIndices), ArrayType(IntegerType,false), ObjectType(class java.lang.Object))))) static_invoke(ArrayData.toArrayData(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 7, anchorIndices), ArrayType(IntegerType,false), ObjectType(class java.lang.Object)))) else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152113), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152113), IntegerType, ObjectType(class java.lang.Integer)).intValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 7, anchorIndices), ArrayType(IntegerType,false), ObjectType(class java.lang.Object)), None))), validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 2, dayBucketDemands), ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(considerVariance,BooleanType,true),StructField(demandValues,ArrayType(DoubleType,false),true),StructField(demandVariances,ArrayType(DoubleType,true),true),StructField(anchorDatetimes,ArrayType(TimestampType,false),true),StructField(anchorWeekdays,ArrayType(StringType,false),true),StructField(anchorIndices,ArrayType(IntegerType,false),true)),false), ObjectType(class java.lang.Object)), None) AS dayBucketDemands#1139386, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(3))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), assertnotnull(if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)))) null else named_struct(demandChannel, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(0))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 0, demandChannel), StringType, ObjectType(class java.lang.String)))), demandStream, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(1))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 1, demandStream), StringType, ObjectType(class java.lang.String)))), considerVariance, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(2))) null else invoke(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 2, considerVariance), BooleanType, ObjectType(class java.lang.Boolean)).booleanValue()), demandDatetimes, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(3))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152115), assertnotnull(static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152115), TimestampType, ObjectType(class java.sql.Timestamp))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 3, demandDatetimes), ArrayType(TimestampType,false), ObjectType(class java.lang.Object)), None), demandValues, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(4))) null else if (invoke(class [D.isInstance(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 4, demandValues), ArrayType(DoubleType,false), ObjectType(class java.lang.Object))))) static_invoke(ArrayData.toArrayData(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 4, demandValues), ArrayType(DoubleType,false), ObjectType(class java.lang.Object)))) else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152116), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152116), DoubleType, ObjectType(class java.lang.Double)).doubleValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 4, demandValues), ArrayType(DoubleType,false), ObjectType(class java.lang.Object)), None), demandVariances, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(5))) null else if (invoke(class [D.isInstance(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 5, demandVariances), ArrayType(DoubleType,true), ObjectType(class java.lang.Object))))) static_invoke(ArrayData.toArrayData(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 5, demandVariances), ArrayType(DoubleType,true), ObjectType(class java.lang.Object)))) else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152117), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152117), DoubleType, ObjectType(class java.lang.Double)).doubleValue()), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 5, demandVariances), ArrayType(DoubleType,true), ObjectType(class java.lang.Object)), None), horizonStartDatetime, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(6))) null else static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 6, horizonStartDatetime), TimestampType, ObjectType(class java.sql.Timestamp)))), horizonEndDatetime, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(7))) null else static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 7, horizonEndDatetime), TimestampType, ObjectType(class java.sql.Timestamp)))))), validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 3, pointInTimeDemands), ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(considerVariance,BooleanType,true),StructField(demandDatetimes,ArrayType(TimestampType,false),true),StructField(demandValues,ArrayType(DoubleType,false),true),StructField(demandVariances,ArrayType(DoubleType,true),true),StructField(horizonStartDatetime,TimestampType,true),StructField(horizonEndDatetime,TimestampType,true)),false), ObjectType(class java.lang.Object)), None) AS pointInTimeDemands#1139387]
(834) Join
Arguments: LeftOuter, ((plant#1139385 <=> plant#1138724) AND (product#1139384 <=> product#1138723))
(835) Project
Arguments: [product#1138723, plant#1138724, orderDateTime#1138725, productPlant#1138735, timezonecode#1138749, outboundUnit#1138766, stockDatetime#1139045, stockBatchQuantities#1139046, stockBatchShelfLifeEndDatetimes#1139047, plant#1139385, dayBucketDemands#1139386, pointInTimeDemands#1139387]
(836) Project
Arguments: [product#1138723, plant#1138724, orderDateTime#1138725, productPlant#1138735, timezonecode#1138749, outboundUnit#1138766, stockDatetime#1139045, stockBatchQuantities#1139046, stockBatchShelfLifeEndDatetimes#1139047, dayBucketDemands#1139386, pointInTimeDemands#1139387]
(837) LogicalRelation
Arguments: parquet, [marketUnit#1136562, description#1136563, articleHierarchy#1136564, defaultCurrency#1136565, responsibilities#1136566, replenishmentTypes#1136567, distributionCenters#1136568, assignedArticleHierarchyNodes#1136569, minOrderQtySetting#1136570, listingCheck#1136571, odsSelection#1136572, demandProfiles#1136573, constraintProfiles#1136574, optimizationProfiles#1136575, orderGroupSplitProfiles#1136576, supplierMinimumProfiles#1136577, multipleRestrictionProfiles#1136578, preferredUomSource#1136579, handlingOfUnfulfilledDemands#1136580, negligibleQuantitiesThreshold#1136581, eventtype#1136582, minOrderQtySettingInternal#1136583], false
(838) Repartition
Arguments: 37, true
(839) Filter
Arguments: (marketUnit#1136562 <=> Alert_Test1)
(840) Project
Arguments: [marketUnit#1136562, description#1136563, articleHierarchy#1136564, defaultCurrency#1136565, responsibilities#1136566, replenishmentTypes#1136567, distributionCenters#1136568, assignedArticleHierarchyNodes#1136569, minOrderQtySetting#1136570, listingCheck#1136571, odsSelection#1136572, demandProfiles#1136573, constraintProfiles#1136574, optimizationProfiles#1136575, orderGroupSplitProfiles#1136576, supplierMinimumProfiles#1136577, multipleRestrictionProfiles#1136578, preferredUomSource#1136579, handlingOfUnfulfilledDemands#1136580, negligibleQuantitiesThreshold#1136581, eventtype#1136582, minOrderQtySettingInternal#1136583]
(841) Project
Arguments: [distributionCenters#1136568]
(842) Generate
Arguments: explode(distributionCenters#1136568), false, [distributionCenters#1136584]
(843) Project
Arguments: [distributionCenters#1136584]
(844) Generate
Arguments: explode(distributionCenters#1136584.storageLocations), false, [storageLocations#1136585]
(845) Project
Arguments: [distributionCenters#1136584.id AS plantId#1136586, distributionCenters#1136584.internalRefUUID AS plantUuid#1136587, storageLocations#1136585]
(846) Project
Arguments: [plantId#1136586, plantUuid#1136587, storageLocations#1136585.id AS storageLocId#1136588, storageLocations#1136585.internalRefUUID AS storageLocUuid#1136589]
(847) LogicalRelation
Arguments: parquet, [product#1136590, plant#1136591, orderDateTime#1136592, planningStartDateTime#1136593], false
(848) RepartitionByExpression
Arguments: [product#1136590, plant#1136591], 37
(849) Project
Arguments: [product#1136590, plant#1136591, orderDateTime#1136592]
(850) LogicalRelation
Arguments: parquet, [systemId#1136594, internalUUID#1136595, plant#1136596, product#1136597, blockedForReplenishmentStartingFrom#1136598, productionAspect#1136599, salesPlant#1136600, listing#1136601], false
(851) Repartition
Arguments: 37, true
(852) Project
Arguments: [systemId#1136594, internalUUID#1136595, plant#1136596, product#1136597, blockedForReplenishmentStartingFrom#1136598, productionAspect#1136599, salesPlant#1136600, listing#1136601, struct(systemId, systemId#1136594, internalUUID, internalUUID#1136595, plant, plant#1136596, product, product#1136597, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1136598, productionAspect, productionAspect#1136599, salesPlant, salesPlant#1136600, listing, listing#1136601) AS productPlant#1136602]
(853) Project
Arguments: [productPlant#1136602]
(854) Join
Arguments: LeftOuter, ((product#1136590 <=> productPlant#1136602.product.internalRefUUID) AND (plant#1136591 <=> productPlant#1136602.plant.internalRefUUID))
(855) Project
Arguments: [product#1136590, plant#1136591, orderDateTime#1136592, productPlant#1136602]
(856) SubqueryAlias
Arguments: wl
(857) LogicalRelation
Arguments: parquet, [systemId#1136603, internalUUID#1136604, id#1136605, displayId#1136606, name#1136607, category#1136608, companyCode#1136609, address#1136610, mainDistributionChain#1136611, mainPurchasingOrganization#1136612, validPurchasingOrganizations#1136613, productGroup#1136614], false
(858) Repartition
Arguments: 37, true
(859) Project
Arguments: [internalUUID#1136604, address#1136610.timeZone.code AS timezonecode#1136615]
(860) Join
Arguments: LeftOuter, (plant#1136591 <=> internalUUID#1136604)
(861) Project
Arguments: [product#1136590, plant#1136591, orderDateTime#1136592, productPlant#1136602, internalUUID#1136604, CASE WHEN isnotnull(timezonecode#1136615) THEN timezonecode#1136615 ELSE UTC END AS timezonecode#1136616]
(862) Project
Arguments: [product#1136590, plant#1136591, orderDateTime#1136592, productPlant#1136602, timezonecode#1136616]
(863) LogicalRelation
Arguments: parquet, [systemId#1136617, internalUUID#1136618, id#1136619, displayId#1136620, name#1136621, baseUnitOfMeasure#1136622, unitOfMeasures#1136623, unitOfMeasureConversions#1136624, productionAspect#1136625, salesAspect#1136626, procurementAspect#1136627, productGroup#1136628], false
(864) Repartition
Arguments: 37, true
(865) Join
Arguments: LeftOuter, (product#1136590 = internalUUID#1136618)
(866) Project
Arguments: [product#1136590, plant#1136591, orderDateTime#1136592, productPlant#1136602, timezonecode#1136616, systemId#1136617, internalUUID#1136618, id#1136619, displayId#1136620, name#1136621, baseUnitOfMeasure#1136622, unitOfMeasures#1136623, unitOfMeasureConversions#1136624, productionAspect#1136625, salesAspect#1136626, procurementAspect#1136627, productGroup#1136628, filter(unitOfMeasureConversions#1136624, lambdafunction((((lambda u#1135738.measurementUnit1.code = productPlant#1136602.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1135738.measurementUnit1.internalRefUUID = productPlant#1136602.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1136622.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1136622.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1136629]
(867) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1136629.quantityNumerator), true, [quantityNumerator#1136630]
(868) Project
Arguments: [product#1136590, plant#1136591, orderDateTime#1136592, productPlant#1136602, timezonecode#1136616, systemId#1136617, internalUUID#1136618, id#1136619, displayId#1136620, name#1136621, baseUnitOfMeasure#1136622, unitOfMeasures#1136623, unitOfMeasureConversions#1136624, productionAspect#1136625, salesAspect#1136626, procurementAspect#1136627, productGroup#1136628, filteredUnitOfMeasureConversions#1136629, quantityNumerator#1136630]
(869) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1136629.quantityDenominator), true, [quantityDenominator#1136631]
(870) Project
Arguments: [product#1136590, plant#1136591, orderDateTime#1136592, productPlant#1136602, timezonecode#1136616, systemId#1136617, internalUUID#1136618, id#1136619, displayId#1136620, name#1136621, baseUnitOfMeasure#1136622, unitOfMeasures#1136623, unitOfMeasureConversions#1136624, productionAspect#1136625, salesAspect#1136626, procurementAspect#1136627, productGroup#1136628, filteredUnitOfMeasureConversions#1136629, quantityNumerator#1136630, quantityDenominator#1136631]
(871) Project
Arguments: [product#1136590, plant#1136591, orderDateTime#1136592, productPlant#1136602, timezonecode#1136616, systemId#1136617, internalUUID#1136618, id#1136619, displayId#1136620, name#1136621, baseUnitOfMeasure#1136622, unitOfMeasures#1136623, unitOfMeasureConversions#1136624, productionAspect#1136625, salesAspect#1136626, procurementAspect#1136627, productGroup#1136628, filteredUnitOfMeasureConversions#1136629, quantityNumerator#1136630, quantityDenominator#1136631, (cast(quantityNumerator#1136630 as double) / cast(quantityDenominator#1136631 as double)) AS outboundUnit#1136632]
(872) Project
Arguments: [product#1136590, plant#1136591, orderDateTime#1136592, productPlant#1136602, timezonecode#1136616, systemId#1136617, internalUUID#1136618, id#1136619, displayId#1136620, name#1136621, baseUnitOfMeasure#1136622, unitOfMeasures#1136623, unitOfMeasureConversions#1136624, productionAspect#1136625, salesAspect#1136626, procurementAspect#1136627, productGroup#1136628, filteredUnitOfMeasureConversions#1136629, quantityNumerator#1136630, quantityDenominator#1136631, CASE WHEN (isnull(outboundUnit#1136632) OR (outboundUnit#1136632 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1136632 END AS outboundUnit#1136633]
(873) Project
Arguments: [product#1136590, plant#1136591, orderDateTime#1136592, productPlant#1136602, timezonecode#1136616, outboundUnit#1136633]
(874) Project
Arguments: [plant#1136591]
(875) Deduplicate
Arguments: [plant#1136591]
(876) Join
Arguments: Inner, (plantUuid#1136587 = plant#1136591)
(877) Project
Arguments: [plantId#1136586, plantUuid#1136587, storageLocId#1136588, storageLocUuid#1136589]
(878) Project
Arguments: [plantId#1136586, plantUuid#1136587 AS plant#1136561, storageLocId#1136588, storageLocUuid#1136589]
(879) Join
Arguments: Inner, (plant#1138724 = plant#1136561)
(880) Project
Arguments: [plant#1138724, product#1138723, orderDateTime#1138725, productPlant#1138735, timezonecode#1138749, outboundUnit#1138766, stockDatetime#1139045, stockBatchQuantities#1139046, stockBatchShelfLifeEndDatetimes#1139047, dayBucketDemands#1139386, pointInTimeDemands#1139387, plantId#1136586, storageLocId#1136588, storageLocUuid#1136589, plant#1136561]
(881) LogicalRelation
Arguments: parquet, [systemId#1136522, internalUUID#1136523, id#1136524, displayId#1136525, supplier#1136526, type#1136527, status#1136528, isMarkedForDeletion#1136529, items#1136530], false
(882) Repartition
Arguments: 37, true
(883) Generate
Arguments: explode(items#1136530), false, [item#1136534]
(884) Project
Arguments: [id#1136524, internalUUID#1136523, isMarkedForDeletion#1136529, supplier#1136526.internalRefUUID AS supplierUuid#1136531, item#1136534]
(885) Filter
Arguments: (((NOT isMarkedForDeletion#1136529 AND NOT item#1136534.deletionIndicator) AND NOT item#1136534.completeIndicator) AND NOT item#1136534.returnIndicator)
(886) Project
Arguments: [id#1136524, internalUUID#1136523, supplierUuid#1136531, item#1136534.plant.internalRefUUID AS plant#1136539, item#1136534.product.internalRefUUID AS product#1136540, item#1136534.plant.id AS externalPlantId#1136541, item#1136534.product.id AS externalProductId#1136542, item#1136534.storageLocation.internalRefUUID AS storageLocUuid#1136543, item#1136534.quantityUnit.code AS quantityUom#1136544, item#1136534.quantityUnit.internalRefUUID AS quantityUomUuid#1136545, item#1136534.quantityNumerator AS quantityNumerator#1136546, item#1136534.quantityDenominator AS quantityDenominator#1136547, item#1136534.scheduleLines AS scheduleLines#1136548, item#1136534.confirmations AS confirmations#1136549]
(887) Join
Arguments: Inner, (((product#1138723 = product#1136540) AND (plant#1138724 = plant#1136539)) AND (storageLocUuid#1136589 = storageLocUuid#1136543))
(888) Project
Arguments: [product#1138723, plant#1138724, storageLocUuid#1136589, orderDateTime#1138725, productPlant#1138735, timezonecode#1138749, outboundUnit#1138766, stockDatetime#1139045, stockBatchQuantities#1139046, stockBatchShelfLifeEndDatetimes#1139047, dayBucketDemands#1139386, pointInTimeDemands#1139387, plantId#1136586, storageLocId#1136588, id#1136524, internalUUID#1136523, supplierUuid#1136531, externalPlantId#1136541, externalProductId#1136542, quantityUom#1136544, quantityUomUuid#1136545, quantityNumerator#1136546, quantityDenominator#1136547, scheduleLines#1136548, confirmations#1136549, ... 4 more fields]
(889) Project
Arguments: [id#1136524, internalUUID#1136523, supplierUuid#1136531, plant#1136539, product#1136540, externalPlantId#1136541, externalProductId#1136542, storageLocUuid#1136543, quantityUom#1136544, quantityUomUuid#1136545, quantityNumerator#1136546, quantityDenominator#1136547, scheduleLines#1136548, confirmations#1136549, stockDatetime#1139045, timezonecode#1138749]
(890) Project
Arguments: [id#1136524, internalUUID#1136523, supplierUuid#1136531, plant#1136539, product#1136540, externalPlantId#1136541, externalProductId#1136542, storageLocUuid#1136543, quantityUom#1136544, quantityUomUuid#1136545, quantityNumerator#1136546, quantityDenominator#1136547, scheduleLines#1136548, confirmations#1136549, stockDatetime#1139045, timezonecode#1138749, filter(confirmations#1136549, lambdafunction((((lambda x_129#1136640.deletionIndicator = false) AND (lambda x_129#1136640.isRelevantForConfirmation = true)) AND isnotnull(lambda x_129#1136640.confirmedDeliveryAt)), lambda x_129#1136640, false)) AS validConfirmations#1136639]
(891) Project
Arguments: [id#1136524, internalUUID#1136523, supplierUuid#1136531, plant#1136539, product#1136540, externalPlantId#1136541, externalProductId#1136542, storageLocUuid#1136543, quantityUom#1136544, quantityUomUuid#1136545, quantityNumerator#1136546, quantityDenominator#1136547, scheduleLines#1136548, confirmations#1136549, stockDatetime#1139045, timezonecode#1138749, validConfirmations#1136639, array_size(validConfirmations#1136639) AS _w0#1137656]
(892) Window
Arguments: [sum(_w0#1137656) windowspecdefinition(internalUUID#1136523, specifiedwindowframe(RowFrame, unboundedpreceding$(), unboundedfollowing$())) AS _we0#1137657L], [internalUUID#1136523]
(893) Project
Arguments: [id#1136524, internalUUID#1136523, supplierUuid#1136531, plant#1136539, product#1136540, externalPlantId#1136541, externalProductId#1136542, storageLocUuid#1136543, quantityUom#1136544, quantityUomUuid#1136545, quantityNumerator#1136546, quantityDenominator#1136547, scheduleLines#1136548, confirmations#1136549, stockDatetime#1139045, timezonecode#1138749, validConfirmations#1136639, _w0#1137656, _we0#1137657L, filter(transform(CASE WHEN (_we0#1137657L > cast(0 as bigint)) THEN transform(validConfirmations#1136639, lambdafunction(struct(openQty, greatest((lambda x_131#1137652.confirmedQuantity - coalesce(lambda x_131#1137652.mrpRelevantQuantity, 0.0)), 0.0), availabilityDatetime, lambda x_131#1137652.confirmedDeliveryAt), lambda x_131#1137652, false)) ELSE transform(scheduleLines#1136548, lambdafunction(struct(openQty, greatest((lambda x_130#1137653.quantity - coalesce(lambda x_130#1137653.receivedQuantity, 0.0)), 0.0), availabilityDatetime, lambda x_130#1137653.deliveryAt), lambda x_130#1137653, false)) END, lambdafunction(struct(documentId, id#1136524, documentUuid, internalUUID#1136523, openQty, lambda x_132#1137654.openQty, openQtyInBaseUnit, ((lambda x_132#1137654.openQty * quantityNumerator#1136546) / quantityDenominator#1136547), qtyUom, quantityUom#1136544, qtyUomUuid, quantityUomUuid#1136545, availabilityDatetime, lambda x_132#1137654.availabilityDatetime, shelfLifeEndDatetime, 2199-01-01 00:00:00), lambda x_132#1137654, false)), lambdafunction(NOT (lambda x_133#1137655.openQty = 0.0), lambda x_133#1137655, false)) AS openGoodsMovements#1137650]
(894) Project
Arguments: [id#1136524, internalUUID#1136523, supplierUuid#1136531, plant#1136539, product#1136540, externalPlantId#1136541, externalProductId#1136542, storageLocUuid#1136543, quantityUom#1136544, quantityUomUuid#1136545, quantityNumerator#1136546, quantityDenominator#1136547, scheduleLines#1136548, confirmations#1136549, stockDatetime#1139045, timezonecode#1138749, validConfirmations#1136639, openGoodsMovements#1137650]
(895) Aggregate
Arguments: [product#1136540, plant#1136539], [product#1136540, plant#1136539, flatten(collect_list(openGoodsMovements#1137650, 0, 0)) AS openGoodsMovements#1137658]
(896) Filter
Arguments: (array_size(openGoodsMovements#1137658) > 0)
(897) LogicalRelation
Arguments: parquet, [product#1137981, plant#1137982, orderDateTime#1137983, planningStartDateTime#1137984], false
(898) RepartitionByExpression
Arguments: [product#1137981, plant#1137982], 37
(899) Project
Arguments: [product#1137981, plant#1137982, orderDateTime#1137983]
(900) LogicalRelation
Arguments: parquet, [systemId#1137985, internalUUID#1137986, plant#1137987, product#1137988, blockedForReplenishmentStartingFrom#1137989, productionAspect#1137990, salesPlant#1137991, listing#1137992], false
(901) Repartition
Arguments: 37, true
(902) Project
Arguments: [systemId#1137985, internalUUID#1137986, plant#1137987, product#1137988, blockedForReplenishmentStartingFrom#1137989, productionAspect#1137990, salesPlant#1137991, listing#1137992, struct(systemId, systemId#1137985, internalUUID, internalUUID#1137986, plant, plant#1137987, product, product#1137988, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1137989, productionAspect, productionAspect#1137990, salesPlant, salesPlant#1137991, listing, listing#1137992) AS productPlant#1137993]
(903) Project
Arguments: [productPlant#1137993]
(904) Join
Arguments: LeftOuter, ((product#1137981 <=> productPlant#1137993.product.internalRefUUID) AND (plant#1137982 <=> productPlant#1137993.plant.internalRefUUID))
(905) Project
Arguments: [product#1137981, plant#1137982, orderDateTime#1137983, productPlant#1137993]
(906) SubqueryAlias
Arguments: wl
(907) LogicalRelation
Arguments: parquet, [systemId#1137994, internalUUID#1137995, id#1137996, displayId#1137997, name#1137998, category#1137999, companyCode#1138000, address#1138001, mainDistributionChain#1138002, mainPurchasingOrganization#1138003, validPurchasingOrganizations#1138004, productGroup#1138005], false
(908) Repartition
Arguments: 37, true
(909) Project
Arguments: [internalUUID#1137995, address#1138001.timeZone.code AS timezonecode#1138006]
(910) Join
Arguments: LeftOuter, (plant#1137982 <=> internalUUID#1137995)
(911) Project
Arguments: [product#1137981, plant#1137982, orderDateTime#1137983, productPlant#1137993, internalUUID#1137995, CASE WHEN isnotnull(timezonecode#1138006) THEN timezonecode#1138006 ELSE UTC END AS timezonecode#1138007]
(912) Project
Arguments: [product#1137981, plant#1137982, orderDateTime#1137983, productPlant#1137993, timezonecode#1138007]
(913) LogicalRelation
Arguments: parquet, [systemId#1138008, internalUUID#1138009, id#1138010, displayId#1138011, name#1138012, baseUnitOfMeasure#1138013, unitOfMeasures#1138014, unitOfMeasureConversions#1138015, productionAspect#1138016, salesAspect#1138017, procurementAspect#1138018, productGroup#1138019], false
(914) Repartition
Arguments: 37, true
(915) Join
Arguments: LeftOuter, (product#1137981 = internalUUID#1138009)
(916) Project
Arguments: [product#1137981, plant#1137982, orderDateTime#1137983, productPlant#1137993, timezonecode#1138007, systemId#1138008, internalUUID#1138009, id#1138010, displayId#1138011, name#1138012, baseUnitOfMeasure#1138013, unitOfMeasures#1138014, unitOfMeasureConversions#1138015, productionAspect#1138016, salesAspect#1138017, procurementAspect#1138018, productGroup#1138019, filter(unitOfMeasureConversions#1138015, lambdafunction((((lambda u#1135738.measurementUnit1.code = productPlant#1137993.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1135738.measurementUnit1.internalRefUUID = productPlant#1137993.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1138013.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1138013.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1138020]
(917) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1138020.quantityNumerator), true, [quantityNumerator#1138021]
(918) Project
Arguments: [product#1137981, plant#1137982, orderDateTime#1137983, productPlant#1137993, timezonecode#1138007, systemId#1138008, internalUUID#1138009, id#1138010, displayId#1138011, name#1138012, baseUnitOfMeasure#1138013, unitOfMeasures#1138014, unitOfMeasureConversions#1138015, productionAspect#1138016, salesAspect#1138017, procurementAspect#1138018, productGroup#1138019, filteredUnitOfMeasureConversions#1138020, quantityNumerator#1138021]
(919) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1138020.quantityDenominator), true, [quantityDenominator#1138022]
(920) Project
Arguments: [product#1137981, plant#1137982, orderDateTime#1137983, productPlant#1137993, timezonecode#1138007, systemId#1138008, internalUUID#1138009, id#1138010, displayId#1138011, name#1138012, baseUnitOfMeasure#1138013, unitOfMeasures#1138014, unitOfMeasureConversions#1138015, productionAspect#1138016, salesAspect#1138017, procurementAspect#1138018, productGroup#1138019, filteredUnitOfMeasureConversions#1138020, quantityNumerator#1138021, quantityDenominator#1138022]
(921) Project
Arguments: [product#1137981, plant#1137982, orderDateTime#1137983, productPlant#1137993, timezonecode#1138007, systemId#1138008, internalUUID#1138009, id#1138010, displayId#1138011, name#1138012, baseUnitOfMeasure#1138013, unitOfMeasures#1138014, unitOfMeasureConversions#1138015, productionAspect#1138016, salesAspect#1138017, procurementAspect#1138018, productGroup#1138019, filteredUnitOfMeasureConversions#1138020, quantityNumerator#1138021, quantityDenominator#1138022, (cast(quantityNumerator#1138021 as double) / cast(quantityDenominator#1138022 as double)) AS outboundUnit#1138023]
(922) Project
Arguments: [product#1137981, plant#1137982, orderDateTime#1137983, productPlant#1137993, timezonecode#1138007, systemId#1138008, internalUUID#1138009, id#1138010, displayId#1138011, name#1138012, baseUnitOfMeasure#1138013, unitOfMeasures#1138014, unitOfMeasureConversions#1138015, productionAspect#1138016, salesAspect#1138017, procurementAspect#1138018, productGroup#1138019, filteredUnitOfMeasureConversions#1138020, quantityNumerator#1138021, quantityDenominator#1138022, CASE WHEN (isnull(outboundUnit#1138023) OR (outboundUnit#1138023 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1138023 END AS outboundUnit#1138024]
(923) Project
Arguments: [product#1137981, plant#1137982, orderDateTime#1137983, productPlant#1137993, timezonecode#1138007, outboundUnit#1138024]
(924) LogicalRelation
Arguments: parquet, [systemId#1138025, internalUUID#1138026, product#1138027, plant#1138028, calculationDateTime#1138029, stockQuantities#1138030], false
(925) Repartition
Arguments: 37, true
(926) LogicalRelation
Arguments: parquet, [marketUnit#1138031, description#1138032, articleHierarchy#1138033, defaultCurrency#1138034, responsibilities#1138035, replenishmentTypes#1138036, distributionCenters#1138037, assignedArticleHierarchyNodes#1138038, minOrderQtySetting#1138039, listingCheck#1138040, odsSelection#1138041, demandProfiles#1138042, constraintProfiles#1138043, optimizationProfiles#1138044, orderGroupSplitProfiles#1138045, supplierMinimumProfiles#1138046, multipleRestrictionProfiles#1138047, preferredUomSource#1138048, handlingOfUnfulfilledDemands#1138049, negligibleQuantitiesThreshold#1138050, eventtype#1138051, minOrderQtySettingInternal#1138052], false
(927) Repartition
Arguments: 37, true
(928) Filter
Arguments: (marketUnit#1138031 <=> Alert_Test1)
(929) Project
Arguments: [marketUnit#1138031, description#1138032, articleHierarchy#1138033, defaultCurrency#1138034, responsibilities#1138035, replenishmentTypes#1138036, distributionCenters#1138037, assignedArticleHierarchyNodes#1138038, minOrderQtySetting#1138039, listingCheck#1138040, odsSelection#1138041, demandProfiles#1138042, constraintProfiles#1138043, optimizationProfiles#1138044, orderGroupSplitProfiles#1138045, supplierMinimumProfiles#1138046, multipleRestrictionProfiles#1138047, preferredUomSource#1138048, handlingOfUnfulfilledDemands#1138049, negligibleQuantitiesThreshold#1138050, eventtype#1138051, minOrderQtySettingInternal#1138052]
(930) Project
Arguments: [distributionCenters#1138037]
(931) Generate
Arguments: explode(distributionCenters#1138037), false, [distributionCenters#1138053]
(932) Project
Arguments: [distributionCenters#1138053]
(933) Generate
Arguments: explode(distributionCenters#1138053.storageLocations), false, [storageLocations#1138054]
(934) Project
Arguments: [distributionCenters#1138053.id AS plantId#1138055, distributionCenters#1138053.internalRefUUID AS plantUuid#1138056, storageLocations#1138054]
(935) Project
Arguments: [plantId#1138055, plantUuid#1138056, storageLocations#1138054.id AS storageLocId#1138057, storageLocations#1138054.internalRefUUID AS storageLocUuid#1138058]
(936) LogicalRelation
Arguments: parquet, [product#1138059, plant#1138060, orderDateTime#1138061, planningStartDateTime#1138062], false
(937) RepartitionByExpression
Arguments: [product#1138059, plant#1138060], 37
(938) Project
Arguments: [product#1138059, plant#1138060, orderDateTime#1138061]
(939) LogicalRelation
Arguments: parquet, [systemId#1138063, internalUUID#1138064, plant#1138065, product#1138066, blockedForReplenishmentStartingFrom#1138067, productionAspect#1138068, salesPlant#1138069, listing#1138070], false
(940) Repartition
Arguments: 37, true
(941) Project
Arguments: [systemId#1138063, internalUUID#1138064, plant#1138065, product#1138066, blockedForReplenishmentStartingFrom#1138067, productionAspect#1138068, salesPlant#1138069, listing#1138070, struct(systemId, systemId#1138063, internalUUID, internalUUID#1138064, plant, plant#1138065, product, product#1138066, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1138067, productionAspect, productionAspect#1138068, salesPlant, salesPlant#1138069, listing, listing#1138070) AS productPlant#1138071]
(942) Project
Arguments: [productPlant#1138071]
(943) Join
Arguments: LeftOuter, ((product#1138059 <=> productPlant#1138071.product.internalRefUUID) AND (plant#1138060 <=> productPlant#1138071.plant.internalRefUUID))
(944) Project
Arguments: [product#1138059, plant#1138060, orderDateTime#1138061, productPlant#1138071]
(945) SubqueryAlias
Arguments: wl
(946) LogicalRelation
Arguments: parquet, [systemId#1138072, internalUUID#1138073, id#1138074, displayId#1138075, name#1138076, category#1138077, companyCode#1138078, address#1138079, mainDistributionChain#1138080, mainPurchasingOrganization#1138081, validPurchasingOrganizations#1138082, productGroup#1138083], false
(947) Repartition
Arguments: 37, true
(948) Project
Arguments: [internalUUID#1138073, address#1138079.timeZone.code AS timezonecode#1138084]
(949) Join
Arguments: LeftOuter, (plant#1138060 <=> internalUUID#1138073)
(950) Project
Arguments: [product#1138059, plant#1138060, orderDateTime#1138061, productPlant#1138071, internalUUID#1138073, CASE WHEN isnotnull(timezonecode#1138084) THEN timezonecode#1138084 ELSE UTC END AS timezonecode#1138085]
(951) Project
Arguments: [product#1138059, plant#1138060, orderDateTime#1138061, productPlant#1138071, timezonecode#1138085]
(952) LogicalRelation
Arguments: parquet, [systemId#1138086, internalUUID#1138087, id#1138088, displayId#1138089, name#1138090, baseUnitOfMeasure#1138091, unitOfMeasures#1138092, unitOfMeasureConversions#1138093, productionAspect#1138094, salesAspect#1138095, procurementAspect#1138096, productGroup#1138097], false
(953) Repartition
Arguments: 37, true
(954) Join
Arguments: LeftOuter, (product#1138059 = internalUUID#1138087)
(955) Project
Arguments: [product#1138059, plant#1138060, orderDateTime#1138061, productPlant#1138071, timezonecode#1138085, systemId#1138086, internalUUID#1138087, id#1138088, displayId#1138089, name#1138090, baseUnitOfMeasure#1138091, unitOfMeasures#1138092, unitOfMeasureConversions#1138093, productionAspect#1138094, salesAspect#1138095, procurementAspect#1138096, productGroup#1138097, filter(unitOfMeasureConversions#1138093, lambdafunction((((lambda u#1135738.measurementUnit1.code = productPlant#1138071.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1135738.measurementUnit1.internalRefUUID = productPlant#1138071.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1138091.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1138091.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1138098]
(956) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1138098.quantityNumerator), true, [quantityNumerator#1138099]
(957) Project
Arguments: [product#1138059, plant#1138060, orderDateTime#1138061, productPlant#1138071, timezonecode#1138085, systemId#1138086, internalUUID#1138087, id#1138088, displayId#1138089, name#1138090, baseUnitOfMeasure#1138091, unitOfMeasures#1138092, unitOfMeasureConversions#1138093, productionAspect#1138094, salesAspect#1138095, procurementAspect#1138096, productGroup#1138097, filteredUnitOfMeasureConversions#1138098, quantityNumerator#1138099]
(958) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1138098.quantityDenominator), true, [quantityDenominator#1138100]
(959) Project
Arguments: [product#1138059, plant#1138060, orderDateTime#1138061, productPlant#1138071, timezonecode#1138085, systemId#1138086, internalUUID#1138087, id#1138088, displayId#1138089, name#1138090, baseUnitOfMeasure#1138091, unitOfMeasures#1138092, unitOfMeasureConversions#1138093, productionAspect#1138094, salesAspect#1138095, procurementAspect#1138096, productGroup#1138097, filteredUnitOfMeasureConversions#1138098, quantityNumerator#1138099, quantityDenominator#1138100]
(960) Project
Arguments: [product#1138059, plant#1138060, orderDateTime#1138061, productPlant#1138071, timezonecode#1138085, systemId#1138086, internalUUID#1138087, id#1138088, displayId#1138089, name#1138090, baseUnitOfMeasure#1138091, unitOfMeasures#1138092, unitOfMeasureConversions#1138093, productionAspect#1138094, salesAspect#1138095, procurementAspect#1138096, productGroup#1138097, filteredUnitOfMeasureConversions#1138098, quantityNumerator#1138099, quantityDenominator#1138100, (cast(quantityNumerator#1138099 as double) / cast(quantityDenominator#1138100 as double)) AS outboundUnit#1138101]
(961) Project
Arguments: [product#1138059, plant#1138060, orderDateTime#1138061, productPlant#1138071, timezonecode#1138085, systemId#1138086, internalUUID#1138087, id#1138088, displayId#1138089, name#1138090, baseUnitOfMeasure#1138091, unitOfMeasures#1138092, unitOfMeasureConversions#1138093, productionAspect#1138094, salesAspect#1138095, procurementAspect#1138096, productGroup#1138097, filteredUnitOfMeasureConversions#1138098, quantityNumerator#1138099, quantityDenominator#1138100, CASE WHEN (isnull(outboundUnit#1138101) OR (outboundUnit#1138101 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1138101 END AS outboundUnit#1138102]
(962) Project
Arguments: [product#1138059, plant#1138060, orderDateTime#1138061, productPlant#1138071, timezonecode#1138085, outboundUnit#1138102]
(963) Project
Arguments: [plant#1138060]
(964) Deduplicate
Arguments: [plant#1138060]
(965) Join
Arguments: Inner, (plantUuid#1138056 = plant#1138060)
(966) Project
Arguments: [plantId#1138055, plantUuid#1138056, storageLocId#1138057, storageLocUuid#1138058]
(967) Join
Arguments: Inner, (plant#1138028.internalRefUUID <=> plantUuid#1138056)
(968) Generate
Arguments: explode(filter(stockQuantities#1138030, lambdafunction(((lambda x#1135796.storageLocation.internalRefUuid = storageLocUuid#1138058) AND (lambda x#1135796.storageLocation.Id = storageLocId#1138057)), lambda x#1135796, false))), false, [stockQuantity#1138103]
(969) Project
Arguments: [systemId#1138025, internalUUID#1138026, product#1138027, plant#1138028, calculationDateTime#1138029, stockQuantities#1138030, plantId#1138055, plantUuid#1138056, storageLocId#1138057, storageLocUuid#1138058, stockQuantity#1138103]
(970) Aggregate
Arguments: [plantUuid#1138056, internalUUID#1138026, plant#1138028, product#1138027, systemId#1138025], [plantUuid#1138056, internalUUID#1138026, plant#1138028, product#1138027, systemId#1138025, first(calculationDateTime#1138029, false) AS calculationDateTime#1138104, collect_list(stockQuantity#1138103, 0, 0) AS stockQuantities#1138105]
(971) Project
Arguments: [systemId#1138025, internalUUID#1138026, product#1138027, plant#1138028, calculationDateTime#1138104, stockQuantities#1138105]
(972) Generate
Arguments: explode(stockQuantities#1138105), false, [stockQuantity#1138106]
(973) Project
Arguments: [systemId#1138025, internalUUID#1138026, product#1138027, plant#1138028, calculationDateTime#1138104, stockQuantities#1138105, stockQuantity#1138106]
(974) Project
Arguments: [plant#1138028.id AS plant#1138107, plant#1138028.internalRefUUID AS plantUuid#1138108, product#1138027.id AS product#1138109, product#1138027.internalRefUUID AS productUuid#1138110, calculationDateTime#1138104, stockQuantity#1138106.storagelocation.id AS storageLocId#1138111, stockQuantity#1138106.storagelocation.internalRefUUID AS storageLocUuid#1138112, stockQuantity#1138106.quantity.measure AS quantity#1138113, stockQuantity#1138106.specialStockIndicator.code AS specialStockIndicator#1138114, stockQuantity#1138106.stockType.code AS stockType#1138115]
(975) Filter
Arguments: ((specialStockIndicator#1138114 = ) AND (stockType#1138115 = 01))
(976) LogicalRelation
Arguments: parquet, [product#1138116, plant#1138117, orderDateTime#1138118, planningStartDateTime#1138119], false
(977) RepartitionByExpression
Arguments: [product#1138116, plant#1138117], 37
(978) Project
Arguments: [product#1138116, plant#1138117, orderDateTime#1138118]
(979) LogicalRelation
Arguments: parquet, [systemId#1138120, internalUUID#1138121, plant#1138122, product#1138123, blockedForReplenishmentStartingFrom#1138124, productionAspect#1138125, salesPlant#1138126, listing#1138127], false
(980) Repartition
Arguments: 37, true
(981) Project
Arguments: [systemId#1138120, internalUUID#1138121, plant#1138122, product#1138123, blockedForReplenishmentStartingFrom#1138124, productionAspect#1138125, salesPlant#1138126, listing#1138127, struct(systemId, systemId#1138120, internalUUID, internalUUID#1138121, plant, plant#1138122, product, product#1138123, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1138124, productionAspect, productionAspect#1138125, salesPlant, salesPlant#1138126, listing, listing#1138127) AS productPlant#1138128]
(982) Project
Arguments: [productPlant#1138128]
(983) Join
Arguments: LeftOuter, ((product#1138116 <=> productPlant#1138128.product.internalRefUUID) AND (plant#1138117 <=> productPlant#1138128.plant.internalRefUUID))
(984) Project
Arguments: [product#1138116, plant#1138117, orderDateTime#1138118, productPlant#1138128]
(985) SubqueryAlias
Arguments: wl
(986) LogicalRelation
Arguments: parquet, [systemId#1138129, internalUUID#1138130, id#1138131, displayId#1138132, name#1138133, category#1138134, companyCode#1138135, address#1138136, mainDistributionChain#1138137, mainPurchasingOrganization#1138138, validPurchasingOrganizations#1138139, productGroup#1138140], false
(987) Repartition
Arguments: 37, true
(988) Project
Arguments: [internalUUID#1138130, address#1138136.timeZone.code AS timezonecode#1138141]
(989) Join
Arguments: LeftOuter, (plant#1138117 <=> internalUUID#1138130)
(990) Project
Arguments: [product#1138116, plant#1138117, orderDateTime#1138118, productPlant#1138128, internalUUID#1138130, CASE WHEN isnotnull(timezonecode#1138141) THEN timezonecode#1138141 ELSE UTC END AS timezonecode#1138142]
(991) Project
Arguments: [product#1138116, plant#1138117, orderDateTime#1138118, productPlant#1138128, timezonecode#1138142]
(992) LogicalRelation
Arguments: parquet, [systemId#1138143, internalUUID#1138144, id#1138145, displayId#1138146, name#1138147, baseUnitOfMeasure#1138148, unitOfMeasures#1138149, unitOfMeasureConversions#1138150, productionAspect#1138151, salesAspect#1138152, procurementAspect#1138153, productGroup#1138154], false
(993) Repartition
Arguments: 37, true
(994) Join
Arguments: LeftOuter, (product#1138116 = internalUUID#1138144)
(995) Project
Arguments: [product#1138116, plant#1138117, orderDateTime#1138118, productPlant#1138128, timezonecode#1138142, systemId#1138143, internalUUID#1138144, id#1138145, displayId#1138146, name#1138147, baseUnitOfMeasure#1138148, unitOfMeasures#1138149, unitOfMeasureConversions#1138150, productionAspect#1138151, salesAspect#1138152, procurementAspect#1138153, productGroup#1138154, filter(unitOfMeasureConversions#1138150, lambdafunction((((lambda u#1135738.measurementUnit1.code = productPlant#1138128.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1135738.measurementUnit1.internalRefUUID = productPlant#1138128.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1138148.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1138148.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1138155]
(996) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1138155.quantityNumerator), true, [quantityNumerator#1138156]
(997) Project
Arguments: [product#1138116, plant#1138117, orderDateTime#1138118, productPlant#1138128, timezonecode#1138142, systemId#1138143, internalUUID#1138144, id#1138145, displayId#1138146, name#1138147, baseUnitOfMeasure#1138148, unitOfMeasures#1138149, unitOfMeasureConversions#1138150, productionAspect#1138151, salesAspect#1138152, procurementAspect#1138153, productGroup#1138154, filteredUnitOfMeasureConversions#1138155, quantityNumerator#1138156]
(998) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1138155.quantityDenominator), true, [quantityDenominator#1138157]
(999) Project
Arguments: [product#1138116, plant#1138117, orderDateTime#1138118, productPlant#1138128, timezonecode#1138142, systemId#1138143, internalUUID#1138144, id#1138145, displayId#1138146, name#1138147, baseUnitOfMeasure#1138148, unitOfMeasures#1138149, unitOfMeasureConversions#1138150, productionAspect#1138151, salesAspect#1138152, procurementAspect#1138153, productGroup#1138154, filteredUnitOfMeasureConversions#1138155, quantityNumerator#1138156, quantityDenominator#1138157]
(1000) Project
Arguments: [product#1138116, plant#1138117, orderDateTime#1138118, productPlant#1138128, timezonecode#1138142, systemId#1138143, internalUUID#1138144, id#1138145, displayId#1138146, name#1138147, baseUnitOfMeasure#1138148, unitOfMeasures#1138149, unitOfMeasureConversions#1138150, productionAspect#1138151, salesAspect#1138152, procurementAspect#1138153, productGroup#1138154, filteredUnitOfMeasureConversions#1138155, quantityNumerator#1138156, quantityDenominator#1138157, (cast(quantityNumerator#1138156 as double) / cast(quantityDenominator#1138157 as double)) AS outboundUnit#1138158]
(1001) Project
Arguments: [product#1138116, plant#1138117, orderDateTime#1138118, productPlant#1138128, timezonecode#1138142, systemId#1138143, internalUUID#1138144, id#1138145, displayId#1138146, name#1138147, baseUnitOfMeasure#1138148, unitOfMeasures#1138149, unitOfMeasureConversions#1138150, productionAspect#1138151, salesAspect#1138152, procurementAspect#1138153, productGroup#1138154, filteredUnitOfMeasureConversions#1138155, quantityNumerator#1138156, quantityDenominator#1138157, CASE WHEN (isnull(outboundUnit#1138158) OR (outboundUnit#1138158 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1138158 END AS outboundUnit#1138159]
(1002) Project
Arguments: [product#1138116, plant#1138117, orderDateTime#1138118, productPlant#1138128, timezonecode#1138142, outboundUnit#1138159]
(1003) Join
Arguments: Inner, ((plantUuid#1138108 = plant#1138117) AND (productUuid#1138110 = product#1138116))
(1004) Filter
Arguments: (calculationDateTime#1138104 <= orderDateTime#1138118)
(1005) Project
Arguments: [plantUuid#1138108 AS plant#1138160, productUuid#1138110 AS product#1138161, storageLocId#1138111, calculationDateTime#1138104, quantity#1138113]
(1006) LogicalRelation
Arguments: parquet, [systemId#1138162, internalUUID#1138163, product#1138164, plant#1138165, calculationDateTime#1138166, stockQuantities#1138167], false
(1007) Repartition
Arguments: 37, true
(1008) LogicalRelation
Arguments: parquet, [marketUnit#1138168, description#1138169, articleHierarchy#1138170, defaultCurrency#1138171, responsibilities#1138172, replenishmentTypes#1138173, distributionCenters#1138174, assignedArticleHierarchyNodes#1138175, minOrderQtySetting#1138176, listingCheck#1138177, odsSelection#1138178, demandProfiles#1138179, constraintProfiles#1138180, optimizationProfiles#1138181, orderGroupSplitProfiles#1138182, supplierMinimumProfiles#1138183, multipleRestrictionProfiles#1138184, preferredUomSource#1138185, handlingOfUnfulfilledDemands#1138186, negligibleQuantitiesThreshold#1138187, eventtype#1138188, minOrderQtySettingInternal#1138189], false
(1009) Repartition
Arguments: 37, true
(1010) Filter
Arguments: (marketUnit#1138168 <=> Alert_Test1)
(1011) Project
Arguments: [marketUnit#1138168, description#1138169, articleHierarchy#1138170, defaultCurrency#1138171, responsibilities#1138172, replenishmentTypes#1138173, distributionCenters#1138174, assignedArticleHierarchyNodes#1138175, minOrderQtySetting#1138176, listingCheck#1138177, odsSelection#1138178, demandProfiles#1138179, constraintProfiles#1138180, optimizationProfiles#1138181, orderGroupSplitProfiles#1138182, supplierMinimumProfiles#1138183, multipleRestrictionProfiles#1138184, preferredUomSource#1138185, handlingOfUnfulfilledDemands#1138186, negligibleQuantitiesThreshold#1138187, eventtype#1138188, minOrderQtySettingInternal#1138189]
(1012) Project
Arguments: [distributionCenters#1138174]
(1013) Generate
Arguments: explode(distributionCenters#1138174), false, [distributionCenters#1138190]
(1014) Project
Arguments: [distributionCenters#1138190]
(1015) Generate
Arguments: explode(distributionCenters#1138190.storageLocations), false, [storageLocations#1138191]
(1016) Project
Arguments: [distributionCenters#1138190.id AS plantId#1138192, distributionCenters#1138190.internalRefUUID AS plantUuid#1138193, storageLocations#1138191]
(1017) Project
Arguments: [plantId#1138192, plantUuid#1138193, storageLocations#1138191.id AS storageLocId#1138194, storageLocations#1138191.internalRefUUID AS storageLocUuid#1138195]
(1018) LogicalRelation
Arguments: parquet, [product#1138196, plant#1138197, orderDateTime#1138198, planningStartDateTime#1138199], false
(1019) RepartitionByExpression
Arguments: [product#1138196, plant#1138197], 37
(1020) Project
Arguments: [product#1138196, plant#1138197, orderDateTime#1138198]
(1021) LogicalRelation
Arguments: parquet, [systemId#1138200, internalUUID#1138201, plant#1138202, product#1138203, blockedForReplenishmentStartingFrom#1138204, productionAspect#1138205, salesPlant#1138206, listing#1138207], false
(1022) Repartition
Arguments: 37, true
(1023) Project
Arguments: [systemId#1138200, internalUUID#1138201, plant#1138202, product#1138203, blockedForReplenishmentStartingFrom#1138204, productionAspect#1138205, salesPlant#1138206, listing#1138207, struct(systemId, systemId#1138200, internalUUID, internalUUID#1138201, plant, plant#1138202, product, product#1138203, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1138204, productionAspect, productionAspect#1138205, salesPlant, salesPlant#1138206, listing, listing#1138207) AS productPlant#1138208]
(1024) Project
Arguments: [productPlant#1138208]
(1025) Join
Arguments: LeftOuter, ((product#1138196 <=> productPlant#1138208.product.internalRefUUID) AND (plant#1138197 <=> productPlant#1138208.plant.internalRefUUID))
(1026) Project
Arguments: [product#1138196, plant#1138197, orderDateTime#1138198, productPlant#1138208]
(1027) SubqueryAlias
Arguments: wl
(1028) LogicalRelation
Arguments: parquet, [systemId#1138209, internalUUID#1138210, id#1138211, displayId#1138212, name#1138213, category#1138214, companyCode#1138215, address#1138216, mainDistributionChain#1138217, mainPurchasingOrganization#1138218, validPurchasingOrganizations#1138219, productGroup#1138220], false
(1029) Repartition
Arguments: 37, true
(1030) Project
Arguments: [internalUUID#1138210, address#1138216.timeZone.code AS timezonecode#1138221]
(1031) Join
Arguments: LeftOuter, (plant#1138197 <=> internalUUID#1138210)
(1032) Project
Arguments: [product#1138196, plant#1138197, orderDateTime#1138198, productPlant#1138208, internalUUID#1138210, CASE WHEN isnotnull(timezonecode#1138221) THEN timezonecode#1138221 ELSE UTC END AS timezonecode#1138222]
(1033) Project
Arguments: [product#1138196, plant#1138197, orderDateTime#1138198, productPlant#1138208, timezonecode#1138222]
(1034) LogicalRelation
Arguments: parquet, [systemId#1138223, internalUUID#1138224, id#1138225, displayId#1138226, name#1138227, baseUnitOfMeasure#1138228, unitOfMeasures#1138229, unitOfMeasureConversions#1138230, productionAspect#1138231, salesAspect#1138232, procurementAspect#1138233, productGroup#1138234], false
(1035) Repartition
Arguments: 37, true
(1036) Join
Arguments: LeftOuter, (product#1138196 = internalUUID#1138224)
(1037) Project
Arguments: [product#1138196, plant#1138197, orderDateTime#1138198, productPlant#1138208, timezonecode#1138222, systemId#1138223, internalUUID#1138224, id#1138225, displayId#1138226, name#1138227, baseUnitOfMeasure#1138228, unitOfMeasures#1138229, unitOfMeasureConversions#1138230, productionAspect#1138231, salesAspect#1138232, procurementAspect#1138233, productGroup#1138234, filter(unitOfMeasureConversions#1138230, lambdafunction((((lambda u#1135738.measurementUnit1.code = productPlant#1138208.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1135738.measurementUnit1.internalRefUUID = productPlant#1138208.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1138228.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1138228.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1138235]
(1038) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1138235.quantityNumerator), true, [quantityNumerator#1138236]
(1039) Project
Arguments: [product#1138196, plant#1138197, orderDateTime#1138198, productPlant#1138208, timezonecode#1138222, systemId#1138223, internalUUID#1138224, id#1138225, displayId#1138226, name#1138227, baseUnitOfMeasure#1138228, unitOfMeasures#1138229, unitOfMeasureConversions#1138230, productionAspect#1138231, salesAspect#1138232, procurementAspect#1138233, productGroup#1138234, filteredUnitOfMeasureConversions#1138235, quantityNumerator#1138236]
(1040) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1138235.quantityDenominator), true, [quantityDenominator#1138237]
(1041) Project
Arguments: [product#1138196, plant#1138197, orderDateTime#1138198, productPlant#1138208, timezonecode#1138222, systemId#1138223, internalUUID#1138224, id#1138225, displayId#1138226, name#1138227, baseUnitOfMeasure#1138228, unitOfMeasures#1138229, unitOfMeasureConversions#1138230, productionAspect#1138231, salesAspect#1138232, procurementAspect#1138233, productGroup#1138234, filteredUnitOfMeasureConversions#1138235, quantityNumerator#1138236, quantityDenominator#1138237]
(1042) Project
Arguments: [product#1138196, plant#1138197, orderDateTime#1138198, productPlant#1138208, timezonecode#1138222, systemId#1138223, internalUUID#1138224, id#1138225, displayId#1138226, name#1138227, baseUnitOfMeasure#1138228, unitOfMeasures#1138229, unitOfMeasureConversions#1138230, productionAspect#1138231, salesAspect#1138232, procurementAspect#1138233, productGroup#1138234, filteredUnitOfMeasureConversions#1138235, quantityNumerator#1138236, quantityDenominator#1138237, (cast(quantityNumerator#1138236 as double) / cast(quantityDenominator#1138237 as double)) AS outboundUnit#1138238]
(1043) Project
Arguments: [product#1138196, plant#1138197, orderDateTime#1138198, productPlant#1138208, timezonecode#1138222, systemId#1138223, internalUUID#1138224, id#1138225, displayId#1138226, name#1138227, baseUnitOfMeasure#1138228, unitOfMeasures#1138229, unitOfMeasureConversions#1138230, productionAspect#1138231, salesAspect#1138232, procurementAspect#1138233, productGroup#1138234, filteredUnitOfMeasureConversions#1138235, quantityNumerator#1138236, quantityDenominator#1138237, CASE WHEN (isnull(outboundUnit#1138238) OR (outboundUnit#1138238 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1138238 END AS outboundUnit#1138239]
(1044) Project
Arguments: [product#1138196, plant#1138197, orderDateTime#1138198, productPlant#1138208, timezonecode#1138222, outboundUnit#1138239]
(1045) Project
Arguments: [plant#1138197]
(1046) Deduplicate
Arguments: [plant#1138197]
(1047) Join
Arguments: Inner, (plantUuid#1138193 = plant#1138197)
(1048) Project
Arguments: [plantId#1138192, plantUuid#1138193, storageLocId#1138194, storageLocUuid#1138195]
(1049) Join
Arguments: Inner, (plant#1138165.internalRefUUID <=> plantUuid#1138193)
(1050) Generate
Arguments: explode(filter(stockQuantities#1138167, lambdafunction(((lambda x#1135796.storageLocation.internalRefUuid = storageLocUuid#1138195) AND (lambda x#1135796.storageLocation.Id = storageLocId#1138194)), lambda x#1135796, false))), false, [stockQuantity#1138240]
(1051) Project
Arguments: [systemId#1138162, internalUUID#1138163, product#1138164, plant#1138165, calculationDateTime#1138166, stockQuantities#1138167, plantId#1138192, plantUuid#1138193, storageLocId#1138194, storageLocUuid#1138195, stockQuantity#1138240]
(1052) Aggregate
Arguments: [plantUuid#1138193, internalUUID#1138163, plant#1138165, product#1138164, systemId#1138162], [plantUuid#1138193, internalUUID#1138163, plant#1138165, product#1138164, systemId#1138162, first(calculationDateTime#1138166, false) AS calculationDateTime#1138241, collect_list(stockQuantity#1138240, 0, 0) AS stockQuantities#1138242]
(1053) Project
Arguments: [systemId#1138162, internalUUID#1138163, product#1138164, plant#1138165, calculationDateTime#1138241, stockQuantities#1138242]
(1054) Generate
Arguments: explode(stockQuantities#1138242), false, [stockQuantity#1138243]
(1055) Project
Arguments: [systemId#1138162, internalUUID#1138163, product#1138164, plant#1138165, calculationDateTime#1138241, stockQuantities#1138242, stockQuantity#1138243]
(1056) Project
Arguments: [plant#1138165.id AS plant#1138244, plant#1138165.internalRefUUID AS plantUuid#1138245, product#1138164.id AS product#1138246, product#1138164.internalRefUUID AS productUuid#1138247, calculationDateTime#1138241, stockQuantity#1138243.storagelocation.id AS storageLocId#1138248, stockQuantity#1138243.storagelocation.internalRefUUID AS storageLocUuid#1138249, stockQuantity#1138243.quantity.measure AS quantity#1138250, stockQuantity#1138243.specialStockIndicator.code AS specialStockIndicator#1138251, stockQuantity#1138243.stockType.code AS stockType#1138252]
(1057) Filter
Arguments: ((specialStockIndicator#1138251 = ) AND (stockType#1138252 = 01))
(1058) LogicalRelation
Arguments: parquet, [product#1138253, plant#1138254, orderDateTime#1138255, planningStartDateTime#1138256], false
(1059) RepartitionByExpression
Arguments: [product#1138253, plant#1138254], 37
(1060) Project
Arguments: [product#1138253, plant#1138254, orderDateTime#1138255]
(1061) LogicalRelation
Arguments: parquet, [systemId#1138257, internalUUID#1138258, plant#1138259, product#1138260, blockedForReplenishmentStartingFrom#1138261, productionAspect#1138262, salesPlant#1138263, listing#1138264], false
(1062) Repartition
Arguments: 37, true
(1063) Project
Arguments: [systemId#1138257, internalUUID#1138258, plant#1138259, product#1138260, blockedForReplenishmentStartingFrom#1138261, productionAspect#1138262, salesPlant#1138263, listing#1138264, struct(systemId, systemId#1138257, internalUUID, internalUUID#1138258, plant, plant#1138259, product, product#1138260, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1138261, productionAspect, productionAspect#1138262, salesPlant, salesPlant#1138263, listing, listing#1138264) AS productPlant#1138265]
(1064) Project
Arguments: [productPlant#1138265]
(1065) Join
Arguments: LeftOuter, ((product#1138253 <=> productPlant#1138265.product.internalRefUUID) AND (plant#1138254 <=> productPlant#1138265.plant.internalRefUUID))
(1066) Project
Arguments: [product#1138253, plant#1138254, orderDateTime#1138255, productPlant#1138265]
(1067) SubqueryAlias
Arguments: wl
(1068) LogicalRelation
Arguments: parquet, [systemId#1138266, internalUUID#1138267, id#1138268, displayId#1138269, name#1138270, category#1138271, companyCode#1138272, address#1138273, mainDistributionChain#1138274, mainPurchasingOrganization#1138275, validPurchasingOrganizations#1138276, productGroup#1138277], false
(1069) Repartition
Arguments: 37, true
(1070) Project
Arguments: [internalUUID#1138267, address#1138273.timeZone.code AS timezonecode#1138278]
(1071) Join
Arguments: LeftOuter, (plant#1138254 <=> internalUUID#1138267)
(1072) Project
Arguments: [product#1138253, plant#1138254, orderDateTime#1138255, productPlant#1138265, internalUUID#1138267, CASE WHEN isnotnull(timezonecode#1138278) THEN timezonecode#1138278 ELSE UTC END AS timezonecode#1138279]
(1073) Project
Arguments: [product#1138253, plant#1138254, orderDateTime#1138255, productPlant#1138265, timezonecode#1138279]
(1074) LogicalRelation
Arguments: parquet, [systemId#1138280, internalUUID#1138281, id#1138282, displayId#1138283, name#1138284, baseUnitOfMeasure#1138285, unitOfMeasures#1138286, unitOfMeasureConversions#1138287, productionAspect#1138288, salesAspect#1138289, procurementAspect#1138290, productGroup#1138291], false
(1075) Repartition
Arguments: 37, true
(1076) Join
Arguments: LeftOuter, (product#1138253 = internalUUID#1138281)
(1077) Project
Arguments: [product#1138253, plant#1138254, orderDateTime#1138255, productPlant#1138265, timezonecode#1138279, systemId#1138280, internalUUID#1138281, id#1138282, displayId#1138283, name#1138284, baseUnitOfMeasure#1138285, unitOfMeasures#1138286, unitOfMeasureConversions#1138287, productionAspect#1138288, salesAspect#1138289, procurementAspect#1138290, productGroup#1138291, filter(unitOfMeasureConversions#1138287, lambdafunction((((lambda u#1135738.measurementUnit1.code = productPlant#1138265.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1135738.measurementUnit1.internalRefUUID = productPlant#1138265.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1138285.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1138285.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1138292]
(1078) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1138292.quantityNumerator), true, [quantityNumerator#1138293]
(1079) Project
Arguments: [product#1138253, plant#1138254, orderDateTime#1138255, productPlant#1138265, timezonecode#1138279, systemId#1138280, internalUUID#1138281, id#1138282, displayId#1138283, name#1138284, baseUnitOfMeasure#1138285, unitOfMeasures#1138286, unitOfMeasureConversions#1138287, productionAspect#1138288, salesAspect#1138289, procurementAspect#1138290, productGroup#1138291, filteredUnitOfMeasureConversions#1138292, quantityNumerator#1138293]
(1080) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1138292.quantityDenominator), true, [quantityDenominator#1138294]
(1081) Project
Arguments: [product#1138253, plant#1138254, orderDateTime#1138255, productPlant#1138265, timezonecode#1138279, systemId#1138280, internalUUID#1138281, id#1138282, displayId#1138283, name#1138284, baseUnitOfMeasure#1138285, unitOfMeasures#1138286, unitOfMeasureConversions#1138287, productionAspect#1138288, salesAspect#1138289, procurementAspect#1138290, productGroup#1138291, filteredUnitOfMeasureConversions#1138292, quantityNumerator#1138293, quantityDenominator#1138294]
(1082) Project
Arguments: [product#1138253, plant#1138254, orderDateTime#1138255, productPlant#1138265, timezonecode#1138279, systemId#1138280, internalUUID#1138281, id#1138282, displayId#1138283, name#1138284, baseUnitOfMeasure#1138285, unitOfMeasures#1138286, unitOfMeasureConversions#1138287, productionAspect#1138288, salesAspect#1138289, procurementAspect#1138290, productGroup#1138291, filteredUnitOfMeasureConversions#1138292, quantityNumerator#1138293, quantityDenominator#1138294, (cast(quantityNumerator#1138293 as double) / cast(quantityDenominator#1138294 as double)) AS outboundUnit#1138295]
(1083) Project
Arguments: [product#1138253, plant#1138254, orderDateTime#1138255, productPlant#1138265, timezonecode#1138279, systemId#1138280, internalUUID#1138281, id#1138282, displayId#1138283, name#1138284, baseUnitOfMeasure#1138285, unitOfMeasures#1138286, unitOfMeasureConversions#1138287, productionAspect#1138288, salesAspect#1138289, procurementAspect#1138290, productGroup#1138291, filteredUnitOfMeasureConversions#1138292, quantityNumerator#1138293, quantityDenominator#1138294, CASE WHEN (isnull(outboundUnit#1138295) OR (outboundUnit#1138295 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1138295 END AS outboundUnit#1138296]
(1084) Project
Arguments: [product#1138253, plant#1138254, orderDateTime#1138255, productPlant#1138265, timezonecode#1138279, outboundUnit#1138296]
(1085) Join
Arguments: Inner, ((plantUuid#1138245 = plant#1138254) AND (productUuid#1138247 = product#1138253))
(1086) Filter
Arguments: (calculationDateTime#1138241 <= orderDateTime#1138255)
(1087) Project
Arguments: [plantUuid#1138245 AS plant#1138297, productUuid#1138247 AS product#1138298, storageLocId#1138248, calculationDateTime#1138241, quantity#1138250]
(1088) Aggregate
Arguments: [plant#1138297, product#1138298, storageLocId#1138248], [plant#1138297, product#1138298, storageLocId#1138248, max(calculationDateTime#1138241) AS max_calc_datetime#1138299]
(1089) Join
Arguments: Inner, ((((plant#1138160 <=> plant#1138297) AND (product#1138161 <=> product#1138298)) AND (storageLocId#1138111 <=> storageLocId#1138248)) AND (calculationDateTime#1138104 <=> max_calc_datetime#1138299))
(1090) Project
Arguments: [plant#1138160, product#1138161, storageLocId#1138111, calculationDateTime#1138104, quantity#1138113]
(1091) Aggregate
Arguments: [product#1138161, plant#1138160], [product#1138161, plant#1138160, sum(quantity#1138113) AS quantitySum#1138300, min(calculationDateTime#1138104) AS minCalculationDateTime#1138301]
(1092) Project
Arguments: [product#1138161, plant#1138160, quantitySum#1138300, minCalculationDateTime#1138301, round(quantitySum#1138300, 0) AS roundedQuantitySum#1138302]
(1093) Join
Arguments: LeftOuter, ((plant#1137982 = plant#1138160) AND (product#1137981 = product#1138161))
(1094) Project
Arguments: [product#1137981, plant#1137982, orderDateTime#1137983, productPlant#1137993, timezonecode#1138007, outboundUnit#1138024, roundedQuantitySum#1138302, minCalculationDateTime#1138301]
(1095) Project
Arguments: [product#1137981, plant#1137982, orderDateTime#1137983, productPlant#1137993, timezonecode#1138007, outboundUnit#1138024, roundedQuantitySum#1138302, minCalculationDateTime#1138301, CASE WHEN isnotnull(minCalculationDateTime#1138301) THEN minCalculationDateTime#1138301 ELSE orderDateTime#1137983 END AS stockDatetime#1138303]
(1096) Project
Arguments: [product#1137981, plant#1137982, orderDateTime#1137983, productPlant#1137993, timezonecode#1138007, outboundUnit#1138024, roundedQuantitySum#1138302, minCalculationDateTime#1138301, stockDatetime#1138303, CASE WHEN isnotnull(roundedQuantitySum#1138302) THEN array(roundedQuantitySum#1138302) ELSE array(0.0) END AS stockBatchQuantities#1138304]
(1097) Project
Arguments: [product#1137981, plant#1137982, orderDateTime#1137983, productPlant#1137993, timezonecode#1138007, outboundUnit#1138024, roundedQuantitySum#1138302, minCalculationDateTime#1138301, stockDatetime#1138303, stockBatchQuantities#1138304, array(2199-01-01 00:00:00) AS stockBatchShelfLifeEndDatetimes#1138305]
(1098) Project
Arguments: [product#1137981, plant#1137982, orderDateTime#1137983, productPlant#1137993, timezonecode#1138007, outboundUnit#1138024, roundedQuantitySum#1138302, stockDatetime#1138303, stockBatchQuantities#1138304, stockBatchShelfLifeEndDatetimes#1138305]
(1099) Project
Arguments: [product#1137981, plant#1137982, orderDateTime#1137983, productPlant#1137993, timezonecode#1138007, outboundUnit#1138024, stockDatetime#1138303, stockBatchQuantities#1138304, stockBatchShelfLifeEndDatetimes#1138305]
(1100) LogicalRelation
Arguments: parquet, [product#1138306, plant#1138307, orderDateTime#1138308, planningStartDateTime#1138309], false
(1101) RepartitionByExpression
Arguments: [product#1138306, plant#1138307], 37
(1102) Project
Arguments: [product#1138306, plant#1138307, orderDateTime#1138308]
(1103) LogicalRelation
Arguments: parquet, [systemId#1138310, internalUUID#1138311, plant#1138312, product#1138313, blockedForReplenishmentStartingFrom#1138314, productionAspect#1138315, salesPlant#1138316, listing#1138317], false
(1104) Repartition
Arguments: 37, true
(1105) Project
Arguments: [systemId#1138310, internalUUID#1138311, plant#1138312, product#1138313, blockedForReplenishmentStartingFrom#1138314, productionAspect#1138315, salesPlant#1138316, listing#1138317, struct(systemId, systemId#1138310, internalUUID, internalUUID#1138311, plant, plant#1138312, product, product#1138313, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1138314, productionAspect, productionAspect#1138315, salesPlant, salesPlant#1138316, listing, listing#1138317) AS productPlant#1138318]
(1106) Project
Arguments: [productPlant#1138318]
(1107) Join
Arguments: LeftOuter, ((product#1138306 <=> productPlant#1138318.product.internalRefUUID) AND (plant#1138307 <=> productPlant#1138318.plant.internalRefUUID))
(1108) Project
Arguments: [product#1138306, plant#1138307, orderDateTime#1138308, productPlant#1138318]
(1109) SubqueryAlias
Arguments: wl
(1110) LogicalRelation
Arguments: parquet, [systemId#1138319, internalUUID#1138320, id#1138321, displayId#1138322, name#1138323, category#1138324, companyCode#1138325, address#1138326, mainDistributionChain#1138327, mainPurchasingOrganization#1138328, validPurchasingOrganizations#1138329, productGroup#1138330], false
(1111) Repartition
Arguments: 37, true
(1112) Project
Arguments: [internalUUID#1138320, address#1138326.timeZone.code AS timezonecode#1138331]
(1113) Join
Arguments: LeftOuter, (plant#1138307 <=> internalUUID#1138320)
(1114) Project
Arguments: [product#1138306, plant#1138307, orderDateTime#1138308, productPlant#1138318, internalUUID#1138320, CASE WHEN isnotnull(timezonecode#1138331) THEN timezonecode#1138331 ELSE UTC END AS timezonecode#1138332]
(1115) Project
Arguments: [product#1138306, plant#1138307, orderDateTime#1138308, productPlant#1138318, timezonecode#1138332]
(1116) LogicalRelation
Arguments: parquet, [systemId#1138333, internalUUID#1138334, id#1138335, displayId#1138336, name#1138337, baseUnitOfMeasure#1138338, unitOfMeasures#1138339, unitOfMeasureConversions#1138340, productionAspect#1138341, salesAspect#1138342, procurementAspect#1138343, productGroup#1138344], false
(1117) Repartition
Arguments: 37, true
(1118) Join
Arguments: LeftOuter, (product#1138306 = internalUUID#1138334)
(1119) Project
Arguments: [product#1138306, plant#1138307, orderDateTime#1138308, productPlant#1138318, timezonecode#1138332, systemId#1138333, internalUUID#1138334, id#1138335, displayId#1138336, name#1138337, baseUnitOfMeasure#1138338, unitOfMeasures#1138339, unitOfMeasureConversions#1138340, productionAspect#1138341, salesAspect#1138342, procurementAspect#1138343, productGroup#1138344, filter(unitOfMeasureConversions#1138340, lambdafunction((((lambda u#1135738.measurementUnit1.code = productPlant#1138318.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1135738.measurementUnit1.internalRefUUID = productPlant#1138318.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1138338.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1138338.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1138345]
(1120) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1138345.quantityNumerator), true, [quantityNumerator#1138346]
(1121) Project
Arguments: [product#1138306, plant#1138307, orderDateTime#1138308, productPlant#1138318, timezonecode#1138332, systemId#1138333, internalUUID#1138334, id#1138335, displayId#1138336, name#1138337, baseUnitOfMeasure#1138338, unitOfMeasures#1138339, unitOfMeasureConversions#1138340, productionAspect#1138341, salesAspect#1138342, procurementAspect#1138343, productGroup#1138344, filteredUnitOfMeasureConversions#1138345, quantityNumerator#1138346]
(1122) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1138345.quantityDenominator), true, [quantityDenominator#1138347]
(1123) Project
Arguments: [product#1138306, plant#1138307, orderDateTime#1138308, productPlant#1138318, timezonecode#1138332, systemId#1138333, internalUUID#1138334, id#1138335, displayId#1138336, name#1138337, baseUnitOfMeasure#1138338, unitOfMeasures#1138339, unitOfMeasureConversions#1138340, productionAspect#1138341, salesAspect#1138342, procurementAspect#1138343, productGroup#1138344, filteredUnitOfMeasureConversions#1138345, quantityNumerator#1138346, quantityDenominator#1138347]
(1124) Project
Arguments: [product#1138306, plant#1138307, orderDateTime#1138308, productPlant#1138318, timezonecode#1138332, systemId#1138333, internalUUID#1138334, id#1138335, displayId#1138336, name#1138337, baseUnitOfMeasure#1138338, unitOfMeasures#1138339, unitOfMeasureConversions#1138340, productionAspect#1138341, salesAspect#1138342, procurementAspect#1138343, productGroup#1138344, filteredUnitOfMeasureConversions#1138345, quantityNumerator#1138346, quantityDenominator#1138347, (cast(quantityNumerator#1138346 as double) / cast(quantityDenominator#1138347 as double)) AS outboundUnit#1138348]
(1125) Project
Arguments: [product#1138306, plant#1138307, orderDateTime#1138308, productPlant#1138318, timezonecode#1138332, systemId#1138333, internalUUID#1138334, id#1138335, displayId#1138336, name#1138337, baseUnitOfMeasure#1138338, unitOfMeasures#1138339, unitOfMeasureConversions#1138340, productionAspect#1138341, salesAspect#1138342, procurementAspect#1138343, productGroup#1138344, filteredUnitOfMeasureConversions#1138345, quantityNumerator#1138346, quantityDenominator#1138347, CASE WHEN (isnull(outboundUnit#1138348) OR (outboundUnit#1138348 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1138348 END AS outboundUnit#1138349]
(1126) Project
Arguments: [product#1138306, plant#1138307, orderDateTime#1138308, productPlant#1138318, timezonecode#1138332, outboundUnit#1138349]
(1127) LogicalRelation
Arguments: parquet, [systemId#1138350, internalUUID#1138351, product#1138352, plant#1138353, calculationDateTime#1138354, stockQuantities#1138355], false
(1128) Repartition
Arguments: 37, true
(1129) LogicalRelation
Arguments: parquet, [marketUnit#1138356, description#1138357, articleHierarchy#1138358, defaultCurrency#1138359, responsibilities#1138360, replenishmentTypes#1138361, distributionCenters#1138362, assignedArticleHierarchyNodes#1138363, minOrderQtySetting#1138364, listingCheck#1138365, odsSelection#1138366, demandProfiles#1138367, constraintProfiles#1138368, optimizationProfiles#1138369, orderGroupSplitProfiles#1138370, supplierMinimumProfiles#1138371, multipleRestrictionProfiles#1138372, preferredUomSource#1138373, handlingOfUnfulfilledDemands#1138374, negligibleQuantitiesThreshold#1138375, eventtype#1138376, minOrderQtySettingInternal#1138377], false
(1130) Repartition
Arguments: 37, true
(1131) Filter
Arguments: (marketUnit#1138356 <=> Alert_Test1)
(1132) Project
Arguments: [marketUnit#1138356, description#1138357, articleHierarchy#1138358, defaultCurrency#1138359, responsibilities#1138360, replenishmentTypes#1138361, distributionCenters#1138362, assignedArticleHierarchyNodes#1138363, minOrderQtySetting#1138364, listingCheck#1138365, odsSelection#1138366, demandProfiles#1138367, constraintProfiles#1138368, optimizationProfiles#1138369, orderGroupSplitProfiles#1138370, supplierMinimumProfiles#1138371, multipleRestrictionProfiles#1138372, preferredUomSource#1138373, handlingOfUnfulfilledDemands#1138374, negligibleQuantitiesThreshold#1138375, eventtype#1138376, minOrderQtySettingInternal#1138377]
(1133) Project
Arguments: [distributionCenters#1138362]
(1134) Generate
Arguments: explode(distributionCenters#1138362), false, [distributionCenters#1138378]
(1135) Project
Arguments: [distributionCenters#1138378]
(1136) Generate
Arguments: explode(distributionCenters#1138378.storageLocations), false, [storageLocations#1138379]
(1137) Project
Arguments: [distributionCenters#1138378.id AS plantId#1138380, distributionCenters#1138378.internalRefUUID AS plantUuid#1138381, storageLocations#1138379]
(1138) Project
Arguments: [plantId#1138380, plantUuid#1138381, storageLocations#1138379.id AS storageLocId#1138382, storageLocations#1138379.internalRefUUID AS storageLocUuid#1138383]
(1139) LogicalRelation
Arguments: parquet, [product#1138384, plant#1138385, orderDateTime#1138386, planningStartDateTime#1138387], false
(1140) RepartitionByExpression
Arguments: [product#1138384, plant#1138385], 37
(1141) Project
Arguments: [product#1138384, plant#1138385, orderDateTime#1138386]
(1142) LogicalRelation
Arguments: parquet, [systemId#1138388, internalUUID#1138389, plant#1138390, product#1138391, blockedForReplenishmentStartingFrom#1138392, productionAspect#1138393, salesPlant#1138394, listing#1138395], false
(1143) Repartition
Arguments: 37, true
(1144) Project
Arguments: [systemId#1138388, internalUUID#1138389, plant#1138390, product#1138391, blockedForReplenishmentStartingFrom#1138392, productionAspect#1138393, salesPlant#1138394, listing#1138395, struct(systemId, systemId#1138388, internalUUID, internalUUID#1138389, plant, plant#1138390, product, product#1138391, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1138392, productionAspect, productionAspect#1138393, salesPlant, salesPlant#1138394, listing, listing#1138395) AS productPlant#1138396]
(1145) Project
Arguments: [productPlant#1138396]
(1146) Join
Arguments: LeftOuter, ((product#1138384 <=> productPlant#1138396.product.internalRefUUID) AND (plant#1138385 <=> productPlant#1138396.plant.internalRefUUID))
(1147) Project
Arguments: [product#1138384, plant#1138385, orderDateTime#1138386, productPlant#1138396]
(1148) SubqueryAlias
Arguments: wl
(1149) LogicalRelation
Arguments: parquet, [systemId#1138397, internalUUID#1138398, id#1138399, displayId#1138400, name#1138401, category#1138402, companyCode#1138403, address#1138404, mainDistributionChain#1138405, mainPurchasingOrganization#1138406, validPurchasingOrganizations#1138407, productGroup#1138408], false
(1150) Repartition
Arguments: 37, true
(1151) Project
Arguments: [internalUUID#1138398, address#1138404.timeZone.code AS timezonecode#1138409]
(1152) Join
Arguments: LeftOuter, (plant#1138385 <=> internalUUID#1138398)
(1153) Project
Arguments: [product#1138384, plant#1138385, orderDateTime#1138386, productPlant#1138396, internalUUID#1138398, CASE WHEN isnotnull(timezonecode#1138409) THEN timezonecode#1138409 ELSE UTC END AS timezonecode#1138410]
(1154) Project
Arguments: [product#1138384, plant#1138385, orderDateTime#1138386, productPlant#1138396, timezonecode#1138410]
(1155) LogicalRelation
Arguments: parquet, [systemId#1138411, internalUUID#1138412, id#1138413, displayId#1138414, name#1138415, baseUnitOfMeasure#1138416, unitOfMeasures#1138417, unitOfMeasureConversions#1138418, productionAspect#1138419, salesAspect#1138420, procurementAspect#1138421, productGroup#1138422], false
(1156) Repartition
Arguments: 37, true
(1157) Join
Arguments: LeftOuter, (product#1138384 = internalUUID#1138412)
(1158) Project
Arguments: [product#1138384, plant#1138385, orderDateTime#1138386, productPlant#1138396, timezonecode#1138410, systemId#1138411, internalUUID#1138412, id#1138413, displayId#1138414, name#1138415, baseUnitOfMeasure#1138416, unitOfMeasures#1138417, unitOfMeasureConversions#1138418, productionAspect#1138419, salesAspect#1138420, procurementAspect#1138421, productGroup#1138422, filter(unitOfMeasureConversions#1138418, lambdafunction((((lambda u#1135738.measurementUnit1.code = productPlant#1138396.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1135738.measurementUnit1.internalRefUUID = productPlant#1138396.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1138416.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1138416.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1138423]
(1159) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1138423.quantityNumerator), true, [quantityNumerator#1138424]
(1160) Project
Arguments: [product#1138384, plant#1138385, orderDateTime#1138386, productPlant#1138396, timezonecode#1138410, systemId#1138411, internalUUID#1138412, id#1138413, displayId#1138414, name#1138415, baseUnitOfMeasure#1138416, unitOfMeasures#1138417, unitOfMeasureConversions#1138418, productionAspect#1138419, salesAspect#1138420, procurementAspect#1138421, productGroup#1138422, filteredUnitOfMeasureConversions#1138423, quantityNumerator#1138424]
(1161) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1138423.quantityDenominator), true, [quantityDenominator#1138425]
(1162) Project
Arguments: [product#1138384, plant#1138385, orderDateTime#1138386, productPlant#1138396, timezonecode#1138410, systemId#1138411, internalUUID#1138412, id#1138413, displayId#1138414, name#1138415, baseUnitOfMeasure#1138416, unitOfMeasures#1138417, unitOfMeasureConversions#1138418, productionAspect#1138419, salesAspect#1138420, procurementAspect#1138421, productGroup#1138422, filteredUnitOfMeasureConversions#1138423, quantityNumerator#1138424, quantityDenominator#1138425]
(1163) Project
Arguments: [product#1138384, plant#1138385, orderDateTime#1138386, productPlant#1138396, timezonecode#1138410, systemId#1138411, internalUUID#1138412, id#1138413, displayId#1138414, name#1138415, baseUnitOfMeasure#1138416, unitOfMeasures#1138417, unitOfMeasureConversions#1138418, productionAspect#1138419, salesAspect#1138420, procurementAspect#1138421, productGroup#1138422, filteredUnitOfMeasureConversions#1138423, quantityNumerator#1138424, quantityDenominator#1138425, (cast(quantityNumerator#1138424 as double) / cast(quantityDenominator#1138425 as double)) AS outboundUnit#1138426]
(1164) Project
Arguments: [product#1138384, plant#1138385, orderDateTime#1138386, productPlant#1138396, timezonecode#1138410, systemId#1138411, internalUUID#1138412, id#1138413, displayId#1138414, name#1138415, baseUnitOfMeasure#1138416, unitOfMeasures#1138417, unitOfMeasureConversions#1138418, productionAspect#1138419, salesAspect#1138420, procurementAspect#1138421, productGroup#1138422, filteredUnitOfMeasureConversions#1138423, quantityNumerator#1138424, quantityDenominator#1138425, CASE WHEN (isnull(outboundUnit#1138426) OR (outboundUnit#1138426 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1138426 END AS outboundUnit#1138427]
(1165) Project
Arguments: [product#1138384, plant#1138385, orderDateTime#1138386, productPlant#1138396, timezonecode#1138410, outboundUnit#1138427]
(1166) Project
Arguments: [plant#1138385]
(1167) Deduplicate
Arguments: [plant#1138385]
(1168) Join
Arguments: Inner, (plantUuid#1138381 = plant#1138385)
(1169) Project
Arguments: [plantId#1138380, plantUuid#1138381, storageLocId#1138382, storageLocUuid#1138383]
(1170) Join
Arguments: Inner, (plant#1138353.internalRefUUID <=> plantUuid#1138381)
(1171) Generate
Arguments: explode(filter(stockQuantities#1138355, lambdafunction(((lambda x#1135796.storageLocation.internalRefUuid = storageLocUuid#1138383) AND (lambda x#1135796.storageLocation.Id = storageLocId#1138382)), lambda x#1135796, false))), false, [stockQuantity#1138428]
(1172) Project
Arguments: [systemId#1138350, internalUUID#1138351, product#1138352, plant#1138353, calculationDateTime#1138354, stockQuantities#1138355, plantId#1138380, plantUuid#1138381, storageLocId#1138382, storageLocUuid#1138383, stockQuantity#1138428]
(1173) Aggregate
Arguments: [plantUuid#1138381, internalUUID#1138351, plant#1138353, product#1138352, systemId#1138350], [plantUuid#1138381, internalUUID#1138351, plant#1138353, product#1138352, systemId#1138350, first(calculationDateTime#1138354, false) AS calculationDateTime#1138429, collect_list(stockQuantity#1138428, 0, 0) AS stockQuantities#1138430]
(1174) Project
Arguments: [systemId#1138350, internalUUID#1138351, product#1138352, plant#1138353, calculationDateTime#1138429, stockQuantities#1138430]
(1175) Generate
Arguments: explode(stockQuantities#1138430), false, [stockQuantity#1138431]
(1176) Project
Arguments: [systemId#1138350, internalUUID#1138351, product#1138352, plant#1138353, calculationDateTime#1138429, stockQuantities#1138430, stockQuantity#1138431]
(1177) Project
Arguments: [plant#1138353.id AS plant#1138432, plant#1138353.internalRefUUID AS plantUuid#1138433, product#1138352.id AS product#1138434, product#1138352.internalRefUUID AS productUuid#1138435, calculationDateTime#1138429, stockQuantity#1138431.storagelocation.id AS storageLocId#1138436, stockQuantity#1138431.storagelocation.internalRefUUID AS storageLocUuid#1138437, stockQuantity#1138431.quantity.measure AS quantity#1138438, stockQuantity#1138431.specialStockIndicator.code AS specialStockIndicator#1138439, stockQuantity#1138431.stockType.code AS stockType#1138440]
(1178) Filter
Arguments: ((specialStockIndicator#1138439 = ) AND (stockType#1138440 = 01))
(1179) LogicalRelation
Arguments: parquet, [product#1138441, plant#1138442, orderDateTime#1138443, planningStartDateTime#1138444], false
(1180) RepartitionByExpression
Arguments: [product#1138441, plant#1138442], 37
(1181) Project
Arguments: [product#1138441, plant#1138442, orderDateTime#1138443]
(1182) LogicalRelation
Arguments: parquet, [systemId#1138445, internalUUID#1138446, plant#1138447, product#1138448, blockedForReplenishmentStartingFrom#1138449, productionAspect#1138450, salesPlant#1138451, listing#1138452], false
(1183) Repartition
Arguments: 37, true
(1184) Project
Arguments: [systemId#1138445, internalUUID#1138446, plant#1138447, product#1138448, blockedForReplenishmentStartingFrom#1138449, productionAspect#1138450, salesPlant#1138451, listing#1138452, struct(systemId, systemId#1138445, internalUUID, internalUUID#1138446, plant, plant#1138447, product, product#1138448, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1138449, productionAspect, productionAspect#1138450, salesPlant, salesPlant#1138451, listing, listing#1138452) AS productPlant#1138453]
(1185) Project
Arguments: [productPlant#1138453]
(1186) Join
Arguments: LeftOuter, ((product#1138441 <=> productPlant#1138453.product.internalRefUUID) AND (plant#1138442 <=> productPlant#1138453.plant.internalRefUUID))
(1187) Project
Arguments: [product#1138441, plant#1138442, orderDateTime#1138443, productPlant#1138453]
(1188) SubqueryAlias
Arguments: wl
(1189) LogicalRelation
Arguments: parquet, [systemId#1138454, internalUUID#1138455, id#1138456, displayId#1138457, name#1138458, category#1138459, companyCode#1138460, address#1138461, mainDistributionChain#1138462, mainPurchasingOrganization#1138463, validPurchasingOrganizations#1138464, productGroup#1138465], false
(1190) Repartition
Arguments: 37, true
(1191) Project
Arguments: [internalUUID#1138455, address#1138461.timeZone.code AS timezonecode#1138466]
(1192) Join
Arguments: LeftOuter, (plant#1138442 <=> internalUUID#1138455)
(1193) Project
Arguments: [product#1138441, plant#1138442, orderDateTime#1138443, productPlant#1138453, internalUUID#1138455, CASE WHEN isnotnull(timezonecode#1138466) THEN timezonecode#1138466 ELSE UTC END AS timezonecode#1138467]
(1194) Project
Arguments: [product#1138441, plant#1138442, orderDateTime#1138443, productPlant#1138453, timezonecode#1138467]
(1195) LogicalRelation
Arguments: parquet, [systemId#1138468, internalUUID#1138469, id#1138470, displayId#1138471, name#1138472, baseUnitOfMeasure#1138473, unitOfMeasures#1138474, unitOfMeasureConversions#1138475, productionAspect#1138476, salesAspect#1138477, procurementAspect#1138478, productGroup#1138479], false
(1196) Repartition
Arguments: 37, true
(1197) Join
Arguments: LeftOuter, (product#1138441 = internalUUID#1138469)
(1198) Project
Arguments: [product#1138441, plant#1138442, orderDateTime#1138443, productPlant#1138453, timezonecode#1138467, systemId#1138468, internalUUID#1138469, id#1138470, displayId#1138471, name#1138472, baseUnitOfMeasure#1138473, unitOfMeasures#1138474, unitOfMeasureConversions#1138475, productionAspect#1138476, salesAspect#1138477, procurementAspect#1138478, productGroup#1138479, filter(unitOfMeasureConversions#1138475, lambdafunction((((lambda u#1135738.measurementUnit1.code = productPlant#1138453.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1135738.measurementUnit1.internalRefUUID = productPlant#1138453.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1138473.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1138473.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1138480]
(1199) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1138480.quantityNumerator), true, [quantityNumerator#1138481]
(1200) Project
Arguments: [product#1138441, plant#1138442, orderDateTime#1138443, productPlant#1138453, timezonecode#1138467, systemId#1138468, internalUUID#1138469, id#1138470, displayId#1138471, name#1138472, baseUnitOfMeasure#1138473, unitOfMeasures#1138474, unitOfMeasureConversions#1138475, productionAspect#1138476, salesAspect#1138477, procurementAspect#1138478, productGroup#1138479, filteredUnitOfMeasureConversions#1138480, quantityNumerator#1138481]
(1201) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1138480.quantityDenominator), true, [quantityDenominator#1138482]
(1202) Project
Arguments: [product#1138441, plant#1138442, orderDateTime#1138443, productPlant#1138453, timezonecode#1138467, systemId#1138468, internalUUID#1138469, id#1138470, displayId#1138471, name#1138472, baseUnitOfMeasure#1138473, unitOfMeasures#1138474, unitOfMeasureConversions#1138475, productionAspect#1138476, salesAspect#1138477, procurementAspect#1138478, productGroup#1138479, filteredUnitOfMeasureConversions#1138480, quantityNumerator#1138481, quantityDenominator#1138482]
(1203) Project
Arguments: [product#1138441, plant#1138442, orderDateTime#1138443, productPlant#1138453, timezonecode#1138467, systemId#1138468, internalUUID#1138469, id#1138470, displayId#1138471, name#1138472, baseUnitOfMeasure#1138473, unitOfMeasures#1138474, unitOfMeasureConversions#1138475, productionAspect#1138476, salesAspect#1138477, procurementAspect#1138478, productGroup#1138479, filteredUnitOfMeasureConversions#1138480, quantityNumerator#1138481, quantityDenominator#1138482, (cast(quantityNumerator#1138481 as double) / cast(quantityDenominator#1138482 as double)) AS outboundUnit#1138483]
(1204) Project
Arguments: [product#1138441, plant#1138442, orderDateTime#1138443, productPlant#1138453, timezonecode#1138467, systemId#1138468, internalUUID#1138469, id#1138470, displayId#1138471, name#1138472, baseUnitOfMeasure#1138473, unitOfMeasures#1138474, unitOfMeasureConversions#1138475, productionAspect#1138476, salesAspect#1138477, procurementAspect#1138478, productGroup#1138479, filteredUnitOfMeasureConversions#1138480, quantityNumerator#1138481, quantityDenominator#1138482, CASE WHEN (isnull(outboundUnit#1138483) OR (outboundUnit#1138483 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1138483 END AS outboundUnit#1138484]
(1205) Project
Arguments: [product#1138441, plant#1138442, orderDateTime#1138443, productPlant#1138453, timezonecode#1138467, outboundUnit#1138484]
(1206) Join
Arguments: Inner, ((plantUuid#1138433 = plant#1138442) AND (productUuid#1138435 = product#1138441))
(1207) Filter
Arguments: (calculationDateTime#1138429 <= orderDateTime#1138443)
(1208) Project
Arguments: [plantUuid#1138433 AS plant#1138485, productUuid#1138435 AS product#1138486, storageLocId#1138436, calculationDateTime#1138429, quantity#1138438]
(1209) LogicalRelation
Arguments: parquet, [systemId#1138487, internalUUID#1138488, product#1138489, plant#1138490, calculationDateTime#1138491, stockQuantities#1138492], false
(1210) Repartition
Arguments: 37, true
(1211) LogicalRelation
Arguments: parquet, [marketUnit#1138493, description#1138494, articleHierarchy#1138495, defaultCurrency#1138496, responsibilities#1138497, replenishmentTypes#1138498, distributionCenters#1138499, assignedArticleHierarchyNodes#1138500, minOrderQtySetting#1138501, listingCheck#1138502, odsSelection#1138503, demandProfiles#1138504, constraintProfiles#1138505, optimizationProfiles#1138506, orderGroupSplitProfiles#1138507, supplierMinimumProfiles#1138508, multipleRestrictionProfiles#1138509, preferredUomSource#1138510, handlingOfUnfulfilledDemands#1138511, negligibleQuantitiesThreshold#1138512, eventtype#1138513, minOrderQtySettingInternal#1138514], false
(1212) Repartition
Arguments: 37, true
(1213) Filter
Arguments: (marketUnit#1138493 <=> Alert_Test1)
(1214) Project
Arguments: [marketUnit#1138493, description#1138494, articleHierarchy#1138495, defaultCurrency#1138496, responsibilities#1138497, replenishmentTypes#1138498, distributionCenters#1138499, assignedArticleHierarchyNodes#1138500, minOrderQtySetting#1138501, listingCheck#1138502, odsSelection#1138503, demandProfiles#1138504, constraintProfiles#1138505, optimizationProfiles#1138506, orderGroupSplitProfiles#1138507, supplierMinimumProfiles#1138508, multipleRestrictionProfiles#1138509, preferredUomSource#1138510, handlingOfUnfulfilledDemands#1138511, negligibleQuantitiesThreshold#1138512, eventtype#1138513, minOrderQtySettingInternal#1138514]
(1215) Project
Arguments: [distributionCenters#1138499]
(1216) Generate
Arguments: explode(distributionCenters#1138499), false, [distributionCenters#1138515]
(1217) Project
Arguments: [distributionCenters#1138515]
(1218) Generate
Arguments: explode(distributionCenters#1138515.storageLocations), false, [storageLocations#1138516]
(1219) Project
Arguments: [distributionCenters#1138515.id AS plantId#1138517, distributionCenters#1138515.internalRefUUID AS plantUuid#1138518, storageLocations#1138516]
(1220) Project
Arguments: [plantId#1138517, plantUuid#1138518, storageLocations#1138516.id AS storageLocId#1138519, storageLocations#1138516.internalRefUUID AS storageLocUuid#1138520]
(1221) LogicalRelation
Arguments: parquet, [product#1138521, plant#1138522, orderDateTime#1138523, planningStartDateTime#1138524], false
(1222) RepartitionByExpression
Arguments: [product#1138521, plant#1138522], 37
(1223) Project
Arguments: [product#1138521, plant#1138522, orderDateTime#1138523]
(1224) LogicalRelation
Arguments: parquet, [systemId#1138525, internalUUID#1138526, plant#1138527, product#1138528, blockedForReplenishmentStartingFrom#1138529, productionAspect#1138530, salesPlant#1138531, listing#1138532], false
(1225) Repartition
Arguments: 37, true
(1226) Project
Arguments: [systemId#1138525, internalUUID#1138526, plant#1138527, product#1138528, blockedForReplenishmentStartingFrom#1138529, productionAspect#1138530, salesPlant#1138531, listing#1138532, struct(systemId, systemId#1138525, internalUUID, internalUUID#1138526, plant, plant#1138527, product, product#1138528, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1138529, productionAspect, productionAspect#1138530, salesPlant, salesPlant#1138531, listing, listing#1138532) AS productPlant#1138533]
(1227) Project
Arguments: [productPlant#1138533]
(1228) Join
Arguments: LeftOuter, ((product#1138521 <=> productPlant#1138533.product.internalRefUUID) AND (plant#1138522 <=> productPlant#1138533.plant.internalRefUUID))
(1229) Project
Arguments: [product#1138521, plant#1138522, orderDateTime#1138523, productPlant#1138533]
(1230) SubqueryAlias
Arguments: wl
(1231) LogicalRelation
Arguments: parquet, [systemId#1138534, internalUUID#1138535, id#1138536, displayId#1138537, name#1138538, category#1138539, companyCode#1138540, address#1138541, mainDistributionChain#1138542, mainPurchasingOrganization#1138543, validPurchasingOrganizations#1138544, productGroup#1138545], false
(1232) Repartition
Arguments: 37, true
(1233) Project
Arguments: [internalUUID#1138535, address#1138541.timeZone.code AS timezonecode#1138546]
(1234) Join
Arguments: LeftOuter, (plant#1138522 <=> internalUUID#1138535)
(1235) Project
Arguments: [product#1138521, plant#1138522, orderDateTime#1138523, productPlant#1138533, internalUUID#1138535, CASE WHEN isnotnull(timezonecode#1138546) THEN timezonecode#1138546 ELSE UTC END AS timezonecode#1138547]
(1236) Project
Arguments: [product#1138521, plant#1138522, orderDateTime#1138523, productPlant#1138533, timezonecode#1138547]
(1237) LogicalRelation
Arguments: parquet, [systemId#1138548, internalUUID#1138549, id#1138550, displayId#1138551, name#1138552, baseUnitOfMeasure#1138553, unitOfMeasures#1138554, unitOfMeasureConversions#1138555, productionAspect#1138556, salesAspect#1138557, procurementAspect#1138558, productGroup#1138559], false
(1238) Repartition
Arguments: 37, true
(1239) Join
Arguments: LeftOuter, (product#1138521 = internalUUID#1138549)
(1240) Project
Arguments: [product#1138521, plant#1138522, orderDateTime#1138523, productPlant#1138533, timezonecode#1138547, systemId#1138548, internalUUID#1138549, id#1138550, displayId#1138551, name#1138552, baseUnitOfMeasure#1138553, unitOfMeasures#1138554, unitOfMeasureConversions#1138555, productionAspect#1138556, salesAspect#1138557, procurementAspect#1138558, productGroup#1138559, filter(unitOfMeasureConversions#1138555, lambdafunction((((lambda u#1135738.measurementUnit1.code = productPlant#1138533.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1135738.measurementUnit1.internalRefUUID = productPlant#1138533.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1138553.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1138553.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1138560]
(1241) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1138560.quantityNumerator), true, [quantityNumerator#1138561]
(1242) Project
Arguments: [product#1138521, plant#1138522, orderDateTime#1138523, productPlant#1138533, timezonecode#1138547, systemId#1138548, internalUUID#1138549, id#1138550, displayId#1138551, name#1138552, baseUnitOfMeasure#1138553, unitOfMeasures#1138554, unitOfMeasureConversions#1138555, productionAspect#1138556, salesAspect#1138557, procurementAspect#1138558, productGroup#1138559, filteredUnitOfMeasureConversions#1138560, quantityNumerator#1138561]
(1243) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1138560.quantityDenominator), true, [quantityDenominator#1138562]
(1244) Project
Arguments: [product#1138521, plant#1138522, orderDateTime#1138523, productPlant#1138533, timezonecode#1138547, systemId#1138548, internalUUID#1138549, id#1138550, displayId#1138551, name#1138552, baseUnitOfMeasure#1138553, unitOfMeasures#1138554, unitOfMeasureConversions#1138555, productionAspect#1138556, salesAspect#1138557, procurementAspect#1138558, productGroup#1138559, filteredUnitOfMeasureConversions#1138560, quantityNumerator#1138561, quantityDenominator#1138562]
(1245) Project
Arguments: [product#1138521, plant#1138522, orderDateTime#1138523, productPlant#1138533, timezonecode#1138547, systemId#1138548, internalUUID#1138549, id#1138550, displayId#1138551, name#1138552, baseUnitOfMeasure#1138553, unitOfMeasures#1138554, unitOfMeasureConversions#1138555, productionAspect#1138556, salesAspect#1138557, procurementAspect#1138558, productGroup#1138559, filteredUnitOfMeasureConversions#1138560, quantityNumerator#1138561, quantityDenominator#1138562, (cast(quantityNumerator#1138561 as double) / cast(quantityDenominator#1138562 as double)) AS outboundUnit#1138563]
(1246) Project
Arguments: [product#1138521, plant#1138522, orderDateTime#1138523, productPlant#1138533, timezonecode#1138547, systemId#1138548, internalUUID#1138549, id#1138550, displayId#1138551, name#1138552, baseUnitOfMeasure#1138553, unitOfMeasures#1138554, unitOfMeasureConversions#1138555, productionAspect#1138556, salesAspect#1138557, procurementAspect#1138558, productGroup#1138559, filteredUnitOfMeasureConversions#1138560, quantityNumerator#1138561, quantityDenominator#1138562, CASE WHEN (isnull(outboundUnit#1138563) OR (outboundUnit#1138563 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1138563 END AS outboundUnit#1138564]
(1247) Project
Arguments: [product#1138521, plant#1138522, orderDateTime#1138523, productPlant#1138533, timezonecode#1138547, outboundUnit#1138564]
(1248) Project
Arguments: [plant#1138522]
(1249) Deduplicate
Arguments: [plant#1138522]
(1250) Join
Arguments: Inner, (plantUuid#1138518 = plant#1138522)
(1251) Project
Arguments: [plantId#1138517, plantUuid#1138518, storageLocId#1138519, storageLocUuid#1138520]
(1252) Join
Arguments: Inner, (plant#1138490.internalRefUUID <=> plantUuid#1138518)
(1253) Generate
Arguments: explode(filter(stockQuantities#1138492, lambdafunction(((lambda x#1135796.storageLocation.internalRefUuid = storageLocUuid#1138520) AND (lambda x#1135796.storageLocation.Id = storageLocId#1138519)), lambda x#1135796, false))), false, [stockQuantity#1138565]
(1254) Project
Arguments: [systemId#1138487, internalUUID#1138488, product#1138489, plant#1138490, calculationDateTime#1138491, stockQuantities#1138492, plantId#1138517, plantUuid#1138518, storageLocId#1138519, storageLocUuid#1138520, stockQuantity#1138565]
(1255) Aggregate
Arguments: [plantUuid#1138518, internalUUID#1138488, plant#1138490, product#1138489, systemId#1138487], [plantUuid#1138518, internalUUID#1138488, plant#1138490, product#1138489, systemId#1138487, first(calculationDateTime#1138491, false) AS calculationDateTime#1138566, collect_list(stockQuantity#1138565, 0, 0) AS stockQuantities#1138567]
(1256) Project
Arguments: [systemId#1138487, internalUUID#1138488, product#1138489, plant#1138490, calculationDateTime#1138566, stockQuantities#1138567]
(1257) Generate
Arguments: explode(stockQuantities#1138567), false, [stockQuantity#1138568]
(1258) Project
Arguments: [systemId#1138487, internalUUID#1138488, product#1138489, plant#1138490, calculationDateTime#1138566, stockQuantities#1138567, stockQuantity#1138568]
(1259) Project
Arguments: [plant#1138490.id AS plant#1138569, plant#1138490.internalRefUUID AS plantUuid#1138570, product#1138489.id AS product#1138571, product#1138489.internalRefUUID AS productUuid#1138572, calculationDateTime#1138566, stockQuantity#1138568.storagelocation.id AS storageLocId#1138573, stockQuantity#1138568.storagelocation.internalRefUUID AS storageLocUuid#1138574, stockQuantity#1138568.quantity.measure AS quantity#1138575, stockQuantity#1138568.specialStockIndicator.code AS specialStockIndicator#1138576, stockQuantity#1138568.stockType.code AS stockType#1138577]
(1260) Filter
Arguments: ((specialStockIndicator#1138576 = ) AND (stockType#1138577 = 01))
(1261) LogicalRelation
Arguments: parquet, [product#1138578, plant#1138579, orderDateTime#1138580, planningStartDateTime#1138581], false
(1262) RepartitionByExpression
Arguments: [product#1138578, plant#1138579], 37
(1263) Project
Arguments: [product#1138578, plant#1138579, orderDateTime#1138580]
(1264) LogicalRelation
Arguments: parquet, [systemId#1138582, internalUUID#1138583, plant#1138584, product#1138585, blockedForReplenishmentStartingFrom#1138586, productionAspect#1138587, salesPlant#1138588, listing#1138589], false
(1265) Repartition
Arguments: 37, true
(1266) Project
Arguments: [systemId#1138582, internalUUID#1138583, plant#1138584, product#1138585, blockedForReplenishmentStartingFrom#1138586, productionAspect#1138587, salesPlant#1138588, listing#1138589, struct(systemId, systemId#1138582, internalUUID, internalUUID#1138583, plant, plant#1138584, product, product#1138585, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1138586, productionAspect, productionAspect#1138587, salesPlant, salesPlant#1138588, listing, listing#1138589) AS productPlant#1138590]
(1267) Project
Arguments: [productPlant#1138590]
(1268) Join
Arguments: LeftOuter, ((product#1138578 <=> productPlant#1138590.product.internalRefUUID) AND (plant#1138579 <=> productPlant#1138590.plant.internalRefUUID))
(1269) Project
Arguments: [product#1138578, plant#1138579, orderDateTime#1138580, productPlant#1138590]
(1270) SubqueryAlias
Arguments: wl
(1271) LogicalRelation
Arguments: parquet, [systemId#1138591, internalUUID#1138592, id#1138593, displayId#1138594, name#1138595, category#1138596, companyCode#1138597, address#1138598, mainDistributionChain#1138599, mainPurchasingOrganization#1138600, validPurchasingOrganizations#1138601, productGroup#1138602], false
(1272) Repartition
Arguments: 37, true
(1273) Project
Arguments: [internalUUID#1138592, address#1138598.timeZone.code AS timezonecode#1138603]
(1274) Join
Arguments: LeftOuter, (plant#1138579 <=> internalUUID#1138592)
(1275) Project
Arguments: [product#1138578, plant#1138579, orderDateTime#1138580, productPlant#1138590, internalUUID#1138592, CASE WHEN isnotnull(timezonecode#1138603) THEN timezonecode#1138603 ELSE UTC END AS timezonecode#1138604]
(1276) Project
Arguments: [product#1138578, plant#1138579, orderDateTime#1138580, productPlant#1138590, timezonecode#1138604]
(1277) LogicalRelation
Arguments: parquet, [systemId#1138605, internalUUID#1138606, id#1138607, displayId#1138608, name#1138609, baseUnitOfMeasure#1138610, unitOfMeasures#1138611, unitOfMeasureConversions#1138612, productionAspect#1138613, salesAspect#1138614, procurementAspect#1138615, productGroup#1138616], false
(1278) Repartition
Arguments: 37, true
(1279) Join
Arguments: LeftOuter, (product#1138578 = internalUUID#1138606)
(1280) Project
Arguments: [product#1138578, plant#1138579, orderDateTime#1138580, productPlant#1138590, timezonecode#1138604, systemId#1138605, internalUUID#1138606, id#1138607, displayId#1138608, name#1138609, baseUnitOfMeasure#1138610, unitOfMeasures#1138611, unitOfMeasureConversions#1138612, productionAspect#1138613, salesAspect#1138614, procurementAspect#1138615, productGroup#1138616, filter(unitOfMeasureConversions#1138612, lambdafunction((((lambda u#1135738.measurementUnit1.code = productPlant#1138590.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1135738.measurementUnit1.internalRefUUID = productPlant#1138590.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1138610.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1138610.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1138617]
(1281) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1138617.quantityNumerator), true, [quantityNumerator#1138618]
(1282) Project
Arguments: [product#1138578, plant#1138579, orderDateTime#1138580, productPlant#1138590, timezonecode#1138604, systemId#1138605, internalUUID#1138606, id#1138607, displayId#1138608, name#1138609, baseUnitOfMeasure#1138610, unitOfMeasures#1138611, unitOfMeasureConversions#1138612, productionAspect#1138613, salesAspect#1138614, procurementAspect#1138615, productGroup#1138616, filteredUnitOfMeasureConversions#1138617, quantityNumerator#1138618]
(1283) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1138617.quantityDenominator), true, [quantityDenominator#1138619]
(1284) Project
Arguments: [product#1138578, plant#1138579, orderDateTime#1138580, productPlant#1138590, timezonecode#1138604, systemId#1138605, internalUUID#1138606, id#1138607, displayId#1138608, name#1138609, baseUnitOfMeasure#1138610, unitOfMeasures#1138611, unitOfMeasureConversions#1138612, productionAspect#1138613, salesAspect#1138614, procurementAspect#1138615, productGroup#1138616, filteredUnitOfMeasureConversions#1138617, quantityNumerator#1138618, quantityDenominator#1138619]
(1285) Project
Arguments: [product#1138578, plant#1138579, orderDateTime#1138580, productPlant#1138590, timezonecode#1138604, systemId#1138605, internalUUID#1138606, id#1138607, displayId#1138608, name#1138609, baseUnitOfMeasure#1138610, unitOfMeasures#1138611, unitOfMeasureConversions#1138612, productionAspect#1138613, salesAspect#1138614, procurementAspect#1138615, productGroup#1138616, filteredUnitOfMeasureConversions#1138617, quantityNumerator#1138618, quantityDenominator#1138619, (cast(quantityNumerator#1138618 as double) / cast(quantityDenominator#1138619 as double)) AS outboundUnit#1138620]
(1286) Project
Arguments: [product#1138578, plant#1138579, orderDateTime#1138580, productPlant#1138590, timezonecode#1138604, systemId#1138605, internalUUID#1138606, id#1138607, displayId#1138608, name#1138609, baseUnitOfMeasure#1138610, unitOfMeasures#1138611, unitOfMeasureConversions#1138612, productionAspect#1138613, salesAspect#1138614, procurementAspect#1138615, productGroup#1138616, filteredUnitOfMeasureConversions#1138617, quantityNumerator#1138618, quantityDenominator#1138619, CASE WHEN (isnull(outboundUnit#1138620) OR (outboundUnit#1138620 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1138620 END AS outboundUnit#1138621]
(1287) Project
Arguments: [product#1138578, plant#1138579, orderDateTime#1138580, productPlant#1138590, timezonecode#1138604, outboundUnit#1138621]
(1288) Join
Arguments: Inner, ((plantUuid#1138570 = plant#1138579) AND (productUuid#1138572 = product#1138578))
(1289) Filter
Arguments: (calculationDateTime#1138566 <= orderDateTime#1138580)
(1290) Project
Arguments: [plantUuid#1138570 AS plant#1138622, productUuid#1138572 AS product#1138623, storageLocId#1138573, calculationDateTime#1138566, quantity#1138575]
(1291) Aggregate
Arguments: [plant#1138622, product#1138623, storageLocId#1138573], [plant#1138622, product#1138623, storageLocId#1138573, max(calculationDateTime#1138566) AS max_calc_datetime#1138624]
(1292) Join
Arguments: Inner, ((((plant#1138485 <=> plant#1138622) AND (product#1138486 <=> product#1138623)) AND (storageLocId#1138436 <=> storageLocId#1138573)) AND (calculationDateTime#1138429 <=> max_calc_datetime#1138624))
(1293) Project
Arguments: [plant#1138485, product#1138486, storageLocId#1138436, calculationDateTime#1138429, quantity#1138438]
(1294) Aggregate
Arguments: [product#1138486, plant#1138485], [product#1138486, plant#1138485, sum(quantity#1138438) AS quantitySum#1138625, min(calculationDateTime#1138429) AS minCalculationDateTime#1138626]
(1295) Project
Arguments: [product#1138486, plant#1138485, quantitySum#1138625, minCalculationDateTime#1138626, round(quantitySum#1138625, 0) AS roundedQuantitySum#1138627]
(1296) Join
Arguments: LeftOuter, ((plant#1138307 = plant#1138485) AND (product#1138306 = product#1138486))
(1297) Project
Arguments: [product#1138306, plant#1138307, orderDateTime#1138308, productPlant#1138318, timezonecode#1138332, outboundUnit#1138349, roundedQuantitySum#1138627, minCalculationDateTime#1138626]
(1298) Project
Arguments: [product#1138306, plant#1138307, orderDateTime#1138308, productPlant#1138318, timezonecode#1138332, outboundUnit#1138349, roundedQuantitySum#1138627, minCalculationDateTime#1138626, CASE WHEN isnotnull(minCalculationDateTime#1138626) THEN minCalculationDateTime#1138626 ELSE orderDateTime#1138308 END AS stockDatetime#1138628]
(1299) Project
Arguments: [product#1138306, plant#1138307, orderDateTime#1138308, productPlant#1138318, timezonecode#1138332, outboundUnit#1138349, roundedQuantitySum#1138627, minCalculationDateTime#1138626, stockDatetime#1138628, CASE WHEN isnotnull(roundedQuantitySum#1138627) THEN array(roundedQuantitySum#1138627) ELSE array(0.0) END AS stockBatchQuantities#1138629]
(1300) Project
Arguments: [product#1138306, plant#1138307, orderDateTime#1138308, productPlant#1138318, timezonecode#1138332, outboundUnit#1138349, roundedQuantitySum#1138627, minCalculationDateTime#1138626, stockDatetime#1138628, stockBatchQuantities#1138629, array(2199-01-01 00:00:00) AS stockBatchShelfLifeEndDatetimes#1138630]
(1301) Project
Arguments: [product#1138306, plant#1138307, orderDateTime#1138308, productPlant#1138318, timezonecode#1138332, outboundUnit#1138349, roundedQuantitySum#1138627, stockDatetime#1138628, stockBatchQuantities#1138629, stockBatchShelfLifeEndDatetimes#1138630]
(1302) Project
Arguments: [product#1138306, plant#1138307, orderDateTime#1138308, productPlant#1138318, timezonecode#1138332, outboundUnit#1138349, stockDatetime#1138628, stockBatchQuantities#1138629, stockBatchShelfLifeEndDatetimes#1138630]
(1303) LogicalRelation
Arguments: parquet, [product#1138631, plant#1138632, demandChannel#1138633, demandStream#1138634, considerVariance#1138635, demandTimeBuckets#1138636, demandPointInTimeStart#1138637, demandPointInTimeEnd#1138638, demandPointInTime#1138639], false
(1304) Join
Arguments: LeftOuter, ((product#1138306 = product#1138631) AND (plant#1138307 = plant#1138632))
(1305) Project
Arguments: [product#1138306, plant#1138307, orderDateTime#1138308, productPlant#1138318, timezonecode#1138332, outboundUnit#1138349, stockDatetime#1138628, stockBatchQuantities#1138629, stockBatchShelfLifeEndDatetimes#1138630, demandChannel#1138633, demandStream#1138634, considerVariance#1138635, demandTimeBuckets#1138636, demandPointInTimeStart#1138637, demandPointInTimeEnd#1138638, demandPointInTime#1138639, product#1138631, plant#1138632]
(1306) Project
Arguments: [product#1138306, plant#1138307, orderDateTime#1138308, productPlant#1138318, timezonecode#1138332, outboundUnit#1138349, stockDatetime#1138628, stockBatchQuantities#1138629, stockBatchShelfLifeEndDatetimes#1138630, demandChannel#1138633, demandStream#1138634, considerVariance#1138635, demandTimeBuckets#1138636, demandPointInTimeStart#1138637, demandPointInTimeEnd#1138638, demandPointInTime#1138639, CASE WHEN isnotnull(product#1138631) THEN struct(demandChannel, demandChannel#1138633, demandStream, demandStream#1138634, considerVariance, considerVariance#1138635, demandTimeBuckets, demandTimeBuckets#1138636, demandPointInTimeStart, demandPointInTimeStart#1138637, demandPointInTimeEnd, demandPointInTimeEnd#1138638, demandPointInTime, demandPointInTime#1138639) ELSE cast(null as struct<demandChannel:string,demandStream:string,considerVariance:boolean,demandTimeBuckets:array<struct<demandStartDateTime:timestamp,demandQuantity:double,demandVariance:double>>,demandPointInTimeStart:timestamp,demandPointInTimeEnd:timestamp,demandPointInTime:array<struct<demandDateTime:timestamp,demandQuantity:double,demandVariance:double>>>) END AS rawDemands#1138640]
(1307) Aggregate
Arguments: [product#1138306, plant#1138307, orderDateTime#1138308, productPlant#1138318, timezonecode#1138332, outboundUnit#1138349, stockDatetime#1138628, stockBatchQuantities#1138629, stockBatchShelfLifeEndDatetimes#1138630], [product#1138306, plant#1138307, orderDateTime#1138308, productPlant#1138318, timezonecode#1138332, outboundUnit#1138349, stockDatetime#1138628, stockBatchQuantities#1138629, stockBatchShelfLifeEndDatetimes#1138630, collect_list(rawDemands#1138640, 0, 0) AS rawDemands#1138641]
(1308) DeserializeToObject
Arguments: createexternalrow(invoke(product#1138306.toString()), invoke(plant#1138307.toString()), static_invoke(DateTimeUtils.toJavaTimestamp(orderDateTime#1138308)), if (isnull(productPlant#1138318)) null else createexternalrow(invoke(productPlant#1138318.systemId.toString()), invoke(productPlant#1138318.internalUUID.toString()), if (isnull(productPlant#1138318.plant)) null else createexternalrow(invoke(productPlant#1138318.plant.internalRefUUID.toString()), invoke(productPlant#1138318.plant.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), if (isnull(productPlant#1138318.product)) null else createexternalrow(invoke(productPlant#1138318.product.internalRefUUID.toString()), invoke(productPlant#1138318.product.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(DateTimeUtils.toJavaDate(productPlant#1138318.blockedForReplenishmentStartingFrom)), if (isnull(productPlant#1138318.productionAspect)) null else createexternalrow(if (isnull(productPlant#1138318.productionAspect.productMovementPlants)) null else createexternalrow(if (isnull(productPlant#1138318.productionAspect.productMovementPlants.unitOfIssue)) null else createexternalrow(invoke(productPlant#1138318.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID.toString()), invoke(productPlant#1138318.productionAspect.productMovementPlants.unitOfIssue.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), if (isnull(productPlant#1138318.productionAspect.productPlanningPlants)) null else createexternalrow(if (isnull(productPlant#1138318.productionAspect.productPlanningPlants.mrpType)) null else createexternalrow(invoke(productPlant#1138318.productionAspect.productPlanningPlants.mrpType.internalRefUUID.toString()), invoke(productPlant#1138318.productionAspect.productPlanningPlants.mrpType.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1138318.productionAspect.productPlanningPlants.abcIndicator)) null else createexternalrow(invoke(productPlant#1138318.productionAspect.productPlanningPlants.abcIndicator.internalRefUUID.toString()), invoke(productPlant#1138318.productionAspect.productPlanningPlants.abcIndicator.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1138318.productionAspect.productPlanningPlants.mrpController)) null else createexternalrow(invoke(productPlant#1138318.productionAspect.productPlanningPlants.mrpController.internalRefUUID.toString()), invoke(productPlant#1138318.productionAspect.productPlanningPlants.mrpController.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(java.lang.Double.valueOf(productPlant#1138318.productionAspect.productPlanningPlants.minimumLotSize)), if (isnull(productPlant#1138318.productionAspect.productPlanningPlants.logisticalRoundingProfile)) null else createexternalrow(invoke(productPlant#1138318.productionAspect.productPlanningPlants.logisticalRoundingProfile.internalRefUUID.toString()), invoke(productPlant#1138318.productionAspect.productPlanningPlants.logisticalRoundingProfile.logisticalRoundingProfile.toString()), StructField(internalRefUUID,StringType,true), StructField(logisticalRoundingProfile,StringType,true)), if (isnull(productPlant#1138318.productionAspect.productPlanningPlants.sourceOfSupplyCategory)) null else createexternalrow(invoke(productPlant#1138318.productionAspect.productPlanningPlants.sourceOfSupplyCategory.internalRefUUID.toString()), invoke(productPlant#1138318.productionAspect.productPlanningPlants.sourceOfSupplyCategory.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true), StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true), StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(minimumLotSize,DoubleType,true), StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true), StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true), StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)), if (isnull(productPlant#1138318.salesPlant)) null else createexternalrow(if (isnull(productPlant#1138318.salesPlant.loadingGroup)) null else createexternalrow(invoke(productPlant#1138318.salesPlant.loadingGroup.internalRefUUID.toString()), invoke(productPlant#1138318.salesPlant.loadingGroup.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), mapobjects(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 152118), if (isnull(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 152118))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 152118).validFrom)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 152118).validTo)), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 152118).isListed)), StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true)), productPlant#1138318.listing, Some(class scala.collection.mutable.ArraySeq)), StructField(systemId,StringType,true), StructField(internalUUID,StringType,true), StructField(plant,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(product,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(blockedForReplenishmentStartingFrom,DateType,true), StructField(productionAspect,StructType(StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)),true), StructField(salesPlant,StructType(StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true), StructField(listing,ArrayType(StructType(StructField(validFrom,TimestampType,true),StructField(validTo,TimestampType,true),StructField(isListed,BooleanType,true)),true),true)), invoke(timezonecode#1138332.toString()), static_invoke(java.lang.Double.valueOf(outboundUnit#1138349)), static_invoke(DateTimeUtils.toJavaTimestamp(stockDatetime#1138628)), mapobjects(lambdavariable(MapObject, DoubleType, true, 152119), static_invoke(java.lang.Double.valueOf(cast(lambdavariable(MapObject, DoubleType, true, 152119) as double))), stockBatchQuantities#1138629, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, false, 152120), assertnotnull(static_invoke(DateTimeUtils.toJavaTimestamp(cast(lambdavariable(MapObject, TimestampType, false, 152120) as timestamp)))), stockBatchShelfLifeEndDatetimes#1138630, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, 152121), assertnotnull(if (isnull(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, 152121))) null else createexternalrow(invoke(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, 152121).demandChannel.toString()), invoke(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, 152121).demandStream.toString()), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, 152121).considerVariance)), mapobjects(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 152122), if (isnull(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 152122))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 152122).demandStartDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 152122).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 152122).demandVariance)), StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true)), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, 152121).demandTimeBuckets, Some(class scala.collection.mutable.ArraySeq)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, 152121).demandPointInTimeStart)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, 152121).demandPointInTimeEnd)), mapobjects(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 152123), if (isnull(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 152123))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 152123).demandDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 152123).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 152123).demandVariance)), StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true)), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, 152121).demandPointInTime, Some(class scala.collection.mutable.ArraySeq)), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true))), rawDemands#1138641, Some(class scala.collection.mutable.ArraySeq)), StructField(product,StringType,true), StructField(plant,StringType,true), StructField(orderDateTime,TimestampType,true), StructField(productPlant,StructType(StructField(systemId,StringType,true),StructField(internalUUID,StringType,true),StructField(plant,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(product,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(blockedForReplenishmentStartingFrom,DateType,true),StructField(productionAspect,StructType(StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)),true),StructField(salesPlant,StructType(StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(listing,ArrayType(StructType(StructField(validFrom,TimestampType,true),StructField(validTo,TimestampType,true),StructField(isListed,BooleanType,true)),true),true)),true), StructField(timezonecode,StringType,true), StructField(outboundUnit,DoubleType,true), StructField(stockDatetime,TimestampType,true), StructField(stockBatchQuantities,ArrayType(DoubleType,true),false), StructField(stockBatchShelfLifeEndDatetimes,ArrayType(TimestampType,false),false), StructField(rawDemands,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(considerVariance,BooleanType,true),StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true),StructField(demandPointInTimeStart,TimestampType,true),StructField(demandPointInTimeEnd,TimestampType,true),StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true)),false),false)), obj#1136159: org.apache.spark.sql.Row
(1309) MapElements
Arguments: com.sap.s4hana.eureka.business.crporderquantitykpiservice.core.business.datasnapshot.DemandTransformatorImpl$$Lambda/0x00000008023bc120@a39b9be, interface org.apache.spark.sql.Row, [StructField(product,StringType,true), StructField(plant,StringType,true), StructField(orderDateTime,TimestampType,true), StructField(productPlant,StructType(StructField(systemId,StringType,true),StructField(internalUUID,StringType,true),StructField(plant,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(product,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(blockedForReplenishmentStartingFrom,DateType,true),StructField(productionAspect,StructType(StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)),true),StructField(salesPlant,StructType(StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(listing,ArrayType(StructType(StructField(validFrom,TimestampType,true),StructField(validTo,TimestampType,true),StructField(isListed,BooleanType,true)),true),true)),true), StructField(timezonecode,StringType,true), StructField(outboundUnit,DoubleType,true), StructField(stockDatetime,TimestampType,true), StructField(stockBatchQuantities,ArrayType(DoubleType,true),false), StructField(stockBatchShelfLifeEndDatetimes,ArrayType(TimestampType,false),false), StructField(rawDemands,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(considerVariance,BooleanType,true),StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true),StructField(demandPointInTimeStart,TimestampType,true),StructField(demandPointInTimeEnd,TimestampType,true),StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true)),false),false)], obj#1136164: org.apache.spark.sql.Row
(1310) SerializeFromObject
Arguments: [if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(0))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 0, product), StringType, ObjectType(class java.lang.String)))) AS product#1138642, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(1))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 1, plant), StringType, ObjectType(class java.lang.String)))) AS plant#1138643, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(2))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), assertnotnull(if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)))) null else named_struct(demandChannel, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(0))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 0, demandChannel), StringType, ObjectType(class java.lang.String)))), demandStream, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(1))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 1, demandStream), StringType, ObjectType(class java.lang.String)))), considerVariance, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(2))) null else invoke(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 2, considerVariance), BooleanType, ObjectType(class java.lang.Boolean)).booleanValue()), demandValues, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(3))) null else if (invoke(class [D.isInstance(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 3, demandValues), ArrayType(DoubleType,false), ObjectType(class java.lang.Object))))) static_invoke(ArrayData.toArrayData(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 3, demandValues), ArrayType(DoubleType,false), ObjectType(class java.lang.Object)))) else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152109), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152109), DoubleType, ObjectType(class java.lang.Double)).doubleValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 3, demandValues), ArrayType(DoubleType,false), ObjectType(class java.lang.Object)), None), demandVariances, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(4))) null else if (invoke(class [D.isInstance(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 4, demandVariances), ArrayType(DoubleType,true), ObjectType(class java.lang.Object))))) static_invoke(ArrayData.toArrayData(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 4, demandVariances), ArrayType(DoubleType,true), ObjectType(class java.lang.Object)))) else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152110), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152110), DoubleType, ObjectType(class java.lang.Double)).doubleValue()), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 4, demandVariances), ArrayType(DoubleType,true), ObjectType(class java.lang.Object)), None), anchorDatetimes, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(5))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152111), assertnotnull(static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152111), TimestampType, ObjectType(class java.sql.Timestamp))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 5, anchorDatetimes), ArrayType(TimestampType,false), ObjectType(class java.lang.Object)), None), anchorWeekdays, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(6))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152112), assertnotnull(static_invoke(UTF8String.fromString(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152112), StringType, ObjectType(class java.lang.String))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 6, anchorWeekdays), ArrayType(StringType,false), ObjectType(class java.lang.Object)), None), anchorIndices, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(7))) null else if (invoke(class [I.isInstance(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 7, anchorIndices), ArrayType(IntegerType,false), ObjectType(class java.lang.Object))))) static_invoke(ArrayData.toArrayData(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 7, anchorIndices), ArrayType(IntegerType,false), ObjectType(class java.lang.Object)))) else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152113), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152113), IntegerType, ObjectType(class java.lang.Integer)).intValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 7, anchorIndices), ArrayType(IntegerType,false), ObjectType(class java.lang.Object)), None))), validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 2, dayBucketDemands), ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(considerVariance,BooleanType,true),StructField(demandValues,ArrayType(DoubleType,false),true),StructField(demandVariances,ArrayType(DoubleType,true),true),StructField(anchorDatetimes,ArrayType(TimestampType,false),true),StructField(anchorWeekdays,ArrayType(StringType,false),true),StructField(anchorIndices,ArrayType(IntegerType,false),true)),false), ObjectType(class java.lang.Object)), None) AS dayBucketDemands#1138644, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(3))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), assertnotnull(if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)))) null else named_struct(demandChannel, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(0))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 0, demandChannel), StringType, ObjectType(class java.lang.String)))), demandStream, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(1))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 1, demandStream), StringType, ObjectType(class java.lang.String)))), considerVariance, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(2))) null else invoke(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 2, considerVariance), BooleanType, ObjectType(class java.lang.Boolean)).booleanValue()), demandDatetimes, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(3))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152115), assertnotnull(static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152115), TimestampType, ObjectType(class java.sql.Timestamp))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 3, demandDatetimes), ArrayType(TimestampType,false), ObjectType(class java.lang.Object)), None), demandValues, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(4))) null else if (invoke(class [D.isInstance(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 4, demandValues), ArrayType(DoubleType,false), ObjectType(class java.lang.Object))))) static_invoke(ArrayData.toArrayData(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 4, demandValues), ArrayType(DoubleType,false), ObjectType(class java.lang.Object)))) else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152116), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152116), DoubleType, ObjectType(class java.lang.Double)).doubleValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 4, demandValues), ArrayType(DoubleType,false), ObjectType(class java.lang.Object)), None), demandVariances, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(5))) null else if (invoke(class [D.isInstance(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 5, demandVariances), ArrayType(DoubleType,true), ObjectType(class java.lang.Object))))) static_invoke(ArrayData.toArrayData(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 5, demandVariances), ArrayType(DoubleType,true), ObjectType(class java.lang.Object)))) else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152117), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152117), DoubleType, ObjectType(class java.lang.Double)).doubleValue()), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 5, demandVariances), ArrayType(DoubleType,true), ObjectType(class java.lang.Object)), None), horizonStartDatetime, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(6))) null else static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 6, horizonStartDatetime), TimestampType, ObjectType(class java.sql.Timestamp)))), horizonEndDatetime, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(7))) null else static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 7, horizonEndDatetime), TimestampType, ObjectType(class java.sql.Timestamp)))))), validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 3, pointInTimeDemands), ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(considerVariance,BooleanType,true),StructField(demandDatetimes,ArrayType(TimestampType,false),true),StructField(demandValues,ArrayType(DoubleType,false),true),StructField(demandVariances,ArrayType(DoubleType,true),true),StructField(horizonStartDatetime,TimestampType,true),StructField(horizonEndDatetime,TimestampType,true)),false), ObjectType(class java.lang.Object)), None) AS pointInTimeDemands#1138645]
(1311) Join
Arguments: LeftOuter, ((plant#1138643 <=> plant#1137982) AND (product#1138642 <=> product#1137981))
(1312) Project
Arguments: [product#1137981, plant#1137982, orderDateTime#1137983, productPlant#1137993, timezonecode#1138007, outboundUnit#1138024, stockDatetime#1138303, stockBatchQuantities#1138304, stockBatchShelfLifeEndDatetimes#1138305, plant#1138643, dayBucketDemands#1138644, pointInTimeDemands#1138645]
(1313) Project
Arguments: [product#1137981, plant#1137982, orderDateTime#1137983, productPlant#1137993, timezonecode#1138007, outboundUnit#1138024, stockDatetime#1138303, stockBatchQuantities#1138304, stockBatchShelfLifeEndDatetimes#1138305, dayBucketDemands#1138644, pointInTimeDemands#1138645]
(1314) LogicalRelation
Arguments: parquet, [systemId#1138646, internalUUID#1138647, id#1138648, displayId#1138649, supplier#1138650, type#1138651, status#1138652, isMarkedForDeletion#1138653, items#1138654], false
(1315) Repartition
Arguments: 37, true
(1316) Generate
Arguments: explode(items#1138654), false, [item#1138655]
(1317) Project
Arguments: [id#1138648, internalUUID#1138647, isMarkedForDeletion#1138653, supplier#1138650.internalRefUUID AS supplierUuid#1138656, item#1138655]
(1318) Filter
Arguments: (((NOT isMarkedForDeletion#1138653 AND NOT item#1138655.deletionIndicator) AND NOT item#1138655.completeIndicator) AND NOT item#1138655.returnIndicator)
(1319) Project
Arguments: [id#1138648, internalUUID#1138647, supplierUuid#1138656, item#1138655.plant.internalRefUUID AS plant#1138657, item#1138655.product.internalRefUUID AS product#1138658, item#1138655.plant.id AS externalPlantId#1138659, item#1138655.product.id AS externalProductId#1138660, item#1138655.storageLocation.internalRefUUID AS storageLocUuid#1138661, item#1138655.quantityUnit.code AS quantityUom#1138662, item#1138655.quantityUnit.internalRefUUID AS quantityUomUuid#1138663, item#1138655.quantityNumerator AS quantityNumerator#1138664, item#1138655.quantityDenominator AS quantityDenominator#1138665, item#1138655.scheduleLines AS scheduleLines#1138666, item#1138655.confirmations AS confirmations#1138667]
(1320) Join
Arguments: Inner, ((product#1137981 <=> product#1138658) AND (plant#1137982 <=> supplierUuid#1138656))
(1321) Project
Arguments: [id#1138648, internalUUID#1138647, supplierUuid#1138656, plant#1138657, product#1138658, externalPlantId#1138659, externalProductId#1138660, storageLocUuid#1138661, quantityUom#1138662, quantityUomUuid#1138663, quantityNumerator#1138664, quantityDenominator#1138665, scheduleLines#1138666, confirmations#1138667, stockDatetime#1138303, plant#1137982]
(1322) Project
Arguments: [id#1138648, internalUUID#1138647, supplierUuid#1138656, product#1138658, externalPlantId#1138659, externalProductId#1138660, storageLocUuid#1138661, quantityUom#1138662, quantityUomUuid#1138663, quantityNumerator#1138664, quantityDenominator#1138665, scheduleLines#1138666, confirmations#1138667, stockDatetime#1138303, plant#1137982]
(1323) Project
Arguments: [id#1138648, internalUUID#1138647, supplierUuid#1138656, product#1138658, externalPlantId#1138659, externalProductId#1138660, storageLocUuid#1138661, quantityUom#1138662, quantityUomUuid#1138663, quantityNumerator#1138664, quantityDenominator#1138665, scheduleLines#1138666, confirmations#1138667, stockDatetime#1138303, plant#1137982, filter(transform(filter(transform(scheduleLines#1138666, lambdafunction(struct(openQty, (greatest((lambda x_134#1137959.quantity - coalesce(lambda x_134#1137959.deliveredQuantity, 0.0)), 0.0) * -1.0), availabilityDatetime, coalesce(lambda x_134#1137959.productAvailabilityDateTime, lambda x_134#1137959.deliveryAt)), lambda x_134#1137959, false)), lambdafunction((lambda x_135#1137960.availabilityDatetime < stockDatetime#1138303), lambda x_135#1137960, false)), lambdafunction(struct(documentId, id#1138648, documentUuid, internalUUID#1138647, openQty, lambda x_136#1137961.openQty, openQtyInBaseUnit, ((lambda x_136#1137961.openQty * quantityNumerator#1138664) / quantityDenominator#1138665), qtyUom, quantityUom#1138662, qtyUomUuid, quantityUomUuid#1138663, availabilityDatetime, lambda x_136#1137961.availabilityDatetime, shelfLifeEndDatetime, 2199-01-01 00:00:00), lambda x_136#1137961, false)), lambdafunction(NOT (lambda x_137#1137962.openQty = 0.0), lambda x_137#1137962, false)) AS openGoodsMovements#1137958]
(1324) Aggregate
Arguments: [product#1138658, plant#1137982], [product#1138658, plant#1137982, flatten(collect_list(openGoodsMovements#1137958, 0, 0)) AS openGoodsMovements#1137963]
(1325) Filter
Arguments: (array_size(openGoodsMovements#1137963) > 0)
(1326) Union
Arguments: false, false
(1327) Aggregate
Arguments: [product#1136540, plant#1136539], [product#1136540, plant#1136539, flatten(collect_list(openGoodsMovements#1137658, 0, 0)) AS openGoodsMovements#1138718]
(1328) Join
Arguments: LeftOuter, ((product#1135691 = product#1136540) AND (plant#1135692 = plant#1136539))
(1329) Project
Arguments: [product#1135691, plant#1135692, orderDateTime#1135693, productPlant#1135705, timezonecode#1135723, outboundUnit#1135750, stockDatetime#1136095, stockBatchQuantities#1136096, stockBatchShelfLifeEndDatetimes#1136097, dayBucketDemands#1136171, pointInTimeDemands#1136172, openGoodsMovements#1138718]
(1330) Project
Arguments: [product#1135691, plant#1135692, orderDateTime#1135693, productPlant#1135705, timezonecode#1135723, outboundUnit#1135750, stockDatetime#1136095, stockBatchQuantities#1136096, stockBatchShelfLifeEndDatetimes#1136097, dayBucketDemands#1136171, pointInTimeDemands#1136172, coalesce(openGoodsMovements#1138718.openQtyInBaseUnit, cast(array() as array<double>)) AS openGoodsMovementQuantities#1139437, coalesce(openGoodsMovements#1138718.availabilityDatetime, cast(array() as array<timestamp>)) AS openGoodsMovementAvailabilityDatetimes#1139438, coalesce(openGoodsMovements#1138718.shelfLifeEndDatetime, cast(array() as array<timestamp>)) AS openGoodsMovementShelfLifeEndDatetimes#1139439]
(1331) Project
Arguments: [product#1135691, plant#1135692, orderDateTime#1135693, productPlant#1135705, timezonecode#1135723, outboundUnit#1135750, stockDatetime#1136095, stockBatchQuantities#1136096, stockBatchShelfLifeEndDatetimes#1136097, dayBucketDemands#1136171, pointInTimeDemands#1136172, openGoodsMovementQuantities#1139437, openGoodsMovementAvailabilityDatetimes#1139438, openGoodsMovementShelfLifeEndDatetimes#1139439, array(struct(configurationValidityDatetime, 1970-01-01 00:00:00, configurationName, ShelfLife.LIFOPreference, configurationValue, 0.42), struct(configurationValidityDatetime, 1970-01-01 00:00:00, configurationName, StockExtrapolation.ConsiderUnfulfilledDemands, configurationValue, 1)) AS configuration#1139540]
(1332) LogicalRelation
Arguments: parquet, [product#1139739, plant#1139740, orderDateTime#1139741, planningStartDateTime#1139742], false
(1333) RepartitionByExpression
Arguments: [product#1139739, plant#1139740], 37
(1334) Project
Arguments: [product#1139739, plant#1139740, orderDateTime#1139741]
(1335) LogicalRelation
Arguments: parquet, [systemId#1139743, internalUUID#1139744, plant#1139745, product#1139746, blockedForReplenishmentStartingFrom#1139747, productionAspect#1139748, salesPlant#1139749, listing#1139750], false
(1336) Repartition
Arguments: 37, true
(1337) Project
Arguments: [systemId#1139743, internalUUID#1139744, plant#1139745, product#1139746, blockedForReplenishmentStartingFrom#1139747, productionAspect#1139748, salesPlant#1139749, listing#1139750, struct(systemId, systemId#1139743, internalUUID, internalUUID#1139744, plant, plant#1139745, product, product#1139746, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1139747, productionAspect, productionAspect#1139748, salesPlant, salesPlant#1139749, listing, listing#1139750) AS productPlant#1139751]
(1338) Project
Arguments: [productPlant#1139751]
(1339) Join
Arguments: LeftOuter, ((product#1139739 <=> productPlant#1139751.product.internalRefUUID) AND (plant#1139740 <=> productPlant#1139751.plant.internalRefUUID))
(1340) Project
Arguments: [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751]
(1341) SubqueryAlias
Arguments: wl
(1342) LogicalRelation
Arguments: parquet, [systemId#1139752, internalUUID#1139753, id#1139754, displayId#1139755, name#1139756, category#1139757, companyCode#1139758, address#1139759, mainDistributionChain#1139760, mainPurchasingOrganization#1139761, validPurchasingOrganizations#1139762, productGroup#1139763], false
(1343) Repartition
Arguments: 37, true
(1344) Project
Arguments: [internalUUID#1139753, address#1139759.timeZone.code AS timezonecode#1139764]
(1345) Join
Arguments: LeftOuter, (plant#1139740 <=> internalUUID#1139753)
(1346) Project
Arguments: [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, internalUUID#1139753, CASE WHEN isnotnull(timezonecode#1139764) THEN timezonecode#1139764 ELSE UTC END AS timezonecode#1139765]
(1347) Project
Arguments: [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, timezonecode#1139765]
(1348) LogicalRelation
Arguments: parquet, [systemId#1139766, internalUUID#1139767, id#1139768, displayId#1139769, name#1139770, baseUnitOfMeasure#1139771, unitOfMeasures#1139772, unitOfMeasureConversions#1139773, productionAspect#1139774, salesAspect#1139775, procurementAspect#1139776, productGroup#1139777], false
(1349) Repartition
Arguments: 37, true
(1350) Join
Arguments: LeftOuter, (product#1139739 = internalUUID#1139767)
(1351) Project
Arguments: [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, timezonecode#1139765, systemId#1139766, internalUUID#1139767, id#1139768, displayId#1139769, name#1139770, baseUnitOfMeasure#1139771, unitOfMeasures#1139772, unitOfMeasureConversions#1139773, productionAspect#1139774, salesAspect#1139775, procurementAspect#1139776, productGroup#1139777, filter(unitOfMeasureConversions#1139773, lambdafunction((((lambda u#1135738.measurementUnit1.code = productPlant#1139751.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1135738.measurementUnit1.internalRefUUID = productPlant#1139751.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1139771.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1139771.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1139778]
(1352) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1139778.quantityNumerator), true, [quantityNumerator#1139779]
(1353) Project
Arguments: [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, timezonecode#1139765, systemId#1139766, internalUUID#1139767, id#1139768, displayId#1139769, name#1139770, baseUnitOfMeasure#1139771, unitOfMeasures#1139772, unitOfMeasureConversions#1139773, productionAspect#1139774, salesAspect#1139775, procurementAspect#1139776, productGroup#1139777, filteredUnitOfMeasureConversions#1139778, quantityNumerator#1139779]
(1354) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1139778.quantityDenominator), true, [quantityDenominator#1139780]
(1355) Project
Arguments: [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, timezonecode#1139765, systemId#1139766, internalUUID#1139767, id#1139768, displayId#1139769, name#1139770, baseUnitOfMeasure#1139771, unitOfMeasures#1139772, unitOfMeasureConversions#1139773, productionAspect#1139774, salesAspect#1139775, procurementAspect#1139776, productGroup#1139777, filteredUnitOfMeasureConversions#1139778, quantityNumerator#1139779, quantityDenominator#1139780]
(1356) Project
Arguments: [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, timezonecode#1139765, systemId#1139766, internalUUID#1139767, id#1139768, displayId#1139769, name#1139770, baseUnitOfMeasure#1139771, unitOfMeasures#1139772, unitOfMeasureConversions#1139773, productionAspect#1139774, salesAspect#1139775, procurementAspect#1139776, productGroup#1139777, filteredUnitOfMeasureConversions#1139778, quantityNumerator#1139779, quantityDenominator#1139780, (cast(quantityNumerator#1139779 as double) / cast(quantityDenominator#1139780 as double)) AS outboundUnit#1139781]
(1357) Project
Arguments: [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, timezonecode#1139765, systemId#1139766, internalUUID#1139767, id#1139768, displayId#1139769, name#1139770, baseUnitOfMeasure#1139771, unitOfMeasures#1139772, unitOfMeasureConversions#1139773, productionAspect#1139774, salesAspect#1139775, procurementAspect#1139776, productGroup#1139777, filteredUnitOfMeasureConversions#1139778, quantityNumerator#1139779, quantityDenominator#1139780, CASE WHEN (isnull(outboundUnit#1139781) OR (outboundUnit#1139781 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1139781 END AS outboundUnit#1139782]
(1358) Project
Arguments: [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, timezonecode#1139765, outboundUnit#1139782]
(1359) LogicalRelation
Arguments: parquet, [systemId#1139783, internalUUID#1139784, product#1139785, plant#1139786, calculationDateTime#1139787, stockQuantities#1139788], false
(1360) Repartition
Arguments: 37, true
(1361) LogicalRelation
Arguments: parquet, [marketUnit#1139789, description#1139790, articleHierarchy#1139791, defaultCurrency#1139792, responsibilities#1139793, replenishmentTypes#1139794, distributionCenters#1139795, assignedArticleHierarchyNodes#1139796, minOrderQtySetting#1139797, listingCheck#1139798, odsSelection#1139799, demandProfiles#1139800, constraintProfiles#1139801, optimizationProfiles#1139802, orderGroupSplitProfiles#1139803, supplierMinimumProfiles#1139804, multipleRestrictionProfiles#1139805, preferredUomSource#1139806, handlingOfUnfulfilledDemands#1139807, negligibleQuantitiesThreshold#1139808, eventtype#1139809, minOrderQtySettingInternal#1139810], false
(1362) Repartition
Arguments: 37, true
(1363) Filter
Arguments: (marketUnit#1139789 <=> Alert_Test1)
(1364) Project
Arguments: [marketUnit#1139789, description#1139790, articleHierarchy#1139791, defaultCurrency#1139792, responsibilities#1139793, replenishmentTypes#1139794, distributionCenters#1139795, assignedArticleHierarchyNodes#1139796, minOrderQtySetting#1139797, listingCheck#1139798, odsSelection#1139799, demandProfiles#1139800, constraintProfiles#1139801, optimizationProfiles#1139802, orderGroupSplitProfiles#1139803, supplierMinimumProfiles#1139804, multipleRestrictionProfiles#1139805, preferredUomSource#1139806, handlingOfUnfulfilledDemands#1139807, negligibleQuantitiesThreshold#1139808, eventtype#1139809, minOrderQtySettingInternal#1139810]
(1365) Project
Arguments: [distributionCenters#1139795]
(1366) Generate
Arguments: explode(distributionCenters#1139795), false, [distributionCenters#1139811]
(1367) Project
Arguments: [distributionCenters#1139811]
(1368) Generate
Arguments: explode(distributionCenters#1139811.storageLocations), false, [storageLocations#1139812]
(1369) Project
Arguments: [distributionCenters#1139811.id AS plantId#1139813, distributionCenters#1139811.internalRefUUID AS plantUuid#1139814, storageLocations#1139812]
(1370) Project
Arguments: [plantId#1139813, plantUuid#1139814, storageLocations#1139812.id AS storageLocId#1139815, storageLocations#1139812.internalRefUUID AS storageLocUuid#1139816]
(1371) LogicalRelation
Arguments: parquet, [product#1139817, plant#1139818, orderDateTime#1139819, planningStartDateTime#1139820], false
(1372) RepartitionByExpression
Arguments: [product#1139817, plant#1139818], 37
(1373) Project
Arguments: [product#1139817, plant#1139818, orderDateTime#1139819]
(1374) LogicalRelation
Arguments: parquet, [systemId#1139821, internalUUID#1139822, plant#1139823, product#1139824, blockedForReplenishmentStartingFrom#1139825, productionAspect#1139826, salesPlant#1139827, listing#1139828], false
(1375) Repartition
Arguments: 37, true
(1376) Project
Arguments: [systemId#1139821, internalUUID#1139822, plant#1139823, product#1139824, blockedForReplenishmentStartingFrom#1139825, productionAspect#1139826, salesPlant#1139827, listing#1139828, struct(systemId, systemId#1139821, internalUUID, internalUUID#1139822, plant, plant#1139823, product, product#1139824, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1139825, productionAspect, productionAspect#1139826, salesPlant, salesPlant#1139827, listing, listing#1139828) AS productPlant#1139829]
(1377) Project
Arguments: [productPlant#1139829]
(1378) Join
Arguments: LeftOuter, ((product#1139817 <=> productPlant#1139829.product.internalRefUUID) AND (plant#1139818 <=> productPlant#1139829.plant.internalRefUUID))
(1379) Project
Arguments: [product#1139817, plant#1139818, orderDateTime#1139819, productPlant#1139829]
(1380) SubqueryAlias
Arguments: wl
(1381) LogicalRelation
Arguments: parquet, [systemId#1139830, internalUUID#1139831, id#1139832, displayId#1139833, name#1139834, category#1139835, companyCode#1139836, address#1139837, mainDistributionChain#1139838, mainPurchasingOrganization#1139839, validPurchasingOrganizations#1139840, productGroup#1139841], false
(1382) Repartition
Arguments: 37, true
(1383) Project
Arguments: [internalUUID#1139831, address#1139837.timeZone.code AS timezonecode#1139842]
(1384) Join
Arguments: LeftOuter, (plant#1139818 <=> internalUUID#1139831)
(1385) Project
Arguments: [product#1139817, plant#1139818, orderDateTime#1139819, productPlant#1139829, internalUUID#1139831, CASE WHEN isnotnull(timezonecode#1139842) THEN timezonecode#1139842 ELSE UTC END AS timezonecode#1139843]
(1386) Project
Arguments: [product#1139817, plant#1139818, orderDateTime#1139819, productPlant#1139829, timezonecode#1139843]
(1387) LogicalRelation
Arguments: parquet, [systemId#1139844, internalUUID#1139845, id#1139846, displayId#1139847, name#1139848, baseUnitOfMeasure#1139849, unitOfMeasures#1139850, unitOfMeasureConversions#1139851, productionAspect#1139852, salesAspect#1139853, procurementAspect#1139854, productGroup#1139855], false
(1388) Repartition
Arguments: 37, true
(1389) Join
Arguments: LeftOuter, (product#1139817 = internalUUID#1139845)
(1390) Project
Arguments: [product#1139817, plant#1139818, orderDateTime#1139819, productPlant#1139829, timezonecode#1139843, systemId#1139844, internalUUID#1139845, id#1139846, displayId#1139847, name#1139848, baseUnitOfMeasure#1139849, unitOfMeasures#1139850, unitOfMeasureConversions#1139851, productionAspect#1139852, salesAspect#1139853, procurementAspect#1139854, productGroup#1139855, filter(unitOfMeasureConversions#1139851, lambdafunction((((lambda u#1135738.measurementUnit1.code = productPlant#1139829.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1135738.measurementUnit1.internalRefUUID = productPlant#1139829.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1139849.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1139849.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1139856]
(1391) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1139856.quantityNumerator), true, [quantityNumerator#1139857]
(1392) Project
Arguments: [product#1139817, plant#1139818, orderDateTime#1139819, productPlant#1139829, timezonecode#1139843, systemId#1139844, internalUUID#1139845, id#1139846, displayId#1139847, name#1139848, baseUnitOfMeasure#1139849, unitOfMeasures#1139850, unitOfMeasureConversions#1139851, productionAspect#1139852, salesAspect#1139853, procurementAspect#1139854, productGroup#1139855, filteredUnitOfMeasureConversions#1139856, quantityNumerator#1139857]
(1393) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1139856.quantityDenominator), true, [quantityDenominator#1139858]
(1394) Project
Arguments: [product#1139817, plant#1139818, orderDateTime#1139819, productPlant#1139829, timezonecode#1139843, systemId#1139844, internalUUID#1139845, id#1139846, displayId#1139847, name#1139848, baseUnitOfMeasure#1139849, unitOfMeasures#1139850, unitOfMeasureConversions#1139851, productionAspect#1139852, salesAspect#1139853, procurementAspect#1139854, productGroup#1139855, filteredUnitOfMeasureConversions#1139856, quantityNumerator#1139857, quantityDenominator#1139858]
(1395) Project
Arguments: [product#1139817, plant#1139818, orderDateTime#1139819, productPlant#1139829, timezonecode#1139843, systemId#1139844, internalUUID#1139845, id#1139846, displayId#1139847, name#1139848, baseUnitOfMeasure#1139849, unitOfMeasures#1139850, unitOfMeasureConversions#1139851, productionAspect#1139852, salesAspect#1139853, procurementAspect#1139854, productGroup#1139855, filteredUnitOfMeasureConversions#1139856, quantityNumerator#1139857, quantityDenominator#1139858, (cast(quantityNumerator#1139857 as double) / cast(quantityDenominator#1139858 as double)) AS outboundUnit#1139859]
(1396) Project
Arguments: [product#1139817, plant#1139818, orderDateTime#1139819, productPlant#1139829, timezonecode#1139843, systemId#1139844, internalUUID#1139845, id#1139846, displayId#1139847, name#1139848, baseUnitOfMeasure#1139849, unitOfMeasures#1139850, unitOfMeasureConversions#1139851, productionAspect#1139852, salesAspect#1139853, procurementAspect#1139854, productGroup#1139855, filteredUnitOfMeasureConversions#1139856, quantityNumerator#1139857, quantityDenominator#1139858, CASE WHEN (isnull(outboundUnit#1139859) OR (outboundUnit#1139859 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1139859 END AS outboundUnit#1139860]
(1397) Project
Arguments: [product#1139817, plant#1139818, orderDateTime#1139819, productPlant#1139829, timezonecode#1139843, outboundUnit#1139860]
(1398) Project
Arguments: [plant#1139818]
(1399) Deduplicate
Arguments: [plant#1139818]
(1400) Join
Arguments: Inner, (plantUuid#1139814 = plant#1139818)
(1401) Project
Arguments: [plantId#1139813, plantUuid#1139814, storageLocId#1139815, storageLocUuid#1139816]
(1402) Join
Arguments: Inner, (plant#1139786.internalRefUUID <=> plantUuid#1139814)
(1403) Generate
Arguments: explode(filter(stockQuantities#1139788, lambdafunction(((lambda x#1135796.storageLocation.internalRefUuid = storageLocUuid#1139816) AND (lambda x#1135796.storageLocation.Id = storageLocId#1139815)), lambda x#1135796, false))), false, [stockQuantity#1139861]
(1404) Project
Arguments: [systemId#1139783, internalUUID#1139784, product#1139785, plant#1139786, calculationDateTime#1139787, stockQuantities#1139788, plantId#1139813, plantUuid#1139814, storageLocId#1139815, storageLocUuid#1139816, stockQuantity#1139861]
(1405) Aggregate
Arguments: [plantUuid#1139814, internalUUID#1139784, plant#1139786, product#1139785, systemId#1139783], [plantUuid#1139814, internalUUID#1139784, plant#1139786, product#1139785, systemId#1139783, first(calculationDateTime#1139787, false) AS calculationDateTime#1139862, collect_list(stockQuantity#1139861, 0, 0) AS stockQuantities#1139863]
(1406) Project
Arguments: [systemId#1139783, internalUUID#1139784, product#1139785, plant#1139786, calculationDateTime#1139862, stockQuantities#1139863]
(1407) Generate
Arguments: explode(stockQuantities#1139863), false, [stockQuantity#1139864]
(1408) Project
Arguments: [systemId#1139783, internalUUID#1139784, product#1139785, plant#1139786, calculationDateTime#1139862, stockQuantities#1139863, stockQuantity#1139864]
(1409) Project
Arguments: [plant#1139786.id AS plant#1139865, plant#1139786.internalRefUUID AS plantUuid#1139866, product#1139785.id AS product#1139867, product#1139785.internalRefUUID AS productUuid#1139868, calculationDateTime#1139862, stockQuantity#1139864.storagelocation.id AS storageLocId#1139869, stockQuantity#1139864.storagelocation.internalRefUUID AS storageLocUuid#1139870, stockQuantity#1139864.quantity.measure AS quantity#1139871, stockQuantity#1139864.specialStockIndicator.code AS specialStockIndicator#1139872, stockQuantity#1139864.stockType.code AS stockType#1139873]
(1410) Filter
Arguments: ((specialStockIndicator#1139872 = ) AND (stockType#1139873 = 01))
(1411) LogicalRelation
Arguments: parquet, [product#1139874, plant#1139875, orderDateTime#1139876, planningStartDateTime#1139877], false
(1412) RepartitionByExpression
Arguments: [product#1139874, plant#1139875], 37
(1413) Project
Arguments: [product#1139874, plant#1139875, orderDateTime#1139876]
(1414) LogicalRelation
Arguments: parquet, [systemId#1139878, internalUUID#1139879, plant#1139880, product#1139881, blockedForReplenishmentStartingFrom#1139882, productionAspect#1139883, salesPlant#1139884, listing#1139885], false
(1415) Repartition
Arguments: 37, true
(1416) Project
Arguments: [systemId#1139878, internalUUID#1139879, plant#1139880, product#1139881, blockedForReplenishmentStartingFrom#1139882, productionAspect#1139883, salesPlant#1139884, listing#1139885, struct(systemId, systemId#1139878, internalUUID, internalUUID#1139879, plant, plant#1139880, product, product#1139881, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1139882, productionAspect, productionAspect#1139883, salesPlant, salesPlant#1139884, listing, listing#1139885) AS productPlant#1139886]
(1417) Project
Arguments: [productPlant#1139886]
(1418) Join
Arguments: LeftOuter, ((product#1139874 <=> productPlant#1139886.product.internalRefUUID) AND (plant#1139875 <=> productPlant#1139886.plant.internalRefUUID))
(1419) Project
Arguments: [product#1139874, plant#1139875, orderDateTime#1139876, productPlant#1139886]
(1420) SubqueryAlias
Arguments: wl
(1421) LogicalRelation
Arguments: parquet, [systemId#1139887, internalUUID#1139888, id#1139889, displayId#1139890, name#1139891, category#1139892, companyCode#1139893, address#1139894, mainDistributionChain#1139895, mainPurchasingOrganization#1139896, validPurchasingOrganizations#1139897, productGroup#1139898], false
(1422) Repartition
Arguments: 37, true
(1423) Project
Arguments: [internalUUID#1139888, address#1139894.timeZone.code AS timezonecode#1139899]
(1424) Join
Arguments: LeftOuter, (plant#1139875 <=> internalUUID#1139888)
(1425) Project
Arguments: [product#1139874, plant#1139875, orderDateTime#1139876, productPlant#1139886, internalUUID#1139888, CASE WHEN isnotnull(timezonecode#1139899) THEN timezonecode#1139899 ELSE UTC END AS timezonecode#1139900]
(1426) Project
Arguments: [product#1139874, plant#1139875, orderDateTime#1139876, productPlant#1139886, timezonecode#1139900]
(1427) LogicalRelation
Arguments: parquet, [systemId#1139901, internalUUID#1139902, id#1139903, displayId#1139904, name#1139905, baseUnitOfMeasure#1139906, unitOfMeasures#1139907, unitOfMeasureConversions#1139908, productionAspect#1139909, salesAspect#1139910, procurementAspect#1139911, productGroup#1139912], false
(1428) Repartition
Arguments: 37, true
(1429) Join
Arguments: LeftOuter, (product#1139874 = internalUUID#1139902)
(1430) Project
Arguments: [product#1139874, plant#1139875, orderDateTime#1139876, productPlant#1139886, timezonecode#1139900, systemId#1139901, internalUUID#1139902, id#1139903, displayId#1139904, name#1139905, baseUnitOfMeasure#1139906, unitOfMeasures#1139907, unitOfMeasureConversions#1139908, productionAspect#1139909, salesAspect#1139910, procurementAspect#1139911, productGroup#1139912, filter(unitOfMeasureConversions#1139908, lambdafunction((((lambda u#1135738.measurementUnit1.code = productPlant#1139886.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1135738.measurementUnit1.internalRefUUID = productPlant#1139886.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1139906.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1139906.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1139913]
(1431) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1139913.quantityNumerator), true, [quantityNumerator#1139914]
(1432) Project
Arguments: [product#1139874, plant#1139875, orderDateTime#1139876, productPlant#1139886, timezonecode#1139900, systemId#1139901, internalUUID#1139902, id#1139903, displayId#1139904, name#1139905, baseUnitOfMeasure#1139906, unitOfMeasures#1139907, unitOfMeasureConversions#1139908, productionAspect#1139909, salesAspect#1139910, procurementAspect#1139911, productGroup#1139912, filteredUnitOfMeasureConversions#1139913, quantityNumerator#1139914]
(1433) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1139913.quantityDenominator), true, [quantityDenominator#1139915]
(1434) Project
Arguments: [product#1139874, plant#1139875, orderDateTime#1139876, productPlant#1139886, timezonecode#1139900, systemId#1139901, internalUUID#1139902, id#1139903, displayId#1139904, name#1139905, baseUnitOfMeasure#1139906, unitOfMeasures#1139907, unitOfMeasureConversions#1139908, productionAspect#1139909, salesAspect#1139910, procurementAspect#1139911, productGroup#1139912, filteredUnitOfMeasureConversions#1139913, quantityNumerator#1139914, quantityDenominator#1139915]
(1435) Project
Arguments: [product#1139874, plant#1139875, orderDateTime#1139876, productPlant#1139886, timezonecode#1139900, systemId#1139901, internalUUID#1139902, id#1139903, displayId#1139904, name#1139905, baseUnitOfMeasure#1139906, unitOfMeasures#1139907, unitOfMeasureConversions#1139908, productionAspect#1139909, salesAspect#1139910, procurementAspect#1139911, productGroup#1139912, filteredUnitOfMeasureConversions#1139913, quantityNumerator#1139914, quantityDenominator#1139915, (cast(quantityNumerator#1139914 as double) / cast(quantityDenominator#1139915 as double)) AS outboundUnit#1139916]
(1436) Project
Arguments: [product#1139874, plant#1139875, orderDateTime#1139876, productPlant#1139886, timezonecode#1139900, systemId#1139901, internalUUID#1139902, id#1139903, displayId#1139904, name#1139905, baseUnitOfMeasure#1139906, unitOfMeasures#1139907, unitOfMeasureConversions#1139908, productionAspect#1139909, salesAspect#1139910, procurementAspect#1139911, productGroup#1139912, filteredUnitOfMeasureConversions#1139913, quantityNumerator#1139914, quantityDenominator#1139915, CASE WHEN (isnull(outboundUnit#1139916) OR (outboundUnit#1139916 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1139916 END AS outboundUnit#1139917]
(1437) Project
Arguments: [product#1139874, plant#1139875, orderDateTime#1139876, productPlant#1139886, timezonecode#1139900, outboundUnit#1139917]
(1438) Join
Arguments: Inner, ((plantUuid#1139866 = plant#1139875) AND (productUuid#1139868 = product#1139874))
(1439) Filter
Arguments: (calculationDateTime#1139862 <= orderDateTime#1139876)
(1440) Project
Arguments: [plantUuid#1139866 AS plant#1139918, productUuid#1139868 AS product#1139919, storageLocId#1139869, calculationDateTime#1139862, quantity#1139871]
(1441) LogicalRelation
Arguments: parquet, [systemId#1139920, internalUUID#1139921, product#1139922, plant#1139923, calculationDateTime#1139924, stockQuantities#1139925], false
(1442) Repartition
Arguments: 37, true
(1443) LogicalRelation
Arguments: parquet, [marketUnit#1139926, description#1139927, articleHierarchy#1139928, defaultCurrency#1139929, responsibilities#1139930, replenishmentTypes#1139931, distributionCenters#1139932, assignedArticleHierarchyNodes#1139933, minOrderQtySetting#1139934, listingCheck#1139935, odsSelection#1139936, demandProfiles#1139937, constraintProfiles#1139938, optimizationProfiles#1139939, orderGroupSplitProfiles#1139940, supplierMinimumProfiles#1139941, multipleRestrictionProfiles#1139942, preferredUomSource#1139943, handlingOfUnfulfilledDemands#1139944, negligibleQuantitiesThreshold#1139945, eventtype#1139946, minOrderQtySettingInternal#1139947], false
(1444) Repartition
Arguments: 37, true
(1445) Filter
Arguments: (marketUnit#1139926 <=> Alert_Test1)
(1446) Project
Arguments: [marketUnit#1139926, description#1139927, articleHierarchy#1139928, defaultCurrency#1139929, responsibilities#1139930, replenishmentTypes#1139931, distributionCenters#1139932, assignedArticleHierarchyNodes#1139933, minOrderQtySetting#1139934, listingCheck#1139935, odsSelection#1139936, demandProfiles#1139937, constraintProfiles#1139938, optimizationProfiles#1139939, orderGroupSplitProfiles#1139940, supplierMinimumProfiles#1139941, multipleRestrictionProfiles#1139942, preferredUomSource#1139943, handlingOfUnfulfilledDemands#1139944, negligibleQuantitiesThreshold#1139945, eventtype#1139946, minOrderQtySettingInternal#1139947]
(1447) Project
Arguments: [distributionCenters#1139932]
(1448) Generate
Arguments: explode(distributionCenters#1139932), false, [distributionCenters#1139948]
(1449) Project
Arguments: [distributionCenters#1139948]
(1450) Generate
Arguments: explode(distributionCenters#1139948.storageLocations), false, [storageLocations#1139949]
(1451) Project
Arguments: [distributionCenters#1139948.id AS plantId#1139950, distributionCenters#1139948.internalRefUUID AS plantUuid#1139951, storageLocations#1139949]
(1452) Project
Arguments: [plantId#1139950, plantUuid#1139951, storageLocations#1139949.id AS storageLocId#1139952, storageLocations#1139949.internalRefUUID AS storageLocUuid#1139953]
(1453) LogicalRelation
Arguments: parquet, [product#1139954, plant#1139955, orderDateTime#1139956, planningStartDateTime#1139957], false
(1454) RepartitionByExpression
Arguments: [product#1139954, plant#1139955], 37
(1455) Project
Arguments: [product#1139954, plant#1139955, orderDateTime#1139956]
(1456) LogicalRelation
Arguments: parquet, [systemId#1139958, internalUUID#1139959, plant#1139960, product#1139961, blockedForReplenishmentStartingFrom#1139962, productionAspect#1139963, salesPlant#1139964, listing#1139965], false
(1457) Repartition
Arguments: 37, true
(1458) Project
Arguments: [systemId#1139958, internalUUID#1139959, plant#1139960, product#1139961, blockedForReplenishmentStartingFrom#1139962, productionAspect#1139963, salesPlant#1139964, listing#1139965, struct(systemId, systemId#1139958, internalUUID, internalUUID#1139959, plant, plant#1139960, product, product#1139961, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1139962, productionAspect, productionAspect#1139963, salesPlant, salesPlant#1139964, listing, listing#1139965) AS productPlant#1139966]
(1459) Project
Arguments: [productPlant#1139966]
(1460) Join
Arguments: LeftOuter, ((product#1139954 <=> productPlant#1139966.product.internalRefUUID) AND (plant#1139955 <=> productPlant#1139966.plant.internalRefUUID))
(1461) Project
Arguments: [product#1139954, plant#1139955, orderDateTime#1139956, productPlant#1139966]
(1462) SubqueryAlias
Arguments: wl
(1463) LogicalRelation
Arguments: parquet, [systemId#1139967, internalUUID#1139968, id#1139969, displayId#1139970, name#1139971, category#1139972, companyCode#1139973, address#1139974, mainDistributionChain#1139975, mainPurchasingOrganization#1139976, validPurchasingOrganizations#1139977, productGroup#1139978], false
(1464) Repartition
Arguments: 37, true
(1465) Project
Arguments: [internalUUID#1139968, address#1139974.timeZone.code AS timezonecode#1139979]
(1466) Join
Arguments: LeftOuter, (plant#1139955 <=> internalUUID#1139968)
(1467) Project
Arguments: [product#1139954, plant#1139955, orderDateTime#1139956, productPlant#1139966, internalUUID#1139968, CASE WHEN isnotnull(timezonecode#1139979) THEN timezonecode#1139979 ELSE UTC END AS timezonecode#1139980]
(1468) Project
Arguments: [product#1139954, plant#1139955, orderDateTime#1139956, productPlant#1139966, timezonecode#1139980]
(1469) LogicalRelation
Arguments: parquet, [systemId#1139981, internalUUID#1139982, id#1139983, displayId#1139984, name#1139985, baseUnitOfMeasure#1139986, unitOfMeasures#1139987, unitOfMeasureConversions#1139988, productionAspect#1139989, salesAspect#1139990, procurementAspect#1139991, productGroup#1139992], false
(1470) Repartition
Arguments: 37, true
(1471) Join
Arguments: LeftOuter, (product#1139954 = internalUUID#1139982)
(1472) Project
Arguments: [product#1139954, plant#1139955, orderDateTime#1139956, productPlant#1139966, timezonecode#1139980, systemId#1139981, internalUUID#1139982, id#1139983, displayId#1139984, name#1139985, baseUnitOfMeasure#1139986, unitOfMeasures#1139987, unitOfMeasureConversions#1139988, productionAspect#1139989, salesAspect#1139990, procurementAspect#1139991, productGroup#1139992, filter(unitOfMeasureConversions#1139988, lambdafunction((((lambda u#1135738.measurementUnit1.code = productPlant#1139966.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1135738.measurementUnit1.internalRefUUID = productPlant#1139966.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1139986.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1139986.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1139993]
(1473) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1139993.quantityNumerator), true, [quantityNumerator#1139994]
(1474) Project
Arguments: [product#1139954, plant#1139955, orderDateTime#1139956, productPlant#1139966, timezonecode#1139980, systemId#1139981, internalUUID#1139982, id#1139983, displayId#1139984, name#1139985, baseUnitOfMeasure#1139986, unitOfMeasures#1139987, unitOfMeasureConversions#1139988, productionAspect#1139989, salesAspect#1139990, procurementAspect#1139991, productGroup#1139992, filteredUnitOfMeasureConversions#1139993, quantityNumerator#1139994]
(1475) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1139993.quantityDenominator), true, [quantityDenominator#1139995]
(1476) Project
Arguments: [product#1139954, plant#1139955, orderDateTime#1139956, productPlant#1139966, timezonecode#1139980, systemId#1139981, internalUUID#1139982, id#1139983, displayId#1139984, name#1139985, baseUnitOfMeasure#1139986, unitOfMeasures#1139987, unitOfMeasureConversions#1139988, productionAspect#1139989, salesAspect#1139990, procurementAspect#1139991, productGroup#1139992, filteredUnitOfMeasureConversions#1139993, quantityNumerator#1139994, quantityDenominator#1139995]
(1477) Project
Arguments: [product#1139954, plant#1139955, orderDateTime#1139956, productPlant#1139966, timezonecode#1139980, systemId#1139981, internalUUID#1139982, id#1139983, displayId#1139984, name#1139985, baseUnitOfMeasure#1139986, unitOfMeasures#1139987, unitOfMeasureConversions#1139988, productionAspect#1139989, salesAspect#1139990, procurementAspect#1139991, productGroup#1139992, filteredUnitOfMeasureConversions#1139993, quantityNumerator#1139994, quantityDenominator#1139995, (cast(quantityNumerator#1139994 as double) / cast(quantityDenominator#1139995 as double)) AS outboundUnit#1139996]
(1478) Project
Arguments: [product#1139954, plant#1139955, orderDateTime#1139956, productPlant#1139966, timezonecode#1139980, systemId#1139981, internalUUID#1139982, id#1139983, displayId#1139984, name#1139985, baseUnitOfMeasure#1139986, unitOfMeasures#1139987, unitOfMeasureConversions#1139988, productionAspect#1139989, salesAspect#1139990, procurementAspect#1139991, productGroup#1139992, filteredUnitOfMeasureConversions#1139993, quantityNumerator#1139994, quantityDenominator#1139995, CASE WHEN (isnull(outboundUnit#1139996) OR (outboundUnit#1139996 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1139996 END AS outboundUnit#1139997]
(1479) Project
Arguments: [product#1139954, plant#1139955, orderDateTime#1139956, productPlant#1139966, timezonecode#1139980, outboundUnit#1139997]
(1480) Project
Arguments: [plant#1139955]
(1481) Deduplicate
Arguments: [plant#1139955]
(1482) Join
Arguments: Inner, (plantUuid#1139951 = plant#1139955)
(1483) Project
Arguments: [plantId#1139950, plantUuid#1139951, storageLocId#1139952, storageLocUuid#1139953]
(1484) Join
Arguments: Inner, (plant#1139923.internalRefUUID <=> plantUuid#1139951)
(1485) Generate
Arguments: explode(filter(stockQuantities#1139925, lambdafunction(((lambda x#1135796.storageLocation.internalRefUuid = storageLocUuid#1139953) AND (lambda x#1135796.storageLocation.Id = storageLocId#1139952)), lambda x#1135796, false))), false, [stockQuantity#1139998]
(1486) Project
Arguments: [systemId#1139920, internalUUID#1139921, product#1139922, plant#1139923, calculationDateTime#1139924, stockQuantities#1139925, plantId#1139950, plantUuid#1139951, storageLocId#1139952, storageLocUuid#1139953, stockQuantity#1139998]
(1487) Aggregate
Arguments: [plantUuid#1139951, internalUUID#1139921, plant#1139923, product#1139922, systemId#1139920], [plantUuid#1139951, internalUUID#1139921, plant#1139923, product#1139922, systemId#1139920, first(calculationDateTime#1139924, false) AS calculationDateTime#1139999, collect_list(stockQuantity#1139998, 0, 0) AS stockQuantities#1140000]
(1488) Project
Arguments: [systemId#1139920, internalUUID#1139921, product#1139922, plant#1139923, calculationDateTime#1139999, stockQuantities#1140000]
(1489) Generate
Arguments: explode(stockQuantities#1140000), false, [stockQuantity#1140001]
(1490) Project
Arguments: [systemId#1139920, internalUUID#1139921, product#1139922, plant#1139923, calculationDateTime#1139999, stockQuantities#1140000, stockQuantity#1140001]
(1491) Project
Arguments: [plant#1139923.id AS plant#1140002, plant#1139923.internalRefUUID AS plantUuid#1140003, product#1139922.id AS product#1140004, product#1139922.internalRefUUID AS productUuid#1140005, calculationDateTime#1139999, stockQuantity#1140001.storagelocation.id AS storageLocId#1140006, stockQuantity#1140001.storagelocation.internalRefUUID AS storageLocUuid#1140007, stockQuantity#1140001.quantity.measure AS quantity#1140008, stockQuantity#1140001.specialStockIndicator.code AS specialStockIndicator#1140009, stockQuantity#1140001.stockType.code AS stockType#1140010]
(1492) Filter
Arguments: ((specialStockIndicator#1140009 = ) AND (stockType#1140010 = 01))
(1493) LogicalRelation
Arguments: parquet, [product#1140011, plant#1140012, orderDateTime#1140013, planningStartDateTime#1140014], false
(1494) RepartitionByExpression
Arguments: [product#1140011, plant#1140012], 37
(1495) Project
Arguments: [product#1140011, plant#1140012, orderDateTime#1140013]
(1496) LogicalRelation
Arguments: parquet, [systemId#1140015, internalUUID#1140016, plant#1140017, product#1140018, blockedForReplenishmentStartingFrom#1140019, productionAspect#1140020, salesPlant#1140021, listing#1140022], false
(1497) Repartition
Arguments: 37, true
(1498) Project
Arguments: [systemId#1140015, internalUUID#1140016, plant#1140017, product#1140018, blockedForReplenishmentStartingFrom#1140019, productionAspect#1140020, salesPlant#1140021, listing#1140022, struct(systemId, systemId#1140015, internalUUID, internalUUID#1140016, plant, plant#1140017, product, product#1140018, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1140019, productionAspect, productionAspect#1140020, salesPlant, salesPlant#1140021, listing, listing#1140022) AS productPlant#1140023]
(1499) Project
Arguments: [productPlant#1140023]
(1500) Join
Arguments: LeftOuter, ((product#1140011 <=> productPlant#1140023.product.internalRefUUID) AND (plant#1140012 <=> productPlant#1140023.plant.internalRefUUID))
(1501) Project
Arguments: [product#1140011, plant#1140012, orderDateTime#1140013, productPlant#1140023]
(1502) SubqueryAlias
Arguments: wl
(1503) LogicalRelation
Arguments: parquet, [systemId#1140024, internalUUID#1140025, id#1140026, displayId#1140027, name#1140028, category#1140029, companyCode#1140030, address#1140031, mainDistributionChain#1140032, mainPurchasingOrganization#1140033, validPurchasingOrganizations#1140034, productGroup#1140035], false
(1504) Repartition
Arguments: 37, true
(1505) Project
Arguments: [internalUUID#1140025, address#1140031.timeZone.code AS timezonecode#1140036]
(1506) Join
Arguments: LeftOuter, (plant#1140012 <=> internalUUID#1140025)
(1507) Project
Arguments: [product#1140011, plant#1140012, orderDateTime#1140013, productPlant#1140023, internalUUID#1140025, CASE WHEN isnotnull(timezonecode#1140036) THEN timezonecode#1140036 ELSE UTC END AS timezonecode#1140037]
(1508) Project
Arguments: [product#1140011, plant#1140012, orderDateTime#1140013, productPlant#1140023, timezonecode#1140037]
(1509) LogicalRelation
Arguments: parquet, [systemId#1140038, internalUUID#1140039, id#1140040, displayId#1140041, name#1140042, baseUnitOfMeasure#1140043, unitOfMeasures#1140044, unitOfMeasureConversions#1140045, productionAspect#1140046, salesAspect#1140047, procurementAspect#1140048, productGroup#1140049], false
(1510) Repartition
Arguments: 37, true
(1511) Join
Arguments: LeftOuter, (product#1140011 = internalUUID#1140039)
(1512) Project
Arguments: [product#1140011, plant#1140012, orderDateTime#1140013, productPlant#1140023, timezonecode#1140037, systemId#1140038, internalUUID#1140039, id#1140040, displayId#1140041, name#1140042, baseUnitOfMeasure#1140043, unitOfMeasures#1140044, unitOfMeasureConversions#1140045, productionAspect#1140046, salesAspect#1140047, procurementAspect#1140048, productGroup#1140049, filter(unitOfMeasureConversions#1140045, lambdafunction((((lambda u#1135738.measurementUnit1.code = productPlant#1140023.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1135738.measurementUnit1.internalRefUUID = productPlant#1140023.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1140043.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1140043.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1140050]
(1513) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1140050.quantityNumerator), true, [quantityNumerator#1140051]
(1514) Project
Arguments: [product#1140011, plant#1140012, orderDateTime#1140013, productPlant#1140023, timezonecode#1140037, systemId#1140038, internalUUID#1140039, id#1140040, displayId#1140041, name#1140042, baseUnitOfMeasure#1140043, unitOfMeasures#1140044, unitOfMeasureConversions#1140045, productionAspect#1140046, salesAspect#1140047, procurementAspect#1140048, productGroup#1140049, filteredUnitOfMeasureConversions#1140050, quantityNumerator#1140051]
(1515) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1140050.quantityDenominator), true, [quantityDenominator#1140052]
(1516) Project
Arguments: [product#1140011, plant#1140012, orderDateTime#1140013, productPlant#1140023, timezonecode#1140037, systemId#1140038, internalUUID#1140039, id#1140040, displayId#1140041, name#1140042, baseUnitOfMeasure#1140043, unitOfMeasures#1140044, unitOfMeasureConversions#1140045, productionAspect#1140046, salesAspect#1140047, procurementAspect#1140048, productGroup#1140049, filteredUnitOfMeasureConversions#1140050, quantityNumerator#1140051, quantityDenominator#1140052]
(1517) Project
Arguments: [product#1140011, plant#1140012, orderDateTime#1140013, productPlant#1140023, timezonecode#1140037, systemId#1140038, internalUUID#1140039, id#1140040, displayId#1140041, name#1140042, baseUnitOfMeasure#1140043, unitOfMeasures#1140044, unitOfMeasureConversions#1140045, productionAspect#1140046, salesAspect#1140047, procurementAspect#1140048, productGroup#1140049, filteredUnitOfMeasureConversions#1140050, quantityNumerator#1140051, quantityDenominator#1140052, (cast(quantityNumerator#1140051 as double) / cast(quantityDenominator#1140052 as double)) AS outboundUnit#1140053]
(1518) Project
Arguments: [product#1140011, plant#1140012, orderDateTime#1140013, productPlant#1140023, timezonecode#1140037, systemId#1140038, internalUUID#1140039, id#1140040, displayId#1140041, name#1140042, baseUnitOfMeasure#1140043, unitOfMeasures#1140044, unitOfMeasureConversions#1140045, productionAspect#1140046, salesAspect#1140047, procurementAspect#1140048, productGroup#1140049, filteredUnitOfMeasureConversions#1140050, quantityNumerator#1140051, quantityDenominator#1140052, CASE WHEN (isnull(outboundUnit#1140053) OR (outboundUnit#1140053 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1140053 END AS outboundUnit#1140054]
(1519) Project
Arguments: [product#1140011, plant#1140012, orderDateTime#1140013, productPlant#1140023, timezonecode#1140037, outboundUnit#1140054]
(1520) Join
Arguments: Inner, ((plantUuid#1140003 = plant#1140012) AND (productUuid#1140005 = product#1140011))
(1521) Filter
Arguments: (calculationDateTime#1139999 <= orderDateTime#1140013)
(1522) Project
Arguments: [plantUuid#1140003 AS plant#1140055, productUuid#1140005 AS product#1140056, storageLocId#1140006, calculationDateTime#1139999, quantity#1140008]
(1523) Aggregate
Arguments: [plant#1140055, product#1140056, storageLocId#1140006], [plant#1140055, product#1140056, storageLocId#1140006, max(calculationDateTime#1139999) AS max_calc_datetime#1140057]
(1524) Join
Arguments: Inner, ((((plant#1139918 <=> plant#1140055) AND (product#1139919 <=> product#1140056)) AND (storageLocId#1139869 <=> storageLocId#1140006)) AND (calculationDateTime#1139862 <=> max_calc_datetime#1140057))
(1525) Project
Arguments: [plant#1139918, product#1139919, storageLocId#1139869, calculationDateTime#1139862, quantity#1139871]
(1526) Aggregate
Arguments: [product#1139919, plant#1139918], [product#1139919, plant#1139918, sum(quantity#1139871) AS quantitySum#1140058, min(calculationDateTime#1139862) AS minCalculationDateTime#1140059]
(1527) Project
Arguments: [product#1139919, plant#1139918, quantitySum#1140058, minCalculationDateTime#1140059, round(quantitySum#1140058, 0) AS roundedQuantitySum#1140060]
(1528) Join
Arguments: LeftOuter, ((plant#1139740 = plant#1139918) AND (product#1139739 = product#1139919))
(1529) Project
Arguments: [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, timezonecode#1139765, outboundUnit#1139782, roundedQuantitySum#1140060, minCalculationDateTime#1140059]
(1530) Project
Arguments: [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, timezonecode#1139765, outboundUnit#1139782, roundedQuantitySum#1140060, minCalculationDateTime#1140059, CASE WHEN isnotnull(minCalculationDateTime#1140059) THEN minCalculationDateTime#1140059 ELSE orderDateTime#1139741 END AS stockDatetime#1140061]
(1531) Project
Arguments: [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, timezonecode#1139765, outboundUnit#1139782, roundedQuantitySum#1140060, minCalculationDateTime#1140059, stockDatetime#1140061, CASE WHEN isnotnull(roundedQuantitySum#1140060) THEN array(roundedQuantitySum#1140060) ELSE array(0.0) END AS stockBatchQuantities#1140062]
(1532) Project
Arguments: [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, timezonecode#1139765, outboundUnit#1139782, roundedQuantitySum#1140060, minCalculationDateTime#1140059, stockDatetime#1140061, stockBatchQuantities#1140062, array(2199-01-01 00:00:00) AS stockBatchShelfLifeEndDatetimes#1140063]
(1533) Project
Arguments: [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, timezonecode#1139765, outboundUnit#1139782, roundedQuantitySum#1140060, stockDatetime#1140061, stockBatchQuantities#1140062, stockBatchShelfLifeEndDatetimes#1140063]
(1534) Project
Arguments: [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, timezonecode#1139765, outboundUnit#1139782, stockDatetime#1140061, stockBatchQuantities#1140062, stockBatchShelfLifeEndDatetimes#1140063]
(1535) LogicalRelation
Arguments: parquet, [product#1140064, plant#1140065, orderDateTime#1140066, planningStartDateTime#1140067], false
(1536) RepartitionByExpression
Arguments: [product#1140064, plant#1140065], 37
(1537) Project
Arguments: [product#1140064, plant#1140065, orderDateTime#1140066]
(1538) LogicalRelation
Arguments: parquet, [systemId#1140068, internalUUID#1140069, plant#1140070, product#1140071, blockedForReplenishmentStartingFrom#1140072, productionAspect#1140073, salesPlant#1140074, listing#1140075], false
(1539) Repartition
Arguments: 37, true
(1540) Project
Arguments: [systemId#1140068, internalUUID#1140069, plant#1140070, product#1140071, blockedForReplenishmentStartingFrom#1140072, productionAspect#1140073, salesPlant#1140074, listing#1140075, struct(systemId, systemId#1140068, internalUUID, internalUUID#1140069, plant, plant#1140070, product, product#1140071, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1140072, productionAspect, productionAspect#1140073, salesPlant, salesPlant#1140074, listing, listing#1140075) AS productPlant#1140076]
(1541) Project
Arguments: [productPlant#1140076]
(1542) Join
Arguments: LeftOuter, ((product#1140064 <=> productPlant#1140076.product.internalRefUUID) AND (plant#1140065 <=> productPlant#1140076.plant.internalRefUUID))
(1543) Project
Arguments: [product#1140064, plant#1140065, orderDateTime#1140066, productPlant#1140076]
(1544) SubqueryAlias
Arguments: wl
(1545) LogicalRelation
Arguments: parquet, [systemId#1140077, internalUUID#1140078, id#1140079, displayId#1140080, name#1140081, category#1140082, companyCode#1140083, address#1140084, mainDistributionChain#1140085, mainPurchasingOrganization#1140086, validPurchasingOrganizations#1140087, productGroup#1140088], false
(1546) Repartition
Arguments: 37, true
(1547) Project
Arguments: [internalUUID#1140078, address#1140084.timeZone.code AS timezonecode#1140089]
(1548) Join
Arguments: LeftOuter, (plant#1140065 <=> internalUUID#1140078)
(1549) Project
Arguments: [product#1140064, plant#1140065, orderDateTime#1140066, productPlant#1140076, internalUUID#1140078, CASE WHEN isnotnull(timezonecode#1140089) THEN timezonecode#1140089 ELSE UTC END AS timezonecode#1140090]
(1550) Project
Arguments: [product#1140064, plant#1140065, orderDateTime#1140066, productPlant#1140076, timezonecode#1140090]
(1551) LogicalRelation
Arguments: parquet, [systemId#1140091, internalUUID#1140092, id#1140093, displayId#1140094, name#1140095, baseUnitOfMeasure#1140096, unitOfMeasures#1140097, unitOfMeasureConversions#1140098, productionAspect#1140099, salesAspect#1140100, procurementAspect#1140101, productGroup#1140102], false
(1552) Repartition
Arguments: 37, true
(1553) Join
Arguments: LeftOuter, (product#1140064 = internalUUID#1140092)
(1554) Project
Arguments: [product#1140064, plant#1140065, orderDateTime#1140066, productPlant#1140076, timezonecode#1140090, systemId#1140091, internalUUID#1140092, id#1140093, displayId#1140094, name#1140095, baseUnitOfMeasure#1140096, unitOfMeasures#1140097, unitOfMeasureConversions#1140098, productionAspect#1140099, salesAspect#1140100, procurementAspect#1140101, productGroup#1140102, filter(unitOfMeasureConversions#1140098, lambdafunction((((lambda u#1135738.measurementUnit1.code = productPlant#1140076.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1135738.measurementUnit1.internalRefUUID = productPlant#1140076.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1140096.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1140096.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1140103]
(1555) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1140103.quantityNumerator), true, [quantityNumerator#1140104]
(1556) Project
Arguments: [product#1140064, plant#1140065, orderDateTime#1140066, productPlant#1140076, timezonecode#1140090, systemId#1140091, internalUUID#1140092, id#1140093, displayId#1140094, name#1140095, baseUnitOfMeasure#1140096, unitOfMeasures#1140097, unitOfMeasureConversions#1140098, productionAspect#1140099, salesAspect#1140100, procurementAspect#1140101, productGroup#1140102, filteredUnitOfMeasureConversions#1140103, quantityNumerator#1140104]
(1557) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1140103.quantityDenominator), true, [quantityDenominator#1140105]
(1558) Project
Arguments: [product#1140064, plant#1140065, orderDateTime#1140066, productPlant#1140076, timezonecode#1140090, systemId#1140091, internalUUID#1140092, id#1140093, displayId#1140094, name#1140095, baseUnitOfMeasure#1140096, unitOfMeasures#1140097, unitOfMeasureConversions#1140098, productionAspect#1140099, salesAspect#1140100, procurementAspect#1140101, productGroup#1140102, filteredUnitOfMeasureConversions#1140103, quantityNumerator#1140104, quantityDenominator#1140105]
(1559) Project
Arguments: [product#1140064, plant#1140065, orderDateTime#1140066, productPlant#1140076, timezonecode#1140090, systemId#1140091, internalUUID#1140092, id#1140093, displayId#1140094, name#1140095, baseUnitOfMeasure#1140096, unitOfMeasures#1140097, unitOfMeasureConversions#1140098, productionAspect#1140099, salesAspect#1140100, procurementAspect#1140101, productGroup#1140102, filteredUnitOfMeasureConversions#1140103, quantityNumerator#1140104, quantityDenominator#1140105, (cast(quantityNumerator#1140104 as double) / cast(quantityDenominator#1140105 as double)) AS outboundUnit#1140106]
(1560) Project
Arguments: [product#1140064, plant#1140065, orderDateTime#1140066, productPlant#1140076, timezonecode#1140090, systemId#1140091, internalUUID#1140092, id#1140093, displayId#1140094, name#1140095, baseUnitOfMeasure#1140096, unitOfMeasures#1140097, unitOfMeasureConversions#1140098, productionAspect#1140099, salesAspect#1140100, procurementAspect#1140101, productGroup#1140102, filteredUnitOfMeasureConversions#1140103, quantityNumerator#1140104, quantityDenominator#1140105, CASE WHEN (isnull(outboundUnit#1140106) OR (outboundUnit#1140106 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1140106 END AS outboundUnit#1140107]
(1561) Project
Arguments: [product#1140064, plant#1140065, orderDateTime#1140066, productPlant#1140076, timezonecode#1140090, outboundUnit#1140107]
(1562) LogicalRelation
Arguments: parquet, [systemId#1140108, internalUUID#1140109, product#1140110, plant#1140111, calculationDateTime#1140112, stockQuantities#1140113], false
(1563) Repartition
Arguments: 37, true
(1564) LogicalRelation
Arguments: parquet, [marketUnit#1140114, description#1140115, articleHierarchy#1140116, defaultCurrency#1140117, responsibilities#1140118, replenishmentTypes#1140119, distributionCenters#1140120, assignedArticleHierarchyNodes#1140121, minOrderQtySetting#1140122, listingCheck#1140123, odsSelection#1140124, demandProfiles#1140125, constraintProfiles#1140126, optimizationProfiles#1140127, orderGroupSplitProfiles#1140128, supplierMinimumProfiles#1140129, multipleRestrictionProfiles#1140130, preferredUomSource#1140131, handlingOfUnfulfilledDemands#1140132, negligibleQuantitiesThreshold#1140133, eventtype#1140134, minOrderQtySettingInternal#1140135], false
(1565) Repartition
Arguments: 37, true
(1566) Filter
Arguments: (marketUnit#1140114 <=> Alert_Test1)
(1567) Project
Arguments: [marketUnit#1140114, description#1140115, articleHierarchy#1140116, defaultCurrency#1140117, responsibilities#1140118, replenishmentTypes#1140119, distributionCenters#1140120, assignedArticleHierarchyNodes#1140121, minOrderQtySetting#1140122, listingCheck#1140123, odsSelection#1140124, demandProfiles#1140125, constraintProfiles#1140126, optimizationProfiles#1140127, orderGroupSplitProfiles#1140128, supplierMinimumProfiles#1140129, multipleRestrictionProfiles#1140130, preferredUomSource#1140131, handlingOfUnfulfilledDemands#1140132, negligibleQuantitiesThreshold#1140133, eventtype#1140134, minOrderQtySettingInternal#1140135]
(1568) Project
Arguments: [distributionCenters#1140120]
(1569) Generate
Arguments: explode(distributionCenters#1140120), false, [distributionCenters#1140136]
(1570) Project
Arguments: [distributionCenters#1140136]
(1571) Generate
Arguments: explode(distributionCenters#1140136.storageLocations), false, [storageLocations#1140137]
(1572) Project
Arguments: [distributionCenters#1140136.id AS plantId#1140138, distributionCenters#1140136.internalRefUUID AS plantUuid#1140139, storageLocations#1140137]
(1573) Project
Arguments: [plantId#1140138, plantUuid#1140139, storageLocations#1140137.id AS storageLocId#1140140, storageLocations#1140137.internalRefUUID AS storageLocUuid#1140141]
(1574) LogicalRelation
Arguments: parquet, [product#1140142, plant#1140143, orderDateTime#1140144, planningStartDateTime#1140145], false
(1575) RepartitionByExpression
Arguments: [product#1140142, plant#1140143], 37
(1576) Project
Arguments: [product#1140142, plant#1140143, orderDateTime#1140144]
(1577) LogicalRelation
Arguments: parquet, [systemId#1140146, internalUUID#1140147, plant#1140148, product#1140149, blockedForReplenishmentStartingFrom#1140150, productionAspect#1140151, salesPlant#1140152, listing#1140153], false
(1578) Repartition
Arguments: 37, true
(1579) Project
Arguments: [systemId#1140146, internalUUID#1140147, plant#1140148, product#1140149, blockedForReplenishmentStartingFrom#1140150, productionAspect#1140151, salesPlant#1140152, listing#1140153, struct(systemId, systemId#1140146, internalUUID, internalUUID#1140147, plant, plant#1140148, product, product#1140149, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1140150, productionAspect, productionAspect#1140151, salesPlant, salesPlant#1140152, listing, listing#1140153) AS productPlant#1140154]
(1580) Project
Arguments: [productPlant#1140154]
(1581) Join
Arguments: LeftOuter, ((product#1140142 <=> productPlant#1140154.product.internalRefUUID) AND (plant#1140143 <=> productPlant#1140154.plant.internalRefUUID))
(1582) Project
Arguments: [product#1140142, plant#1140143, orderDateTime#1140144, productPlant#1140154]
(1583) SubqueryAlias
Arguments: wl
(1584) LogicalRelation
Arguments: parquet, [systemId#1140155, internalUUID#1140156, id#1140157, displayId#1140158, name#1140159, category#1140160, companyCode#1140161, address#1140162, mainDistributionChain#1140163, mainPurchasingOrganization#1140164, validPurchasingOrganizations#1140165, productGroup#1140166], false
(1585) Repartition
Arguments: 37, true
(1586) Project
Arguments: [internalUUID#1140156, address#1140162.timeZone.code AS timezonecode#1140167]
(1587) Join
Arguments: LeftOuter, (plant#1140143 <=> internalUUID#1140156)
(1588) Project
Arguments: [product#1140142, plant#1140143, orderDateTime#1140144, productPlant#1140154, internalUUID#1140156, CASE WHEN isnotnull(timezonecode#1140167) THEN timezonecode#1140167 ELSE UTC END AS timezonecode#1140168]
(1589) Project
Arguments: [product#1140142, plant#1140143, orderDateTime#1140144, productPlant#1140154, timezonecode#1140168]
(1590) LogicalRelation
Arguments: parquet, [systemId#1140169, internalUUID#1140170, id#1140171, displayId#1140172, name#1140173, baseUnitOfMeasure#1140174, unitOfMeasures#1140175, unitOfMeasureConversions#1140176, productionAspect#1140177, salesAspect#1140178, procurementAspect#1140179, productGroup#1140180], false
(1591) Repartition
Arguments: 37, true
(1592) Join
Arguments: LeftOuter, (product#1140142 = internalUUID#1140170)
(1593) Project
Arguments: [product#1140142, plant#1140143, orderDateTime#1140144, productPlant#1140154, timezonecode#1140168, systemId#1140169, internalUUID#1140170, id#1140171, displayId#1140172, name#1140173, baseUnitOfMeasure#1140174, unitOfMeasures#1140175, unitOfMeasureConversions#1140176, productionAspect#1140177, salesAspect#1140178, procurementAspect#1140179, productGroup#1140180, filter(unitOfMeasureConversions#1140176, lambdafunction((((lambda u#1135738.measurementUnit1.code = productPlant#1140154.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1135738.measurementUnit1.internalRefUUID = productPlant#1140154.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1140174.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1140174.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1140181]
(1594) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1140181.quantityNumerator), true, [quantityNumerator#1140182]
(1595) Project
Arguments: [product#1140142, plant#1140143, orderDateTime#1140144, productPlant#1140154, timezonecode#1140168, systemId#1140169, internalUUID#1140170, id#1140171, displayId#1140172, name#1140173, baseUnitOfMeasure#1140174, unitOfMeasures#1140175, unitOfMeasureConversions#1140176, productionAspect#1140177, salesAspect#1140178, procurementAspect#1140179, productGroup#1140180, filteredUnitOfMeasureConversions#1140181, quantityNumerator#1140182]
(1596) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1140181.quantityDenominator), true, [quantityDenominator#1140183]
(1597) Project
Arguments: [product#1140142, plant#1140143, orderDateTime#1140144, productPlant#1140154, timezonecode#1140168, systemId#1140169, internalUUID#1140170, id#1140171, displayId#1140172, name#1140173, baseUnitOfMeasure#1140174, unitOfMeasures#1140175, unitOfMeasureConversions#1140176, productionAspect#1140177, salesAspect#1140178, procurementAspect#1140179, productGroup#1140180, filteredUnitOfMeasureConversions#1140181, quantityNumerator#1140182, quantityDenominator#1140183]
(1598) Project
Arguments: [product#1140142, plant#1140143, orderDateTime#1140144, productPlant#1140154, timezonecode#1140168, systemId#1140169, internalUUID#1140170, id#1140171, displayId#1140172, name#1140173, baseUnitOfMeasure#1140174, unitOfMeasures#1140175, unitOfMeasureConversions#1140176, productionAspect#1140177, salesAspect#1140178, procurementAspect#1140179, productGroup#1140180, filteredUnitOfMeasureConversions#1140181, quantityNumerator#1140182, quantityDenominator#1140183, (cast(quantityNumerator#1140182 as double) / cast(quantityDenominator#1140183 as double)) AS outboundUnit#1140184]
(1599) Project
Arguments: [product#1140142, plant#1140143, orderDateTime#1140144, productPlant#1140154, timezonecode#1140168, systemId#1140169, internalUUID#1140170, id#1140171, displayId#1140172, name#1140173, baseUnitOfMeasure#1140174, unitOfMeasures#1140175, unitOfMeasureConversions#1140176, productionAspect#1140177, salesAspect#1140178, procurementAspect#1140179, productGroup#1140180, filteredUnitOfMeasureConversions#1140181, quantityNumerator#1140182, quantityDenominator#1140183, CASE WHEN (isnull(outboundUnit#1140184) OR (outboundUnit#1140184 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1140184 END AS outboundUnit#1140185]
(1600) Project
Arguments: [product#1140142, plant#1140143, orderDateTime#1140144, productPlant#1140154, timezonecode#1140168, outboundUnit#1140185]
(1601) Project
Arguments: [plant#1140143]
(1602) Deduplicate
Arguments: [plant#1140143]
(1603) Join
Arguments: Inner, (plantUuid#1140139 = plant#1140143)
(1604) Project
Arguments: [plantId#1140138, plantUuid#1140139, storageLocId#1140140, storageLocUuid#1140141]
(1605) Join
Arguments: Inner, (plant#1140111.internalRefUUID <=> plantUuid#1140139)
(1606) Generate
Arguments: explode(filter(stockQuantities#1140113, lambdafunction(((lambda x#1135796.storageLocation.internalRefUuid = storageLocUuid#1140141) AND (lambda x#1135796.storageLocation.Id = storageLocId#1140140)), lambda x#1135796, false))), false, [stockQuantity#1140186]
(1607) Project
Arguments: [systemId#1140108, internalUUID#1140109, product#1140110, plant#1140111, calculationDateTime#1140112, stockQuantities#1140113, plantId#1140138, plantUuid#1140139, storageLocId#1140140, storageLocUuid#1140141, stockQuantity#1140186]
(1608) Aggregate
Arguments: [plantUuid#1140139, internalUUID#1140109, plant#1140111, product#1140110, systemId#1140108], [plantUuid#1140139, internalUUID#1140109, plant#1140111, product#1140110, systemId#1140108, first(calculationDateTime#1140112, false) AS calculationDateTime#1140187, collect_list(stockQuantity#1140186, 0, 0) AS stockQuantities#1140188]
(1609) Project
Arguments: [systemId#1140108, internalUUID#1140109, product#1140110, plant#1140111, calculationDateTime#1140187, stockQuantities#1140188]
(1610) Generate
Arguments: explode(stockQuantities#1140188), false, [stockQuantity#1140189]
(1611) Project
Arguments: [systemId#1140108, internalUUID#1140109, product#1140110, plant#1140111, calculationDateTime#1140187, stockQuantities#1140188, stockQuantity#1140189]
(1612) Project
Arguments: [plant#1140111.id AS plant#1140190, plant#1140111.internalRefUUID AS plantUuid#1140191, product#1140110.id AS product#1140192, product#1140110.internalRefUUID AS productUuid#1140193, calculationDateTime#1140187, stockQuantity#1140189.storagelocation.id AS storageLocId#1140194, stockQuantity#1140189.storagelocation.internalRefUUID AS storageLocUuid#1140195, stockQuantity#1140189.quantity.measure AS quantity#1140196, stockQuantity#1140189.specialStockIndicator.code AS specialStockIndicator#1140197, stockQuantity#1140189.stockType.code AS stockType#1140198]
(1613) Filter
Arguments: ((specialStockIndicator#1140197 = ) AND (stockType#1140198 = 01))
(1614) LogicalRelation
Arguments: parquet, [product#1140199, plant#1140200, orderDateTime#1140201, planningStartDateTime#1140202], false
(1615) RepartitionByExpression
Arguments: [product#1140199, plant#1140200], 37
(1616) Project
Arguments: [product#1140199, plant#1140200, orderDateTime#1140201]
(1617) LogicalRelation
Arguments: parquet, [systemId#1140203, internalUUID#1140204, plant#1140205, product#1140206, blockedForReplenishmentStartingFrom#1140207, productionAspect#1140208, salesPlant#1140209, listing#1140210], false
(1618) Repartition
Arguments: 37, true
(1619) Project
Arguments: [systemId#1140203, internalUUID#1140204, plant#1140205, product#1140206, blockedForReplenishmentStartingFrom#1140207, productionAspect#1140208, salesPlant#1140209, listing#1140210, struct(systemId, systemId#1140203, internalUUID, internalUUID#1140204, plant, plant#1140205, product, product#1140206, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1140207, productionAspect, productionAspect#1140208, salesPlant, salesPlant#1140209, listing, listing#1140210) AS productPlant#1140211]
(1620) Project
Arguments: [productPlant#1140211]
(1621) Join
Arguments: LeftOuter, ((product#1140199 <=> productPlant#1140211.product.internalRefUUID) AND (plant#1140200 <=> productPlant#1140211.plant.internalRefUUID))
(1622) Project
Arguments: [product#1140199, plant#1140200, orderDateTime#1140201, productPlant#1140211]
(1623) SubqueryAlias
Arguments: wl
(1624) LogicalRelation
Arguments: parquet, [systemId#1140212, internalUUID#1140213, id#1140214, displayId#1140215, name#1140216, category#1140217, companyCode#1140218, address#1140219, mainDistributionChain#1140220, mainPurchasingOrganization#1140221, validPurchasingOrganizations#1140222, productGroup#1140223], false
(1625) Repartition
Arguments: 37, true
(1626) Project
Arguments: [internalUUID#1140213, address#1140219.timeZone.code AS timezonecode#1140224]
(1627) Join
Arguments: LeftOuter, (plant#1140200 <=> internalUUID#1140213)
(1628) Project
Arguments: [product#1140199, plant#1140200, orderDateTime#1140201, productPlant#1140211, internalUUID#1140213, CASE WHEN isnotnull(timezonecode#1140224) THEN timezonecode#1140224 ELSE UTC END AS timezonecode#1140225]
(1629) Project
Arguments: [product#1140199, plant#1140200, orderDateTime#1140201, productPlant#1140211, timezonecode#1140225]
(1630) LogicalRelation
Arguments: parquet, [systemId#1140226, internalUUID#1140227, id#1140228, displayId#1140229, name#1140230, baseUnitOfMeasure#1140231, unitOfMeasures#1140232, unitOfMeasureConversions#1140233, productionAspect#1140234, salesAspect#1140235, procurementAspect#1140236, productGroup#1140237], false
(1631) Repartition
Arguments: 37, true
(1632) Join
Arguments: LeftOuter, (product#1140199 = internalUUID#1140227)
(1633) Project
Arguments: [product#1140199, plant#1140200, orderDateTime#1140201, productPlant#1140211, timezonecode#1140225, systemId#1140226, internalUUID#1140227, id#1140228, displayId#1140229, name#1140230, baseUnitOfMeasure#1140231, unitOfMeasures#1140232, unitOfMeasureConversions#1140233, productionAspect#1140234, salesAspect#1140235, procurementAspect#1140236, productGroup#1140237, filter(unitOfMeasureConversions#1140233, lambdafunction((((lambda u#1135738.measurementUnit1.code = productPlant#1140211.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1135738.measurementUnit1.internalRefUUID = productPlant#1140211.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1140231.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1140231.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1140238]
(1634) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1140238.quantityNumerator), true, [quantityNumerator#1140239]
(1635) Project
Arguments: [product#1140199, plant#1140200, orderDateTime#1140201, productPlant#1140211, timezonecode#1140225, systemId#1140226, internalUUID#1140227, id#1140228, displayId#1140229, name#1140230, baseUnitOfMeasure#1140231, unitOfMeasures#1140232, unitOfMeasureConversions#1140233, productionAspect#1140234, salesAspect#1140235, procurementAspect#1140236, productGroup#1140237, filteredUnitOfMeasureConversions#1140238, quantityNumerator#1140239]
(1636) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1140238.quantityDenominator), true, [quantityDenominator#1140240]
(1637) Project
Arguments: [product#1140199, plant#1140200, orderDateTime#1140201, productPlant#1140211, timezonecode#1140225, systemId#1140226, internalUUID#1140227, id#1140228, displayId#1140229, name#1140230, baseUnitOfMeasure#1140231, unitOfMeasures#1140232, unitOfMeasureConversions#1140233, productionAspect#1140234, salesAspect#1140235, procurementAspect#1140236, productGroup#1140237, filteredUnitOfMeasureConversions#1140238, quantityNumerator#1140239, quantityDenominator#1140240]
(1638) Project
Arguments: [product#1140199, plant#1140200, orderDateTime#1140201, productPlant#1140211, timezonecode#1140225, systemId#1140226, internalUUID#1140227, id#1140228, displayId#1140229, name#1140230, baseUnitOfMeasure#1140231, unitOfMeasures#1140232, unitOfMeasureConversions#1140233, productionAspect#1140234, salesAspect#1140235, procurementAspect#1140236, productGroup#1140237, filteredUnitOfMeasureConversions#1140238, quantityNumerator#1140239, quantityDenominator#1140240, (cast(quantityNumerator#1140239 as double) / cast(quantityDenominator#1140240 as double)) AS outboundUnit#1140241]
(1639) Project
Arguments: [product#1140199, plant#1140200, orderDateTime#1140201, productPlant#1140211, timezonecode#1140225, systemId#1140226, internalUUID#1140227, id#1140228, displayId#1140229, name#1140230, baseUnitOfMeasure#1140231, unitOfMeasures#1140232, unitOfMeasureConversions#1140233, productionAspect#1140234, salesAspect#1140235, procurementAspect#1140236, productGroup#1140237, filteredUnitOfMeasureConversions#1140238, quantityNumerator#1140239, quantityDenominator#1140240, CASE WHEN (isnull(outboundUnit#1140241) OR (outboundUnit#1140241 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1140241 END AS outboundUnit#1140242]
(1640) Project
Arguments: [product#1140199, plant#1140200, orderDateTime#1140201, productPlant#1140211, timezonecode#1140225, outboundUnit#1140242]
(1641) Join
Arguments: Inner, ((plantUuid#1140191 = plant#1140200) AND (productUuid#1140193 = product#1140199))
(1642) Filter
Arguments: (calculationDateTime#1140187 <= orderDateTime#1140201)
(1643) Project
Arguments: [plantUuid#1140191 AS plant#1140243, productUuid#1140193 AS product#1140244, storageLocId#1140194, calculationDateTime#1140187, quantity#1140196]
(1644) LogicalRelation
Arguments: parquet, [systemId#1140245, internalUUID#1140246, product#1140247, plant#1140248, calculationDateTime#1140249, stockQuantities#1140250], false
(1645) Repartition
Arguments: 37, true
(1646) LogicalRelation
Arguments: parquet, [marketUnit#1140251, description#1140252, articleHierarchy#1140253, defaultCurrency#1140254, responsibilities#1140255, replenishmentTypes#1140256, distributionCenters#1140257, assignedArticleHierarchyNodes#1140258, minOrderQtySetting#1140259, listingCheck#1140260, odsSelection#1140261, demandProfiles#1140262, constraintProfiles#1140263, optimizationProfiles#1140264, orderGroupSplitProfiles#1140265, supplierMinimumProfiles#1140266, multipleRestrictionProfiles#1140267, preferredUomSource#1140268, handlingOfUnfulfilledDemands#1140269, negligibleQuantitiesThreshold#1140270, eventtype#1140271, minOrderQtySettingInternal#1140272], false
(1647) Repartition
Arguments: 37, true
(1648) Filter
Arguments: (marketUnit#1140251 <=> Alert_Test1)
(1649) Project
Arguments: [marketUnit#1140251, description#1140252, articleHierarchy#1140253, defaultCurrency#1140254, responsibilities#1140255, replenishmentTypes#1140256, distributionCenters#1140257, assignedArticleHierarchyNodes#1140258, minOrderQtySetting#1140259, listingCheck#1140260, odsSelection#1140261, demandProfiles#1140262, constraintProfiles#1140263, optimizationProfiles#1140264, orderGroupSplitProfiles#1140265, supplierMinimumProfiles#1140266, multipleRestrictionProfiles#1140267, preferredUomSource#1140268, handlingOfUnfulfilledDemands#1140269, negligibleQuantitiesThreshold#1140270, eventtype#1140271, minOrderQtySettingInternal#1140272]
(1650) Project
Arguments: [distributionCenters#1140257]
(1651) Generate
Arguments: explode(distributionCenters#1140257), false, [distributionCenters#1140273]
(1652) Project
Arguments: [distributionCenters#1140273]
(1653) Generate
Arguments: explode(distributionCenters#1140273.storageLocations), false, [storageLocations#1140274]
(1654) Project
Arguments: [distributionCenters#1140273.id AS plantId#1140275, distributionCenters#1140273.internalRefUUID AS plantUuid#1140276, storageLocations#1140274]
(1655) Project
Arguments: [plantId#1140275, plantUuid#1140276, storageLocations#1140274.id AS storageLocId#1140277, storageLocations#1140274.internalRefUUID AS storageLocUuid#1140278]
(1656) LogicalRelation
Arguments: parquet, [product#1140279, plant#1140280, orderDateTime#1140281, planningStartDateTime#1140282], false
(1657) RepartitionByExpression
Arguments: [product#1140279, plant#1140280], 37
(1658) Project
Arguments: [product#1140279, plant#1140280, orderDateTime#1140281]
(1659) LogicalRelation
Arguments: parquet, [systemId#1140283, internalUUID#1140284, plant#1140285, product#1140286, blockedForReplenishmentStartingFrom#1140287, productionAspect#1140288, salesPlant#1140289, listing#1140290], false
(1660) Repartition
Arguments: 37, true
(1661) Project
Arguments: [systemId#1140283, internalUUID#1140284, plant#1140285, product#1140286, blockedForReplenishmentStartingFrom#1140287, productionAspect#1140288, salesPlant#1140289, listing#1140290, struct(systemId, systemId#1140283, internalUUID, internalUUID#1140284, plant, plant#1140285, product, product#1140286, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1140287, productionAspect, productionAspect#1140288, salesPlant, salesPlant#1140289, listing, listing#1140290) AS productPlant#1140291]
(1662) Project
Arguments: [productPlant#1140291]
(1663) Join
Arguments: LeftOuter, ((product#1140279 <=> productPlant#1140291.product.internalRefUUID) AND (plant#1140280 <=> productPlant#1140291.plant.internalRefUUID))
(1664) Project
Arguments: [product#1140279, plant#1140280, orderDateTime#1140281, productPlant#1140291]
(1665) SubqueryAlias
Arguments: wl
(1666) LogicalRelation
Arguments: parquet, [systemId#1140292, internalUUID#1140293, id#1140294, displayId#1140295, name#1140296, category#1140297, companyCode#1140298, address#1140299, mainDistributionChain#1140300, mainPurchasingOrganization#1140301, validPurchasingOrganizations#1140302, productGroup#1140303], false
(1667) Repartition
Arguments: 37, true
(1668) Project
Arguments: [internalUUID#1140293, address#1140299.timeZone.code AS timezonecode#1140304]
(1669) Join
Arguments: LeftOuter, (plant#1140280 <=> internalUUID#1140293)
(1670) Project
Arguments: [product#1140279, plant#1140280, orderDateTime#1140281, productPlant#1140291, internalUUID#1140293, CASE WHEN isnotnull(timezonecode#1140304) THEN timezonecode#1140304 ELSE UTC END AS timezonecode#1140305]
(1671) Project
Arguments: [product#1140279, plant#1140280, orderDateTime#1140281, productPlant#1140291, timezonecode#1140305]
(1672) LogicalRelation
Arguments: parquet, [systemId#1140306, internalUUID#1140307, id#1140308, displayId#1140309, name#1140310, baseUnitOfMeasure#1140311, unitOfMeasures#1140312, unitOfMeasureConversions#1140313, productionAspect#1140314, salesAspect#1140315, procurementAspect#1140316, productGroup#1140317], false
(1673) Repartition
Arguments: 37, true
(1674) Join
Arguments: LeftOuter, (product#1140279 = internalUUID#1140307)
(1675) Project
Arguments: [product#1140279, plant#1140280, orderDateTime#1140281, productPlant#1140291, timezonecode#1140305, systemId#1140306, internalUUID#1140307, id#1140308, displayId#1140309, name#1140310, baseUnitOfMeasure#1140311, unitOfMeasures#1140312, unitOfMeasureConversions#1140313, productionAspect#1140314, salesAspect#1140315, procurementAspect#1140316, productGroup#1140317, filter(unitOfMeasureConversions#1140313, lambdafunction((((lambda u#1135738.measurementUnit1.code = productPlant#1140291.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1135738.measurementUnit1.internalRefUUID = productPlant#1140291.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1140311.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1140311.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1140318]
(1676) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1140318.quantityNumerator), true, [quantityNumerator#1140319]
(1677) Project
Arguments: [product#1140279, plant#1140280, orderDateTime#1140281, productPlant#1140291, timezonecode#1140305, systemId#1140306, internalUUID#1140307, id#1140308, displayId#1140309, name#1140310, baseUnitOfMeasure#1140311, unitOfMeasures#1140312, unitOfMeasureConversions#1140313, productionAspect#1140314, salesAspect#1140315, procurementAspect#1140316, productGroup#1140317, filteredUnitOfMeasureConversions#1140318, quantityNumerator#1140319]
(1678) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1140318.quantityDenominator), true, [quantityDenominator#1140320]
(1679) Project
Arguments: [product#1140279, plant#1140280, orderDateTime#1140281, productPlant#1140291, timezonecode#1140305, systemId#1140306, internalUUID#1140307, id#1140308, displayId#1140309, name#1140310, baseUnitOfMeasure#1140311, unitOfMeasures#1140312, unitOfMeasureConversions#1140313, productionAspect#1140314, salesAspect#1140315, procurementAspect#1140316, productGroup#1140317, filteredUnitOfMeasureConversions#1140318, quantityNumerator#1140319, quantityDenominator#1140320]
(1680) Project
Arguments: [product#1140279, plant#1140280, orderDateTime#1140281, productPlant#1140291, timezonecode#1140305, systemId#1140306, internalUUID#1140307, id#1140308, displayId#1140309, name#1140310, baseUnitOfMeasure#1140311, unitOfMeasures#1140312, unitOfMeasureConversions#1140313, productionAspect#1140314, salesAspect#1140315, procurementAspect#1140316, productGroup#1140317, filteredUnitOfMeasureConversions#1140318, quantityNumerator#1140319, quantityDenominator#1140320, (cast(quantityNumerator#1140319 as double) / cast(quantityDenominator#1140320 as double)) AS outboundUnit#1140321]
(1681) Project
Arguments: [product#1140279, plant#1140280, orderDateTime#1140281, productPlant#1140291, timezonecode#1140305, systemId#1140306, internalUUID#1140307, id#1140308, displayId#1140309, name#1140310, baseUnitOfMeasure#1140311, unitOfMeasures#1140312, unitOfMeasureConversions#1140313, productionAspect#1140314, salesAspect#1140315, procurementAspect#1140316, productGroup#1140317, filteredUnitOfMeasureConversions#1140318, quantityNumerator#1140319, quantityDenominator#1140320, CASE WHEN (isnull(outboundUnit#1140321) OR (outboundUnit#1140321 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1140321 END AS outboundUnit#1140322]
(1682) Project
Arguments: [product#1140279, plant#1140280, orderDateTime#1140281, productPlant#1140291, timezonecode#1140305, outboundUnit#1140322]
(1683) Project
Arguments: [plant#1140280]
(1684) Deduplicate
Arguments: [plant#1140280]
(1685) Join
Arguments: Inner, (plantUuid#1140276 = plant#1140280)
(1686) Project
Arguments: [plantId#1140275, plantUuid#1140276, storageLocId#1140277, storageLocUuid#1140278]
(1687) Join
Arguments: Inner, (plant#1140248.internalRefUUID <=> plantUuid#1140276)
(1688) Generate
Arguments: explode(filter(stockQuantities#1140250, lambdafunction(((lambda x#1135796.storageLocation.internalRefUuid = storageLocUuid#1140278) AND (lambda x#1135796.storageLocation.Id = storageLocId#1140277)), lambda x#1135796, false))), false, [stockQuantity#1140323]
(1689) Project
Arguments: [systemId#1140245, internalUUID#1140246, product#1140247, plant#1140248, calculationDateTime#1140249, stockQuantities#1140250, plantId#1140275, plantUuid#1140276, storageLocId#1140277, storageLocUuid#1140278, stockQuantity#1140323]
(1690) Aggregate
Arguments: [plantUuid#1140276, internalUUID#1140246, plant#1140248, product#1140247, systemId#1140245], [plantUuid#1140276, internalUUID#1140246, plant#1140248, product#1140247, systemId#1140245, first(calculationDateTime#1140249, false) AS calculationDateTime#1140324, collect_list(stockQuantity#1140323, 0, 0) AS stockQuantities#1140325]
(1691) Project
Arguments: [systemId#1140245, internalUUID#1140246, product#1140247, plant#1140248, calculationDateTime#1140324, stockQuantities#1140325]
(1692) Generate
Arguments: explode(stockQuantities#1140325), false, [stockQuantity#1140326]
(1693) Project
Arguments: [systemId#1140245, internalUUID#1140246, product#1140247, plant#1140248, calculationDateTime#1140324, stockQuantities#1140325, stockQuantity#1140326]
(1694) Project
Arguments: [plant#1140248.id AS plant#1140327, plant#1140248.internalRefUUID AS plantUuid#1140328, product#1140247.id AS product#1140329, product#1140247.internalRefUUID AS productUuid#1140330, calculationDateTime#1140324, stockQuantity#1140326.storagelocation.id AS storageLocId#1140331, stockQuantity#1140326.storagelocation.internalRefUUID AS storageLocUuid#1140332, stockQuantity#1140326.quantity.measure AS quantity#1140333, stockQuantity#1140326.specialStockIndicator.code AS specialStockIndicator#1140334, stockQuantity#1140326.stockType.code AS stockType#1140335]
(1695) Filter
Arguments: ((specialStockIndicator#1140334 = ) AND (stockType#1140335 = 01))
(1696) LogicalRelation
Arguments: parquet, [product#1140336, plant#1140337, orderDateTime#1140338, planningStartDateTime#1140339], false
(1697) RepartitionByExpression
Arguments: [product#1140336, plant#1140337], 37
(1698) Project
Arguments: [product#1140336, plant#1140337, orderDateTime#1140338]
(1699) LogicalRelation
Arguments: parquet, [systemId#1140340, internalUUID#1140341, plant#1140342, product#1140343, blockedForReplenishmentStartingFrom#1140344, productionAspect#1140345, salesPlant#1140346, listing#1140347], false
(1700) Repartition
Arguments: 37, true
(1701) Project
Arguments: [systemId#1140340, internalUUID#1140341, plant#1140342, product#1140343, blockedForReplenishmentStartingFrom#1140344, productionAspect#1140345, salesPlant#1140346, listing#1140347, struct(systemId, systemId#1140340, internalUUID, internalUUID#1140341, plant, plant#1140342, product, product#1140343, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1140344, productionAspect, productionAspect#1140345, salesPlant, salesPlant#1140346, listing, listing#1140347) AS productPlant#1140348]
(1702) Project
Arguments: [productPlant#1140348]
(1703) Join
Arguments: LeftOuter, ((product#1140336 <=> productPlant#1140348.product.internalRefUUID) AND (plant#1140337 <=> productPlant#1140348.plant.internalRefUUID))
(1704) Project
Arguments: [product#1140336, plant#1140337, orderDateTime#1140338, productPlant#1140348]
(1705) SubqueryAlias
Arguments: wl
(1706) LogicalRelation
Arguments: parquet, [systemId#1140349, internalUUID#1140350, id#1140351, displayId#1140352, name#1140353, category#1140354, companyCode#1140355, address#1140356, mainDistributionChain#1140357, mainPurchasingOrganization#1140358, validPurchasingOrganizations#1140359, productGroup#1140360], false
(1707) Repartition
Arguments: 37, true
(1708) Project
Arguments: [internalUUID#1140350, address#1140356.timeZone.code AS timezonecode#1140361]
(1709) Join
Arguments: LeftOuter, (plant#1140337 <=> internalUUID#1140350)
(1710) Project
Arguments: [product#1140336, plant#1140337, orderDateTime#1140338, productPlant#1140348, internalUUID#1140350, CASE WHEN isnotnull(timezonecode#1140361) THEN timezonecode#1140361 ELSE UTC END AS timezonecode#1140362]
(1711) Project
Arguments: [product#1140336, plant#1140337, orderDateTime#1140338, productPlant#1140348, timezonecode#1140362]
(1712) LogicalRelation
Arguments: parquet, [systemId#1140363, internalUUID#1140364, id#1140365, displayId#1140366, name#1140367, baseUnitOfMeasure#1140368, unitOfMeasures#1140369, unitOfMeasureConversions#1140370, productionAspect#1140371, salesAspect#1140372, procurementAspect#1140373, productGroup#1140374], false
(1713) Repartition
Arguments: 37, true
(1714) Join
Arguments: LeftOuter, (product#1140336 = internalUUID#1140364)
(1715) Project
Arguments: [product#1140336, plant#1140337, orderDateTime#1140338, productPlant#1140348, timezonecode#1140362, systemId#1140363, internalUUID#1140364, id#1140365, displayId#1140366, name#1140367, baseUnitOfMeasure#1140368, unitOfMeasures#1140369, unitOfMeasureConversions#1140370, productionAspect#1140371, salesAspect#1140372, procurementAspect#1140373, productGroup#1140374, filter(unitOfMeasureConversions#1140370, lambdafunction((((lambda u#1135738.measurementUnit1.code = productPlant#1140348.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1135738.measurementUnit1.internalRefUUID = productPlant#1140348.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1140368.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1140368.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1140375]
(1716) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1140375.quantityNumerator), true, [quantityNumerator#1140376]
(1717) Project
Arguments: [product#1140336, plant#1140337, orderDateTime#1140338, productPlant#1140348, timezonecode#1140362, systemId#1140363, internalUUID#1140364, id#1140365, displayId#1140366, name#1140367, baseUnitOfMeasure#1140368, unitOfMeasures#1140369, unitOfMeasureConversions#1140370, productionAspect#1140371, salesAspect#1140372, procurementAspect#1140373, productGroup#1140374, filteredUnitOfMeasureConversions#1140375, quantityNumerator#1140376]
(1718) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1140375.quantityDenominator), true, [quantityDenominator#1140377]
(1719) Project
Arguments: [product#1140336, plant#1140337, orderDateTime#1140338, productPlant#1140348, timezonecode#1140362, systemId#1140363, internalUUID#1140364, id#1140365, displayId#1140366, name#1140367, baseUnitOfMeasure#1140368, unitOfMeasures#1140369, unitOfMeasureConversions#1140370, productionAspect#1140371, salesAspect#1140372, procurementAspect#1140373, productGroup#1140374, filteredUnitOfMeasureConversions#1140375, quantityNumerator#1140376, quantityDenominator#1140377]
(1720) Project
Arguments: [product#1140336, plant#1140337, orderDateTime#1140338, productPlant#1140348, timezonecode#1140362, systemId#1140363, internalUUID#1140364, id#1140365, displayId#1140366, name#1140367, baseUnitOfMeasure#1140368, unitOfMeasures#1140369, unitOfMeasureConversions#1140370, productionAspect#1140371, salesAspect#1140372, procurementAspect#1140373, productGroup#1140374, filteredUnitOfMeasureConversions#1140375, quantityNumerator#1140376, quantityDenominator#1140377, (cast(quantityNumerator#1140376 as double) / cast(quantityDenominator#1140377 as double)) AS outboundUnit#1140378]
(1721) Project
Arguments: [product#1140336, plant#1140337, orderDateTime#1140338, productPlant#1140348, timezonecode#1140362, systemId#1140363, internalUUID#1140364, id#1140365, displayId#1140366, name#1140367, baseUnitOfMeasure#1140368, unitOfMeasures#1140369, unitOfMeasureConversions#1140370, productionAspect#1140371, salesAspect#1140372, procurementAspect#1140373, productGroup#1140374, filteredUnitOfMeasureConversions#1140375, quantityNumerator#1140376, quantityDenominator#1140377, CASE WHEN (isnull(outboundUnit#1140378) OR (outboundUnit#1140378 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1140378 END AS outboundUnit#1140379]
(1722) Project
Arguments: [product#1140336, plant#1140337, orderDateTime#1140338, productPlant#1140348, timezonecode#1140362, outboundUnit#1140379]
(1723) Join
Arguments: Inner, ((plantUuid#1140328 = plant#1140337) AND (productUuid#1140330 = product#1140336))
(1724) Filter
Arguments: (calculationDateTime#1140324 <= orderDateTime#1140338)
(1725) Project
Arguments: [plantUuid#1140328 AS plant#1140380, productUuid#1140330 AS product#1140381, storageLocId#1140331, calculationDateTime#1140324, quantity#1140333]
(1726) Aggregate
Arguments: [plant#1140380, product#1140381, storageLocId#1140331], [plant#1140380, product#1140381, storageLocId#1140331, max(calculationDateTime#1140324) AS max_calc_datetime#1140382]
(1727) Join
Arguments: Inner, ((((plant#1140243 <=> plant#1140380) AND (product#1140244 <=> product#1140381)) AND (storageLocId#1140194 <=> storageLocId#1140331)) AND (calculationDateTime#1140187 <=> max_calc_datetime#1140382))
(1728) Project
Arguments: [plant#1140243, product#1140244, storageLocId#1140194, calculationDateTime#1140187, quantity#1140196]
(1729) Aggregate
Arguments: [product#1140244, plant#1140243], [product#1140244, plant#1140243, sum(quantity#1140196) AS quantitySum#1140383, min(calculationDateTime#1140187) AS minCalculationDateTime#1140384]
(1730) Project
Arguments: [product#1140244, plant#1140243, quantitySum#1140383, minCalculationDateTime#1140384, round(quantitySum#1140383, 0) AS roundedQuantitySum#1140385]
(1731) Join
Arguments: LeftOuter, ((plant#1140065 = plant#1140243) AND (product#1140064 = product#1140244))
(1732) Project
Arguments: [product#1140064, plant#1140065, orderDateTime#1140066, productPlant#1140076, timezonecode#1140090, outboundUnit#1140107, roundedQuantitySum#1140385, minCalculationDateTime#1140384]
(1733) Project
Arguments: [product#1140064, plant#1140065, orderDateTime#1140066, productPlant#1140076, timezonecode#1140090, outboundUnit#1140107, roundedQuantitySum#1140385, minCalculationDateTime#1140384, CASE WHEN isnotnull(minCalculationDateTime#1140384) THEN minCalculationDateTime#1140384 ELSE orderDateTime#1140066 END AS stockDatetime#1140386]
(1734) Project
Arguments: [product#1140064, plant#1140065, orderDateTime#1140066, productPlant#1140076, timezonecode#1140090, outboundUnit#1140107, roundedQuantitySum#1140385, minCalculationDateTime#1140384, stockDatetime#1140386, CASE WHEN isnotnull(roundedQuantitySum#1140385) THEN array(roundedQuantitySum#1140385) ELSE array(0.0) END AS stockBatchQuantities#1140387]
(1735) Project
Arguments: [product#1140064, plant#1140065, orderDateTime#1140066, productPlant#1140076, timezonecode#1140090, outboundUnit#1140107, roundedQuantitySum#1140385, minCalculationDateTime#1140384, stockDatetime#1140386, stockBatchQuantities#1140387, array(2199-01-01 00:00:00) AS stockBatchShelfLifeEndDatetimes#1140388]
(1736) Project
Arguments: [product#1140064, plant#1140065, orderDateTime#1140066, productPlant#1140076, timezonecode#1140090, outboundUnit#1140107, roundedQuantitySum#1140385, stockDatetime#1140386, stockBatchQuantities#1140387, stockBatchShelfLifeEndDatetimes#1140388]
(1737) Project
Arguments: [product#1140064, plant#1140065, orderDateTime#1140066, productPlant#1140076, timezonecode#1140090, outboundUnit#1140107, stockDatetime#1140386, stockBatchQuantities#1140387, stockBatchShelfLifeEndDatetimes#1140388]
(1738) LogicalRelation
Arguments: parquet, [product#1140389, plant#1140390, demandChannel#1140391, demandStream#1140392, considerVariance#1140393, demandTimeBuckets#1140394, demandPointInTimeStart#1140395, demandPointInTimeEnd#1140396, demandPointInTime#1140397], false
(1739) Join
Arguments: LeftOuter, ((product#1140064 = product#1140389) AND (plant#1140065 = plant#1140390))
(1740) Project
Arguments: [product#1140064, plant#1140065, orderDateTime#1140066, productPlant#1140076, timezonecode#1140090, outboundUnit#1140107, stockDatetime#1140386, stockBatchQuantities#1140387, stockBatchShelfLifeEndDatetimes#1140388, demandChannel#1140391, demandStream#1140392, considerVariance#1140393, demandTimeBuckets#1140394, demandPointInTimeStart#1140395, demandPointInTimeEnd#1140396, demandPointInTime#1140397, product#1140389, plant#1140390]
(1741) Project
Arguments: [product#1140064, plant#1140065, orderDateTime#1140066, productPlant#1140076, timezonecode#1140090, outboundUnit#1140107, stockDatetime#1140386, stockBatchQuantities#1140387, stockBatchShelfLifeEndDatetimes#1140388, demandChannel#1140391, demandStream#1140392, considerVariance#1140393, demandTimeBuckets#1140394, demandPointInTimeStart#1140395, demandPointInTimeEnd#1140396, demandPointInTime#1140397, CASE WHEN isnotnull(product#1140389) THEN struct(demandChannel, demandChannel#1140391, demandStream, demandStream#1140392, considerVariance, considerVariance#1140393, demandTimeBuckets, demandTimeBuckets#1140394, demandPointInTimeStart, demandPointInTimeStart#1140395, demandPointInTimeEnd, demandPointInTimeEnd#1140396, demandPointInTime, demandPointInTime#1140397) ELSE cast(null as struct<demandChannel:string,demandStream:string,considerVariance:boolean,demandTimeBuckets:array<struct<demandStartDateTime:timestamp,demandQuantity:double,demandVariance:double>>,demandPointInTimeStart:timestamp,demandPointInTimeEnd:timestamp,demandPointInTime:array<struct<demandDateTime:timestamp,demandQuantity:double,demandVariance:double>>>) END AS rawDemands#1140398]
(1742) Aggregate
Arguments: [product#1140064, plant#1140065, orderDateTime#1140066, productPlant#1140076, timezonecode#1140090, outboundUnit#1140107, stockDatetime#1140386, stockBatchQuantities#1140387, stockBatchShelfLifeEndDatetimes#1140388], [product#1140064, plant#1140065, orderDateTime#1140066, productPlant#1140076, timezonecode#1140090, outboundUnit#1140107, stockDatetime#1140386, stockBatchQuantities#1140387, stockBatchShelfLifeEndDatetimes#1140388, collect_list(rawDemands#1140398, 0, 0) AS rawDemands#1140399]
(1743) DeserializeToObject
Arguments: createexternalrow(invoke(product#1140064.toString()), invoke(plant#1140065.toString()), static_invoke(DateTimeUtils.toJavaTimestamp(orderDateTime#1140066)), if (isnull(productPlant#1140076)) null else createexternalrow(invoke(productPlant#1140076.systemId.toString()), invoke(productPlant#1140076.internalUUID.toString()), if (isnull(productPlant#1140076.plant)) null else createexternalrow(invoke(productPlant#1140076.plant.internalRefUUID.toString()), invoke(productPlant#1140076.plant.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), if (isnull(productPlant#1140076.product)) null else createexternalrow(invoke(productPlant#1140076.product.internalRefUUID.toString()), invoke(productPlant#1140076.product.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(DateTimeUtils.toJavaDate(productPlant#1140076.blockedForReplenishmentStartingFrom)), if (isnull(productPlant#1140076.productionAspect)) null else createexternalrow(if (isnull(productPlant#1140076.productionAspect.productMovementPlants)) null else createexternalrow(if (isnull(productPlant#1140076.productionAspect.productMovementPlants.unitOfIssue)) null else createexternalrow(invoke(productPlant#1140076.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID.toString()), invoke(productPlant#1140076.productionAspect.productMovementPlants.unitOfIssue.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), if (isnull(productPlant#1140076.productionAspect.productPlanningPlants)) null else createexternalrow(if (isnull(productPlant#1140076.productionAspect.productPlanningPlants.mrpType)) null else createexternalrow(invoke(productPlant#1140076.productionAspect.productPlanningPlants.mrpType.internalRefUUID.toString()), invoke(productPlant#1140076.productionAspect.productPlanningPlants.mrpType.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1140076.productionAspect.productPlanningPlants.abcIndicator)) null else createexternalrow(invoke(productPlant#1140076.productionAspect.productPlanningPlants.abcIndicator.internalRefUUID.toString()), invoke(productPlant#1140076.productionAspect.productPlanningPlants.abcIndicator.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1140076.productionAspect.productPlanningPlants.mrpController)) null else createexternalrow(invoke(productPlant#1140076.productionAspect.productPlanningPlants.mrpController.internalRefUUID.toString()), invoke(productPlant#1140076.productionAspect.productPlanningPlants.mrpController.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(java.lang.Double.valueOf(productPlant#1140076.productionAspect.productPlanningPlants.minimumLotSize)), if (isnull(productPlant#1140076.productionAspect.productPlanningPlants.logisticalRoundingProfile)) null else createexternalrow(invoke(productPlant#1140076.productionAspect.productPlanningPlants.logisticalRoundingProfile.internalRefUUID.toString()), invoke(productPlant#1140076.productionAspect.productPlanningPlants.logisticalRoundingProfile.logisticalRoundingProfile.toString()), StructField(internalRefUUID,StringType,true), StructField(logisticalRoundingProfile,StringType,true)), if (isnull(productPlant#1140076.productionAspect.productPlanningPlants.sourceOfSupplyCategory)) null else createexternalrow(invoke(productPlant#1140076.productionAspect.productPlanningPlants.sourceOfSupplyCategory.internalRefUUID.toString()), invoke(productPlant#1140076.productionAspect.productPlanningPlants.sourceOfSupplyCategory.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true), StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true), StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(minimumLotSize,DoubleType,true), StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true), StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true), StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)), if (isnull(productPlant#1140076.salesPlant)) null else createexternalrow(if (isnull(productPlant#1140076.salesPlant.loadingGroup)) null else createexternalrow(invoke(productPlant#1140076.salesPlant.loadingGroup.internalRefUUID.toString()), invoke(productPlant#1140076.salesPlant.loadingGroup.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), mapobjects(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 152118), if (isnull(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 152118))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 152118).validFrom)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 152118).validTo)), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 152118).isListed)), StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true)), productPlant#1140076.listing, Some(class scala.collection.mutable.ArraySeq)), StructField(systemId,StringType,true), StructField(internalUUID,StringType,true), StructField(plant,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(product,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(blockedForReplenishmentStartingFrom,DateType,true), StructField(productionAspect,StructType(StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)),true), StructField(salesPlant,StructType(StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true), StructField(listing,ArrayType(StructType(StructField(validFrom,TimestampType,true),StructField(validTo,TimestampType,true),StructField(isListed,BooleanType,true)),true),true)), invoke(timezonecode#1140090.toString()), static_invoke(java.lang.Double.valueOf(outboundUnit#1140107)), static_invoke(DateTimeUtils.toJavaTimestamp(stockDatetime#1140386)), mapobjects(lambdavariable(MapObject, DoubleType, true, 152119), static_invoke(java.lang.Double.valueOf(cast(lambdavariable(MapObject, DoubleType, true, 152119) as double))), stockBatchQuantities#1140387, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, false, 152120), assertnotnull(static_invoke(DateTimeUtils.toJavaTimestamp(cast(lambdavariable(MapObject, TimestampType, false, 152120) as timestamp)))), stockBatchShelfLifeEndDatetimes#1140388, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, 152121), assertnotnull(if (isnull(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, 152121))) null else createexternalrow(invoke(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, 152121).demandChannel.toString()), invoke(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, 152121).demandStream.toString()), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, 152121).considerVariance)), mapobjects(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 152122), if (isnull(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 152122))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 152122).demandStartDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 152122).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 152122).demandVariance)), StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true)), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, 152121).demandTimeBuckets, Some(class scala.collection.mutable.ArraySeq)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, 152121).demandPointInTimeStart)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, 152121).demandPointInTimeEnd)), mapobjects(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 152123), if (isnull(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 152123))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 152123).demandDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 152123).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 152123).demandVariance)), StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true)), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, 152121).demandPointInTime, Some(class scala.collection.mutable.ArraySeq)), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true))), rawDemands#1140399, Some(class scala.collection.mutable.ArraySeq)), StructField(product,StringType,true), StructField(plant,StringType,true), StructField(orderDateTime,TimestampType,true), StructField(productPlant,StructType(StructField(systemId,StringType,true),StructField(internalUUID,StringType,true),StructField(plant,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(product,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(blockedForReplenishmentStartingFrom,DateType,true),StructField(productionAspect,StructType(StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)),true),StructField(salesPlant,StructType(StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(listing,ArrayType(StructType(StructField(validFrom,TimestampType,true),StructField(validTo,TimestampType,true),StructField(isListed,BooleanType,true)),true),true)),true), StructField(timezonecode,StringType,true), StructField(outboundUnit,DoubleType,true), StructField(stockDatetime,TimestampType,true), StructField(stockBatchQuantities,ArrayType(DoubleType,true),false), StructField(stockBatchShelfLifeEndDatetimes,ArrayType(TimestampType,false),false), StructField(rawDemands,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(considerVariance,BooleanType,true),StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true),StructField(demandPointInTimeStart,TimestampType,true),StructField(demandPointInTimeEnd,TimestampType,true),StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true)),false),false)), obj#1136159: org.apache.spark.sql.Row
(1744) MapElements
Arguments: com.sap.s4hana.eureka.business.crporderquantitykpiservice.core.business.datasnapshot.DemandTransformatorImpl$$Lambda/0x00000008023bc120@a39b9be, interface org.apache.spark.sql.Row, [StructField(product,StringType,true), StructField(plant,StringType,true), StructField(orderDateTime,TimestampType,true), StructField(productPlant,StructType(StructField(systemId,StringType,true),StructField(internalUUID,StringType,true),StructField(plant,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(product,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(blockedForReplenishmentStartingFrom,DateType,true),StructField(productionAspect,StructType(StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)),true),StructField(salesPlant,StructType(StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(listing,ArrayType(StructType(StructField(validFrom,TimestampType,true),StructField(validTo,TimestampType,true),StructField(isListed,BooleanType,true)),true),true)),true), StructField(timezonecode,StringType,true), StructField(outboundUnit,DoubleType,true), StructField(stockDatetime,TimestampType,true), StructField(stockBatchQuantities,ArrayType(DoubleType,true),false), StructField(stockBatchShelfLifeEndDatetimes,ArrayType(TimestampType,false),false), StructField(rawDemands,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(considerVariance,BooleanType,true),StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true),StructField(demandPointInTimeStart,TimestampType,true),StructField(demandPointInTimeEnd,TimestampType,true),StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true)),false),false)], obj#1136164: org.apache.spark.sql.Row
(1745) SerializeFromObject
Arguments: [if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(0))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 0, product), StringType, ObjectType(class java.lang.String)))) AS product#1140400, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(1))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 1, plant), StringType, ObjectType(class java.lang.String)))) AS plant#1140401, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(2))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), assertnotnull(if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)))) null else named_struct(demandChannel, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(0))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 0, demandChannel), StringType, ObjectType(class java.lang.String)))), demandStream, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(1))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 1, demandStream), StringType, ObjectType(class java.lang.String)))), considerVariance, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(2))) null else invoke(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 2, considerVariance), BooleanType, ObjectType(class java.lang.Boolean)).booleanValue()), demandValues, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(3))) null else if (invoke(class [D.isInstance(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 3, demandValues), ArrayType(DoubleType,false), ObjectType(class java.lang.Object))))) static_invoke(ArrayData.toArrayData(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 3, demandValues), ArrayType(DoubleType,false), ObjectType(class java.lang.Object)))) else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152109), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152109), DoubleType, ObjectType(class java.lang.Double)).doubleValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 3, demandValues), ArrayType(DoubleType,false), ObjectType(class java.lang.Object)), None), demandVariances, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(4))) null else if (invoke(class [D.isInstance(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 4, demandVariances), ArrayType(DoubleType,true), ObjectType(class java.lang.Object))))) static_invoke(ArrayData.toArrayData(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 4, demandVariances), ArrayType(DoubleType,true), ObjectType(class java.lang.Object)))) else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152110), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152110), DoubleType, ObjectType(class java.lang.Double)).doubleValue()), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 4, demandVariances), ArrayType(DoubleType,true), ObjectType(class java.lang.Object)), None), anchorDatetimes, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(5))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152111), assertnotnull(static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152111), TimestampType, ObjectType(class java.sql.Timestamp))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 5, anchorDatetimes), ArrayType(TimestampType,false), ObjectType(class java.lang.Object)), None), anchorWeekdays, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(6))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152112), assertnotnull(static_invoke(UTF8String.fromString(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152112), StringType, ObjectType(class java.lang.String))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 6, anchorWeekdays), ArrayType(StringType,false), ObjectType(class java.lang.Object)), None), anchorIndices, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(7))) null else if (invoke(class [I.isInstance(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 7, anchorIndices), ArrayType(IntegerType,false), ObjectType(class java.lang.Object))))) static_invoke(ArrayData.toArrayData(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 7, anchorIndices), ArrayType(IntegerType,false), ObjectType(class java.lang.Object)))) else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152113), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152113), IntegerType, ObjectType(class java.lang.Integer)).intValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 7, anchorIndices), ArrayType(IntegerType,false), ObjectType(class java.lang.Object)), None))), validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 2, dayBucketDemands), ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(considerVariance,BooleanType,true),StructField(demandValues,ArrayType(DoubleType,false),true),StructField(demandVariances,ArrayType(DoubleType,true),true),StructField(anchorDatetimes,ArrayType(TimestampType,false),true),StructField(anchorWeekdays,ArrayType(StringType,false),true),StructField(anchorIndices,ArrayType(IntegerType,false),true)),false), ObjectType(class java.lang.Object)), None) AS dayBucketDemands#1140402, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(3))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), assertnotnull(if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)))) null else named_struct(demandChannel, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(0))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 0, demandChannel), StringType, ObjectType(class java.lang.String)))), demandStream, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(1))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 1, demandStream), StringType, ObjectType(class java.lang.String)))), considerVariance, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(2))) null else invoke(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 2, considerVariance), BooleanType, ObjectType(class java.lang.Boolean)).booleanValue()), demandDatetimes, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(3))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152115), assertnotnull(static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152115), TimestampType, ObjectType(class java.sql.Timestamp))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 3, demandDatetimes), ArrayType(TimestampType,false), ObjectType(class java.lang.Object)), None), demandValues, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(4))) null else if (invoke(class [D.isInstance(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 4, demandValues), ArrayType(DoubleType,false), ObjectType(class java.lang.Object))))) static_invoke(ArrayData.toArrayData(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 4, demandValues), ArrayType(DoubleType,false), ObjectType(class java.lang.Object)))) else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152116), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152116), DoubleType, ObjectType(class java.lang.Double)).doubleValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 4, demandValues), ArrayType(DoubleType,false), ObjectType(class java.lang.Object)), None), demandVariances, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(5))) null else if (invoke(class [D.isInstance(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 5, demandVariances), ArrayType(DoubleType,true), ObjectType(class java.lang.Object))))) static_invoke(ArrayData.toArrayData(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 5, demandVariances), ArrayType(DoubleType,true), ObjectType(class java.lang.Object)))) else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152117), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152117), DoubleType, ObjectType(class java.lang.Double)).doubleValue()), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 5, demandVariances), ArrayType(DoubleType,true), ObjectType(class java.lang.Object)), None), horizonStartDatetime, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(6))) null else static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 6, horizonStartDatetime), TimestampType, ObjectType(class java.sql.Timestamp)))), horizonEndDatetime, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(7))) null else static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 7, horizonEndDatetime), TimestampType, ObjectType(class java.sql.Timestamp)))))), validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 3, pointInTimeDemands), ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(considerVariance,BooleanType,true),StructField(demandDatetimes,ArrayType(TimestampType,false),true),StructField(demandValues,ArrayType(DoubleType,false),true),StructField(demandVariances,ArrayType(DoubleType,true),true),StructField(horizonStartDatetime,TimestampType,true),StructField(horizonEndDatetime,TimestampType,true)),false), ObjectType(class java.lang.Object)), None) AS pointInTimeDemands#1140403]
(1746) Join
Arguments: LeftOuter, ((plant#1140401 <=> plant#1139740) AND (product#1140400 <=> product#1139739))
(1747) Project
Arguments: [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, timezonecode#1139765, outboundUnit#1139782, stockDatetime#1140061, stockBatchQuantities#1140062, stockBatchShelfLifeEndDatetimes#1140063, plant#1140401, dayBucketDemands#1140402, pointInTimeDemands#1140403]
(1748) Project
Arguments: [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, timezonecode#1139765, outboundUnit#1139782, stockDatetime#1140061, stockBatchQuantities#1140062, stockBatchShelfLifeEndDatetimes#1140063, dayBucketDemands#1140402, pointInTimeDemands#1140403]
(1749) LogicalRelation
Arguments: parquet, [product#1140404, plant#1140405, orderDateTime#1140406, planningStartDateTime#1140407], false
(1750) RepartitionByExpression
Arguments: [product#1140404, plant#1140405], 37
(1751) Project
Arguments: [product#1140404, plant#1140405, orderDateTime#1140406]
(1752) LogicalRelation
Arguments: parquet, [systemId#1140408, internalUUID#1140409, plant#1140410, product#1140411, blockedForReplenishmentStartingFrom#1140412, productionAspect#1140413, salesPlant#1140414, listing#1140415], false
(1753) Repartition
Arguments: 37, true
(1754) Project
Arguments: [systemId#1140408, internalUUID#1140409, plant#1140410, product#1140411, blockedForReplenishmentStartingFrom#1140412, productionAspect#1140413, salesPlant#1140414, listing#1140415, struct(systemId, systemId#1140408, internalUUID, internalUUID#1140409, plant, plant#1140410, product, product#1140411, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1140412, productionAspect, productionAspect#1140413, salesPlant, salesPlant#1140414, listing, listing#1140415) AS productPlant#1140416]
(1755) Project
Arguments: [productPlant#1140416]
(1756) Join
Arguments: LeftOuter, ((product#1140404 <=> productPlant#1140416.product.internalRefUUID) AND (plant#1140405 <=> productPlant#1140416.plant.internalRefUUID))
(1757) Project
Arguments: [product#1140404, plant#1140405, orderDateTime#1140406, productPlant#1140416]
(1758) SubqueryAlias
Arguments: wl
(1759) LogicalRelation
Arguments: parquet, [systemId#1140417, internalUUID#1140418, id#1140419, displayId#1140420, name#1140421, category#1140422, companyCode#1140423, address#1140424, mainDistributionChain#1140425, mainPurchasingOrganization#1140426, validPurchasingOrganizations#1140427, productGroup#1140428], false
(1760) Repartition
Arguments: 37, true
(1761) Project
Arguments: [internalUUID#1140418, address#1140424.timeZone.code AS timezonecode#1140429]
(1762) Join
Arguments: LeftOuter, (plant#1140405 <=> internalUUID#1140418)
(1763) Project
Arguments: [product#1140404, plant#1140405, orderDateTime#1140406, productPlant#1140416, internalUUID#1140418, CASE WHEN isnotnull(timezonecode#1140429) THEN timezonecode#1140429 ELSE UTC END AS timezonecode#1140430]
(1764) Project
Arguments: [product#1140404, plant#1140405, orderDateTime#1140406, productPlant#1140416, timezonecode#1140430]
(1765) LogicalRelation
Arguments: parquet, [systemId#1140431, internalUUID#1140432, id#1140433, displayId#1140434, name#1140435, baseUnitOfMeasure#1140436, unitOfMeasures#1140437, unitOfMeasureConversions#1140438, productionAspect#1140439, salesAspect#1140440, procurementAspect#1140441, productGroup#1140442], false
(1766) Repartition
Arguments: 37, true
(1767) Join
Arguments: LeftOuter, (product#1140404 = internalUUID#1140432)
(1768) Project
Arguments: [product#1140404, plant#1140405, orderDateTime#1140406, productPlant#1140416, timezonecode#1140430, systemId#1140431, internalUUID#1140432, id#1140433, displayId#1140434, name#1140435, baseUnitOfMeasure#1140436, unitOfMeasures#1140437, unitOfMeasureConversions#1140438, productionAspect#1140439, salesAspect#1140440, procurementAspect#1140441, productGroup#1140442, filter(unitOfMeasureConversions#1140438, lambdafunction((((lambda u#1135738.measurementUnit1.code = productPlant#1140416.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1135738.measurementUnit1.internalRefUUID = productPlant#1140416.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1140436.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1140436.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1140443]
(1769) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1140443.quantityNumerator), true, [quantityNumerator#1140444]
(1770) Project
Arguments: [product#1140404, plant#1140405, orderDateTime#1140406, productPlant#1140416, timezonecode#1140430, systemId#1140431, internalUUID#1140432, id#1140433, displayId#1140434, name#1140435, baseUnitOfMeasure#1140436, unitOfMeasures#1140437, unitOfMeasureConversions#1140438, productionAspect#1140439, salesAspect#1140440, procurementAspect#1140441, productGroup#1140442, filteredUnitOfMeasureConversions#1140443, quantityNumerator#1140444]
(1771) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1140443.quantityDenominator), true, [quantityDenominator#1140445]
(1772) Project
Arguments: [product#1140404, plant#1140405, orderDateTime#1140406, productPlant#1140416, timezonecode#1140430, systemId#1140431, internalUUID#1140432, id#1140433, displayId#1140434, name#1140435, baseUnitOfMeasure#1140436, unitOfMeasures#1140437, unitOfMeasureConversions#1140438, productionAspect#1140439, salesAspect#1140440, procurementAspect#1140441, productGroup#1140442, filteredUnitOfMeasureConversions#1140443, quantityNumerator#1140444, quantityDenominator#1140445]
(1773) Project
Arguments: [product#1140404, plant#1140405, orderDateTime#1140406, productPlant#1140416, timezonecode#1140430, systemId#1140431, internalUUID#1140432, id#1140433, displayId#1140434, name#1140435, baseUnitOfMeasure#1140436, unitOfMeasures#1140437, unitOfMeasureConversions#1140438, productionAspect#1140439, salesAspect#1140440, procurementAspect#1140441, productGroup#1140442, filteredUnitOfMeasureConversions#1140443, quantityNumerator#1140444, quantityDenominator#1140445, (cast(quantityNumerator#1140444 as double) / cast(quantityDenominator#1140445 as double)) AS outboundUnit#1140446]
(1774) Project
Arguments: [product#1140404, plant#1140405, orderDateTime#1140406, productPlant#1140416, timezonecode#1140430, systemId#1140431, internalUUID#1140432, id#1140433, displayId#1140434, name#1140435, baseUnitOfMeasure#1140436, unitOfMeasures#1140437, unitOfMeasureConversions#1140438, productionAspect#1140439, salesAspect#1140440, procurementAspect#1140441, productGroup#1140442, filteredUnitOfMeasureConversions#1140443, quantityNumerator#1140444, quantityDenominator#1140445, CASE WHEN (isnull(outboundUnit#1140446) OR (outboundUnit#1140446 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1140446 END AS outboundUnit#1140447]
(1775) Project
Arguments: [product#1140404, plant#1140405, orderDateTime#1140406, productPlant#1140416, timezonecode#1140430, outboundUnit#1140447]
(1776) LogicalRelation
Arguments: parquet, [systemId#1140448, internalUUID#1140449, product#1140450, plant#1140451, calculationDateTime#1140452, stockQuantities#1140453], false
(1777) Repartition
Arguments: 37, true
(1778) LogicalRelation
Arguments: parquet, [marketUnit#1140454, description#1140455, articleHierarchy#1140456, defaultCurrency#1140457, responsibilities#1140458, replenishmentTypes#1140459, distributionCenters#1140460, assignedArticleHierarchyNodes#1140461, minOrderQtySetting#1140462, listingCheck#1140463, odsSelection#1140464, demandProfiles#1140465, constraintProfiles#1140466, optimizationProfiles#1140467, orderGroupSplitProfiles#1140468, supplierMinimumProfiles#1140469, multipleRestrictionProfiles#1140470, preferredUomSource#1140471, handlingOfUnfulfilledDemands#1140472, negligibleQuantitiesThreshold#1140473, eventtype#1140474, minOrderQtySettingInternal#1140475], false
(1779) Repartition
Arguments: 37, true
(1780) Filter
Arguments: (marketUnit#1140454 <=> Alert_Test1)
(1781) Project
Arguments: [marketUnit#1140454, description#1140455, articleHierarchy#1140456, defaultCurrency#1140457, responsibilities#1140458, replenishmentTypes#1140459, distributionCenters#1140460, assignedArticleHierarchyNodes#1140461, minOrderQtySetting#1140462, listingCheck#1140463, odsSelection#1140464, demandProfiles#1140465, constraintProfiles#1140466, optimizationProfiles#1140467, orderGroupSplitProfiles#1140468, supplierMinimumProfiles#1140469, multipleRestrictionProfiles#1140470, preferredUomSource#1140471, handlingOfUnfulfilledDemands#1140472, negligibleQuantitiesThreshold#1140473, eventtype#1140474, minOrderQtySettingInternal#1140475]
(1782) Project
Arguments: [distributionCenters#1140460]
(1783) Generate
Arguments: explode(distributionCenters#1140460), false, [distributionCenters#1140476]
(1784) Project
Arguments: [distributionCenters#1140476]
(1785) Generate
Arguments: explode(distributionCenters#1140476.storageLocations), false, [storageLocations#1140477]
(1786) Project
Arguments: [distributionCenters#1140476.id AS plantId#1140478, distributionCenters#1140476.internalRefUUID AS plantUuid#1140479, storageLocations#1140477]
(1787) Project
Arguments: [plantId#1140478, plantUuid#1140479, storageLocations#1140477.id AS storageLocId#1140480, storageLocations#1140477.internalRefUUID AS storageLocUuid#1140481]
(1788) LogicalRelation
Arguments: parquet, [product#1140482, plant#1140483, orderDateTime#1140484, planningStartDateTime#1140485], false
(1789) RepartitionByExpression
Arguments: [product#1140482, plant#1140483], 37
(1790) Project
Arguments: [product#1140482, plant#1140483, orderDateTime#1140484]
(1791) LogicalRelation
Arguments: parquet, [systemId#1140486, internalUUID#1140487, plant#1140488, product#1140489, blockedForReplenishmentStartingFrom#1140490, productionAspect#1140491, salesPlant#1140492, listing#1140493], false
(1792) Repartition
Arguments: 37, true
(1793) Project
Arguments: [systemId#1140486, internalUUID#1140487, plant#1140488, product#1140489, blockedForReplenishmentStartingFrom#1140490, productionAspect#1140491, salesPlant#1140492, listing#1140493, struct(systemId, systemId#1140486, internalUUID, internalUUID#1140487, plant, plant#1140488, product, product#1140489, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1140490, productionAspect, productionAspect#1140491, salesPlant, salesPlant#1140492, listing, listing#1140493) AS productPlant#1140494]
(1794) Project
Arguments: [productPlant#1140494]
(1795) Join
Arguments: LeftOuter, ((product#1140482 <=> productPlant#1140494.product.internalRefUUID) AND (plant#1140483 <=> productPlant#1140494.plant.internalRefUUID))
(1796) Project
Arguments: [product#1140482, plant#1140483, orderDateTime#1140484, productPlant#1140494]
(1797) SubqueryAlias
Arguments: wl
(1798) LogicalRelation
Arguments: parquet, [systemId#1140495, internalUUID#1140496, id#1140497, displayId#1140498, name#1140499, category#1140500, companyCode#1140501, address#1140502, mainDistributionChain#1140503, mainPurchasingOrganization#1140504, validPurchasingOrganizations#1140505, productGroup#1140506], false
(1799) Repartition
Arguments: 37, true
(1800) Project
Arguments: [internalUUID#1140496, address#1140502.timeZone.code AS timezonecode#1140507]
(1801) Join
Arguments: LeftOuter, (plant#1140483 <=> internalUUID#1140496)
(1802) Project
Arguments: [product#1140482, plant#1140483, orderDateTime#1140484, productPlant#1140494, internalUUID#1140496, CASE WHEN isnotnull(timezonecode#1140507) THEN timezonecode#1140507 ELSE UTC END AS timezonecode#1140508]
(1803) Project
Arguments: [product#1140482, plant#1140483, orderDateTime#1140484, productPlant#1140494, timezonecode#1140508]
(1804) LogicalRelation
Arguments: parquet, [systemId#1140509, internalUUID#1140510, id#1140511, displayId#1140512, name#1140513, baseUnitOfMeasure#1140514, unitOfMeasures#1140515, unitOfMeasureConversions#1140516, productionAspect#1140517, salesAspect#1140518, procurementAspect#1140519, productGroup#1140520], false
(1805) Repartition
Arguments: 37, true
(1806) Join
Arguments: LeftOuter, (product#1140482 = internalUUID#1140510)
(1807) Project
Arguments: [product#1140482, plant#1140483, orderDateTime#1140484, productPlant#1140494, timezonecode#1140508, systemId#1140509, internalUUID#1140510, id#1140511, displayId#1140512, name#1140513, baseUnitOfMeasure#1140514, unitOfMeasures#1140515, unitOfMeasureConversions#1140516, productionAspect#1140517, salesAspect#1140518, procurementAspect#1140519, productGroup#1140520, filter(unitOfMeasureConversions#1140516, lambdafunction((((lambda u#1135738.measurementUnit1.code = productPlant#1140494.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1135738.measurementUnit1.internalRefUUID = productPlant#1140494.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1140514.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1140514.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1140521]
(1808) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1140521.quantityNumerator), true, [quantityNumerator#1140522]
(1809) Project
Arguments: [product#1140482, plant#1140483, orderDateTime#1140484, productPlant#1140494, timezonecode#1140508, systemId#1140509, internalUUID#1140510, id#1140511, displayId#1140512, name#1140513, baseUnitOfMeasure#1140514, unitOfMeasures#1140515, unitOfMeasureConversions#1140516, productionAspect#1140517, salesAspect#1140518, procurementAspect#1140519, productGroup#1140520, filteredUnitOfMeasureConversions#1140521, quantityNumerator#1140522]
(1810) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1140521.quantityDenominator), true, [quantityDenominator#1140523]
(1811) Project
Arguments: [product#1140482, plant#1140483, orderDateTime#1140484, productPlant#1140494, timezonecode#1140508, systemId#1140509, internalUUID#1140510, id#1140511, displayId#1140512, name#1140513, baseUnitOfMeasure#1140514, unitOfMeasures#1140515, unitOfMeasureConversions#1140516, productionAspect#1140517, salesAspect#1140518, procurementAspect#1140519, productGroup#1140520, filteredUnitOfMeasureConversions#1140521, quantityNumerator#1140522, quantityDenominator#1140523]
(1812) Project
Arguments: [product#1140482, plant#1140483, orderDateTime#1140484, productPlant#1140494, timezonecode#1140508, systemId#1140509, internalUUID#1140510, id#1140511, displayId#1140512, name#1140513, baseUnitOfMeasure#1140514, unitOfMeasures#1140515, unitOfMeasureConversions#1140516, productionAspect#1140517, salesAspect#1140518, procurementAspect#1140519, productGroup#1140520, filteredUnitOfMeasureConversions#1140521, quantityNumerator#1140522, quantityDenominator#1140523, (cast(quantityNumerator#1140522 as double) / cast(quantityDenominator#1140523 as double)) AS outboundUnit#1140524]
(1813) Project
Arguments: [product#1140482, plant#1140483, orderDateTime#1140484, productPlant#1140494, timezonecode#1140508, systemId#1140509, internalUUID#1140510, id#1140511, displayId#1140512, name#1140513, baseUnitOfMeasure#1140514, unitOfMeasures#1140515, unitOfMeasureConversions#1140516, productionAspect#1140517, salesAspect#1140518, procurementAspect#1140519, productGroup#1140520, filteredUnitOfMeasureConversions#1140521, quantityNumerator#1140522, quantityDenominator#1140523, CASE WHEN (isnull(outboundUnit#1140524) OR (outboundUnit#1140524 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1140524 END AS outboundUnit#1140525]
(1814) Project
Arguments: [product#1140482, plant#1140483, orderDateTime#1140484, productPlant#1140494, timezonecode#1140508, outboundUnit#1140525]
(1815) Project
Arguments: [plant#1140483]
(1816) Deduplicate
Arguments: [plant#1140483]
(1817) Join
Arguments: Inner, (plantUuid#1140479 = plant#1140483)
(1818) Project
Arguments: [plantId#1140478, plantUuid#1140479, storageLocId#1140480, storageLocUuid#1140481]
(1819) Join
Arguments: Inner, (plant#1140451.internalRefUUID <=> plantUuid#1140479)
(1820) Generate
Arguments: explode(filter(stockQuantities#1140453, lambdafunction(((lambda x#1135796.storageLocation.internalRefUuid = storageLocUuid#1140481) AND (lambda x#1135796.storageLocation.Id = storageLocId#1140480)), lambda x#1135796, false))), false, [stockQuantity#1140526]
(1821) Project
Arguments: [systemId#1140448, internalUUID#1140449, product#1140450, plant#1140451, calculationDateTime#1140452, stockQuantities#1140453, plantId#1140478, plantUuid#1140479, storageLocId#1140480, storageLocUuid#1140481, stockQuantity#1140526]
(1822) Aggregate
Arguments: [plantUuid#1140479, internalUUID#1140449, plant#1140451, product#1140450, systemId#1140448], [plantUuid#1140479, internalUUID#1140449, plant#1140451, product#1140450, systemId#1140448, first(calculationDateTime#1140452, false) AS calculationDateTime#1140527, collect_list(stockQuantity#1140526, 0, 0) AS stockQuantities#1140528]
(1823) Project
Arguments: [systemId#1140448, internalUUID#1140449, product#1140450, plant#1140451, calculationDateTime#1140527, stockQuantities#1140528]
(1824) Generate
Arguments: explode(stockQuantities#1140528), false, [stockQuantity#1140529]
(1825) Project
Arguments: [systemId#1140448, internalUUID#1140449, product#1140450, plant#1140451, calculationDateTime#1140527, stockQuantities#1140528, stockQuantity#1140529]
(1826) Project
Arguments: [plant#1140451.id AS plant#1140530, plant#1140451.internalRefUUID AS plantUuid#1140531, product#1140450.id AS product#1140532, product#1140450.internalRefUUID AS productUuid#1140533, calculationDateTime#1140527, stockQuantity#1140529.storagelocation.id AS storageLocId#1140534, stockQuantity#1140529.storagelocation.internalRefUUID AS storageLocUuid#1140535, stockQuantity#1140529.quantity.measure AS quantity#1140536, stockQuantity#1140529.specialStockIndicator.code AS specialStockIndicator#1140537, stockQuantity#1140529.stockType.code AS stockType#1140538]
(1827) Filter
Arguments: ((specialStockIndicator#1140537 = ) AND (stockType#1140538 = 01))
(1828) LogicalRelation
Arguments: parquet, [product#1140539, plant#1140540, orderDateTime#1140541, planningStartDateTime#1140542], false
(1829) RepartitionByExpression
Arguments: [product#1140539, plant#1140540], 37
(1830) Project
Arguments: [product#1140539, plant#1140540, orderDateTime#1140541]
(1831) LogicalRelation
Arguments: parquet, [systemId#1140543, internalUUID#1140544, plant#1140545, product#1140546, blockedForReplenishmentStartingFrom#1140547, productionAspect#1140548, salesPlant#1140549, listing#1140550], false
(1832) Repartition
Arguments: 37, true
(1833) Project
Arguments: [systemId#1140543, internalUUID#1140544, plant#1140545, product#1140546, blockedForReplenishmentStartingFrom#1140547, productionAspect#1140548, salesPlant#1140549, listing#1140550, struct(systemId, systemId#1140543, internalUUID, internalUUID#1140544, plant, plant#1140545, product, product#1140546, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1140547, productionAspect, productionAspect#1140548, salesPlant, salesPlant#1140549, listing, listing#1140550) AS productPlant#1140551]
(1834) Project
Arguments: [productPlant#1140551]
(1835) Join
Arguments: LeftOuter, ((product#1140539 <=> productPlant#1140551.product.internalRefUUID) AND (plant#1140540 <=> productPlant#1140551.plant.internalRefUUID))
(1836) Project
Arguments: [product#1140539, plant#1140540, orderDateTime#1140541, productPlant#1140551]
(1837) SubqueryAlias
Arguments: wl
(1838) LogicalRelation
Arguments: parquet, [systemId#1140552, internalUUID#1140553, id#1140554, displayId#1140555, name#1140556, category#1140557, companyCode#1140558, address#1140559, mainDistributionChain#1140560, mainPurchasingOrganization#1140561, validPurchasingOrganizations#1140562, productGroup#1140563], false
(1839) Repartition
Arguments: 37, true
(1840) Project
Arguments: [internalUUID#1140553, address#1140559.timeZone.code AS timezonecode#1140564]
(1841) Join
Arguments: LeftOuter, (plant#1140540 <=> internalUUID#1140553)
(1842) Project
Arguments: [product#1140539, plant#1140540, orderDateTime#1140541, productPlant#1140551, internalUUID#1140553, CASE WHEN isnotnull(timezonecode#1140564) THEN timezonecode#1140564 ELSE UTC END AS timezonecode#1140565]
(1843) Project
Arguments: [product#1140539, plant#1140540, orderDateTime#1140541, productPlant#1140551, timezonecode#1140565]
(1844) LogicalRelation
Arguments: parquet, [systemId#1140566, internalUUID#1140567, id#1140568, displayId#1140569, name#1140570, baseUnitOfMeasure#1140571, unitOfMeasures#1140572, unitOfMeasureConversions#1140573, productionAspect#1140574, salesAspect#1140575, procurementAspect#1140576, productGroup#1140577], false
(1845) Repartition
Arguments: 37, true
(1846) Join
Arguments: LeftOuter, (product#1140539 = internalUUID#1140567)
(1847) Project
Arguments: [product#1140539, plant#1140540, orderDateTime#1140541, productPlant#1140551, timezonecode#1140565, systemId#1140566, internalUUID#1140567, id#1140568, displayId#1140569, name#1140570, baseUnitOfMeasure#1140571, unitOfMeasures#1140572, unitOfMeasureConversions#1140573, productionAspect#1140574, salesAspect#1140575, procurementAspect#1140576, productGroup#1140577, filter(unitOfMeasureConversions#1140573, lambdafunction((((lambda u#1135738.measurementUnit1.code = productPlant#1140551.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1135738.measurementUnit1.internalRefUUID = productPlant#1140551.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1140571.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1140571.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1140578]
(1848) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1140578.quantityNumerator), true, [quantityNumerator#1140579]
(1849) Project
Arguments: [product#1140539, plant#1140540, orderDateTime#1140541, productPlant#1140551, timezonecode#1140565, systemId#1140566, internalUUID#1140567, id#1140568, displayId#1140569, name#1140570, baseUnitOfMeasure#1140571, unitOfMeasures#1140572, unitOfMeasureConversions#1140573, productionAspect#1140574, salesAspect#1140575, procurementAspect#1140576, productGroup#1140577, filteredUnitOfMeasureConversions#1140578, quantityNumerator#1140579]
(1850) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1140578.quantityDenominator), true, [quantityDenominator#1140580]
(1851) Project
Arguments: [product#1140539, plant#1140540, orderDateTime#1140541, productPlant#1140551, timezonecode#1140565, systemId#1140566, internalUUID#1140567, id#1140568, displayId#1140569, name#1140570, baseUnitOfMeasure#1140571, unitOfMeasures#1140572, unitOfMeasureConversions#1140573, productionAspect#1140574, salesAspect#1140575, procurementAspect#1140576, productGroup#1140577, filteredUnitOfMeasureConversions#1140578, quantityNumerator#1140579, quantityDenominator#1140580]
(1852) Project
Arguments: [product#1140539, plant#1140540, orderDateTime#1140541, productPlant#1140551, timezonecode#1140565, systemId#1140566, internalUUID#1140567, id#1140568, displayId#1140569, name#1140570, baseUnitOfMeasure#1140571, unitOfMeasures#1140572, unitOfMeasureConversions#1140573, productionAspect#1140574, salesAspect#1140575, procurementAspect#1140576, productGroup#1140577, filteredUnitOfMeasureConversions#1140578, quantityNumerator#1140579, quantityDenominator#1140580, (cast(quantityNumerator#1140579 as double) / cast(quantityDenominator#1140580 as double)) AS outboundUnit#1140581]
(1853) Project
Arguments: [product#1140539, plant#1140540, orderDateTime#1140541, productPlant#1140551, timezonecode#1140565, systemId#1140566, internalUUID#1140567, id#1140568, displayId#1140569, name#1140570, baseUnitOfMeasure#1140571, unitOfMeasures#1140572, unitOfMeasureConversions#1140573, productionAspect#1140574, salesAspect#1140575, procurementAspect#1140576, productGroup#1140577, filteredUnitOfMeasureConversions#1140578, quantityNumerator#1140579, quantityDenominator#1140580, CASE WHEN (isnull(outboundUnit#1140581) OR (outboundUnit#1140581 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1140581 END AS outboundUnit#1140582]
(1854) Project
Arguments: [product#1140539, plant#1140540, orderDateTime#1140541, productPlant#1140551, timezonecode#1140565, outboundUnit#1140582]
(1855) Join
Arguments: Inner, ((plantUuid#1140531 = plant#1140540) AND (productUuid#1140533 = product#1140539))
(1856) Filter
Arguments: (calculationDateTime#1140527 <= orderDateTime#1140541)
(1857) Project
Arguments: [plantUuid#1140531 AS plant#1140583, productUuid#1140533 AS product#1140584, storageLocId#1140534, calculationDateTime#1140527, quantity#1140536]
(1858) LogicalRelation
Arguments: parquet, [systemId#1140585, internalUUID#1140586, product#1140587, plant#1140588, calculationDateTime#1140589, stockQuantities#1140590], false
(1859) Repartition
Arguments: 37, true
(1860) LogicalRelation
Arguments: parquet, [marketUnit#1140591, description#1140592, articleHierarchy#1140593, defaultCurrency#1140594, responsibilities#1140595, replenishmentTypes#1140596, distributionCenters#1140597, assignedArticleHierarchyNodes#1140598, minOrderQtySetting#1140599, listingCheck#1140600, odsSelection#1140601, demandProfiles#1140602, constraintProfiles#1140603, optimizationProfiles#1140604, orderGroupSplitProfiles#1140605, supplierMinimumProfiles#1140606, multipleRestrictionProfiles#1140607, preferredUomSource#1140608, handlingOfUnfulfilledDemands#1140609, negligibleQuantitiesThreshold#1140610, eventtype#1140611, minOrderQtySettingInternal#1140612], false
(1861) Repartition
Arguments: 37, true
(1862) Filter
Arguments: (marketUnit#1140591 <=> Alert_Test1)
(1863) Project
Arguments: [marketUnit#1140591, description#1140592, articleHierarchy#1140593, defaultCurrency#1140594, responsibilities#1140595, replenishmentTypes#1140596, distributionCenters#1140597, assignedArticleHierarchyNodes#1140598, minOrderQtySetting#1140599, listingCheck#1140600, odsSelection#1140601, demandProfiles#1140602, constraintProfiles#1140603, optimizationProfiles#1140604, orderGroupSplitProfiles#1140605, supplierMinimumProfiles#1140606, multipleRestrictionProfiles#1140607, preferredUomSource#1140608, handlingOfUnfulfilledDemands#1140609, negligibleQuantitiesThreshold#1140610, eventtype#1140611, minOrderQtySettingInternal#1140612]
(1864) Project
Arguments: [distributionCenters#1140597]
(1865) Generate
Arguments: explode(distributionCenters#1140597), false, [distributionCenters#1140613]
(1866) Project
Arguments: [distributionCenters#1140613]
(1867) Generate
Arguments: explode(distributionCenters#1140613.storageLocations), false, [storageLocations#1140614]
(1868) Project
Arguments: [distributionCenters#1140613.id AS plantId#1140615, distributionCenters#1140613.internalRefUUID AS plantUuid#1140616, storageLocations#1140614]
(1869) Project
Arguments: [plantId#1140615, plantUuid#1140616, storageLocations#1140614.id AS storageLocId#1140617, storageLocations#1140614.internalRefUUID AS storageLocUuid#1140618]
(1870) LogicalRelation
Arguments: parquet, [product#1140619, plant#1140620, orderDateTime#1140621, planningStartDateTime#1140622], false
(1871) RepartitionByExpression
Arguments: [product#1140619, plant#1140620], 37
(1872) Project
Arguments: [product#1140619, plant#1140620, orderDateTime#1140621]
(1873) LogicalRelation
Arguments: parquet, [systemId#1140623, internalUUID#1140624, plant#1140625, product#1140626, blockedForReplenishmentStartingFrom#1140627, productionAspect#1140628, salesPlant#1140629, listing#1140630], false
(1874) Repartition
Arguments: 37, true
(1875) Project
Arguments: [systemId#1140623, internalUUID#1140624, plant#1140625, product#1140626, blockedForReplenishmentStartingFrom#1140627, productionAspect#1140628, salesPlant#1140629, listing#1140630, struct(systemId, systemId#1140623, internalUUID, internalUUID#1140624, plant, plant#1140625, product, product#1140626, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1140627, productionAspect, productionAspect#1140628, salesPlant, salesPlant#1140629, listing, listing#1140630) AS productPlant#1140631]
(1876) Project
Arguments: [productPlant#1140631]
(1877) Join
Arguments: LeftOuter, ((product#1140619 <=> productPlant#1140631.product.internalRefUUID) AND (plant#1140620 <=> productPlant#1140631.plant.internalRefUUID))
(1878) Project
Arguments: [product#1140619, plant#1140620, orderDateTime#1140621, productPlant#1140631]
(1879) SubqueryAlias
Arguments: wl
(1880) LogicalRelation
Arguments: parquet, [systemId#1140632, internalUUID#1140633, id#1140634, displayId#1140635, name#1140636, category#1140637, companyCode#1140638, address#1140639, mainDistributionChain#1140640, mainPurchasingOrganization#1140641, validPurchasingOrganizations#1140642, productGroup#1140643], false
(1881) Repartition
Arguments: 37, true
(1882) Project
Arguments: [internalUUID#1140633, address#1140639.timeZone.code AS timezonecode#1140644]
(1883) Join
Arguments: LeftOuter, (plant#1140620 <=> internalUUID#1140633)
(1884) Project
Arguments: [product#1140619, plant#1140620, orderDateTime#1140621, productPlant#1140631, internalUUID#1140633, CASE WHEN isnotnull(timezonecode#1140644) THEN timezonecode#1140644 ELSE UTC END AS timezonecode#1140645]
(1885) Project
Arguments: [product#1140619, plant#1140620, orderDateTime#1140621, productPlant#1140631, timezonecode#1140645]
(1886) LogicalRelation
Arguments: parquet, [systemId#1140646, internalUUID#1140647, id#1140648, displayId#1140649, name#1140650, baseUnitOfMeasure#1140651, unitOfMeasures#1140652, unitOfMeasureConversions#1140653, productionAspect#1140654, salesAspect#1140655, procurementAspect#1140656, productGroup#1140657], false
(1887) Repartition
Arguments: 37, true
(1888) Join
Arguments: LeftOuter, (product#1140619 = internalUUID#1140647)
(1889) Project
Arguments: [product#1140619, plant#1140620, orderDateTime#1140621, productPlant#1140631, timezonecode#1140645, systemId#1140646, internalUUID#1140647, id#1140648, displayId#1140649, name#1140650, baseUnitOfMeasure#1140651, unitOfMeasures#1140652, unitOfMeasureConversions#1140653, productionAspect#1140654, salesAspect#1140655, procurementAspect#1140656, productGroup#1140657, filter(unitOfMeasureConversions#1140653, lambdafunction((((lambda u#1135738.measurementUnit1.code = productPlant#1140631.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1135738.measurementUnit1.internalRefUUID = productPlant#1140631.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1140651.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1140651.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1140658]
(1890) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1140658.quantityNumerator), true, [quantityNumerator#1140659]
(1891) Project
Arguments: [product#1140619, plant#1140620, orderDateTime#1140621, productPlant#1140631, timezonecode#1140645, systemId#1140646, internalUUID#1140647, id#1140648, displayId#1140649, name#1140650, baseUnitOfMeasure#1140651, unitOfMeasures#1140652, unitOfMeasureConversions#1140653, productionAspect#1140654, salesAspect#1140655, procurementAspect#1140656, productGroup#1140657, filteredUnitOfMeasureConversions#1140658, quantityNumerator#1140659]
(1892) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1140658.quantityDenominator), true, [quantityDenominator#1140660]
(1893) Project
Arguments: [product#1140619, plant#1140620, orderDateTime#1140621, productPlant#1140631, timezonecode#1140645, systemId#1140646, internalUUID#1140647, id#1140648, displayId#1140649, name#1140650, baseUnitOfMeasure#1140651, unitOfMeasures#1140652, unitOfMeasureConversions#1140653, productionAspect#1140654, salesAspect#1140655, procurementAspect#1140656, productGroup#1140657, filteredUnitOfMeasureConversions#1140658, quantityNumerator#1140659, quantityDenominator#1140660]
(1894) Project
Arguments: [product#1140619, plant#1140620, orderDateTime#1140621, productPlant#1140631, timezonecode#1140645, systemId#1140646, internalUUID#1140647, id#1140648, displayId#1140649, name#1140650, baseUnitOfMeasure#1140651, unitOfMeasures#1140652, unitOfMeasureConversions#1140653, productionAspect#1140654, salesAspect#1140655, procurementAspect#1140656, productGroup#1140657, filteredUnitOfMeasureConversions#1140658, quantityNumerator#1140659, quantityDenominator#1140660, (cast(quantityNumerator#1140659 as double) / cast(quantityDenominator#1140660 as double)) AS outboundUnit#1140661]
(1895) Project
Arguments: [product#1140619, plant#1140620, orderDateTime#1140621, productPlant#1140631, timezonecode#1140645, systemId#1140646, internalUUID#1140647, id#1140648, displayId#1140649, name#1140650, baseUnitOfMeasure#1140651, unitOfMeasures#1140652, unitOfMeasureConversions#1140653, productionAspect#1140654, salesAspect#1140655, procurementAspect#1140656, productGroup#1140657, filteredUnitOfMeasureConversions#1140658, quantityNumerator#1140659, quantityDenominator#1140660, CASE WHEN (isnull(outboundUnit#1140661) OR (outboundUnit#1140661 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1140661 END AS outboundUnit#1140662]
(1896) Project
Arguments: [product#1140619, plant#1140620, orderDateTime#1140621, productPlant#1140631, timezonecode#1140645, outboundUnit#1140662]
(1897) Project
Arguments: [plant#1140620]
(1898) Deduplicate
Arguments: [plant#1140620]
(1899) Join
Arguments: Inner, (plantUuid#1140616 = plant#1140620)
(1900) Project
Arguments: [plantId#1140615, plantUuid#1140616, storageLocId#1140617, storageLocUuid#1140618]
(1901) Join
Arguments: Inner, (plant#1140588.internalRefUUID <=> plantUuid#1140616)
(1902) Generate
Arguments: explode(filter(stockQuantities#1140590, lambdafunction(((lambda x#1135796.storageLocation.internalRefUuid = storageLocUuid#1140618) AND (lambda x#1135796.storageLocation.Id = storageLocId#1140617)), lambda x#1135796, false))), false, [stockQuantity#1140663]
(1903) Project
Arguments: [systemId#1140585, internalUUID#1140586, product#1140587, plant#1140588, calculationDateTime#1140589, stockQuantities#1140590, plantId#1140615, plantUuid#1140616, storageLocId#1140617, storageLocUuid#1140618, stockQuantity#1140663]
(1904) Aggregate
Arguments: [plantUuid#1140616, internalUUID#1140586, plant#1140588, product#1140587, systemId#1140585], [plantUuid#1140616, internalUUID#1140586, plant#1140588, product#1140587, systemId#1140585, first(calculationDateTime#1140589, false) AS calculationDateTime#1140664, collect_list(stockQuantity#1140663, 0, 0) AS stockQuantities#1140665]
(1905) Project
Arguments: [systemId#1140585, internalUUID#1140586, product#1140587, plant#1140588, calculationDateTime#1140664, stockQuantities#1140665]
(1906) Generate
Arguments: explode(stockQuantities#1140665), false, [stockQuantity#1140666]
(1907) Project
Arguments: [systemId#1140585, internalUUID#1140586, product#1140587, plant#1140588, calculationDateTime#1140664, stockQuantities#1140665, stockQuantity#1140666]
(1908) Project
Arguments: [plant#1140588.id AS plant#1140667, plant#1140588.internalRefUUID AS plantUuid#1140668, product#1140587.id AS product#1140669, product#1140587.internalRefUUID AS productUuid#1140670, calculationDateTime#1140664, stockQuantity#1140666.storagelocation.id AS storageLocId#1140671, stockQuantity#1140666.storagelocation.internalRefUUID AS storageLocUuid#1140672, stockQuantity#1140666.quantity.measure AS quantity#1140673, stockQuantity#1140666.specialStockIndicator.code AS specialStockIndicator#1140674, stockQuantity#1140666.stockType.code AS stockType#1140675]
(1909) Filter
Arguments: ((specialStockIndicator#1140674 = ) AND (stockType#1140675 = 01))
(1910) LogicalRelation
Arguments: parquet, [product#1140676, plant#1140677, orderDateTime#1140678, planningStartDateTime#1140679], false
(1911) RepartitionByExpression
Arguments: [product#1140676, plant#1140677], 37
(1912) Project
Arguments: [product#1140676, plant#1140677, orderDateTime#1140678]
(1913) LogicalRelation
Arguments: parquet, [systemId#1140680, internalUUID#1140681, plant#1140682, product#1140683, blockedForReplenishmentStartingFrom#1140684, productionAspect#1140685, salesPlant#1140686, listing#1140687], false
(1914) Repartition
Arguments: 37, true
(1915) Project
Arguments: [systemId#1140680, internalUUID#1140681, plant#1140682, product#1140683, blockedForReplenishmentStartingFrom#1140684, productionAspect#1140685, salesPlant#1140686, listing#1140687, struct(systemId, systemId#1140680, internalUUID, internalUUID#1140681, plant, plant#1140682, product, product#1140683, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1140684, productionAspect, productionAspect#1140685, salesPlant, salesPlant#1140686, listing, listing#1140687) AS productPlant#1140688]
(1916) Project
Arguments: [productPlant#1140688]
(1917) Join
Arguments: LeftOuter, ((product#1140676 <=> productPlant#1140688.product.internalRefUUID) AND (plant#1140677 <=> productPlant#1140688.plant.internalRefUUID))
(1918) Project
Arguments: [product#1140676, plant#1140677, orderDateTime#1140678, productPlant#1140688]
(1919) SubqueryAlias
Arguments: wl
(1920) LogicalRelation
Arguments: parquet, [systemId#1140689, internalUUID#1140690, id#1140691, displayId#1140692, name#1140693, category#1140694, companyCode#1140695, address#1140696, mainDistributionChain#1140697, mainPurchasingOrganization#1140698, validPurchasingOrganizations#1140699, productGroup#1140700], false
(1921) Repartition
Arguments: 37, true
(1922) Project
Arguments: [internalUUID#1140690, address#1140696.timeZone.code AS timezonecode#1140701]
(1923) Join
Arguments: LeftOuter, (plant#1140677 <=> internalUUID#1140690)
(1924) Project
Arguments: [product#1140676, plant#1140677, orderDateTime#1140678, productPlant#1140688, internalUUID#1140690, CASE WHEN isnotnull(timezonecode#1140701) THEN timezonecode#1140701 ELSE UTC END AS timezonecode#1140702]
(1925) Project
Arguments: [product#1140676, plant#1140677, orderDateTime#1140678, productPlant#1140688, timezonecode#1140702]
(1926) LogicalRelation
Arguments: parquet, [systemId#1140703, internalUUID#1140704, id#1140705, displayId#1140706, name#1140707, baseUnitOfMeasure#1140708, unitOfMeasures#1140709, unitOfMeasureConversions#1140710, productionAspect#1140711, salesAspect#1140712, procurementAspect#1140713, productGroup#1140714], false
(1927) Repartition
Arguments: 37, true
(1928) Join
Arguments: LeftOuter, (product#1140676 = internalUUID#1140704)
(1929) Project
Arguments: [product#1140676, plant#1140677, orderDateTime#1140678, productPlant#1140688, timezonecode#1140702, systemId#1140703, internalUUID#1140704, id#1140705, displayId#1140706, name#1140707, baseUnitOfMeasure#1140708, unitOfMeasures#1140709, unitOfMeasureConversions#1140710, productionAspect#1140711, salesAspect#1140712, procurementAspect#1140713, productGroup#1140714, filter(unitOfMeasureConversions#1140710, lambdafunction((((lambda u#1135738.measurementUnit1.code = productPlant#1140688.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1135738.measurementUnit1.internalRefUUID = productPlant#1140688.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1140708.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1140708.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1140715]
(1930) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1140715.quantityNumerator), true, [quantityNumerator#1140716]
(1931) Project
Arguments: [product#1140676, plant#1140677, orderDateTime#1140678, productPlant#1140688, timezonecode#1140702, systemId#1140703, internalUUID#1140704, id#1140705, displayId#1140706, name#1140707, baseUnitOfMeasure#1140708, unitOfMeasures#1140709, unitOfMeasureConversions#1140710, productionAspect#1140711, salesAspect#1140712, procurementAspect#1140713, productGroup#1140714, filteredUnitOfMeasureConversions#1140715, quantityNumerator#1140716]
(1932) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1140715.quantityDenominator), true, [quantityDenominator#1140717]
(1933) Project
Arguments: [product#1140676, plant#1140677, orderDateTime#1140678, productPlant#1140688, timezonecode#1140702, systemId#1140703, internalUUID#1140704, id#1140705, displayId#1140706, name#1140707, baseUnitOfMeasure#1140708, unitOfMeasures#1140709, unitOfMeasureConversions#1140710, productionAspect#1140711, salesAspect#1140712, procurementAspect#1140713, productGroup#1140714, filteredUnitOfMeasureConversions#1140715, quantityNumerator#1140716, quantityDenominator#1140717]
(1934) Project
Arguments: [product#1140676, plant#1140677, orderDateTime#1140678, productPlant#1140688, timezonecode#1140702, systemId#1140703, internalUUID#1140704, id#1140705, displayId#1140706, name#1140707, baseUnitOfMeasure#1140708, unitOfMeasures#1140709, unitOfMeasureConversions#1140710, productionAspect#1140711, salesAspect#1140712, procurementAspect#1140713, productGroup#1140714, filteredUnitOfMeasureConversions#1140715, quantityNumerator#1140716, quantityDenominator#1140717, (cast(quantityNumerator#1140716 as double) / cast(quantityDenominator#1140717 as double)) AS outboundUnit#1140718]
(1935) Project
Arguments: [product#1140676, plant#1140677, orderDateTime#1140678, productPlant#1140688, timezonecode#1140702, systemId#1140703, internalUUID#1140704, id#1140705, displayId#1140706, name#1140707, baseUnitOfMeasure#1140708, unitOfMeasures#1140709, unitOfMeasureConversions#1140710, productionAspect#1140711, salesAspect#1140712, procurementAspect#1140713, productGroup#1140714, filteredUnitOfMeasureConversions#1140715, quantityNumerator#1140716, quantityDenominator#1140717, CASE WHEN (isnull(outboundUnit#1140718) OR (outboundUnit#1140718 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1140718 END AS outboundUnit#1140719]
(1936) Project
Arguments: [product#1140676, plant#1140677, orderDateTime#1140678, productPlant#1140688, timezonecode#1140702, outboundUnit#1140719]
(1937) Join
Arguments: Inner, ((plantUuid#1140668 = plant#1140677) AND (productUuid#1140670 = product#1140676))
(1938) Filter
Arguments: (calculationDateTime#1140664 <= orderDateTime#1140678)
(1939) Project
Arguments: [plantUuid#1140668 AS plant#1140720, productUuid#1140670 AS product#1140721, storageLocId#1140671, calculationDateTime#1140664, quantity#1140673]
(1940) Aggregate
Arguments: [plant#1140720, product#1140721, storageLocId#1140671], [plant#1140720, product#1140721, storageLocId#1140671, max(calculationDateTime#1140664) AS max_calc_datetime#1140722]
(1941) Join
Arguments: Inner, ((((plant#1140583 <=> plant#1140720) AND (product#1140584 <=> product#1140721)) AND (storageLocId#1140534 <=> storageLocId#1140671)) AND (calculationDateTime#1140527 <=> max_calc_datetime#1140722))
(1942) Project
Arguments: [plant#1140583, product#1140584, storageLocId#1140534, calculationDateTime#1140527, quantity#1140536]
(1943) Aggregate
Arguments: [product#1140584, plant#1140583], [product#1140584, plant#1140583, sum(quantity#1140536) AS quantitySum#1140723, min(calculationDateTime#1140527) AS minCalculationDateTime#1140724]
(1944) Project
Arguments: [product#1140584, plant#1140583, quantitySum#1140723, minCalculationDateTime#1140724, round(quantitySum#1140723, 0) AS roundedQuantitySum#1140725]
(1945) Join
Arguments: LeftOuter, ((plant#1140405 = plant#1140583) AND (product#1140404 = product#1140584))
(1946) Project
Arguments: [product#1140404, plant#1140405, orderDateTime#1140406, productPlant#1140416, timezonecode#1140430, outboundUnit#1140447, roundedQuantitySum#1140725, minCalculationDateTime#1140724]
(1947) Project
Arguments: [product#1140404, plant#1140405, orderDateTime#1140406, productPlant#1140416, timezonecode#1140430, outboundUnit#1140447, roundedQuantitySum#1140725, minCalculationDateTime#1140724, CASE WHEN isnotnull(minCalculationDateTime#1140724) THEN minCalculationDateTime#1140724 ELSE orderDateTime#1140406 END AS stockDatetime#1140726]
(1948) Project
Arguments: [product#1140404, plant#1140405, orderDateTime#1140406, productPlant#1140416, timezonecode#1140430, outboundUnit#1140447, roundedQuantitySum#1140725, minCalculationDateTime#1140724, stockDatetime#1140726, CASE WHEN isnotnull(roundedQuantitySum#1140725) THEN array(roundedQuantitySum#1140725) ELSE array(0.0) END AS stockBatchQuantities#1140727]
(1949) Project
Arguments: [product#1140404, plant#1140405, orderDateTime#1140406, productPlant#1140416, timezonecode#1140430, outboundUnit#1140447, roundedQuantitySum#1140725, minCalculationDateTime#1140724, stockDatetime#1140726, stockBatchQuantities#1140727, array(2199-01-01 00:00:00) AS stockBatchShelfLifeEndDatetimes#1140728]
(1950) Project
Arguments: [product#1140404, plant#1140405, orderDateTime#1140406, productPlant#1140416, timezonecode#1140430, outboundUnit#1140447, roundedQuantitySum#1140725, stockDatetime#1140726, stockBatchQuantities#1140727, stockBatchShelfLifeEndDatetimes#1140728]
(1951) Project
Arguments: [product#1140404, plant#1140405, orderDateTime#1140406, productPlant#1140416, timezonecode#1140430, outboundUnit#1140447, stockDatetime#1140726, stockBatchQuantities#1140727, stockBatchShelfLifeEndDatetimes#1140728]
(1952) LogicalRelation
Arguments: parquet, [product#1140729, plant#1140730, orderDateTime#1140731, planningStartDateTime#1140732], false
(1953) RepartitionByExpression
Arguments: [product#1140729, plant#1140730], 37
(1954) Project
Arguments: [product#1140729, plant#1140730, orderDateTime#1140731]
(1955) LogicalRelation
Arguments: parquet, [systemId#1140733, internalUUID#1140734, plant#1140735, product#1140736, blockedForReplenishmentStartingFrom#1140737, productionAspect#1140738, salesPlant#1140739, listing#1140740], false
(1956) Repartition
Arguments: 37, true
(1957) Project
Arguments: [systemId#1140733, internalUUID#1140734, plant#1140735, product#1140736, blockedForReplenishmentStartingFrom#1140737, productionAspect#1140738, salesPlant#1140739, listing#1140740, struct(systemId, systemId#1140733, internalUUID, internalUUID#1140734, plant, plant#1140735, product, product#1140736, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1140737, productionAspect, productionAspect#1140738, salesPlant, salesPlant#1140739, listing, listing#1140740) AS productPlant#1140741]
(1958) Project
Arguments: [productPlant#1140741]
(1959) Join
Arguments: LeftOuter, ((product#1140729 <=> productPlant#1140741.product.internalRefUUID) AND (plant#1140730 <=> productPlant#1140741.plant.internalRefUUID))
(1960) Project
Arguments: [product#1140729, plant#1140730, orderDateTime#1140731, productPlant#1140741]
(1961) SubqueryAlias
Arguments: wl
(1962) LogicalRelation
Arguments: parquet, [systemId#1140742, internalUUID#1140743, id#1140744, displayId#1140745, name#1140746, category#1140747, companyCode#1140748, address#1140749, mainDistributionChain#1140750, mainPurchasingOrganization#1140751, validPurchasingOrganizations#1140752, productGroup#1140753], false
(1963) Repartition
Arguments: 37, true
(1964) Project
Arguments: [internalUUID#1140743, address#1140749.timeZone.code AS timezonecode#1140754]
(1965) Join
Arguments: LeftOuter, (plant#1140730 <=> internalUUID#1140743)
(1966) Project
Arguments: [product#1140729, plant#1140730, orderDateTime#1140731, productPlant#1140741, internalUUID#1140743, CASE WHEN isnotnull(timezonecode#1140754) THEN timezonecode#1140754 ELSE UTC END AS timezonecode#1140755]
(1967) Project
Arguments: [product#1140729, plant#1140730, orderDateTime#1140731, productPlant#1140741, timezonecode#1140755]
(1968) LogicalRelation
Arguments: parquet, [systemId#1140756, internalUUID#1140757, id#1140758, displayId#1140759, name#1140760, baseUnitOfMeasure#1140761, unitOfMeasures#1140762, unitOfMeasureConversions#1140763, productionAspect#1140764, salesAspect#1140765, procurementAspect#1140766, productGroup#1140767], false
(1969) Repartition
Arguments: 37, true
(1970) Join
Arguments: LeftOuter, (product#1140729 = internalUUID#1140757)
(1971) Project
Arguments: [product#1140729, plant#1140730, orderDateTime#1140731, productPlant#1140741, timezonecode#1140755, systemId#1140756, internalUUID#1140757, id#1140758, displayId#1140759, name#1140760, baseUnitOfMeasure#1140761, unitOfMeasures#1140762, unitOfMeasureConversions#1140763, productionAspect#1140764, salesAspect#1140765, procurementAspect#1140766, productGroup#1140767, filter(unitOfMeasureConversions#1140763, lambdafunction((((lambda u#1135738.measurementUnit1.code = productPlant#1140741.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1135738.measurementUnit1.internalRefUUID = productPlant#1140741.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1140761.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1140761.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1140768]
(1972) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1140768.quantityNumerator), true, [quantityNumerator#1140769]
(1973) Project
Arguments: [product#1140729, plant#1140730, orderDateTime#1140731, productPlant#1140741, timezonecode#1140755, systemId#1140756, internalUUID#1140757, id#1140758, displayId#1140759, name#1140760, baseUnitOfMeasure#1140761, unitOfMeasures#1140762, unitOfMeasureConversions#1140763, productionAspect#1140764, salesAspect#1140765, procurementAspect#1140766, productGroup#1140767, filteredUnitOfMeasureConversions#1140768, quantityNumerator#1140769]
(1974) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1140768.quantityDenominator), true, [quantityDenominator#1140770]
(1975) Project
Arguments: [product#1140729, plant#1140730, orderDateTime#1140731, productPlant#1140741, timezonecode#1140755, systemId#1140756, internalUUID#1140757, id#1140758, displayId#1140759, name#1140760, baseUnitOfMeasure#1140761, unitOfMeasures#1140762, unitOfMeasureConversions#1140763, productionAspect#1140764, salesAspect#1140765, procurementAspect#1140766, productGroup#1140767, filteredUnitOfMeasureConversions#1140768, quantityNumerator#1140769, quantityDenominator#1140770]
(1976) Project
Arguments: [product#1140729, plant#1140730, orderDateTime#1140731, productPlant#1140741, timezonecode#1140755, systemId#1140756, internalUUID#1140757, id#1140758, displayId#1140759, name#1140760, baseUnitOfMeasure#1140761, unitOfMeasures#1140762, unitOfMeasureConversions#1140763, productionAspect#1140764, salesAspect#1140765, procurementAspect#1140766, productGroup#1140767, filteredUnitOfMeasureConversions#1140768, quantityNumerator#1140769, quantityDenominator#1140770, (cast(quantityNumerator#1140769 as double) / cast(quantityDenominator#1140770 as double)) AS outboundUnit#1140771]
(1977) Project
Arguments: [product#1140729, plant#1140730, orderDateTime#1140731, productPlant#1140741, timezonecode#1140755, systemId#1140756, internalUUID#1140757, id#1140758, displayId#1140759, name#1140760, baseUnitOfMeasure#1140761, unitOfMeasures#1140762, unitOfMeasureConversions#1140763, productionAspect#1140764, salesAspect#1140765, procurementAspect#1140766, productGroup#1140767, filteredUnitOfMeasureConversions#1140768, quantityNumerator#1140769, quantityDenominator#1140770, CASE WHEN (isnull(outboundUnit#1140771) OR (outboundUnit#1140771 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1140771 END AS outboundUnit#1140772]
(1978) Project
Arguments: [product#1140729, plant#1140730, orderDateTime#1140731, productPlant#1140741, timezonecode#1140755, outboundUnit#1140772]
(1979) LogicalRelation
Arguments: parquet, [systemId#1140773, internalUUID#1140774, product#1140775, plant#1140776, calculationDateTime#1140777, stockQuantities#1140778], false
(1980) Repartition
Arguments: 37, true
(1981) LogicalRelation
Arguments: parquet, [marketUnit#1140779, description#1140780, articleHierarchy#1140781, defaultCurrency#1140782, responsibilities#1140783, replenishmentTypes#1140784, distributionCenters#1140785, assignedArticleHierarchyNodes#1140786, minOrderQtySetting#1140787, listingCheck#1140788, odsSelection#1140789, demandProfiles#1140790, constraintProfiles#1140791, optimizationProfiles#1140792, orderGroupSplitProfiles#1140793, supplierMinimumProfiles#1140794, multipleRestrictionProfiles#1140795, preferredUomSource#1140796, handlingOfUnfulfilledDemands#1140797, negligibleQuantitiesThreshold#1140798, eventtype#1140799, minOrderQtySettingInternal#1140800], false
(1982) Repartition
Arguments: 37, true
(1983) Filter
Arguments: (marketUnit#1140779 <=> Alert_Test1)
(1984) Project
Arguments: [marketUnit#1140779, description#1140780, articleHierarchy#1140781, defaultCurrency#1140782, responsibilities#1140783, replenishmentTypes#1140784, distributionCenters#1140785, assignedArticleHierarchyNodes#1140786, minOrderQtySetting#1140787, listingCheck#1140788, odsSelection#1140789, demandProfiles#1140790, constraintProfiles#1140791, optimizationProfiles#1140792, orderGroupSplitProfiles#1140793, supplierMinimumProfiles#1140794, multipleRestrictionProfiles#1140795, preferredUomSource#1140796, handlingOfUnfulfilledDemands#1140797, negligibleQuantitiesThreshold#1140798, eventtype#1140799, minOrderQtySettingInternal#1140800]
(1985) Project
Arguments: [distributionCenters#1140785]
(1986) Generate
Arguments: explode(distributionCenters#1140785), false, [distributionCenters#1140801]
(1987) Project
Arguments: [distributionCenters#1140801]
(1988) Generate
Arguments: explode(distributionCenters#1140801.storageLocations), false, [storageLocations#1140802]
(1989) Project
Arguments: [distributionCenters#1140801.id AS plantId#1140803, distributionCenters#1140801.internalRefUUID AS plantUuid#1140804, storageLocations#1140802]
(1990) Project
Arguments: [plantId#1140803, plantUuid#1140804, storageLocations#1140802.id AS storageLocId#1140805, storageLocations#1140802.internalRefUUID AS storageLocUuid#1140806]
(1991) LogicalRelation
Arguments: parquet, [product#1140807, plant#1140808, orderDateTime#1140809, planningStartDateTime#1140810], false
(1992) RepartitionByExpression
Arguments: [product#1140807, plant#1140808], 37
(1993) Project
Arguments: [product#1140807, plant#1140808, orderDateTime#1140809]
(1994) LogicalRelation
Arguments: parquet, [systemId#1140811, internalUUID#1140812, plant#1140813, product#1140814, blockedForReplenishmentStartingFrom#1140815, productionAspect#1140816, salesPlant#1140817, listing#1140818], false
(1995) Repartition
Arguments: 37, true
(1996) Project
Arguments: [systemId#1140811, internalUUID#1140812, plant#1140813, product#1140814, blockedForReplenishmentStartingFrom#1140815, productionAspect#1140816, salesPlant#1140817, listing#1140818, struct(systemId, systemId#1140811, internalUUID, internalUUID#1140812, plant, plant#1140813, product, product#1140814, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1140815, productionAspect, productionAspect#1140816, salesPlant, salesPlant#1140817, listing, listing#1140818) AS productPlant#1140819]
(1997) Project
Arguments: [productPlant#1140819]
(1998) Join
Arguments: LeftOuter, ((product#1140807 <=> productPlant#1140819.product.internalRefUUID) AND (plant#1140808 <=> productPlant#1140819.plant.internalRefUUID))
(1999) Project
Arguments: [product#1140807, plant#1140808, orderDateTime#1140809, productPlant#1140819]
(2000) SubqueryAlias
Arguments: wl
(2001) LogicalRelation
Arguments: parquet, [systemId#1140820, internalUUID#1140821, id#1140822, displayId#1140823, name#1140824, category#1140825, companyCode#1140826, address#1140827, mainDistributionChain#1140828, mainPurchasingOrganization#1140829, validPurchasingOrganizations#1140830, productGroup#1140831], false
(2002) Repartition
Arguments: 37, true
(2003) Project
Arguments: [internalUUID#1140821, address#1140827.timeZone.code AS timezonecode#1140832]
(2004) Join
Arguments: LeftOuter, (plant#1140808 <=> internalUUID#1140821)
(2005) Project
Arguments: [product#1140807, plant#1140808, orderDateTime#1140809, productPlant#1140819, internalUUID#1140821, CASE WHEN isnotnull(timezonecode#1140832) THEN timezonecode#1140832 ELSE UTC END AS timezonecode#1140833]
(2006) Project
Arguments: [product#1140807, plant#1140808, orderDateTime#1140809, productPlant#1140819, timezonecode#1140833]
(2007) LogicalRelation
Arguments: parquet, [systemId#1140834, internalUUID#1140835, id#1140836, displayId#1140837, name#1140838, baseUnitOfMeasure#1140839, unitOfMeasures#1140840, unitOfMeasureConversions#1140841, productionAspect#1140842, salesAspect#1140843, procurementAspect#1140844, productGroup#1140845], false
(2008) Repartition
Arguments: 37, true
(2009) Join
Arguments: LeftOuter, (product#1140807 = internalUUID#1140835)
(2010) Project
Arguments: [product#1140807, plant#1140808, orderDateTime#1140809, productPlant#1140819, timezonecode#1140833, systemId#1140834, internalUUID#1140835, id#1140836, displayId#1140837, name#1140838, baseUnitOfMeasure#1140839, unitOfMeasures#1140840, unitOfMeasureConversions#1140841, productionAspect#1140842, salesAspect#1140843, procurementAspect#1140844, productGroup#1140845, filter(unitOfMeasureConversions#1140841, lambdafunction((((lambda u#1135738.measurementUnit1.code = productPlant#1140819.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1135738.measurementUnit1.internalRefUUID = productPlant#1140819.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1140839.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1140839.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1140846]
(2011) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1140846.quantityNumerator), true, [quantityNumerator#1140847]
(2012) Project
Arguments: [product#1140807, plant#1140808, orderDateTime#1140809, productPlant#1140819, timezonecode#1140833, systemId#1140834, internalUUID#1140835, id#1140836, displayId#1140837, name#1140838, baseUnitOfMeasure#1140839, unitOfMeasures#1140840, unitOfMeasureConversions#1140841, productionAspect#1140842, salesAspect#1140843, procurementAspect#1140844, productGroup#1140845, filteredUnitOfMeasureConversions#1140846, quantityNumerator#1140847]
(2013) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1140846.quantityDenominator), true, [quantityDenominator#1140848]
(2014) Project
Arguments: [product#1140807, plant#1140808, orderDateTime#1140809, productPlant#1140819, timezonecode#1140833, systemId#1140834, internalUUID#1140835, id#1140836, displayId#1140837, name#1140838, baseUnitOfMeasure#1140839, unitOfMeasures#1140840, unitOfMeasureConversions#1140841, productionAspect#1140842, salesAspect#1140843, procurementAspect#1140844, productGroup#1140845, filteredUnitOfMeasureConversions#1140846, quantityNumerator#1140847, quantityDenominator#1140848]
(2015) Project
Arguments: [product#1140807, plant#1140808, orderDateTime#1140809, productPlant#1140819, timezonecode#1140833, systemId#1140834, internalUUID#1140835, id#1140836, displayId#1140837, name#1140838, baseUnitOfMeasure#1140839, unitOfMeasures#1140840, unitOfMeasureConversions#1140841, productionAspect#1140842, salesAspect#1140843, procurementAspect#1140844, productGroup#1140845, filteredUnitOfMeasureConversions#1140846, quantityNumerator#1140847, quantityDenominator#1140848, (cast(quantityNumerator#1140847 as double) / cast(quantityDenominator#1140848 as double)) AS outboundUnit#1140849]
(2016) Project
Arguments: [product#1140807, plant#1140808, orderDateTime#1140809, productPlant#1140819, timezonecode#1140833, systemId#1140834, internalUUID#1140835, id#1140836, displayId#1140837, name#1140838, baseUnitOfMeasure#1140839, unitOfMeasures#1140840, unitOfMeasureConversions#1140841, productionAspect#1140842, salesAspect#1140843, procurementAspect#1140844, productGroup#1140845, filteredUnitOfMeasureConversions#1140846, quantityNumerator#1140847, quantityDenominator#1140848, CASE WHEN (isnull(outboundUnit#1140849) OR (outboundUnit#1140849 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1140849 END AS outboundUnit#1140850]
(2017) Project
Arguments: [product#1140807, plant#1140808, orderDateTime#1140809, productPlant#1140819, timezonecode#1140833, outboundUnit#1140850]
(2018) Project
Arguments: [plant#1140808]
(2019) Deduplicate
Arguments: [plant#1140808]
(2020) Join
Arguments: Inner, (plantUuid#1140804 = plant#1140808)
(2021) Project
Arguments: [plantId#1140803, plantUuid#1140804, storageLocId#1140805, storageLocUuid#1140806]
(2022) Join
Arguments: Inner, (plant#1140776.internalRefUUID <=> plantUuid#1140804)
(2023) Generate
Arguments: explode(filter(stockQuantities#1140778, lambdafunction(((lambda x#1135796.storageLocation.internalRefUuid = storageLocUuid#1140806) AND (lambda x#1135796.storageLocation.Id = storageLocId#1140805)), lambda x#1135796, false))), false, [stockQuantity#1140851]
(2024) Project
Arguments: [systemId#1140773, internalUUID#1140774, product#1140775, plant#1140776, calculationDateTime#1140777, stockQuantities#1140778, plantId#1140803, plantUuid#1140804, storageLocId#1140805, storageLocUuid#1140806, stockQuantity#1140851]
(2025) Aggregate
Arguments: [plantUuid#1140804, internalUUID#1140774, plant#1140776, product#1140775, systemId#1140773], [plantUuid#1140804, internalUUID#1140774, plant#1140776, product#1140775, systemId#1140773, first(calculationDateTime#1140777, false) AS calculationDateTime#1140852, collect_list(stockQuantity#1140851, 0, 0) AS stockQuantities#1140853]
(2026) Project
Arguments: [systemId#1140773, internalUUID#1140774, product#1140775, plant#1140776, calculationDateTime#1140852, stockQuantities#1140853]
(2027) Generate
Arguments: explode(stockQuantities#1140853), false, [stockQuantity#1140854]
(2028) Project
Arguments: [systemId#1140773, internalUUID#1140774, product#1140775, plant#1140776, calculationDateTime#1140852, stockQuantities#1140853, stockQuantity#1140854]
(2029) Project
Arguments: [plant#1140776.id AS plant#1140855, plant#1140776.internalRefUUID AS plantUuid#1140856, product#1140775.id AS product#1140857, product#1140775.internalRefUUID AS productUuid#1140858, calculationDateTime#1140852, stockQuantity#1140854.storagelocation.id AS storageLocId#1140859, stockQuantity#1140854.storagelocation.internalRefUUID AS storageLocUuid#1140860, stockQuantity#1140854.quantity.measure AS quantity#1140861, stockQuantity#1140854.specialStockIndicator.code AS specialStockIndicator#1140862, stockQuantity#1140854.stockType.code AS stockType#1140863]
(2030) Filter
Arguments: ((specialStockIndicator#1140862 = ) AND (stockType#1140863 = 01))
(2031) LogicalRelation
Arguments: parquet, [product#1140864, plant#1140865, orderDateTime#1140866, planningStartDateTime#1140867], false
(2032) RepartitionByExpression
Arguments: [product#1140864, plant#1140865], 37
(2033) Project
Arguments: [product#1140864, plant#1140865, orderDateTime#1140866]
(2034) LogicalRelation
Arguments: parquet, [systemId#1140868, internalUUID#1140869, plant#1140870, product#1140871, blockedForReplenishmentStartingFrom#1140872, productionAspect#1140873, salesPlant#1140874, listing#1140875], false
(2035) Repartition
Arguments: 37, true
(2036) Project
Arguments: [systemId#1140868, internalUUID#1140869, plant#1140870, product#1140871, blockedForReplenishmentStartingFrom#1140872, productionAspect#1140873, salesPlant#1140874, listing#1140875, struct(systemId, systemId#1140868, internalUUID, internalUUID#1140869, plant, plant#1140870, product, product#1140871, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1140872, productionAspect, productionAspect#1140873, salesPlant, salesPlant#1140874, listing, listing#1140875) AS productPlant#1140876]
(2037) Project
Arguments: [productPlant#1140876]
(2038) Join
Arguments: LeftOuter, ((product#1140864 <=> productPlant#1140876.product.internalRefUUID) AND (plant#1140865 <=> productPlant#1140876.plant.internalRefUUID))
(2039) Project
Arguments: [product#1140864, plant#1140865, orderDateTime#1140866, productPlant#1140876]
(2040) SubqueryAlias
Arguments: wl
(2041) LogicalRelation
Arguments: parquet, [systemId#1140877, internalUUID#1140878, id#1140879, displayId#1140880, name#1140881, category#1140882, companyCode#1140883, address#1140884, mainDistributionChain#1140885, mainPurchasingOrganization#1140886, validPurchasingOrganizations#1140887, productGroup#1140888], false
(2042) Repartition
Arguments: 37, true
(2043) Project
Arguments: [internalUUID#1140878, address#1140884.timeZone.code AS timezonecode#1140889]
(2044) Join
Arguments: LeftOuter, (plant#1140865 <=> internalUUID#1140878)
(2045) Project
Arguments: [product#1140864, plant#1140865, orderDateTime#1140866, productPlant#1140876, internalUUID#1140878, CASE WHEN isnotnull(timezonecode#1140889) THEN timezonecode#1140889 ELSE UTC END AS timezonecode#1140890]
(2046) Project
Arguments: [product#1140864, plant#1140865, orderDateTime#1140866, productPlant#1140876, timezonecode#1140890]
(2047) LogicalRelation
Arguments: parquet, [systemId#1140891, internalUUID#1140892, id#1140893, displayId#1140894, name#1140895, baseUnitOfMeasure#1140896, unitOfMeasures#1140897, unitOfMeasureConversions#1140898, productionAspect#1140899, salesAspect#1140900, procurementAspect#1140901, productGroup#1140902], false
(2048) Repartition
Arguments: 37, true
(2049) Join
Arguments: LeftOuter, (product#1140864 = internalUUID#1140892)
(2050) Project
Arguments: [product#1140864, plant#1140865, orderDateTime#1140866, productPlant#1140876, timezonecode#1140890, systemId#1140891, internalUUID#1140892, id#1140893, displayId#1140894, name#1140895, baseUnitOfMeasure#1140896, unitOfMeasures#1140897, unitOfMeasureConversions#1140898, productionAspect#1140899, salesAspect#1140900, procurementAspect#1140901, productGroup#1140902, filter(unitOfMeasureConversions#1140898, lambdafunction((((lambda u#1135738.measurementUnit1.code = productPlant#1140876.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1135738.measurementUnit1.internalRefUUID = productPlant#1140876.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1140896.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1140896.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1140903]
(2051) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1140903.quantityNumerator), true, [quantityNumerator#1140904]
(2052) Project
Arguments: [product#1140864, plant#1140865, orderDateTime#1140866, productPlant#1140876, timezonecode#1140890, systemId#1140891, internalUUID#1140892, id#1140893, displayId#1140894, name#1140895, baseUnitOfMeasure#1140896, unitOfMeasures#1140897, unitOfMeasureConversions#1140898, productionAspect#1140899, salesAspect#1140900, procurementAspect#1140901, productGroup#1140902, filteredUnitOfMeasureConversions#1140903, quantityNumerator#1140904]
(2053) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1140903.quantityDenominator), true, [quantityDenominator#1140905]
(2054) Project
Arguments: [product#1140864, plant#1140865, orderDateTime#1140866, productPlant#1140876, timezonecode#1140890, systemId#1140891, internalUUID#1140892, id#1140893, displayId#1140894, name#1140895, baseUnitOfMeasure#1140896, unitOfMeasures#1140897, unitOfMeasureConversions#1140898, productionAspect#1140899, salesAspect#1140900, procurementAspect#1140901, productGroup#1140902, filteredUnitOfMeasureConversions#1140903, quantityNumerator#1140904, quantityDenominator#1140905]
(2055) Project
Arguments: [product#1140864, plant#1140865, orderDateTime#1140866, productPlant#1140876, timezonecode#1140890, systemId#1140891, internalUUID#1140892, id#1140893, displayId#1140894, name#1140895, baseUnitOfMeasure#1140896, unitOfMeasures#1140897, unitOfMeasureConversions#1140898, productionAspect#1140899, salesAspect#1140900, procurementAspect#1140901, productGroup#1140902, filteredUnitOfMeasureConversions#1140903, quantityNumerator#1140904, quantityDenominator#1140905, (cast(quantityNumerator#1140904 as double) / cast(quantityDenominator#1140905 as double)) AS outboundUnit#1140906]
(2056) Project
Arguments: [product#1140864, plant#1140865, orderDateTime#1140866, productPlant#1140876, timezonecode#1140890, systemId#1140891, internalUUID#1140892, id#1140893, displayId#1140894, name#1140895, baseUnitOfMeasure#1140896, unitOfMeasures#1140897, unitOfMeasureConversions#1140898, productionAspect#1140899, salesAspect#1140900, procurementAspect#1140901, productGroup#1140902, filteredUnitOfMeasureConversions#1140903, quantityNumerator#1140904, quantityDenominator#1140905, CASE WHEN (isnull(outboundUnit#1140906) OR (outboundUnit#1140906 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1140906 END AS outboundUnit#1140907]
(2057) Project
Arguments: [product#1140864, plant#1140865, orderDateTime#1140866, productPlant#1140876, timezonecode#1140890, outboundUnit#1140907]
(2058) Join
Arguments: Inner, ((plantUuid#1140856 = plant#1140865) AND (productUuid#1140858 = product#1140864))
(2059) Filter
Arguments: (calculationDateTime#1140852 <= orderDateTime#1140866)
(2060) Project
Arguments: [plantUuid#1140856 AS plant#1140908, productUuid#1140858 AS product#1140909, storageLocId#1140859, calculationDateTime#1140852, quantity#1140861]
(2061) LogicalRelation
Arguments: parquet, [systemId#1140910, internalUUID#1140911, product#1140912, plant#1140913, calculationDateTime#1140914, stockQuantities#1140915], false
(2062) Repartition
Arguments: 37, true
(2063) LogicalRelation
Arguments: parquet, [marketUnit#1140916, description#1140917, articleHierarchy#1140918, defaultCurrency#1140919, responsibilities#1140920, replenishmentTypes#1140921, distributionCenters#1140922, assignedArticleHierarchyNodes#1140923, minOrderQtySetting#1140924, listingCheck#1140925, odsSelection#1140926, demandProfiles#1140927, constraintProfiles#1140928, optimizationProfiles#1140929, orderGroupSplitProfiles#1140930, supplierMinimumProfiles#1140931, multipleRestrictionProfiles#1140932, preferredUomSource#1140933, handlingOfUnfulfilledDemands#1140934, negligibleQuantitiesThreshold#1140935, eventtype#1140936, minOrderQtySettingInternal#1140937], false
(2064) Repartition
Arguments: 37, true
(2065) Filter
Arguments: (marketUnit#1140916 <=> Alert_Test1)
(2066) Project
Arguments: [marketUnit#1140916, description#1140917, articleHierarchy#1140918, defaultCurrency#1140919, responsibilities#1140920, replenishmentTypes#1140921, distributionCenters#1140922, assignedArticleHierarchyNodes#1140923, minOrderQtySetting#1140924, listingCheck#1140925, odsSelection#1140926, demandProfiles#1140927, constraintProfiles#1140928, optimizationProfiles#1140929, orderGroupSplitProfiles#1140930, supplierMinimumProfiles#1140931, multipleRestrictionProfiles#1140932, preferredUomSource#1140933, handlingOfUnfulfilledDemands#1140934, negligibleQuantitiesThreshold#1140935, eventtype#1140936, minOrderQtySettingInternal#1140937]
(2067) Project
Arguments: [distributionCenters#1140922]
(2068) Generate
Arguments: explode(distributionCenters#1140922), false, [distributionCenters#1140938]
(2069) Project
Arguments: [distributionCenters#1140938]
(2070) Generate
Arguments: explode(distributionCenters#1140938.storageLocations), false, [storageLocations#1140939]
(2071) Project
Arguments: [distributionCenters#1140938.id AS plantId#1140940, distributionCenters#1140938.internalRefUUID AS plantUuid#1140941, storageLocations#1140939]
(2072) Project
Arguments: [plantId#1140940, plantUuid#1140941, storageLocations#1140939.id AS storageLocId#1140942, storageLocations#1140939.internalRefUUID AS storageLocUuid#1140943]
(2073) LogicalRelation
Arguments: parquet, [product#1140944, plant#1140945, orderDateTime#1140946, planningStartDateTime#1140947], false
(2074) RepartitionByExpression
Arguments: [product#1140944, plant#1140945], 37
(2075) Project
Arguments: [product#1140944, plant#1140945, orderDateTime#1140946]
(2076) LogicalRelation
Arguments: parquet, [systemId#1140948, internalUUID#1140949, plant#1140950, product#1140951, blockedForReplenishmentStartingFrom#1140952, productionAspect#1140953, salesPlant#1140954, listing#1140955], false
(2077) Repartition
Arguments: 37, true
(2078) Project
Arguments: [systemId#1140948, internalUUID#1140949, plant#1140950, product#1140951, blockedForReplenishmentStartingFrom#1140952, productionAspect#1140953, salesPlant#1140954, listing#1140955, struct(systemId, systemId#1140948, internalUUID, internalUUID#1140949, plant, plant#1140950, product, product#1140951, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1140952, productionAspect, productionAspect#1140953, salesPlant, salesPlant#1140954, listing, listing#1140955) AS productPlant#1140956]
(2079) Project
Arguments: [productPlant#1140956]
(2080) Join
Arguments: LeftOuter, ((product#1140944 <=> productPlant#1140956.product.internalRefUUID) AND (plant#1140945 <=> productPlant#1140956.plant.internalRefUUID))
(2081) Project
Arguments: [product#1140944, plant#1140945, orderDateTime#1140946, productPlant#1140956]
(2082) SubqueryAlias
Arguments: wl
(2083) LogicalRelation
Arguments: parquet, [systemId#1140957, internalUUID#1140958, id#1140959, displayId#1140960, name#1140961, category#1140962, companyCode#1140963, address#1140964, mainDistributionChain#1140965, mainPurchasingOrganization#1140966, validPurchasingOrganizations#1140967, productGroup#1140968], false
(2084) Repartition
Arguments: 37, true
(2085) Project
Arguments: [internalUUID#1140958, address#1140964.timeZone.code AS timezonecode#1140969]
(2086) Join
Arguments: LeftOuter, (plant#1140945 <=> internalUUID#1140958)
(2087) Project
Arguments: [product#1140944, plant#1140945, orderDateTime#1140946, productPlant#1140956, internalUUID#1140958, CASE WHEN isnotnull(timezonecode#1140969) THEN timezonecode#1140969 ELSE UTC END AS timezonecode#1140970]
(2088) Project
Arguments: [product#1140944, plant#1140945, orderDateTime#1140946, productPlant#1140956, timezonecode#1140970]
(2089) LogicalRelation
Arguments: parquet, [systemId#1140971, internalUUID#1140972, id#1140973, displayId#1140974, name#1140975, baseUnitOfMeasure#1140976, unitOfMeasures#1140977, unitOfMeasureConversions#1140978, productionAspect#1140979, salesAspect#1140980, procurementAspect#1140981, productGroup#1140982], false
(2090) Repartition
Arguments: 37, true
(2091) Join
Arguments: LeftOuter, (product#1140944 = internalUUID#1140972)
(2092) Project
Arguments: [product#1140944, plant#1140945, orderDateTime#1140946, productPlant#1140956, timezonecode#1140970, systemId#1140971, internalUUID#1140972, id#1140973, displayId#1140974, name#1140975, baseUnitOfMeasure#1140976, unitOfMeasures#1140977, unitOfMeasureConversions#1140978, productionAspect#1140979, salesAspect#1140980, procurementAspect#1140981, productGroup#1140982, filter(unitOfMeasureConversions#1140978, lambdafunction((((lambda u#1135738.measurementUnit1.code = productPlant#1140956.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1135738.measurementUnit1.internalRefUUID = productPlant#1140956.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1140976.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1140976.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1140983]
(2093) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1140983.quantityNumerator), true, [quantityNumerator#1140984]
(2094) Project
Arguments: [product#1140944, plant#1140945, orderDateTime#1140946, productPlant#1140956, timezonecode#1140970, systemId#1140971, internalUUID#1140972, id#1140973, displayId#1140974, name#1140975, baseUnitOfMeasure#1140976, unitOfMeasures#1140977, unitOfMeasureConversions#1140978, productionAspect#1140979, salesAspect#1140980, procurementAspect#1140981, productGroup#1140982, filteredUnitOfMeasureConversions#1140983, quantityNumerator#1140984]
(2095) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1140983.quantityDenominator), true, [quantityDenominator#1140985]
(2096) Project
Arguments: [product#1140944, plant#1140945, orderDateTime#1140946, productPlant#1140956, timezonecode#1140970, systemId#1140971, internalUUID#1140972, id#1140973, displayId#1140974, name#1140975, baseUnitOfMeasure#1140976, unitOfMeasures#1140977, unitOfMeasureConversions#1140978, productionAspect#1140979, salesAspect#1140980, procurementAspect#1140981, productGroup#1140982, filteredUnitOfMeasureConversions#1140983, quantityNumerator#1140984, quantityDenominator#1140985]
(2097) Project
Arguments: [product#1140944, plant#1140945, orderDateTime#1140946, productPlant#1140956, timezonecode#1140970, systemId#1140971, internalUUID#1140972, id#1140973, displayId#1140974, name#1140975, baseUnitOfMeasure#1140976, unitOfMeasures#1140977, unitOfMeasureConversions#1140978, productionAspect#1140979, salesAspect#1140980, procurementAspect#1140981, productGroup#1140982, filteredUnitOfMeasureConversions#1140983, quantityNumerator#1140984, quantityDenominator#1140985, (cast(quantityNumerator#1140984 as double) / cast(quantityDenominator#1140985 as double)) AS outboundUnit#1140986]
(2098) Project
Arguments: [product#1140944, plant#1140945, orderDateTime#1140946, productPlant#1140956, timezonecode#1140970, systemId#1140971, internalUUID#1140972, id#1140973, displayId#1140974, name#1140975, baseUnitOfMeasure#1140976, unitOfMeasures#1140977, unitOfMeasureConversions#1140978, productionAspect#1140979, salesAspect#1140980, procurementAspect#1140981, productGroup#1140982, filteredUnitOfMeasureConversions#1140983, quantityNumerator#1140984, quantityDenominator#1140985, CASE WHEN (isnull(outboundUnit#1140986) OR (outboundUnit#1140986 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1140986 END AS outboundUnit#1140987]
(2099) Project
Arguments: [product#1140944, plant#1140945, orderDateTime#1140946, productPlant#1140956, timezonecode#1140970, outboundUnit#1140987]
(2100) Project
Arguments: [plant#1140945]
(2101) Deduplicate
Arguments: [plant#1140945]
(2102) Join
Arguments: Inner, (plantUuid#1140941 = plant#1140945)
(2103) Project
Arguments: [plantId#1140940, plantUuid#1140941, storageLocId#1140942, storageLocUuid#1140943]
(2104) Join
Arguments: Inner, (plant#1140913.internalRefUUID <=> plantUuid#1140941)
(2105) Generate
Arguments: explode(filter(stockQuantities#1140915, lambdafunction(((lambda x#1135796.storageLocation.internalRefUuid = storageLocUuid#1140943) AND (lambda x#1135796.storageLocation.Id = storageLocId#1140942)), lambda x#1135796, false))), false, [stockQuantity#1140988]
(2106) Project
Arguments: [systemId#1140910, internalUUID#1140911, product#1140912, plant#1140913, calculationDateTime#1140914, stockQuantities#1140915, plantId#1140940, plantUuid#1140941, storageLocId#1140942, storageLocUuid#1140943, stockQuantity#1140988]
(2107) Aggregate
Arguments: [plantUuid#1140941, internalUUID#1140911, plant#1140913, product#1140912, systemId#1140910], [plantUuid#1140941, internalUUID#1140911, plant#1140913, product#1140912, systemId#1140910, first(calculationDateTime#1140914, false) AS calculationDateTime#1140989, collect_list(stockQuantity#1140988, 0, 0) AS stockQuantities#1140990]
(2108) Project
Arguments: [systemId#1140910, internalUUID#1140911, product#1140912, plant#1140913, calculationDateTime#1140989, stockQuantities#1140990]
(2109) Generate
Arguments: explode(stockQuantities#1140990), false, [stockQuantity#1140991]
(2110) Project
Arguments: [systemId#1140910, internalUUID#1140911, product#1140912, plant#1140913, calculationDateTime#1140989, stockQuantities#1140990, stockQuantity#1140991]
(2111) Project
Arguments: [plant#1140913.id AS plant#1140992, plant#1140913.internalRefUUID AS plantUuid#1140993, product#1140912.id AS product#1140994, product#1140912.internalRefUUID AS productUuid#1140995, calculationDateTime#1140989, stockQuantity#1140991.storagelocation.id AS storageLocId#1140996, stockQuantity#1140991.storagelocation.internalRefUUID AS storageLocUuid#1140997, stockQuantity#1140991.quantity.measure AS quantity#1140998, stockQuantity#1140991.specialStockIndicator.code AS specialStockIndicator#1140999, stockQuantity#1140991.stockType.code AS stockType#1141000]
(2112) Filter
Arguments: ((specialStockIndicator#1140999 = ) AND (stockType#1141000 = 01))
(2113) LogicalRelation
Arguments: parquet, [product#1141001, plant#1141002, orderDateTime#1141003, planningStartDateTime#1141004], false
(2114) RepartitionByExpression
Arguments: [product#1141001, plant#1141002], 37
(2115) Project
Arguments: [product#1141001, plant#1141002, orderDateTime#1141003]
(2116) LogicalRelation
Arguments: parquet, [systemId#1141005, internalUUID#1141006, plant#1141007, product#1141008, blockedForReplenishmentStartingFrom#1141009, productionAspect#1141010, salesPlant#1141011, listing#1141012], false
(2117) Repartition
Arguments: 37, true
(2118) Project
Arguments: [systemId#1141005, internalUUID#1141006, plant#1141007, product#1141008, blockedForReplenishmentStartingFrom#1141009, productionAspect#1141010, salesPlant#1141011, listing#1141012, struct(systemId, systemId#1141005, internalUUID, internalUUID#1141006, plant, plant#1141007, product, product#1141008, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1141009, productionAspect, productionAspect#1141010, salesPlant, salesPlant#1141011, listing, listing#1141012) AS productPlant#1141013]
(2119) Project
Arguments: [productPlant#1141013]
(2120) Join
Arguments: LeftOuter, ((product#1141001 <=> productPlant#1141013.product.internalRefUUID) AND (plant#1141002 <=> productPlant#1141013.plant.internalRefUUID))
(2121) Project
Arguments: [product#1141001, plant#1141002, orderDateTime#1141003, productPlant#1141013]
(2122) SubqueryAlias
Arguments: wl
(2123) LogicalRelation
Arguments: parquet, [systemId#1141014, internalUUID#1141015, id#1141016, displayId#1141017, name#1141018, category#1141019, companyCode#1141020, address#1141021, mainDistributionChain#1141022, mainPurchasingOrganization#1141023, validPurchasingOrganizations#1141024, productGroup#1141025], false
(2124) Repartition
Arguments: 37, true
(2125) Project
Arguments: [internalUUID#1141015, address#1141021.timeZone.code AS timezonecode#1141026]
(2126) Join
Arguments: LeftOuter, (plant#1141002 <=> internalUUID#1141015)
(2127) Project
Arguments: [product#1141001, plant#1141002, orderDateTime#1141003, productPlant#1141013, internalUUID#1141015, CASE WHEN isnotnull(timezonecode#1141026) THEN timezonecode#1141026 ELSE UTC END AS timezonecode#1141027]
(2128) Project
Arguments: [product#1141001, plant#1141002, orderDateTime#1141003, productPlant#1141013, timezonecode#1141027]
(2129) LogicalRelation
Arguments: parquet, [systemId#1141028, internalUUID#1141029, id#1141030, displayId#1141031, name#1141032, baseUnitOfMeasure#1141033, unitOfMeasures#1141034, unitOfMeasureConversions#1141035, productionAspect#1141036, salesAspect#1141037, procurementAspect#1141038, productGroup#1141039], false
(2130) Repartition
Arguments: 37, true
(2131) Join
Arguments: LeftOuter, (product#1141001 = internalUUID#1141029)
(2132) Project
Arguments: [product#1141001, plant#1141002, orderDateTime#1141003, productPlant#1141013, timezonecode#1141027, systemId#1141028, internalUUID#1141029, id#1141030, displayId#1141031, name#1141032, baseUnitOfMeasure#1141033, unitOfMeasures#1141034, unitOfMeasureConversions#1141035, productionAspect#1141036, salesAspect#1141037, procurementAspect#1141038, productGroup#1141039, filter(unitOfMeasureConversions#1141035, lambdafunction((((lambda u#1135738.measurementUnit1.code = productPlant#1141013.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1135738.measurementUnit1.internalRefUUID = productPlant#1141013.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1141033.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1141033.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1141040]
(2133) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1141040.quantityNumerator), true, [quantityNumerator#1141041]
(2134) Project
Arguments: [product#1141001, plant#1141002, orderDateTime#1141003, productPlant#1141013, timezonecode#1141027, systemId#1141028, internalUUID#1141029, id#1141030, displayId#1141031, name#1141032, baseUnitOfMeasure#1141033, unitOfMeasures#1141034, unitOfMeasureConversions#1141035, productionAspect#1141036, salesAspect#1141037, procurementAspect#1141038, productGroup#1141039, filteredUnitOfMeasureConversions#1141040, quantityNumerator#1141041]
(2135) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1141040.quantityDenominator), true, [quantityDenominator#1141042]
(2136) Project
Arguments: [product#1141001, plant#1141002, orderDateTime#1141003, productPlant#1141013, timezonecode#1141027, systemId#1141028, internalUUID#1141029, id#1141030, displayId#1141031, name#1141032, baseUnitOfMeasure#1141033, unitOfMeasures#1141034, unitOfMeasureConversions#1141035, productionAspect#1141036, salesAspect#1141037, procurementAspect#1141038, productGroup#1141039, filteredUnitOfMeasureConversions#1141040, quantityNumerator#1141041, quantityDenominator#1141042]
(2137) Project
Arguments: [product#1141001, plant#1141002, orderDateTime#1141003, productPlant#1141013, timezonecode#1141027, systemId#1141028, internalUUID#1141029, id#1141030, displayId#1141031, name#1141032, baseUnitOfMeasure#1141033, unitOfMeasures#1141034, unitOfMeasureConversions#1141035, productionAspect#1141036, salesAspect#1141037, procurementAspect#1141038, productGroup#1141039, filteredUnitOfMeasureConversions#1141040, quantityNumerator#1141041, quantityDenominator#1141042, (cast(quantityNumerator#1141041 as double) / cast(quantityDenominator#1141042 as double)) AS outboundUnit#1141043]
(2138) Project
Arguments: [product#1141001, plant#1141002, orderDateTime#1141003, productPlant#1141013, timezonecode#1141027, systemId#1141028, internalUUID#1141029, id#1141030, displayId#1141031, name#1141032, baseUnitOfMeasure#1141033, unitOfMeasures#1141034, unitOfMeasureConversions#1141035, productionAspect#1141036, salesAspect#1141037, procurementAspect#1141038, productGroup#1141039, filteredUnitOfMeasureConversions#1141040, quantityNumerator#1141041, quantityDenominator#1141042, CASE WHEN (isnull(outboundUnit#1141043) OR (outboundUnit#1141043 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1141043 END AS outboundUnit#1141044]
(2139) Project
Arguments: [product#1141001, plant#1141002, orderDateTime#1141003, productPlant#1141013, timezonecode#1141027, outboundUnit#1141044]
(2140) Join
Arguments: Inner, ((plantUuid#1140993 = plant#1141002) AND (productUuid#1140995 = product#1141001))
(2141) Filter
Arguments: (calculationDateTime#1140989 <= orderDateTime#1141003)
(2142) Project
Arguments: [plantUuid#1140993 AS plant#1141045, productUuid#1140995 AS product#1141046, storageLocId#1140996, calculationDateTime#1140989, quantity#1140998]
(2143) Aggregate
Arguments: [plant#1141045, product#1141046, storageLocId#1140996], [plant#1141045, product#1141046, storageLocId#1140996, max(calculationDateTime#1140989) AS max_calc_datetime#1141047]
(2144) Join
Arguments: Inner, ((((plant#1140908 <=> plant#1141045) AND (product#1140909 <=> product#1141046)) AND (storageLocId#1140859 <=> storageLocId#1140996)) AND (calculationDateTime#1140852 <=> max_calc_datetime#1141047))
(2145) Project
Arguments: [plant#1140908, product#1140909, storageLocId#1140859, calculationDateTime#1140852, quantity#1140861]
(2146) Aggregate
Arguments: [product#1140909, plant#1140908], [product#1140909, plant#1140908, sum(quantity#1140861) AS quantitySum#1141048, min(calculationDateTime#1140852) AS minCalculationDateTime#1141049]
(2147) Project
Arguments: [product#1140909, plant#1140908, quantitySum#1141048, minCalculationDateTime#1141049, round(quantitySum#1141048, 0) AS roundedQuantitySum#1141050]
(2148) Join
Arguments: LeftOuter, ((plant#1140730 = plant#1140908) AND (product#1140729 = product#1140909))
(2149) Project
Arguments: [product#1140729, plant#1140730, orderDateTime#1140731, productPlant#1140741, timezonecode#1140755, outboundUnit#1140772, roundedQuantitySum#1141050, minCalculationDateTime#1141049]
(2150) Project
Arguments: [product#1140729, plant#1140730, orderDateTime#1140731, productPlant#1140741, timezonecode#1140755, outboundUnit#1140772, roundedQuantitySum#1141050, minCalculationDateTime#1141049, CASE WHEN isnotnull(minCalculationDateTime#1141049) THEN minCalculationDateTime#1141049 ELSE orderDateTime#1140731 END AS stockDatetime#1141051]
(2151) Project
Arguments: [product#1140729, plant#1140730, orderDateTime#1140731, productPlant#1140741, timezonecode#1140755, outboundUnit#1140772, roundedQuantitySum#1141050, minCalculationDateTime#1141049, stockDatetime#1141051, CASE WHEN isnotnull(roundedQuantitySum#1141050) THEN array(roundedQuantitySum#1141050) ELSE array(0.0) END AS stockBatchQuantities#1141052]
(2152) Project
Arguments: [product#1140729, plant#1140730, orderDateTime#1140731, productPlant#1140741, timezonecode#1140755, outboundUnit#1140772, roundedQuantitySum#1141050, minCalculationDateTime#1141049, stockDatetime#1141051, stockBatchQuantities#1141052, array(2199-01-01 00:00:00) AS stockBatchShelfLifeEndDatetimes#1141053]
(2153) Project
Arguments: [product#1140729, plant#1140730, orderDateTime#1140731, productPlant#1140741, timezonecode#1140755, outboundUnit#1140772, roundedQuantitySum#1141050, stockDatetime#1141051, stockBatchQuantities#1141052, stockBatchShelfLifeEndDatetimes#1141053]
(2154) Project
Arguments: [product#1140729, plant#1140730, orderDateTime#1140731, productPlant#1140741, timezonecode#1140755, outboundUnit#1140772, stockDatetime#1141051, stockBatchQuantities#1141052, stockBatchShelfLifeEndDatetimes#1141053]
(2155) LogicalRelation
Arguments: parquet, [product#1141054, plant#1141055, demandChannel#1141056, demandStream#1141057, considerVariance#1141058, demandTimeBuckets#1141059, demandPointInTimeStart#1141060, demandPointInTimeEnd#1141061, demandPointInTime#1141062], false
(2156) Join
Arguments: LeftOuter, ((product#1140729 = product#1141054) AND (plant#1140730 = plant#1141055))
(2157) Project
Arguments: [product#1140729, plant#1140730, orderDateTime#1140731, productPlant#1140741, timezonecode#1140755, outboundUnit#1140772, stockDatetime#1141051, stockBatchQuantities#1141052, stockBatchShelfLifeEndDatetimes#1141053, demandChannel#1141056, demandStream#1141057, considerVariance#1141058, demandTimeBuckets#1141059, demandPointInTimeStart#1141060, demandPointInTimeEnd#1141061, demandPointInTime#1141062, product#1141054, plant#1141055]
(2158) Project
Arguments: [product#1140729, plant#1140730, orderDateTime#1140731, productPlant#1140741, timezonecode#1140755, outboundUnit#1140772, stockDatetime#1141051, stockBatchQuantities#1141052, stockBatchShelfLifeEndDatetimes#1141053, demandChannel#1141056, demandStream#1141057, considerVariance#1141058, demandTimeBuckets#1141059, demandPointInTimeStart#1141060, demandPointInTimeEnd#1141061, demandPointInTime#1141062, CASE WHEN isnotnull(product#1141054) THEN struct(demandChannel, demandChannel#1141056, demandStream, demandStream#1141057, considerVariance, considerVariance#1141058, demandTimeBuckets, demandTimeBuckets#1141059, demandPointInTimeStart, demandPointInTimeStart#1141060, demandPointInTimeEnd, demandPointInTimeEnd#1141061, demandPointInTime, demandPointInTime#1141062) ELSE cast(null as struct<demandChannel:string,demandStream:string,considerVariance:boolean,demandTimeBuckets:array<struct<demandStartDateTime:timestamp,demandQuantity:double,demandVariance:double>>,demandPointInTimeStart:timestamp,demandPointInTimeEnd:timestamp,demandPointInTime:array<struct<demandDateTime:timestamp,demandQuantity:double,demandVariance:double>>>) END AS rawDemands#1141063]
(2159) Aggregate
Arguments: [product#1140729, plant#1140730, orderDateTime#1140731, productPlant#1140741, timezonecode#1140755, outboundUnit#1140772, stockDatetime#1141051, stockBatchQuantities#1141052, stockBatchShelfLifeEndDatetimes#1141053], [product#1140729, plant#1140730, orderDateTime#1140731, productPlant#1140741, timezonecode#1140755, outboundUnit#1140772, stockDatetime#1141051, stockBatchQuantities#1141052, stockBatchShelfLifeEndDatetimes#1141053, collect_list(rawDemands#1141063, 0, 0) AS rawDemands#1141064]
(2160) DeserializeToObject
Arguments: createexternalrow(invoke(product#1140729.toString()), invoke(plant#1140730.toString()), static_invoke(DateTimeUtils.toJavaTimestamp(orderDateTime#1140731)), if (isnull(productPlant#1140741)) null else createexternalrow(invoke(productPlant#1140741.systemId.toString()), invoke(productPlant#1140741.internalUUID.toString()), if (isnull(productPlant#1140741.plant)) null else createexternalrow(invoke(productPlant#1140741.plant.internalRefUUID.toString()), invoke(productPlant#1140741.plant.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), if (isnull(productPlant#1140741.product)) null else createexternalrow(invoke(productPlant#1140741.product.internalRefUUID.toString()), invoke(productPlant#1140741.product.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(DateTimeUtils.toJavaDate(productPlant#1140741.blockedForReplenishmentStartingFrom)), if (isnull(productPlant#1140741.productionAspect)) null else createexternalrow(if (isnull(productPlant#1140741.productionAspect.productMovementPlants)) null else createexternalrow(if (isnull(productPlant#1140741.productionAspect.productMovementPlants.unitOfIssue)) null else createexternalrow(invoke(productPlant#1140741.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID.toString()), invoke(productPlant#1140741.productionAspect.productMovementPlants.unitOfIssue.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), if (isnull(productPlant#1140741.productionAspect.productPlanningPlants)) null else createexternalrow(if (isnull(productPlant#1140741.productionAspect.productPlanningPlants.mrpType)) null else createexternalrow(invoke(productPlant#1140741.productionAspect.productPlanningPlants.mrpType.internalRefUUID.toString()), invoke(productPlant#1140741.productionAspect.productPlanningPlants.mrpType.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1140741.productionAspect.productPlanningPlants.abcIndicator)) null else createexternalrow(invoke(productPlant#1140741.productionAspect.productPlanningPlants.abcIndicator.internalRefUUID.toString()), invoke(productPlant#1140741.productionAspect.productPlanningPlants.abcIndicator.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1140741.productionAspect.productPlanningPlants.mrpController)) null else createexternalrow(invoke(productPlant#1140741.productionAspect.productPlanningPlants.mrpController.internalRefUUID.toString()), invoke(productPlant#1140741.productionAspect.productPlanningPlants.mrpController.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(java.lang.Double.valueOf(productPlant#1140741.productionAspect.productPlanningPlants.minimumLotSize)), if (isnull(productPlant#1140741.productionAspect.productPlanningPlants.logisticalRoundingProfile)) null else createexternalrow(invoke(productPlant#1140741.productionAspect.productPlanningPlants.logisticalRoundingProfile.internalRefUUID.toString()), invoke(productPlant#1140741.productionAspect.productPlanningPlants.logisticalRoundingProfile.logisticalRoundingProfile.toString()), StructField(internalRefUUID,StringType,true), StructField(logisticalRoundingProfile,StringType,true)), if (isnull(productPlant#1140741.productionAspect.productPlanningPlants.sourceOfSupplyCategory)) null else createexternalrow(invoke(productPlant#1140741.productionAspect.productPlanningPlants.sourceOfSupplyCategory.internalRefUUID.toString()), invoke(productPlant#1140741.productionAspect.productPlanningPlants.sourceOfSupplyCategory.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true), StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true), StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(minimumLotSize,DoubleType,true), StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true), StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true), StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)), if (isnull(productPlant#1140741.salesPlant)) null else createexternalrow(if (isnull(productPlant#1140741.salesPlant.loadingGroup)) null else createexternalrow(invoke(productPlant#1140741.salesPlant.loadingGroup.internalRefUUID.toString()), invoke(productPlant#1140741.salesPlant.loadingGroup.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), mapobjects(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 152118), if (isnull(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 152118))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 152118).validFrom)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 152118).validTo)), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 152118).isListed)), StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true)), productPlant#1140741.listing, Some(class scala.collection.mutable.ArraySeq)), StructField(systemId,StringType,true), StructField(internalUUID,StringType,true), StructField(plant,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(product,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(blockedForReplenishmentStartingFrom,DateType,true), StructField(productionAspect,StructType(StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)),true), StructField(salesPlant,StructType(StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true), StructField(listing,ArrayType(StructType(StructField(validFrom,TimestampType,true),StructField(validTo,TimestampType,true),StructField(isListed,BooleanType,true)),true),true)), invoke(timezonecode#1140755.toString()), static_invoke(java.lang.Double.valueOf(outboundUnit#1140772)), static_invoke(DateTimeUtils.toJavaTimestamp(stockDatetime#1141051)), mapobjects(lambdavariable(MapObject, DoubleType, true, 152119), static_invoke(java.lang.Double.valueOf(cast(lambdavariable(MapObject, DoubleType, true, 152119) as double))), stockBatchQuantities#1141052, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, false, 152120), assertnotnull(static_invoke(DateTimeUtils.toJavaTimestamp(cast(lambdavariable(MapObject, TimestampType, false, 152120) as timestamp)))), stockBatchShelfLifeEndDatetimes#1141053, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, 152121), assertnotnull(if (isnull(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, 152121))) null else createexternalrow(invoke(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, 152121).demandChannel.toString()), invoke(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, 152121).demandStream.toString()), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, 152121).considerVariance)), mapobjects(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 152122), if (isnull(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 152122))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 152122).demandStartDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 152122).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 152122).demandVariance)), StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true)), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, 152121).demandTimeBuckets, Some(class scala.collection.mutable.ArraySeq)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, 152121).demandPointInTimeStart)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, 152121).demandPointInTimeEnd)), mapobjects(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 152123), if (isnull(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 152123))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 152123).demandDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 152123).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 152123).demandVariance)), StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true)), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, 152121).demandPointInTime, Some(class scala.collection.mutable.ArraySeq)), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true))), rawDemands#1141064, Some(class scala.collection.mutable.ArraySeq)), StructField(product,StringType,true), StructField(plant,StringType,true), StructField(orderDateTime,TimestampType,true), StructField(productPlant,StructType(StructField(systemId,StringType,true),StructField(internalUUID,StringType,true),StructField(plant,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(product,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(blockedForReplenishmentStartingFrom,DateType,true),StructField(productionAspect,StructType(StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)),true),StructField(salesPlant,StructType(StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(listing,ArrayType(StructType(StructField(validFrom,TimestampType,true),StructField(validTo,TimestampType,true),StructField(isListed,BooleanType,true)),true),true)),true), StructField(timezonecode,StringType,true), StructField(outboundUnit,DoubleType,true), StructField(stockDatetime,TimestampType,true), StructField(stockBatchQuantities,ArrayType(DoubleType,true),false), StructField(stockBatchShelfLifeEndDatetimes,ArrayType(TimestampType,false),false), StructField(rawDemands,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(considerVariance,BooleanType,true),StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true),StructField(demandPointInTimeStart,TimestampType,true),StructField(demandPointInTimeEnd,TimestampType,true),StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true)),false),false)), obj#1136159: org.apache.spark.sql.Row
(2161) MapElements
Arguments: com.sap.s4hana.eureka.business.crporderquantitykpiservice.core.business.datasnapshot.DemandTransformatorImpl$$Lambda/0x00000008023bc120@a39b9be, interface org.apache.spark.sql.Row, [StructField(product,StringType,true), StructField(plant,StringType,true), StructField(orderDateTime,TimestampType,true), StructField(productPlant,StructType(StructField(systemId,StringType,true),StructField(internalUUID,StringType,true),StructField(plant,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(product,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(blockedForReplenishmentStartingFrom,DateType,true),StructField(productionAspect,StructType(StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)),true),StructField(salesPlant,StructType(StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(listing,ArrayType(StructType(StructField(validFrom,TimestampType,true),StructField(validTo,TimestampType,true),StructField(isListed,BooleanType,true)),true),true)),true), StructField(timezonecode,StringType,true), StructField(outboundUnit,DoubleType,true), StructField(stockDatetime,TimestampType,true), StructField(stockBatchQuantities,ArrayType(DoubleType,true),false), StructField(stockBatchShelfLifeEndDatetimes,ArrayType(TimestampType,false),false), StructField(rawDemands,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(considerVariance,BooleanType,true),StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true),StructField(demandPointInTimeStart,TimestampType,true),StructField(demandPointInTimeEnd,TimestampType,true),StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true)),false),false)], obj#1136164: org.apache.spark.sql.Row
(2162) SerializeFromObject
Arguments: [if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(0))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 0, product), StringType, ObjectType(class java.lang.String)))) AS product#1141065, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(1))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 1, plant), StringType, ObjectType(class java.lang.String)))) AS plant#1141066, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(2))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), assertnotnull(if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)))) null else named_struct(demandChannel, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(0))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 0, demandChannel), StringType, ObjectType(class java.lang.String)))), demandStream, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(1))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 1, demandStream), StringType, ObjectType(class java.lang.String)))), considerVariance, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(2))) null else invoke(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 2, considerVariance), BooleanType, ObjectType(class java.lang.Boolean)).booleanValue()), demandValues, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(3))) null else if (invoke(class [D.isInstance(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 3, demandValues), ArrayType(DoubleType,false), ObjectType(class java.lang.Object))))) static_invoke(ArrayData.toArrayData(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 3, demandValues), ArrayType(DoubleType,false), ObjectType(class java.lang.Object)))) else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152109), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152109), DoubleType, ObjectType(class java.lang.Double)).doubleValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 3, demandValues), ArrayType(DoubleType,false), ObjectType(class java.lang.Object)), None), demandVariances, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(4))) null else if (invoke(class [D.isInstance(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 4, demandVariances), ArrayType(DoubleType,true), ObjectType(class java.lang.Object))))) static_invoke(ArrayData.toArrayData(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 4, demandVariances), ArrayType(DoubleType,true), ObjectType(class java.lang.Object)))) else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152110), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152110), DoubleType, ObjectType(class java.lang.Double)).doubleValue()), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 4, demandVariances), ArrayType(DoubleType,true), ObjectType(class java.lang.Object)), None), anchorDatetimes, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(5))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152111), assertnotnull(static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152111), TimestampType, ObjectType(class java.sql.Timestamp))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 5, anchorDatetimes), ArrayType(TimestampType,false), ObjectType(class java.lang.Object)), None), anchorWeekdays, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(6))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152112), assertnotnull(static_invoke(UTF8String.fromString(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152112), StringType, ObjectType(class java.lang.String))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 6, anchorWeekdays), ArrayType(StringType,false), ObjectType(class java.lang.Object)), None), anchorIndices, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(7))) null else if (invoke(class [I.isInstance(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 7, anchorIndices), ArrayType(IntegerType,false), ObjectType(class java.lang.Object))))) static_invoke(ArrayData.toArrayData(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 7, anchorIndices), ArrayType(IntegerType,false), ObjectType(class java.lang.Object)))) else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152113), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152113), IntegerType, ObjectType(class java.lang.Integer)).intValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 7, anchorIndices), ArrayType(IntegerType,false), ObjectType(class java.lang.Object)), None))), validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 2, dayBucketDemands), ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(considerVariance,BooleanType,true),StructField(demandValues,ArrayType(DoubleType,false),true),StructField(demandVariances,ArrayType(DoubleType,true),true),StructField(anchorDatetimes,ArrayType(TimestampType,false),true),StructField(anchorWeekdays,ArrayType(StringType,false),true),StructField(anchorIndices,ArrayType(IntegerType,false),true)),false), ObjectType(class java.lang.Object)), None) AS dayBucketDemands#1141067, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(3))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), assertnotnull(if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)))) null else named_struct(demandChannel, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(0))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 0, demandChannel), StringType, ObjectType(class java.lang.String)))), demandStream, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(1))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 1, demandStream), StringType, ObjectType(class java.lang.String)))), considerVariance, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(2))) null else invoke(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 2, considerVariance), BooleanType, ObjectType(class java.lang.Boolean)).booleanValue()), demandDatetimes, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(3))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152115), assertnotnull(static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152115), TimestampType, ObjectType(class java.sql.Timestamp))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 3, demandDatetimes), ArrayType(TimestampType,false), ObjectType(class java.lang.Object)), None), demandValues, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(4))) null else if (invoke(class [D.isInstance(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 4, demandValues), ArrayType(DoubleType,false), ObjectType(class java.lang.Object))))) static_invoke(ArrayData.toArrayData(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 4, demandValues), ArrayType(DoubleType,false), ObjectType(class java.lang.Object)))) else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152116), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152116), DoubleType, ObjectType(class java.lang.Double)).doubleValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 4, demandValues), ArrayType(DoubleType,false), ObjectType(class java.lang.Object)), None), demandVariances, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(5))) null else if (invoke(class [D.isInstance(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 5, demandVariances), ArrayType(DoubleType,true), ObjectType(class java.lang.Object))))) static_invoke(ArrayData.toArrayData(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 5, demandVariances), ArrayType(DoubleType,true), ObjectType(class java.lang.Object)))) else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152117), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152117), DoubleType, ObjectType(class java.lang.Double)).doubleValue()), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 5, demandVariances), ArrayType(DoubleType,true), ObjectType(class java.lang.Object)), None), horizonStartDatetime, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(6))) null else static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 6, horizonStartDatetime), TimestampType, ObjectType(class java.sql.Timestamp)))), horizonEndDatetime, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(7))) null else static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 7, horizonEndDatetime), TimestampType, ObjectType(class java.sql.Timestamp)))))), validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 3, pointInTimeDemands), ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(considerVariance,BooleanType,true),StructField(demandDatetimes,ArrayType(TimestampType,false),true),StructField(demandValues,ArrayType(DoubleType,false),true),StructField(demandVariances,ArrayType(DoubleType,true),true),StructField(horizonStartDatetime,TimestampType,true),StructField(horizonEndDatetime,TimestampType,true)),false), ObjectType(class java.lang.Object)), None) AS pointInTimeDemands#1141068]
(2163) Join
Arguments: LeftOuter, ((plant#1141066 <=> plant#1140405) AND (product#1141065 <=> product#1140404))
(2164) Project
Arguments: [product#1140404, plant#1140405, orderDateTime#1140406, productPlant#1140416, timezonecode#1140430, outboundUnit#1140447, stockDatetime#1140726, stockBatchQuantities#1140727, stockBatchShelfLifeEndDatetimes#1140728, plant#1141066, dayBucketDemands#1141067, pointInTimeDemands#1141068]
(2165) Project
Arguments: [product#1140404, plant#1140405, orderDateTime#1140406, productPlant#1140416, timezonecode#1140430, outboundUnit#1140447, stockDatetime#1140726, stockBatchQuantities#1140727, stockBatchShelfLifeEndDatetimes#1140728, dayBucketDemands#1141067, pointInTimeDemands#1141068]
(2166) LogicalRelation
Arguments: parquet, [marketUnit#1141069, description#1141070, articleHierarchy#1141071, defaultCurrency#1141072, responsibilities#1141073, replenishmentTypes#1141074, distributionCenters#1141075, assignedArticleHierarchyNodes#1141076, minOrderQtySetting#1141077, listingCheck#1141078, odsSelection#1141079, demandProfiles#1141080, constraintProfiles#1141081, optimizationProfiles#1141082, orderGroupSplitProfiles#1141083, supplierMinimumProfiles#1141084, multipleRestrictionProfiles#1141085, preferredUomSource#1141086, handlingOfUnfulfilledDemands#1141087, negligibleQuantitiesThreshold#1141088, eventtype#1141089, minOrderQtySettingInternal#1141090], false
(2167) Repartition
Arguments: 37, true
(2168) Filter
Arguments: (marketUnit#1141069 <=> Alert_Test1)
(2169) Project
Arguments: [marketUnit#1141069, description#1141070, articleHierarchy#1141071, defaultCurrency#1141072, responsibilities#1141073, replenishmentTypes#1141074, distributionCenters#1141075, assignedArticleHierarchyNodes#1141076, minOrderQtySetting#1141077, listingCheck#1141078, odsSelection#1141079, demandProfiles#1141080, constraintProfiles#1141081, optimizationProfiles#1141082, orderGroupSplitProfiles#1141083, supplierMinimumProfiles#1141084, multipleRestrictionProfiles#1141085, preferredUomSource#1141086, handlingOfUnfulfilledDemands#1141087, negligibleQuantitiesThreshold#1141088, eventtype#1141089, minOrderQtySettingInternal#1141090]
(2170) Project
Arguments: [distributionCenters#1141075]
(2171) Generate
Arguments: explode(distributionCenters#1141075), false, [distributionCenters#1141091]
(2172) Project
Arguments: [distributionCenters#1141091]
(2173) Generate
Arguments: explode(distributionCenters#1141091.storageLocations), false, [storageLocations#1141092]
(2174) Project
Arguments: [distributionCenters#1141091.id AS plantId#1141093, distributionCenters#1141091.internalRefUUID AS plantUuid#1141094, storageLocations#1141092]
(2175) Project
Arguments: [plantId#1141093, plantUuid#1141094, storageLocations#1141092.id AS storageLocId#1141095, storageLocations#1141092.internalRefUUID AS storageLocUuid#1141096]
(2176) LogicalRelation
Arguments: parquet, [product#1141097, plant#1141098, orderDateTime#1141099, planningStartDateTime#1141100], false
(2177) RepartitionByExpression
Arguments: [product#1141097, plant#1141098], 37
(2178) Project
Arguments: [product#1141097, plant#1141098, orderDateTime#1141099]
(2179) LogicalRelation
Arguments: parquet, [systemId#1141101, internalUUID#1141102, plant#1141103, product#1141104, blockedForReplenishmentStartingFrom#1141105, productionAspect#1141106, salesPlant#1141107, listing#1141108], false
(2180) Repartition
Arguments: 37, true
(2181) Project
Arguments: [systemId#1141101, internalUUID#1141102, plant#1141103, product#1141104, blockedForReplenishmentStartingFrom#1141105, productionAspect#1141106, salesPlant#1141107, listing#1141108, struct(systemId, systemId#1141101, internalUUID, internalUUID#1141102, plant, plant#1141103, product, product#1141104, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1141105, productionAspect, productionAspect#1141106, salesPlant, salesPlant#1141107, listing, listing#1141108) AS productPlant#1141109]
(2182) Project
Arguments: [productPlant#1141109]
(2183) Join
Arguments: LeftOuter, ((product#1141097 <=> productPlant#1141109.product.internalRefUUID) AND (plant#1141098 <=> productPlant#1141109.plant.internalRefUUID))
(2184) Project
Arguments: [product#1141097, plant#1141098, orderDateTime#1141099, productPlant#1141109]
(2185) SubqueryAlias
Arguments: wl
(2186) LogicalRelation
Arguments: parquet, [systemId#1141110, internalUUID#1141111, id#1141112, displayId#1141113, name#1141114, category#1141115, companyCode#1141116, address#1141117, mainDistributionChain#1141118, mainPurchasingOrganization#1141119, validPurchasingOrganizations#1141120, productGroup#1141121], false
(2187) Repartition
Arguments: 37, true
(2188) Project
Arguments: [internalUUID#1141111, address#1141117.timeZone.code AS timezonecode#1141122]
(2189) Join
Arguments: LeftOuter, (plant#1141098 <=> internalUUID#1141111)
(2190) Project
Arguments: [product#1141097, plant#1141098, orderDateTime#1141099, productPlant#1141109, internalUUID#1141111, CASE WHEN isnotnull(timezonecode#1141122) THEN timezonecode#1141122 ELSE UTC END AS timezonecode#1141123]
(2191) Project
Arguments: [product#1141097, plant#1141098, orderDateTime#1141099, productPlant#1141109, timezonecode#1141123]
(2192) LogicalRelation
Arguments: parquet, [systemId#1141124, internalUUID#1141125, id#1141126, displayId#1141127, name#1141128, baseUnitOfMeasure#1141129, unitOfMeasures#1141130, unitOfMeasureConversions#1141131, productionAspect#1141132, salesAspect#1141133, procurementAspect#1141134, productGroup#1141135], false
(2193) Repartition
Arguments: 37, true
(2194) Join
Arguments: LeftOuter, (product#1141097 = internalUUID#1141125)
(2195) Project
Arguments: [product#1141097, plant#1141098, orderDateTime#1141099, productPlant#1141109, timezonecode#1141123, systemId#1141124, internalUUID#1141125, id#1141126, displayId#1141127, name#1141128, baseUnitOfMeasure#1141129, unitOfMeasures#1141130, unitOfMeasureConversions#1141131, productionAspect#1141132, salesAspect#1141133, procurementAspect#1141134, productGroup#1141135, filter(unitOfMeasureConversions#1141131, lambdafunction((((lambda u#1135738.measurementUnit1.code = productPlant#1141109.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1135738.measurementUnit1.internalRefUUID = productPlant#1141109.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1141129.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1141129.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1141136]
(2196) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1141136.quantityNumerator), true, [quantityNumerator#1141137]
(2197) Project
Arguments: [product#1141097, plant#1141098, orderDateTime#1141099, productPlant#1141109, timezonecode#1141123, systemId#1141124, internalUUID#1141125, id#1141126, displayId#1141127, name#1141128, baseUnitOfMeasure#1141129, unitOfMeasures#1141130, unitOfMeasureConversions#1141131, productionAspect#1141132, salesAspect#1141133, procurementAspect#1141134, productGroup#1141135, filteredUnitOfMeasureConversions#1141136, quantityNumerator#1141137]
(2198) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1141136.quantityDenominator), true, [quantityDenominator#1141138]
(2199) Project
Arguments: [product#1141097, plant#1141098, orderDateTime#1141099, productPlant#1141109, timezonecode#1141123, systemId#1141124, internalUUID#1141125, id#1141126, displayId#1141127, name#1141128, baseUnitOfMeasure#1141129, unitOfMeasures#1141130, unitOfMeasureConversions#1141131, productionAspect#1141132, salesAspect#1141133, procurementAspect#1141134, productGroup#1141135, filteredUnitOfMeasureConversions#1141136, quantityNumerator#1141137, quantityDenominator#1141138]
(2200) Project
Arguments: [product#1141097, plant#1141098, orderDateTime#1141099, productPlant#1141109, timezonecode#1141123, systemId#1141124, internalUUID#1141125, id#1141126, displayId#1141127, name#1141128, baseUnitOfMeasure#1141129, unitOfMeasures#1141130, unitOfMeasureConversions#1141131, productionAspect#1141132, salesAspect#1141133, procurementAspect#1141134, productGroup#1141135, filteredUnitOfMeasureConversions#1141136, quantityNumerator#1141137, quantityDenominator#1141138, (cast(quantityNumerator#1141137 as double) / cast(quantityDenominator#1141138 as double)) AS outboundUnit#1141139]
(2201) Project
Arguments: [product#1141097, plant#1141098, orderDateTime#1141099, productPlant#1141109, timezonecode#1141123, systemId#1141124, internalUUID#1141125, id#1141126, displayId#1141127, name#1141128, baseUnitOfMeasure#1141129, unitOfMeasures#1141130, unitOfMeasureConversions#1141131, productionAspect#1141132, salesAspect#1141133, procurementAspect#1141134, productGroup#1141135, filteredUnitOfMeasureConversions#1141136, quantityNumerator#1141137, quantityDenominator#1141138, CASE WHEN (isnull(outboundUnit#1141139) OR (outboundUnit#1141139 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1141139 END AS outboundUnit#1141140]
(2202) Project
Arguments: [product#1141097, plant#1141098, orderDateTime#1141099, productPlant#1141109, timezonecode#1141123, outboundUnit#1141140]
(2203) Project
Arguments: [plant#1141098]
(2204) Deduplicate
Arguments: [plant#1141098]
(2205) Join
Arguments: Inner, (plantUuid#1141094 = plant#1141098)
(2206) Project
Arguments: [plantId#1141093, plantUuid#1141094, storageLocId#1141095, storageLocUuid#1141096]
(2207) Project
Arguments: [plantId#1141093, plantUuid#1141094 AS plant#1141141, storageLocId#1141095, storageLocUuid#1141096]
(2208) Join
Arguments: Inner, (plant#1140405 = plant#1141141)
(2209) Project
Arguments: [plant#1140405, product#1140404, orderDateTime#1140406, productPlant#1140416, timezonecode#1140430, outboundUnit#1140447, stockDatetime#1140726, stockBatchQuantities#1140727, stockBatchShelfLifeEndDatetimes#1140728, dayBucketDemands#1141067, pointInTimeDemands#1141068, plantId#1141093, storageLocId#1141095, storageLocUuid#1141096, plant#1141141]
(2210) LogicalRelation
Arguments: parquet, [systemId#1141142, internalUUID#1141143, id#1141144, displayId#1141145, supplier#1141146, type#1141147, status#1141148, isMarkedForDeletion#1141149, items#1141150], false
(2211) Repartition
Arguments: 37, true
(2212) Generate
Arguments: explode(items#1141150), false, [item#1141151]
(2213) Project
Arguments: [id#1141144, internalUUID#1141143, isMarkedForDeletion#1141149, supplier#1141146.internalRefUUID AS supplierUuid#1141152, item#1141151]
(2214) Filter
Arguments: (((NOT isMarkedForDeletion#1141149 AND NOT item#1141151.deletionIndicator) AND NOT item#1141151.completeIndicator) AND NOT item#1141151.returnIndicator)
(2215) Project
Arguments: [id#1141144, internalUUID#1141143, supplierUuid#1141152, item#1141151.plant.internalRefUUID AS plant#1141153, item#1141151.product.internalRefUUID AS product#1141154, item#1141151.plant.id AS externalPlantId#1141155, item#1141151.product.id AS externalProductId#1141156, item#1141151.storageLocation.internalRefUUID AS storageLocUuid#1141157, item#1141151.quantityUnit.code AS quantityUom#1141158, item#1141151.quantityUnit.internalRefUUID AS quantityUomUuid#1141159, item#1141151.quantityNumerator AS quantityNumerator#1141160, item#1141151.quantityDenominator AS quantityDenominator#1141161, item#1141151.scheduleLines AS scheduleLines#1141162, item#1141151.confirmations AS confirmations#1141163]
(2216) Join
Arguments: Inner, (((product#1140404 = product#1141154) AND (plant#1140405 = plant#1141153)) AND (storageLocUuid#1141096 = storageLocUuid#1141157))
(2217) Project
Arguments: [product#1140404, plant#1140405, storageLocUuid#1141096, orderDateTime#1140406, productPlant#1140416, timezonecode#1140430, outboundUnit#1140447, stockDatetime#1140726, stockBatchQuantities#1140727, stockBatchShelfLifeEndDatetimes#1140728, dayBucketDemands#1141067, pointInTimeDemands#1141068, plantId#1141093, storageLocId#1141095, id#1141144, internalUUID#1141143, supplierUuid#1141152, externalPlantId#1141155, externalProductId#1141156, quantityUom#1141158, quantityUomUuid#1141159, quantityNumerator#1141160, quantityDenominator#1141161, scheduleLines#1141162, confirmations#1141163, ... 4 more fields]
(2218) Project
Arguments: [id#1141144, internalUUID#1141143, supplierUuid#1141152, plant#1141153, product#1141154, externalPlantId#1141155, externalProductId#1141156, storageLocUuid#1141157, quantityUom#1141158, quantityUomUuid#1141159, quantityNumerator#1141160, quantityDenominator#1141161, scheduleLines#1141162, confirmations#1141163, stockDatetime#1140726, timezonecode#1140430]
(2219) Project
Arguments: [id#1141144, internalUUID#1141143, supplierUuid#1141152, plant#1141153, product#1141154, externalPlantId#1141155, externalProductId#1141156, storageLocUuid#1141157, quantityUom#1141158, quantityUomUuid#1141159, quantityNumerator#1141160, quantityDenominator#1141161, scheduleLines#1141162, confirmations#1141163, stockDatetime#1140726, timezonecode#1140430, filter(confirmations#1141163, lambdafunction((((lambda x_129#1136640.deletionIndicator = false) AND (lambda x_129#1136640.isRelevantForConfirmation = true)) AND isnotnull(lambda x_129#1136640.confirmedDeliveryAt)), lambda x_129#1136640, false)) AS validConfirmations#1141164]
(2220) Project
Arguments: [id#1141144, internalUUID#1141143, supplierUuid#1141152, plant#1141153, product#1141154, externalPlantId#1141155, externalProductId#1141156, storageLocUuid#1141157, quantityUom#1141158, quantityUomUuid#1141159, quantityNumerator#1141160, quantityDenominator#1141161, scheduleLines#1141162, confirmations#1141163, stockDatetime#1140726, timezonecode#1140430, validConfirmations#1141164, array_size(validConfirmations#1141164) AS _w0#1141165]
(2221) Window
Arguments: [sum(_w0#1141165) windowspecdefinition(internalUUID#1141143, specifiedwindowframe(RowFrame, unboundedpreceding$(), unboundedfollowing$())) AS _we0#1141166L], [internalUUID#1141143]
(2222) Project
Arguments: [id#1141144, internalUUID#1141143, supplierUuid#1141152, plant#1141153, product#1141154, externalPlantId#1141155, externalProductId#1141156, storageLocUuid#1141157, quantityUom#1141158, quantityUomUuid#1141159, quantityNumerator#1141160, quantityDenominator#1141161, scheduleLines#1141162, confirmations#1141163, stockDatetime#1140726, timezonecode#1140430, validConfirmations#1141164, _w0#1141165, _we0#1141166L, filter(transform(CASE WHEN (_we0#1141166L > cast(0 as bigint)) THEN transform(validConfirmations#1141164, lambdafunction(struct(openQty, greatest((lambda x_131#1137652.confirmedQuantity - coalesce(lambda x_131#1137652.mrpRelevantQuantity, 0.0)), 0.0), availabilityDatetime, lambda x_131#1137652.confirmedDeliveryAt), lambda x_131#1137652, false)) ELSE transform(scheduleLines#1141162, lambdafunction(struct(openQty, greatest((lambda x_130#1137653.quantity - coalesce(lambda x_130#1137653.receivedQuantity, 0.0)), 0.0), availabilityDatetime, lambda x_130#1137653.deliveryAt), lambda x_130#1137653, false)) END, lambdafunction(struct(documentId, id#1141144, documentUuid, internalUUID#1141143, openQty, lambda x_132#1137654.openQty, openQtyInBaseUnit, ((lambda x_132#1137654.openQty * quantityNumerator#1141160) / quantityDenominator#1141161), qtyUom, quantityUom#1141158, qtyUomUuid, quantityUomUuid#1141159, availabilityDatetime, lambda x_132#1137654.availabilityDatetime, shelfLifeEndDatetime, 2199-01-01 00:00:00), lambda x_132#1137654, false)), lambdafunction(NOT (lambda x_133#1137655.openQty = 0.0), lambda x_133#1137655, false)) AS openGoodsMovements#1141167]
(2223) Project
Arguments: [id#1141144, internalUUID#1141143, supplierUuid#1141152, plant#1141153, product#1141154, externalPlantId#1141155, externalProductId#1141156, storageLocUuid#1141157, quantityUom#1141158, quantityUomUuid#1141159, quantityNumerator#1141160, quantityDenominator#1141161, scheduleLines#1141162, confirmations#1141163, stockDatetime#1140726, timezonecode#1140430, validConfirmations#1141164, openGoodsMovements#1141167]
(2224) Aggregate
Arguments: [product#1141154, plant#1141153], [product#1141154, plant#1141153, flatten(collect_list(openGoodsMovements#1141167, 0, 0)) AS openGoodsMovements#1141168]
(2225) Filter
Arguments: (array_size(openGoodsMovements#1141168) > 0)
(2226) LogicalRelation
Arguments: parquet, [product#1141169, plant#1141170, orderDateTime#1141171, planningStartDateTime#1141172], false
(2227) RepartitionByExpression
Arguments: [product#1141169, plant#1141170], 37
(2228) Project
Arguments: [product#1141169, plant#1141170, orderDateTime#1141171]
(2229) LogicalRelation
Arguments: parquet, [systemId#1141173, internalUUID#1141174, plant#1141175, product#1141176, blockedForReplenishmentStartingFrom#1141177, productionAspect#1141178, salesPlant#1141179, listing#1141180], false
(2230) Repartition
Arguments: 37, true
(2231) Project
Arguments: [systemId#1141173, internalUUID#1141174, plant#1141175, product#1141176, blockedForReplenishmentStartingFrom#1141177, productionAspect#1141178, salesPlant#1141179, listing#1141180, struct(systemId, systemId#1141173, internalUUID, internalUUID#1141174, plant, plant#1141175, product, product#1141176, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1141177, productionAspect, productionAspect#1141178, salesPlant, salesPlant#1141179, listing, listing#1141180) AS productPlant#1141181]
(2232) Project
Arguments: [productPlant#1141181]
(2233) Join
Arguments: LeftOuter, ((product#1141169 <=> productPlant#1141181.product.internalRefUUID) AND (plant#1141170 <=> productPlant#1141181.plant.internalRefUUID))
(2234) Project
Arguments: [product#1141169, plant#1141170, orderDateTime#1141171, productPlant#1141181]
(2235) SubqueryAlias
Arguments: wl
(2236) LogicalRelation
Arguments: parquet, [systemId#1141182, internalUUID#1141183, id#1141184, displayId#1141185, name#1141186, category#1141187, companyCode#1141188, address#1141189, mainDistributionChain#1141190, mainPurchasingOrganization#1141191, validPurchasingOrganizations#1141192, productGroup#1141193], false
(2237) Repartition
Arguments: 37, true
(2238) Project
Arguments: [internalUUID#1141183, address#1141189.timeZone.code AS timezonecode#1141194]
(2239) Join
Arguments: LeftOuter, (plant#1141170 <=> internalUUID#1141183)
(2240) Project
Arguments: [product#1141169, plant#1141170, orderDateTime#1141171, productPlant#1141181, internalUUID#1141183, CASE WHEN isnotnull(timezonecode#1141194) THEN timezonecode#1141194 ELSE UTC END AS timezonecode#1141195]
(2241) Project
Arguments: [product#1141169, plant#1141170, orderDateTime#1141171, productPlant#1141181, timezonecode#1141195]
(2242) LogicalRelation
Arguments: parquet, [systemId#1141196, internalUUID#1141197, id#1141198, displayId#1141199, name#1141200, baseUnitOfMeasure#1141201, unitOfMeasures#1141202, unitOfMeasureConversions#1141203, productionAspect#1141204, salesAspect#1141205, procurementAspect#1141206, productGroup#1141207], false
(2243) Repartition
Arguments: 37, true
(2244) Join
Arguments: LeftOuter, (product#1141169 = internalUUID#1141197)
(2245) Project
Arguments: [product#1141169, plant#1141170, orderDateTime#1141171, productPlant#1141181, timezonecode#1141195, systemId#1141196, internalUUID#1141197, id#1141198, displayId#1141199, name#1141200, baseUnitOfMeasure#1141201, unitOfMeasures#1141202, unitOfMeasureConversions#1141203, productionAspect#1141204, salesAspect#1141205, procurementAspect#1141206, productGroup#1141207, filter(unitOfMeasureConversions#1141203, lambdafunction((((lambda u#1135738.measurementUnit1.code = productPlant#1141181.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1135738.measurementUnit1.internalRefUUID = productPlant#1141181.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1141201.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1141201.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1141208]
(2246) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1141208.quantityNumerator), true, [quantityNumerator#1141209]
(2247) Project
Arguments: [product#1141169, plant#1141170, orderDateTime#1141171, productPlant#1141181, timezonecode#1141195, systemId#1141196, internalUUID#1141197, id#1141198, displayId#1141199, name#1141200, baseUnitOfMeasure#1141201, unitOfMeasures#1141202, unitOfMeasureConversions#1141203, productionAspect#1141204, salesAspect#1141205, procurementAspect#1141206, productGroup#1141207, filteredUnitOfMeasureConversions#1141208, quantityNumerator#1141209]
(2248) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1141208.quantityDenominator), true, [quantityDenominator#1141210]
(2249) Project
Arguments: [product#1141169, plant#1141170, orderDateTime#1141171, productPlant#1141181, timezonecode#1141195, systemId#1141196, internalUUID#1141197, id#1141198, displayId#1141199, name#1141200, baseUnitOfMeasure#1141201, unitOfMeasures#1141202, unitOfMeasureConversions#1141203, productionAspect#1141204, salesAspect#1141205, procurementAspect#1141206, productGroup#1141207, filteredUnitOfMeasureConversions#1141208, quantityNumerator#1141209, quantityDenominator#1141210]
(2250) Project
Arguments: [product#1141169, plant#1141170, orderDateTime#1141171, productPlant#1141181, timezonecode#1141195, systemId#1141196, internalUUID#1141197, id#1141198, displayId#1141199, name#1141200, baseUnitOfMeasure#1141201, unitOfMeasures#1141202, unitOfMeasureConversions#1141203, productionAspect#1141204, salesAspect#1141205, procurementAspect#1141206, productGroup#1141207, filteredUnitOfMeasureConversions#1141208, quantityNumerator#1141209, quantityDenominator#1141210, (cast(quantityNumerator#1141209 as double) / cast(quantityDenominator#1141210 as double)) AS outboundUnit#1141211]
(2251) Project
Arguments: [product#1141169, plant#1141170, orderDateTime#1141171, productPlant#1141181, timezonecode#1141195, systemId#1141196, internalUUID#1141197, id#1141198, displayId#1141199, name#1141200, baseUnitOfMeasure#1141201, unitOfMeasures#1141202, unitOfMeasureConversions#1141203, productionAspect#1141204, salesAspect#1141205, procurementAspect#1141206, productGroup#1141207, filteredUnitOfMeasureConversions#1141208, quantityNumerator#1141209, quantityDenominator#1141210, CASE WHEN (isnull(outboundUnit#1141211) OR (outboundUnit#1141211 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1141211 END AS outboundUnit#1141212]
(2252) Project
Arguments: [product#1141169, plant#1141170, orderDateTime#1141171, productPlant#1141181, timezonecode#1141195, outboundUnit#1141212]
(2253) LogicalRelation
Arguments: parquet, [systemId#1141213, internalUUID#1141214, product#1141215, plant#1141216, calculationDateTime#1141217, stockQuantities#1141218], false
(2254) Repartition
Arguments: 37, true
(2255) LogicalRelation
Arguments: parquet, [marketUnit#1141219, description#1141220, articleHierarchy#1141221, defaultCurrency#1141222, responsibilities#1141223, replenishmentTypes#1141224, distributionCenters#1141225, assignedArticleHierarchyNodes#1141226, minOrderQtySetting#1141227, listingCheck#1141228, odsSelection#1141229, demandProfiles#1141230, constraintProfiles#1141231, optimizationProfiles#1141232, orderGroupSplitProfiles#1141233, supplierMinimumProfiles#1141234, multipleRestrictionProfiles#1141235, preferredUomSource#1141236, handlingOfUnfulfilledDemands#1141237, negligibleQuantitiesThreshold#1141238, eventtype#1141239, minOrderQtySettingInternal#1141240], false
(2256) Repartition
Arguments: 37, true
(2257) Filter
Arguments: (marketUnit#1141219 <=> Alert_Test1)
(2258) Project
Arguments: [marketUnit#1141219, description#1141220, articleHierarchy#1141221, defaultCurrency#1141222, responsibilities#1141223, replenishmentTypes#1141224, distributionCenters#1141225, assignedArticleHierarchyNodes#1141226, minOrderQtySetting#1141227, listingCheck#1141228, odsSelection#1141229, demandProfiles#1141230, constraintProfiles#1141231, optimizationProfiles#1141232, orderGroupSplitProfiles#1141233, supplierMinimumProfiles#1141234, multipleRestrictionProfiles#1141235, preferredUomSource#1141236, handlingOfUnfulfilledDemands#1141237, negligibleQuantitiesThreshold#1141238, eventtype#1141239, minOrderQtySettingInternal#1141240]
(2259) Project
Arguments: [distributionCenters#1141225]
(2260) Generate
Arguments: explode(distributionCenters#1141225), false, [distributionCenters#1141241]
(2261) Project
Arguments: [distributionCenters#1141241]
(2262) Generate
Arguments: explode(distributionCenters#1141241.storageLocations), false, [storageLocations#1141242]
(2263) Project
Arguments: [distributionCenters#1141241.id AS plantId#1141243, distributionCenters#1141241.internalRefUUID AS plantUuid#1141244, storageLocations#1141242]
(2264) Project
Arguments: [plantId#1141243, plantUuid#1141244, storageLocations#1141242.id AS storageLocId#1141245, storageLocations#1141242.internalRefUUID AS storageLocUuid#1141246]
(2265) LogicalRelation
Arguments: parquet, [product#1141247, plant#1141248, orderDateTime#1141249, planningStartDateTime#1141250], false
(2266) RepartitionByExpression
Arguments: [product#1141247, plant#1141248], 37
(2267) Project
Arguments: [product#1141247, plant#1141248, orderDateTime#1141249]
(2268) LogicalRelation
Arguments: parquet, [systemId#1141251, internalUUID#1141252, plant#1141253, product#1141254, blockedForReplenishmentStartingFrom#1141255, productionAspect#1141256, salesPlant#1141257, listing#1141258], false
(2269) Repartition
Arguments: 37, true
(2270) Project
Arguments: [systemId#1141251, internalUUID#1141252, plant#1141253, product#1141254, blockedForReplenishmentStartingFrom#1141255, productionAspect#1141256, salesPlant#1141257, listing#1141258, struct(systemId, systemId#1141251, internalUUID, internalUUID#1141252, plant, plant#1141253, product, product#1141254, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1141255, productionAspect, productionAspect#1141256, salesPlant, salesPlant#1141257, listing, listing#1141258) AS productPlant#1141259]
(2271) Project
Arguments: [productPlant#1141259]
(2272) Join
Arguments: LeftOuter, ((product#1141247 <=> productPlant#1141259.product.internalRefUUID) AND (plant#1141248 <=> productPlant#1141259.plant.internalRefUUID))
(2273) Project
Arguments: [product#1141247, plant#1141248, orderDateTime#1141249, productPlant#1141259]
(2274) SubqueryAlias
Arguments: wl
(2275) LogicalRelation
Arguments: parquet, [systemId#1141260, internalUUID#1141261, id#1141262, displayId#1141263, name#1141264, category#1141265, companyCode#1141266, address#1141267, mainDistributionChain#1141268, mainPurchasingOrganization#1141269, validPurchasingOrganizations#1141270, productGroup#1141271], false
(2276) Repartition
Arguments: 37, true
(2277) Project
Arguments: [internalUUID#1141261, address#1141267.timeZone.code AS timezonecode#1141272]
(2278) Join
Arguments: LeftOuter, (plant#1141248 <=> internalUUID#1141261)
(2279) Project
Arguments: [product#1141247, plant#1141248, orderDateTime#1141249, productPlant#1141259, internalUUID#1141261, CASE WHEN isnotnull(timezonecode#1141272) THEN timezonecode#1141272 ELSE UTC END AS timezonecode#1141273]
(2280) Project
Arguments: [product#1141247, plant#1141248, orderDateTime#1141249, productPlant#1141259, timezonecode#1141273]
(2281) LogicalRelation
Arguments: parquet, [systemId#1141274, internalUUID#1141275, id#1141276, displayId#1141277, name#1141278, baseUnitOfMeasure#1141279, unitOfMeasures#1141280, unitOfMeasureConversions#1141281, productionAspect#1141282, salesAspect#1141283, procurementAspect#1141284, productGroup#1141285], false
(2282) Repartition
Arguments: 37, true
(2283) Join
Arguments: LeftOuter, (product#1141247 = internalUUID#1141275)
(2284) Project
Arguments: [product#1141247, plant#1141248, orderDateTime#1141249, productPlant#1141259, timezonecode#1141273, systemId#1141274, internalUUID#1141275, id#1141276, displayId#1141277, name#1141278, baseUnitOfMeasure#1141279, unitOfMeasures#1141280, unitOfMeasureConversions#1141281, productionAspect#1141282, salesAspect#1141283, procurementAspect#1141284, productGroup#1141285, filter(unitOfMeasureConversions#1141281, lambdafunction((((lambda u#1135738.measurementUnit1.code = productPlant#1141259.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1135738.measurementUnit1.internalRefUUID = productPlant#1141259.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1141279.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1141279.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1141286]
(2285) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1141286.quantityNumerator), true, [quantityNumerator#1141287]
(2286) Project
Arguments: [product#1141247, plant#1141248, orderDateTime#1141249, productPlant#1141259, timezonecode#1141273, systemId#1141274, internalUUID#1141275, id#1141276, displayId#1141277, name#1141278, baseUnitOfMeasure#1141279, unitOfMeasures#1141280, unitOfMeasureConversions#1141281, productionAspect#1141282, salesAspect#1141283, procurementAspect#1141284, productGroup#1141285, filteredUnitOfMeasureConversions#1141286, quantityNumerator#1141287]
(2287) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1141286.quantityDenominator), true, [quantityDenominator#1141288]
(2288) Project
Arguments: [product#1141247, plant#1141248, orderDateTime#1141249, productPlant#1141259, timezonecode#1141273, systemId#1141274, internalUUID#1141275, id#1141276, displayId#1141277, name#1141278, baseUnitOfMeasure#1141279, unitOfMeasures#1141280, unitOfMeasureConversions#1141281, productionAspect#1141282, salesAspect#1141283, procurementAspect#1141284, productGroup#1141285, filteredUnitOfMeasureConversions#1141286, quantityNumerator#1141287, quantityDenominator#1141288]
(2289) Project
Arguments: [product#1141247, plant#1141248, orderDateTime#1141249, productPlant#1141259, timezonecode#1141273, systemId#1141274, internalUUID#1141275, id#1141276, displayId#1141277, name#1141278, baseUnitOfMeasure#1141279, unitOfMeasures#1141280, unitOfMeasureConversions#1141281, productionAspect#1141282, salesAspect#1141283, procurementAspect#1141284, productGroup#1141285, filteredUnitOfMeasureConversions#1141286, quantityNumerator#1141287, quantityDenominator#1141288, (cast(quantityNumerator#1141287 as double) / cast(quantityDenominator#1141288 as double)) AS outboundUnit#1141289]
(2290) Project
Arguments: [product#1141247, plant#1141248, orderDateTime#1141249, productPlant#1141259, timezonecode#1141273, systemId#1141274, internalUUID#1141275, id#1141276, displayId#1141277, name#1141278, baseUnitOfMeasure#1141279, unitOfMeasures#1141280, unitOfMeasureConversions#1141281, productionAspect#1141282, salesAspect#1141283, procurementAspect#1141284, productGroup#1141285, filteredUnitOfMeasureConversions#1141286, quantityNumerator#1141287, quantityDenominator#1141288, CASE WHEN (isnull(outboundUnit#1141289) OR (outboundUnit#1141289 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1141289 END AS outboundUnit#1141290]
(2291) Project
Arguments: [product#1141247, plant#1141248, orderDateTime#1141249, productPlant#1141259, timezonecode#1141273, outboundUnit#1141290]
(2292) Project
Arguments: [plant#1141248]
(2293) Deduplicate
Arguments: [plant#1141248]
(2294) Join
Arguments: Inner, (plantUuid#1141244 = plant#1141248)
(2295) Project
Arguments: [plantId#1141243, plantUuid#1141244, storageLocId#1141245, storageLocUuid#1141246]
(2296) Join
Arguments: Inner, (plant#1141216.internalRefUUID <=> plantUuid#1141244)
(2297) Generate
Arguments: explode(filter(stockQuantities#1141218, lambdafunction(((lambda x#1135796.storageLocation.internalRefUuid = storageLocUuid#1141246) AND (lambda x#1135796.storageLocation.Id = storageLocId#1141245)), lambda x#1135796, false))), false, [stockQuantity#1141291]
(2298) Project
Arguments: [systemId#1141213, internalUUID#1141214, product#1141215, plant#1141216, calculationDateTime#1141217, stockQuantities#1141218, plantId#1141243, plantUuid#1141244, storageLocId#1141245, storageLocUuid#1141246, stockQuantity#1141291]
(2299) Aggregate
Arguments: [plantUuid#1141244, internalUUID#1141214, plant#1141216, product#1141215, systemId#1141213], [plantUuid#1141244, internalUUID#1141214, plant#1141216, product#1141215, systemId#1141213, first(calculationDateTime#1141217, false) AS calculationDateTime#1141292, collect_list(stockQuantity#1141291, 0, 0) AS stockQuantities#1141293]
(2300) Project
Arguments: [systemId#1141213, internalUUID#1141214, product#1141215, plant#1141216, calculationDateTime#1141292, stockQuantities#1141293]
(2301) Generate
Arguments: explode(stockQuantities#1141293), false, [stockQuantity#1141294]
(2302) Project
Arguments: [systemId#1141213, internalUUID#1141214, product#1141215, plant#1141216, calculationDateTime#1141292, stockQuantities#1141293, stockQuantity#1141294]
(2303) Project
Arguments: [plant#1141216.id AS plant#1141295, plant#1141216.internalRefUUID AS plantUuid#1141296, product#1141215.id AS product#1141297, product#1141215.internalRefUUID AS productUuid#1141298, calculationDateTime#1141292, stockQuantity#1141294.storagelocation.id AS storageLocId#1141299, stockQuantity#1141294.storagelocation.internalRefUUID AS storageLocUuid#1141300, stockQuantity#1141294.quantity.measure AS quantity#1141301, stockQuantity#1141294.specialStockIndicator.code AS specialStockIndicator#1141302, stockQuantity#1141294.stockType.code AS stockType#1141303]
(2304) Filter
Arguments: ((specialStockIndicator#1141302 = ) AND (stockType#1141303 = 01))
(2305) LogicalRelation
Arguments: parquet, [product#1141304, plant#1141305, orderDateTime#1141306, planningStartDateTime#1141307], false
(2306) RepartitionByExpression
Arguments: [product#1141304, plant#1141305], 37
(2307) Project
Arguments: [product#1141304, plant#1141305, orderDateTime#1141306]
(2308) LogicalRelation
Arguments: parquet, [systemId#1141308, internalUUID#1141309, plant#1141310, product#1141311, blockedForReplenishmentStartingFrom#1141312, productionAspect#1141313, salesPlant#1141314, listing#1141315], false
(2309) Repartition
Arguments: 37, true
(2310) Project
Arguments: [systemId#1141308, internalUUID#1141309, plant#1141310, product#1141311, blockedForReplenishmentStartingFrom#1141312, productionAspect#1141313, salesPlant#1141314, listing#1141315, struct(systemId, systemId#1141308, internalUUID, internalUUID#1141309, plant, plant#1141310, product, product#1141311, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1141312, productionAspect, productionAspect#1141313, salesPlant, salesPlant#1141314, listing, listing#1141315) AS productPlant#1141316]
(2311) Project
Arguments: [productPlant#1141316]
(2312) Join
Arguments: LeftOuter, ((product#1141304 <=> productPlant#1141316.product.internalRefUUID) AND (plant#1141305 <=> productPlant#1141316.plant.internalRefUUID))
(2313) Project
Arguments: [product#1141304, plant#1141305, orderDateTime#1141306, productPlant#1141316]
(2314) SubqueryAlias
Arguments: wl
(2315) LogicalRelation
Arguments: parquet, [systemId#1141317, internalUUID#1141318, id#1141319, displayId#1141320, name#1141321, category#1141322, companyCode#1141323, address#1141324, mainDistributionChain#1141325, mainPurchasingOrganization#1141326, validPurchasingOrganizations#1141327, productGroup#1141328], false
(2316) Repartition
Arguments: 37, true
(2317) Project
Arguments: [internalUUID#1141318, address#1141324.timeZone.code AS timezonecode#1141329]
(2318) Join
Arguments: LeftOuter, (plant#1141305 <=> internalUUID#1141318)
(2319) Project
Arguments: [product#1141304, plant#1141305, orderDateTime#1141306, productPlant#1141316, internalUUID#1141318, CASE WHEN isnotnull(timezonecode#1141329) THEN timezonecode#1141329 ELSE UTC END AS timezonecode#1141330]
(2320) Project
Arguments: [product#1141304, plant#1141305, orderDateTime#1141306, productPlant#1141316, timezonecode#1141330]
(2321) LogicalRelation
Arguments: parquet, [systemId#1141331, internalUUID#1141332, id#1141333, displayId#1141334, name#1141335, baseUnitOfMeasure#1141336, unitOfMeasures#1141337, unitOfMeasureConversions#1141338, productionAspect#1141339, salesAspect#1141340, procurementAspect#1141341, productGroup#1141342], false
(2322) Repartition
Arguments: 37, true
(2323) Join
Arguments: LeftOuter, (product#1141304 = internalUUID#1141332)
(2324) Project
Arguments: [product#1141304, plant#1141305, orderDateTime#1141306, productPlant#1141316, timezonecode#1141330, systemId#1141331, internalUUID#1141332, id#1141333, displayId#1141334, name#1141335, baseUnitOfMeasure#1141336, unitOfMeasures#1141337, unitOfMeasureConversions#1141338, productionAspect#1141339, salesAspect#1141340, procurementAspect#1141341, productGroup#1141342, filter(unitOfMeasureConversions#1141338, lambdafunction((((lambda u#1135738.measurementUnit1.code = productPlant#1141316.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1135738.measurementUnit1.internalRefUUID = productPlant#1141316.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1141336.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1141336.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1141343]
(2325) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1141343.quantityNumerator), true, [quantityNumerator#1141344]
(2326) Project
Arguments: [product#1141304, plant#1141305, orderDateTime#1141306, productPlant#1141316, timezonecode#1141330, systemId#1141331, internalUUID#1141332, id#1141333, displayId#1141334, name#1141335, baseUnitOfMeasure#1141336, unitOfMeasures#1141337, unitOfMeasureConversions#1141338, productionAspect#1141339, salesAspect#1141340, procurementAspect#1141341, productGroup#1141342, filteredUnitOfMeasureConversions#1141343, quantityNumerator#1141344]
(2327) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1141343.quantityDenominator), true, [quantityDenominator#1141345]
(2328) Project
Arguments: [product#1141304, plant#1141305, orderDateTime#1141306, productPlant#1141316, timezonecode#1141330, systemId#1141331, internalUUID#1141332, id#1141333, displayId#1141334, name#1141335, baseUnitOfMeasure#1141336, unitOfMeasures#1141337, unitOfMeasureConversions#1141338, productionAspect#1141339, salesAspect#1141340, procurementAspect#1141341, productGroup#1141342, filteredUnitOfMeasureConversions#1141343, quantityNumerator#1141344, quantityDenominator#1141345]
(2329) Project
Arguments: [product#1141304, plant#1141305, orderDateTime#1141306, productPlant#1141316, timezonecode#1141330, systemId#1141331, internalUUID#1141332, id#1141333, displayId#1141334, name#1141335, baseUnitOfMeasure#1141336, unitOfMeasures#1141337, unitOfMeasureConversions#1141338, productionAspect#1141339, salesAspect#1141340, procurementAspect#1141341, productGroup#1141342, filteredUnitOfMeasureConversions#1141343, quantityNumerator#1141344, quantityDenominator#1141345, (cast(quantityNumerator#1141344 as double) / cast(quantityDenominator#1141345 as double)) AS outboundUnit#1141346]
(2330) Project
Arguments: [product#1141304, plant#1141305, orderDateTime#1141306, productPlant#1141316, timezonecode#1141330, systemId#1141331, internalUUID#1141332, id#1141333, displayId#1141334, name#1141335, baseUnitOfMeasure#1141336, unitOfMeasures#1141337, unitOfMeasureConversions#1141338, productionAspect#1141339, salesAspect#1141340, procurementAspect#1141341, productGroup#1141342, filteredUnitOfMeasureConversions#1141343, quantityNumerator#1141344, quantityDenominator#1141345, CASE WHEN (isnull(outboundUnit#1141346) OR (outboundUnit#1141346 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1141346 END AS outboundUnit#1141347]
(2331) Project
Arguments: [product#1141304, plant#1141305, orderDateTime#1141306, productPlant#1141316, timezonecode#1141330, outboundUnit#1141347]
(2332) Join
Arguments: Inner, ((plantUuid#1141296 = plant#1141305) AND (productUuid#1141298 = product#1141304))
(2333) Filter
Arguments: (calculationDateTime#1141292 <= orderDateTime#1141306)
(2334) Project
Arguments: [plantUuid#1141296 AS plant#1141348, productUuid#1141298 AS product#1141349, storageLocId#1141299, calculationDateTime#1141292, quantity#1141301]
(2335) LogicalRelation
Arguments: parquet, [systemId#1141350, internalUUID#1141351, product#1141352, plant#1141353, calculationDateTime#1141354, stockQuantities#1141355], false
(2336) Repartition
Arguments: 37, true
(2337) LogicalRelation
Arguments: parquet, [marketUnit#1141356, description#1141357, articleHierarchy#1141358, defaultCurrency#1141359, responsibilities#1141360, replenishmentTypes#1141361, distributionCenters#1141362, assignedArticleHierarchyNodes#1141363, minOrderQtySetting#1141364, listingCheck#1141365, odsSelection#1141366, demandProfiles#1141367, constraintProfiles#1141368, optimizationProfiles#1141369, orderGroupSplitProfiles#1141370, supplierMinimumProfiles#1141371, multipleRestrictionProfiles#1141372, preferredUomSource#1141373, handlingOfUnfulfilledDemands#1141374, negligibleQuantitiesThreshold#1141375, eventtype#1141376, minOrderQtySettingInternal#1141377], false
(2338) Repartition
Arguments: 37, true
(2339) Filter
Arguments: (marketUnit#1141356 <=> Alert_Test1)
(2340) Project
Arguments: [marketUnit#1141356, description#1141357, articleHierarchy#1141358, defaultCurrency#1141359, responsibilities#1141360, replenishmentTypes#1141361, distributionCenters#1141362, assignedArticleHierarchyNodes#1141363, minOrderQtySetting#1141364, listingCheck#1141365, odsSelection#1141366, demandProfiles#1141367, constraintProfiles#1141368, optimizationProfiles#1141369, orderGroupSplitProfiles#1141370, supplierMinimumProfiles#1141371, multipleRestrictionProfiles#1141372, preferredUomSource#1141373, handlingOfUnfulfilledDemands#1141374, negligibleQuantitiesThreshold#1141375, eventtype#1141376, minOrderQtySettingInternal#1141377]
(2341) Project
Arguments: [distributionCenters#1141362]
(2342) Generate
Arguments: explode(distributionCenters#1141362), false, [distributionCenters#1141378]
(2343) Project
Arguments: [distributionCenters#1141378]
(2344) Generate
Arguments: explode(distributionCenters#1141378.storageLocations), false, [storageLocations#1141379]
(2345) Project
Arguments: [distributionCenters#1141378.id AS plantId#1141380, distributionCenters#1141378.internalRefUUID AS plantUuid#1141381, storageLocations#1141379]
(2346) Project
Arguments: [plantId#1141380, plantUuid#1141381, storageLocations#1141379.id AS storageLocId#1141382, storageLocations#1141379.internalRefUUID AS storageLocUuid#1141383]
(2347) LogicalRelation
Arguments: parquet, [product#1141384, plant#1141385, orderDateTime#1141386, planningStartDateTime#1141387], false
(2348) RepartitionByExpression
Arguments: [product#1141384, plant#1141385], 37
(2349) Project
Arguments: [product#1141384, plant#1141385, orderDateTime#1141386]
(2350) LogicalRelation
Arguments: parquet, [systemId#1141388, internalUUID#1141389, plant#1141390, product#1141391, blockedForReplenishmentStartingFrom#1141392, productionAspect#1141393, salesPlant#1141394, listing#1141395], false
(2351) Repartition
Arguments: 37, true
(2352) Project
Arguments: [systemId#1141388, internalUUID#1141389, plant#1141390, product#1141391, blockedForReplenishmentStartingFrom#1141392, productionAspect#1141393, salesPlant#1141394, listing#1141395, struct(systemId, systemId#1141388, internalUUID, internalUUID#1141389, plant, plant#1141390, product, product#1141391, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1141392, productionAspect, productionAspect#1141393, salesPlant, salesPlant#1141394, listing, listing#1141395) AS productPlant#1141396]
(2353) Project
Arguments: [productPlant#1141396]
(2354) Join
Arguments: LeftOuter, ((product#1141384 <=> productPlant#1141396.product.internalRefUUID) AND (plant#1141385 <=> productPlant#1141396.plant.internalRefUUID))
(2355) Project
Arguments: [product#1141384, plant#1141385, orderDateTime#1141386, productPlant#1141396]
(2356) SubqueryAlias
Arguments: wl
(2357) LogicalRelation
Arguments: parquet, [systemId#1141397, internalUUID#1141398, id#1141399, displayId#1141400, name#1141401, category#1141402, companyCode#1141403, address#1141404, mainDistributionChain#1141405, mainPurchasingOrganization#1141406, validPurchasingOrganizations#1141407, productGroup#1141408], false
(2358) Repartition
Arguments: 37, true
(2359) Project
Arguments: [internalUUID#1141398, address#1141404.timeZone.code AS timezonecode#1141409]
(2360) Join
Arguments: LeftOuter, (plant#1141385 <=> internalUUID#1141398)
(2361) Project
Arguments: [product#1141384, plant#1141385, orderDateTime#1141386, productPlant#1141396, internalUUID#1141398, CASE WHEN isnotnull(timezonecode#1141409) THEN timezonecode#1141409 ELSE UTC END AS timezonecode#1141410]
(2362) Project
Arguments: [product#1141384, plant#1141385, orderDateTime#1141386, productPlant#1141396, timezonecode#1141410]
(2363) LogicalRelation
Arguments: parquet, [systemId#1141411, internalUUID#1141412, id#1141413, displayId#1141414, name#1141415, baseUnitOfMeasure#1141416, unitOfMeasures#1141417, unitOfMeasureConversions#1141418, productionAspect#1141419, salesAspect#1141420, procurementAspect#1141421, productGroup#1141422], false
(2364) Repartition
Arguments: 37, true
(2365) Join
Arguments: LeftOuter, (product#1141384 = internalUUID#1141412)
(2366) Project
Arguments: [product#1141384, plant#1141385, orderDateTime#1141386, productPlant#1141396, timezonecode#1141410, systemId#1141411, internalUUID#1141412, id#1141413, displayId#1141414, name#1141415, baseUnitOfMeasure#1141416, unitOfMeasures#1141417, unitOfMeasureConversions#1141418, productionAspect#1141419, salesAspect#1141420, procurementAspect#1141421, productGroup#1141422, filter(unitOfMeasureConversions#1141418, lambdafunction((((lambda u#1135738.measurementUnit1.code = productPlant#1141396.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1135738.measurementUnit1.internalRefUUID = productPlant#1141396.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1141416.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1141416.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1141423]
(2367) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1141423.quantityNumerator), true, [quantityNumerator#1141424]
(2368) Project
Arguments: [product#1141384, plant#1141385, orderDateTime#1141386, productPlant#1141396, timezonecode#1141410, systemId#1141411, internalUUID#1141412, id#1141413, displayId#1141414, name#1141415, baseUnitOfMeasure#1141416, unitOfMeasures#1141417, unitOfMeasureConversions#1141418, productionAspect#1141419, salesAspect#1141420, procurementAspect#1141421, productGroup#1141422, filteredUnitOfMeasureConversions#1141423, quantityNumerator#1141424]
(2369) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1141423.quantityDenominator), true, [quantityDenominator#1141425]
(2370) Project
Arguments: [product#1141384, plant#1141385, orderDateTime#1141386, productPlant#1141396, timezonecode#1141410, systemId#1141411, internalUUID#1141412, id#1141413, displayId#1141414, name#1141415, baseUnitOfMeasure#1141416, unitOfMeasures#1141417, unitOfMeasureConversions#1141418, productionAspect#1141419, salesAspect#1141420, procurementAspect#1141421, productGroup#1141422, filteredUnitOfMeasureConversions#1141423, quantityNumerator#1141424, quantityDenominator#1141425]
(2371) Project
Arguments: [product#1141384, plant#1141385, orderDateTime#1141386, productPlant#1141396, timezonecode#1141410, systemId#1141411, internalUUID#1141412, id#1141413, displayId#1141414, name#1141415, baseUnitOfMeasure#1141416, unitOfMeasures#1141417, unitOfMeasureConversions#1141418, productionAspect#1141419, salesAspect#1141420, procurementAspect#1141421, productGroup#1141422, filteredUnitOfMeasureConversions#1141423, quantityNumerator#1141424, quantityDenominator#1141425, (cast(quantityNumerator#1141424 as double) / cast(quantityDenominator#1141425 as double)) AS outboundUnit#1141426]
(2372) Project
Arguments: [product#1141384, plant#1141385, orderDateTime#1141386, productPlant#1141396, timezonecode#1141410, systemId#1141411, internalUUID#1141412, id#1141413, displayId#1141414, name#1141415, baseUnitOfMeasure#1141416, unitOfMeasures#1141417, unitOfMeasureConversions#1141418, productionAspect#1141419, salesAspect#1141420, procurementAspect#1141421, productGroup#1141422, filteredUnitOfMeasureConversions#1141423, quantityNumerator#1141424, quantityDenominator#1141425, CASE WHEN (isnull(outboundUnit#1141426) OR (outboundUnit#1141426 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1141426 END AS outboundUnit#1141427]
(2373) Project
Arguments: [product#1141384, plant#1141385, orderDateTime#1141386, productPlant#1141396, timezonecode#1141410, outboundUnit#1141427]
(2374) Project
Arguments: [plant#1141385]
(2375) Deduplicate
Arguments: [plant#1141385]
(2376) Join
Arguments: Inner, (plantUuid#1141381 = plant#1141385)
(2377) Project
Arguments: [plantId#1141380, plantUuid#1141381, storageLocId#1141382, storageLocUuid#1141383]
(2378) Join
Arguments: Inner, (plant#1141353.internalRefUUID <=> plantUuid#1141381)
(2379) Generate
Arguments: explode(filter(stockQuantities#1141355, lambdafunction(((lambda x#1135796.storageLocation.internalRefUuid = storageLocUuid#1141383) AND (lambda x#1135796.storageLocation.Id = storageLocId#1141382)), lambda x#1135796, false))), false, [stockQuantity#1141428]
(2380) Project
Arguments: [systemId#1141350, internalUUID#1141351, product#1141352, plant#1141353, calculationDateTime#1141354, stockQuantities#1141355, plantId#1141380, plantUuid#1141381, storageLocId#1141382, storageLocUuid#1141383, stockQuantity#1141428]
(2381) Aggregate
Arguments: [plantUuid#1141381, internalUUID#1141351, plant#1141353, product#1141352, systemId#1141350], [plantUuid#1141381, internalUUID#1141351, plant#1141353, product#1141352, systemId#1141350, first(calculationDateTime#1141354, false) AS calculationDateTime#1141429, collect_list(stockQuantity#1141428, 0, 0) AS stockQuantities#1141430]
(2382) Project
Arguments: [systemId#1141350, internalUUID#1141351, product#1141352, plant#1141353, calculationDateTime#1141429, stockQuantities#1141430]
(2383) Generate
Arguments: explode(stockQuantities#1141430), false, [stockQuantity#1141431]
(2384) Project
Arguments: [systemId#1141350, internalUUID#1141351, product#1141352, plant#1141353, calculationDateTime#1141429, stockQuantities#1141430, stockQuantity#1141431]
(2385) Project
Arguments: [plant#1141353.id AS plant#1141432, plant#1141353.internalRefUUID AS plantUuid#1141433, product#1141352.id AS product#1141434, product#1141352.internalRefUUID AS productUuid#1141435, calculationDateTime#1141429, stockQuantity#1141431.storagelocation.id AS storageLocId#1141436, stockQuantity#1141431.storagelocation.internalRefUUID AS storageLocUuid#1141437, stockQuantity#1141431.quantity.measure AS quantity#1141438, stockQuantity#1141431.specialStockIndicator.code AS specialStockIndicator#1141439, stockQuantity#1141431.stockType.code AS stockType#1141440]
(2386) Filter
Arguments: ((specialStockIndicator#1141439 = ) AND (stockType#1141440 = 01))
(2387) LogicalRelation
Arguments: parquet, [product#1141441, plant#1141442, orderDateTime#1141443, planningStartDateTime#1141444], false
(2388) RepartitionByExpression
Arguments: [product#1141441, plant#1141442], 37
(2389) Project
Arguments: [product#1141441, plant#1141442, orderDateTime#1141443]
(2390) LogicalRelation
Arguments: parquet, [systemId#1141445, internalUUID#1141446, plant#1141447, product#1141448, blockedForReplenishmentStartingFrom#1141449, productionAspect#1141450, salesPlant#1141451, listing#1141452], false
(2391) Repartition
Arguments: 37, true
(2392) Project
Arguments: [systemId#1141445, internalUUID#1141446, plant#1141447, product#1141448, blockedForReplenishmentStartingFrom#1141449, productionAspect#1141450, salesPlant#1141451, listing#1141452, struct(systemId, systemId#1141445, internalUUID, internalUUID#1141446, plant, plant#1141447, product, product#1141448, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1141449, productionAspect, productionAspect#1141450, salesPlant, salesPlant#1141451, listing, listing#1141452) AS productPlant#1141453]
(2393) Project
Arguments: [productPlant#1141453]
(2394) Join
Arguments: LeftOuter, ((product#1141441 <=> productPlant#1141453.product.internalRefUUID) AND (plant#1141442 <=> productPlant#1141453.plant.internalRefUUID))
(2395) Project
Arguments: [product#1141441, plant#1141442, orderDateTime#1141443, productPlant#1141453]
(2396) SubqueryAlias
Arguments: wl
(2397) LogicalRelation
Arguments: parquet, [systemId#1141454, internalUUID#1141455, id#1141456, displayId#1141457, name#1141458, category#1141459, companyCode#1141460, address#1141461, mainDistributionChain#1141462, mainPurchasingOrganization#1141463, validPurchasingOrganizations#1141464, productGroup#1141465], false
(2398) Repartition
Arguments: 37, true
(2399) Project
Arguments: [internalUUID#1141455, address#1141461.timeZone.code AS timezonecode#1141466]
(2400) Join
Arguments: LeftOuter, (plant#1141442 <=> internalUUID#1141455)
(2401) Project
Arguments: [product#1141441, plant#1141442, orderDateTime#1141443, productPlant#1141453, internalUUID#1141455, CASE WHEN isnotnull(timezonecode#1141466) THEN timezonecode#1141466 ELSE UTC END AS timezonecode#1141467]
(2402) Project
Arguments: [product#1141441, plant#1141442, orderDateTime#1141443, productPlant#1141453, timezonecode#1141467]
(2403) LogicalRelation
Arguments: parquet, [systemId#1141468, internalUUID#1141469, id#1141470, displayId#1141471, name#1141472, baseUnitOfMeasure#1141473, unitOfMeasures#1141474, unitOfMeasureConversions#1141475, productionAspect#1141476, salesAspect#1141477, procurementAspect#1141478, productGroup#1141479], false
(2404) Repartition
Arguments: 37, true
(2405) Join
Arguments: LeftOuter, (product#1141441 = internalUUID#1141469)
(2406) Project
Arguments: [product#1141441, plant#1141442, orderDateTime#1141443, productPlant#1141453, timezonecode#1141467, systemId#1141468, internalUUID#1141469, id#1141470, displayId#1141471, name#1141472, baseUnitOfMeasure#1141473, unitOfMeasures#1141474, unitOfMeasureConversions#1141475, productionAspect#1141476, salesAspect#1141477, procurementAspect#1141478, productGroup#1141479, filter(unitOfMeasureConversions#1141475, lambdafunction((((lambda u#1135738.measurementUnit1.code = productPlant#1141453.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1135738.measurementUnit1.internalRefUUID = productPlant#1141453.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1141473.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1141473.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1141480]
(2407) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1141480.quantityNumerator), true, [quantityNumerator#1141481]
(2408) Project
Arguments: [product#1141441, plant#1141442, orderDateTime#1141443, productPlant#1141453, timezonecode#1141467, systemId#1141468, internalUUID#1141469, id#1141470, displayId#1141471, name#1141472, baseUnitOfMeasure#1141473, unitOfMeasures#1141474, unitOfMeasureConversions#1141475, productionAspect#1141476, salesAspect#1141477, procurementAspect#1141478, productGroup#1141479, filteredUnitOfMeasureConversions#1141480, quantityNumerator#1141481]
(2409) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1141480.quantityDenominator), true, [quantityDenominator#1141482]
(2410) Project
Arguments: [product#1141441, plant#1141442, orderDateTime#1141443, productPlant#1141453, timezonecode#1141467, systemId#1141468, internalUUID#1141469, id#1141470, displayId#1141471, name#1141472, baseUnitOfMeasure#1141473, unitOfMeasures#1141474, unitOfMeasureConversions#1141475, productionAspect#1141476, salesAspect#1141477, procurementAspect#1141478, productGroup#1141479, filteredUnitOfMeasureConversions#1141480, quantityNumerator#1141481, quantityDenominator#1141482]
(2411) Project
Arguments: [product#1141441, plant#1141442, orderDateTime#1141443, productPlant#1141453, timezonecode#1141467, systemId#1141468, internalUUID#1141469, id#1141470, displayId#1141471, name#1141472, baseUnitOfMeasure#1141473, unitOfMeasures#1141474, unitOfMeasureConversions#1141475, productionAspect#1141476, salesAspect#1141477, procurementAspect#1141478, productGroup#1141479, filteredUnitOfMeasureConversions#1141480, quantityNumerator#1141481, quantityDenominator#1141482, (cast(quantityNumerator#1141481 as double) / cast(quantityDenominator#1141482 as double)) AS outboundUnit#1141483]
(2412) Project
Arguments: [product#1141441, plant#1141442, orderDateTime#1141443, productPlant#1141453, timezonecode#1141467, systemId#1141468, internalUUID#1141469, id#1141470, displayId#1141471, name#1141472, baseUnitOfMeasure#1141473, unitOfMeasures#1141474, unitOfMeasureConversions#1141475, productionAspect#1141476, salesAspect#1141477, procurementAspect#1141478, productGroup#1141479, filteredUnitOfMeasureConversions#1141480, quantityNumerator#1141481, quantityDenominator#1141482, CASE WHEN (isnull(outboundUnit#1141483) OR (outboundUnit#1141483 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1141483 END AS outboundUnit#1141484]
(2413) Project
Arguments: [product#1141441, plant#1141442, orderDateTime#1141443, productPlant#1141453, timezonecode#1141467, outboundUnit#1141484]
(2414) Join
Arguments: Inner, ((plantUuid#1141433 = plant#1141442) AND (productUuid#1141435 = product#1141441))
(2415) Filter
Arguments: (calculationDateTime#1141429 <= orderDateTime#1141443)
(2416) Project
Arguments: [plantUuid#1141433 AS plant#1141485, productUuid#1141435 AS product#1141486, storageLocId#1141436, calculationDateTime#1141429, quantity#1141438]
(2417) Aggregate
Arguments: [plant#1141485, product#1141486, storageLocId#1141436], [plant#1141485, product#1141486, storageLocId#1141436, max(calculationDateTime#1141429) AS max_calc_datetime#1141487]
(2418) Join
Arguments: Inner, ((((plant#1141348 <=> plant#1141485) AND (product#1141349 <=> product#1141486)) AND (storageLocId#1141299 <=> storageLocId#1141436)) AND (calculationDateTime#1141292 <=> max_calc_datetime#1141487))
(2419) Project
Arguments: [plant#1141348, product#1141349, storageLocId#1141299, calculationDateTime#1141292, quantity#1141301]
(2420) Aggregate
Arguments: [product#1141349, plant#1141348], [product#1141349, plant#1141348, sum(quantity#1141301) AS quantitySum#1141488, min(calculationDateTime#1141292) AS minCalculationDateTime#1141489]
(2421) Project
Arguments: [product#1141349, plant#1141348, quantitySum#1141488, minCalculationDateTime#1141489, round(quantitySum#1141488, 0) AS roundedQuantitySum#1141490]
(2422) Join
Arguments: LeftOuter, ((plant#1141170 = plant#1141348) AND (product#1141169 = product#1141349))
(2423) Project
Arguments: [product#1141169, plant#1141170, orderDateTime#1141171, productPlant#1141181, timezonecode#1141195, outboundUnit#1141212, roundedQuantitySum#1141490, minCalculationDateTime#1141489]
(2424) Project
Arguments: [product#1141169, plant#1141170, orderDateTime#1141171, productPlant#1141181, timezonecode#1141195, outboundUnit#1141212, roundedQuantitySum#1141490, minCalculationDateTime#1141489, CASE WHEN isnotnull(minCalculationDateTime#1141489) THEN minCalculationDateTime#1141489 ELSE orderDateTime#1141171 END AS stockDatetime#1141491]
(2425) Project
Arguments: [product#1141169, plant#1141170, orderDateTime#1141171, productPlant#1141181, timezonecode#1141195, outboundUnit#1141212, roundedQuantitySum#1141490, minCalculationDateTime#1141489, stockDatetime#1141491, CASE WHEN isnotnull(roundedQuantitySum#1141490) THEN array(roundedQuantitySum#1141490) ELSE array(0.0) END AS stockBatchQuantities#1141492]
(2426) Project
Arguments: [product#1141169, plant#1141170, orderDateTime#1141171, productPlant#1141181, timezonecode#1141195, outboundUnit#1141212, roundedQuantitySum#1141490, minCalculationDateTime#1141489, stockDatetime#1141491, stockBatchQuantities#1141492, array(2199-01-01 00:00:00) AS stockBatchShelfLifeEndDatetimes#1141493]
(2427) Project
Arguments: [product#1141169, plant#1141170, orderDateTime#1141171, productPlant#1141181, timezonecode#1141195, outboundUnit#1141212, roundedQuantitySum#1141490, stockDatetime#1141491, stockBatchQuantities#1141492, stockBatchShelfLifeEndDatetimes#1141493]
(2428) Project
Arguments: [product#1141169, plant#1141170, orderDateTime#1141171, productPlant#1141181, timezonecode#1141195, outboundUnit#1141212, stockDatetime#1141491, stockBatchQuantities#1141492, stockBatchShelfLifeEndDatetimes#1141493]
(2429) LogicalRelation
Arguments: parquet, [product#1141494, plant#1141495, orderDateTime#1141496, planningStartDateTime#1141497], false
(2430) RepartitionByExpression
Arguments: [product#1141494, plant#1141495], 37
(2431) Project
Arguments: [product#1141494, plant#1141495, orderDateTime#1141496]
(2432) LogicalRelation
Arguments: parquet, [systemId#1141498, internalUUID#1141499, plant#1141500, product#1141501, blockedForReplenishmentStartingFrom#1141502, productionAspect#1141503, salesPlant#1141504, listing#1141505], false
(2433) Repartition
Arguments: 37, true
(2434) Project
Arguments: [systemId#1141498, internalUUID#1141499, plant#1141500, product#1141501, blockedForReplenishmentStartingFrom#1141502, productionAspect#1141503, salesPlant#1141504, listing#1141505, struct(systemId, systemId#1141498, internalUUID, internalUUID#1141499, plant, plant#1141500, product, product#1141501, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1141502, productionAspect, productionAspect#1141503, salesPlant, salesPlant#1141504, listing, listing#1141505) AS productPlant#1141506]
(2435) Project
Arguments: [productPlant#1141506]
(2436) Join
Arguments: LeftOuter, ((product#1141494 <=> productPlant#1141506.product.internalRefUUID) AND (plant#1141495 <=> productPlant#1141506.plant.internalRefUUID))
(2437) Project
Arguments: [product#1141494, plant#1141495, orderDateTime#1141496, productPlant#1141506]
(2438) SubqueryAlias
Arguments: wl
(2439) LogicalRelation
Arguments: parquet, [systemId#1141507, internalUUID#1141508, id#1141509, displayId#1141510, name#1141511, category#1141512, companyCode#1141513, address#1141514, mainDistributionChain#1141515, mainPurchasingOrganization#1141516, validPurchasingOrganizations#1141517, productGroup#1141518], false
(2440) Repartition
Arguments: 37, true
(2441) Project
Arguments: [internalUUID#1141508, address#1141514.timeZone.code AS timezonecode#1141519]
(2442) Join
Arguments: LeftOuter, (plant#1141495 <=> internalUUID#1141508)
(2443) Project
Arguments: [product#1141494, plant#1141495, orderDateTime#1141496, productPlant#1141506, internalUUID#1141508, CASE WHEN isnotnull(timezonecode#1141519) THEN timezonecode#1141519 ELSE UTC END AS timezonecode#1141520]
(2444) Project
Arguments: [product#1141494, plant#1141495, orderDateTime#1141496, productPlant#1141506, timezonecode#1141520]
(2445) LogicalRelation
Arguments: parquet, [systemId#1141521, internalUUID#1141522, id#1141523, displayId#1141524, name#1141525, baseUnitOfMeasure#1141526, unitOfMeasures#1141527, unitOfMeasureConversions#1141528, productionAspect#1141529, salesAspect#1141530, procurementAspect#1141531, productGroup#1141532], false
(2446) Repartition
Arguments: 37, true
(2447) Join
Arguments: LeftOuter, (product#1141494 = internalUUID#1141522)
(2448) Project
Arguments: [product#1141494, plant#1141495, orderDateTime#1141496, productPlant#1141506, timezonecode#1141520, systemId#1141521, internalUUID#1141522, id#1141523, displayId#1141524, name#1141525, baseUnitOfMeasure#1141526, unitOfMeasures#1141527, unitOfMeasureConversions#1141528, productionAspect#1141529, salesAspect#1141530, procurementAspect#1141531, productGroup#1141532, filter(unitOfMeasureConversions#1141528, lambdafunction((((lambda u#1135738.measurementUnit1.code = productPlant#1141506.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1135738.measurementUnit1.internalRefUUID = productPlant#1141506.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1141526.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1141526.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1141533]
(2449) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1141533.quantityNumerator), true, [quantityNumerator#1141534]
(2450) Project
Arguments: [product#1141494, plant#1141495, orderDateTime#1141496, productPlant#1141506, timezonecode#1141520, systemId#1141521, internalUUID#1141522, id#1141523, displayId#1141524, name#1141525, baseUnitOfMeasure#1141526, unitOfMeasures#1141527, unitOfMeasureConversions#1141528, productionAspect#1141529, salesAspect#1141530, procurementAspect#1141531, productGroup#1141532, filteredUnitOfMeasureConversions#1141533, quantityNumerator#1141534]
(2451) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1141533.quantityDenominator), true, [quantityDenominator#1141535]
(2452) Project
Arguments: [product#1141494, plant#1141495, orderDateTime#1141496, productPlant#1141506, timezonecode#1141520, systemId#1141521, internalUUID#1141522, id#1141523, displayId#1141524, name#1141525, baseUnitOfMeasure#1141526, unitOfMeasures#1141527, unitOfMeasureConversions#1141528, productionAspect#1141529, salesAspect#1141530, procurementAspect#1141531, productGroup#1141532, filteredUnitOfMeasureConversions#1141533, quantityNumerator#1141534, quantityDenominator#1141535]
(2453) Project
Arguments: [product#1141494, plant#1141495, orderDateTime#1141496, productPlant#1141506, timezonecode#1141520, systemId#1141521, internalUUID#1141522, id#1141523, displayId#1141524, name#1141525, baseUnitOfMeasure#1141526, unitOfMeasures#1141527, unitOfMeasureConversions#1141528, productionAspect#1141529, salesAspect#1141530, procurementAspect#1141531, productGroup#1141532, filteredUnitOfMeasureConversions#1141533, quantityNumerator#1141534, quantityDenominator#1141535, (cast(quantityNumerator#1141534 as double) / cast(quantityDenominator#1141535 as double)) AS outboundUnit#1141536]
(2454) Project
Arguments: [product#1141494, plant#1141495, orderDateTime#1141496, productPlant#1141506, timezonecode#1141520, systemId#1141521, internalUUID#1141522, id#1141523, displayId#1141524, name#1141525, baseUnitOfMeasure#1141526, unitOfMeasures#1141527, unitOfMeasureConversions#1141528, productionAspect#1141529, salesAspect#1141530, procurementAspect#1141531, productGroup#1141532, filteredUnitOfMeasureConversions#1141533, quantityNumerator#1141534, quantityDenominator#1141535, CASE WHEN (isnull(outboundUnit#1141536) OR (outboundUnit#1141536 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1141536 END AS outboundUnit#1141537]
(2455) Project
Arguments: [product#1141494, plant#1141495, orderDateTime#1141496, productPlant#1141506, timezonecode#1141520, outboundUnit#1141537]
(2456) LogicalRelation
Arguments: parquet, [systemId#1141538, internalUUID#1141539, product#1141540, plant#1141541, calculationDateTime#1141542, stockQuantities#1141543], false
(2457) Repartition
Arguments: 37, true
(2458) LogicalRelation
Arguments: parquet, [marketUnit#1141544, description#1141545, articleHierarchy#1141546, defaultCurrency#1141547, responsibilities#1141548, replenishmentTypes#1141549, distributionCenters#1141550, assignedArticleHierarchyNodes#1141551, minOrderQtySetting#1141552, listingCheck#1141553, odsSelection#1141554, demandProfiles#1141555, constraintProfiles#1141556, optimizationProfiles#1141557, orderGroupSplitProfiles#1141558, supplierMinimumProfiles#1141559, multipleRestrictionProfiles#1141560, preferredUomSource#1141561, handlingOfUnfulfilledDemands#1141562, negligibleQuantitiesThreshold#1141563, eventtype#1141564, minOrderQtySettingInternal#1141565], false
(2459) Repartition
Arguments: 37, true
(2460) Filter
Arguments: (marketUnit#1141544 <=> Alert_Test1)
(2461) Project
Arguments: [marketUnit#1141544, description#1141545, articleHierarchy#1141546, defaultCurrency#1141547, responsibilities#1141548, replenishmentTypes#1141549, distributionCenters#1141550, assignedArticleHierarchyNodes#1141551, minOrderQtySetting#1141552, listingCheck#1141553, odsSelection#1141554, demandProfiles#1141555, constraintProfiles#1141556, optimizationProfiles#1141557, orderGroupSplitProfiles#1141558, supplierMinimumProfiles#1141559, multipleRestrictionProfiles#1141560, preferredUomSource#1141561, handlingOfUnfulfilledDemands#1141562, negligibleQuantitiesThreshold#1141563, eventtype#1141564, minOrderQtySettingInternal#1141565]
(2462) Project
Arguments: [distributionCenters#1141550]
(2463) Generate
Arguments: explode(distributionCenters#1141550), false, [distributionCenters#1141566]
(2464) Project
Arguments: [distributionCenters#1141566]
(2465) Generate
Arguments: explode(distributionCenters#1141566.storageLocations), false, [storageLocations#1141567]
(2466) Project
Arguments: [distributionCenters#1141566.id AS plantId#1141568, distributionCenters#1141566.internalRefUUID AS plantUuid#1141569, storageLocations#1141567]
(2467) Project
Arguments: [plantId#1141568, plantUuid#1141569, storageLocations#1141567.id AS storageLocId#1141570, storageLocations#1141567.internalRefUUID AS storageLocUuid#1141571]
(2468) LogicalRelation
Arguments: parquet, [product#1141572, plant#1141573, orderDateTime#1141574, planningStartDateTime#1141575], false
(2469) RepartitionByExpression
Arguments: [product#1141572, plant#1141573], 37
(2470) Project
Arguments: [product#1141572, plant#1141573, orderDateTime#1141574]
(2471) LogicalRelation
Arguments: parquet, [systemId#1141576, internalUUID#1141577, plant#1141578, product#1141579, blockedForReplenishmentStartingFrom#1141580, productionAspect#1141581, salesPlant#1141582, listing#1141583], false
(2472) Repartition
Arguments: 37, true
(2473) Project
Arguments: [systemId#1141576, internalUUID#1141577, plant#1141578, product#1141579, blockedForReplenishmentStartingFrom#1141580, productionAspect#1141581, salesPlant#1141582, listing#1141583, struct(systemId, systemId#1141576, internalUUID, internalUUID#1141577, plant, plant#1141578, product, product#1141579, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1141580, productionAspect, productionAspect#1141581, salesPlant, salesPlant#1141582, listing, listing#1141583) AS productPlant#1141584]
(2474) Project
Arguments: [productPlant#1141584]
(2475) Join
Arguments: LeftOuter, ((product#1141572 <=> productPlant#1141584.product.internalRefUUID) AND (plant#1141573 <=> productPlant#1141584.plant.internalRefUUID))
(2476) Project
Arguments: [product#1141572, plant#1141573, orderDateTime#1141574, productPlant#1141584]
(2477) SubqueryAlias
Arguments: wl
(2478) LogicalRelation
Arguments: parquet, [systemId#1141585, internalUUID#1141586, id#1141587, displayId#1141588, name#1141589, category#1141590, companyCode#1141591, address#1141592, mainDistributionChain#1141593, mainPurchasingOrganization#1141594, validPurchasingOrganizations#1141595, productGroup#1141596], false
(2479) Repartition
Arguments: 37, true
(2480) Project
Arguments: [internalUUID#1141586, address#1141592.timeZone.code AS timezonecode#1141597]
(2481) Join
Arguments: LeftOuter, (plant#1141573 <=> internalUUID#1141586)
(2482) Project
Arguments: [product#1141572, plant#1141573, orderDateTime#1141574, productPlant#1141584, internalUUID#1141586, CASE WHEN isnotnull(timezonecode#1141597) THEN timezonecode#1141597 ELSE UTC END AS timezonecode#1141598]
(2483) Project
Arguments: [product#1141572, plant#1141573, orderDateTime#1141574, productPlant#1141584, timezonecode#1141598]
(2484) LogicalRelation
Arguments: parquet, [systemId#1141599, internalUUID#1141600, id#1141601, displayId#1141602, name#1141603, baseUnitOfMeasure#1141604, unitOfMeasures#1141605, unitOfMeasureConversions#1141606, productionAspect#1141607, salesAspect#1141608, procurementAspect#1141609, productGroup#1141610], false
(2485) Repartition
Arguments: 37, true
(2486) Join
Arguments: LeftOuter, (product#1141572 = internalUUID#1141600)
(2487) Project
Arguments: [product#1141572, plant#1141573, orderDateTime#1141574, productPlant#1141584, timezonecode#1141598, systemId#1141599, internalUUID#1141600, id#1141601, displayId#1141602, name#1141603, baseUnitOfMeasure#1141604, unitOfMeasures#1141605, unitOfMeasureConversions#1141606, productionAspect#1141607, salesAspect#1141608, procurementAspect#1141609, productGroup#1141610, filter(unitOfMeasureConversions#1141606, lambdafunction((((lambda u#1135738.measurementUnit1.code = productPlant#1141584.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1135738.measurementUnit1.internalRefUUID = productPlant#1141584.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1141604.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1141604.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1141611]
(2488) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1141611.quantityNumerator), true, [quantityNumerator#1141612]
(2489) Project
Arguments: [product#1141572, plant#1141573, orderDateTime#1141574, productPlant#1141584, timezonecode#1141598, systemId#1141599, internalUUID#1141600, id#1141601, displayId#1141602, name#1141603, baseUnitOfMeasure#1141604, unitOfMeasures#1141605, unitOfMeasureConversions#1141606, productionAspect#1141607, salesAspect#1141608, procurementAspect#1141609, productGroup#1141610, filteredUnitOfMeasureConversions#1141611, quantityNumerator#1141612]
(2490) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1141611.quantityDenominator), true, [quantityDenominator#1141613]
(2491) Project
Arguments: [product#1141572, plant#1141573, orderDateTime#1141574, productPlant#1141584, timezonecode#1141598, systemId#1141599, internalUUID#1141600, id#1141601, displayId#1141602, name#1141603, baseUnitOfMeasure#1141604, unitOfMeasures#1141605, unitOfMeasureConversions#1141606, productionAspect#1141607, salesAspect#1141608, procurementAspect#1141609, productGroup#1141610, filteredUnitOfMeasureConversions#1141611, quantityNumerator#1141612, quantityDenominator#1141613]
(2492) Project
Arguments: [product#1141572, plant#1141573, orderDateTime#1141574, productPlant#1141584, timezonecode#1141598, systemId#1141599, internalUUID#1141600, id#1141601, displayId#1141602, name#1141603, baseUnitOfMeasure#1141604, unitOfMeasures#1141605, unitOfMeasureConversions#1141606, productionAspect#1141607, salesAspect#1141608, procurementAspect#1141609, productGroup#1141610, filteredUnitOfMeasureConversions#1141611, quantityNumerator#1141612, quantityDenominator#1141613, (cast(quantityNumerator#1141612 as double) / cast(quantityDenominator#1141613 as double)) AS outboundUnit#1141614]
(2493) Project
Arguments: [product#1141572, plant#1141573, orderDateTime#1141574, productPlant#1141584, timezonecode#1141598, systemId#1141599, internalUUID#1141600, id#1141601, displayId#1141602, name#1141603, baseUnitOfMeasure#1141604, unitOfMeasures#1141605, unitOfMeasureConversions#1141606, productionAspect#1141607, salesAspect#1141608, procurementAspect#1141609, productGroup#1141610, filteredUnitOfMeasureConversions#1141611, quantityNumerator#1141612, quantityDenominator#1141613, CASE WHEN (isnull(outboundUnit#1141614) OR (outboundUnit#1141614 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1141614 END AS outboundUnit#1141615]
(2494) Project
Arguments: [product#1141572, plant#1141573, orderDateTime#1141574, productPlant#1141584, timezonecode#1141598, outboundUnit#1141615]
(2495) Project
Arguments: [plant#1141573]
(2496) Deduplicate
Arguments: [plant#1141573]
(2497) Join
Arguments: Inner, (plantUuid#1141569 = plant#1141573)
(2498) Project
Arguments: [plantId#1141568, plantUuid#1141569, storageLocId#1141570, storageLocUuid#1141571]
(2499) Join
Arguments: Inner, (plant#1141541.internalRefUUID <=> plantUuid#1141569)
(2500) Generate
Arguments: explode(filter(stockQuantities#1141543, lambdafunction(((lambda x#1135796.storageLocation.internalRefUuid = storageLocUuid#1141571) AND (lambda x#1135796.storageLocation.Id = storageLocId#1141570)), lambda x#1135796, false))), false, [stockQuantity#1141616]
(2501) Project
Arguments: [systemId#1141538, internalUUID#1141539, product#1141540, plant#1141541, calculationDateTime#1141542, stockQuantities#1141543, plantId#1141568, plantUuid#1141569, storageLocId#1141570, storageLocUuid#1141571, stockQuantity#1141616]
(2502) Aggregate
Arguments: [plantUuid#1141569, internalUUID#1141539, plant#1141541, product#1141540, systemId#1141538], [plantUuid#1141569, internalUUID#1141539, plant#1141541, product#1141540, systemId#1141538, first(calculationDateTime#1141542, false) AS calculationDateTime#1141617, collect_list(stockQuantity#1141616, 0, 0) AS stockQuantities#1141618]
(2503) Project
Arguments: [systemId#1141538, internalUUID#1141539, product#1141540, plant#1141541, calculationDateTime#1141617, stockQuantities#1141618]
(2504) Generate
Arguments: explode(stockQuantities#1141618), false, [stockQuantity#1141619]
(2505) Project
Arguments: [systemId#1141538, internalUUID#1141539, product#1141540, plant#1141541, calculationDateTime#1141617, stockQuantities#1141618, stockQuantity#1141619]
(2506) Project
Arguments: [plant#1141541.id AS plant#1141620, plant#1141541.internalRefUUID AS plantUuid#1141621, product#1141540.id AS product#1141622, product#1141540.internalRefUUID AS productUuid#1141623, calculationDateTime#1141617, stockQuantity#1141619.storagelocation.id AS storageLocId#1141624, stockQuantity#1141619.storagelocation.internalRefUUID AS storageLocUuid#1141625, stockQuantity#1141619.quantity.measure AS quantity#1141626, stockQuantity#1141619.specialStockIndicator.code AS specialStockIndicator#1141627, stockQuantity#1141619.stockType.code AS stockType#1141628]
(2507) Filter
Arguments: ((specialStockIndicator#1141627 = ) AND (stockType#1141628 = 01))
(2508) LogicalRelation
Arguments: parquet, [product#1141629, plant#1141630, orderDateTime#1141631, planningStartDateTime#1141632], false
(2509) RepartitionByExpression
Arguments: [product#1141629, plant#1141630], 37
(2510) Project
Arguments: [product#1141629, plant#1141630, orderDateTime#1141631]
(2511) LogicalRelation
Arguments: parquet, [systemId#1141633, internalUUID#1141634, plant#1141635, product#1141636, blockedForReplenishmentStartingFrom#1141637, productionAspect#1141638, salesPlant#1141639, listing#1141640], false
(2512) Repartition
Arguments: 37, true
(2513) Project
Arguments: [systemId#1141633, internalUUID#1141634, plant#1141635, product#1141636, blockedForReplenishmentStartingFrom#1141637, productionAspect#1141638, salesPlant#1141639, listing#1141640, struct(systemId, systemId#1141633, internalUUID, internalUUID#1141634, plant, plant#1141635, product, product#1141636, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1141637, productionAspect, productionAspect#1141638, salesPlant, salesPlant#1141639, listing, listing#1141640) AS productPlant#1141641]
(2514) Project
Arguments: [productPlant#1141641]
(2515) Join
Arguments: LeftOuter, ((product#1141629 <=> productPlant#1141641.product.internalRefUUID) AND (plant#1141630 <=> productPlant#1141641.plant.internalRefUUID))
(2516) Project
Arguments: [product#1141629, plant#1141630, orderDateTime#1141631, productPlant#1141641]
(2517) SubqueryAlias
Arguments: wl
(2518) LogicalRelation
Arguments: parquet, [systemId#1141642, internalUUID#1141643, id#1141644, displayId#1141645, name#1141646, category#1141647, companyCode#1141648, address#1141649, mainDistributionChain#1141650, mainPurchasingOrganization#1141651, validPurchasingOrganizations#1141652, productGroup#1141653], false
(2519) Repartition
Arguments: 37, true
(2520) Project
Arguments: [internalUUID#1141643, address#1141649.timeZone.code AS timezonecode#1141654]
(2521) Join
Arguments: LeftOuter, (plant#1141630 <=> internalUUID#1141643)
(2522) Project
Arguments: [product#1141629, plant#1141630, orderDateTime#1141631, productPlant#1141641, internalUUID#1141643, CASE WHEN isnotnull(timezonecode#1141654) THEN timezonecode#1141654 ELSE UTC END AS timezonecode#1141655]
(2523) Project
Arguments: [product#1141629, plant#1141630, orderDateTime#1141631, productPlant#1141641, timezonecode#1141655]
(2524) LogicalRelation
Arguments: parquet, [systemId#1141656, internalUUID#1141657, id#1141658, displayId#1141659, name#1141660, baseUnitOfMeasure#1141661, unitOfMeasures#1141662, unitOfMeasureConversions#1141663, productionAspect#1141664, salesAspect#1141665, procurementAspect#1141666, productGroup#1141667], false
(2525) Repartition
Arguments: 37, true
(2526) Join
Arguments: LeftOuter, (product#1141629 = internalUUID#1141657)
(2527) Project
Arguments: [product#1141629, plant#1141630, orderDateTime#1141631, productPlant#1141641, timezonecode#1141655, systemId#1141656, internalUUID#1141657, id#1141658, displayId#1141659, name#1141660, baseUnitOfMeasure#1141661, unitOfMeasures#1141662, unitOfMeasureConversions#1141663, productionAspect#1141664, salesAspect#1141665, procurementAspect#1141666, productGroup#1141667, filter(unitOfMeasureConversions#1141663, lambdafunction((((lambda u#1135738.measurementUnit1.code = productPlant#1141641.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1135738.measurementUnit1.internalRefUUID = productPlant#1141641.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1141661.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1141661.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1141668]
(2528) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1141668.quantityNumerator), true, [quantityNumerator#1141669]
(2529) Project
Arguments: [product#1141629, plant#1141630, orderDateTime#1141631, productPlant#1141641, timezonecode#1141655, systemId#1141656, internalUUID#1141657, id#1141658, displayId#1141659, name#1141660, baseUnitOfMeasure#1141661, unitOfMeasures#1141662, unitOfMeasureConversions#1141663, productionAspect#1141664, salesAspect#1141665, procurementAspect#1141666, productGroup#1141667, filteredUnitOfMeasureConversions#1141668, quantityNumerator#1141669]
(2530) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1141668.quantityDenominator), true, [quantityDenominator#1141670]
(2531) Project
Arguments: [product#1141629, plant#1141630, orderDateTime#1141631, productPlant#1141641, timezonecode#1141655, systemId#1141656, internalUUID#1141657, id#1141658, displayId#1141659, name#1141660, baseUnitOfMeasure#1141661, unitOfMeasures#1141662, unitOfMeasureConversions#1141663, productionAspect#1141664, salesAspect#1141665, procurementAspect#1141666, productGroup#1141667, filteredUnitOfMeasureConversions#1141668, quantityNumerator#1141669, quantityDenominator#1141670]
(2532) Project
Arguments: [product#1141629, plant#1141630, orderDateTime#1141631, productPlant#1141641, timezonecode#1141655, systemId#1141656, internalUUID#1141657, id#1141658, displayId#1141659, name#1141660, baseUnitOfMeasure#1141661, unitOfMeasures#1141662, unitOfMeasureConversions#1141663, productionAspect#1141664, salesAspect#1141665, procurementAspect#1141666, productGroup#1141667, filteredUnitOfMeasureConversions#1141668, quantityNumerator#1141669, quantityDenominator#1141670, (cast(quantityNumerator#1141669 as double) / cast(quantityDenominator#1141670 as double)) AS outboundUnit#1141671]
(2533) Project
Arguments: [product#1141629, plant#1141630, orderDateTime#1141631, productPlant#1141641, timezonecode#1141655, systemId#1141656, internalUUID#1141657, id#1141658, displayId#1141659, name#1141660, baseUnitOfMeasure#1141661, unitOfMeasures#1141662, unitOfMeasureConversions#1141663, productionAspect#1141664, salesAspect#1141665, procurementAspect#1141666, productGroup#1141667, filteredUnitOfMeasureConversions#1141668, quantityNumerator#1141669, quantityDenominator#1141670, CASE WHEN (isnull(outboundUnit#1141671) OR (outboundUnit#1141671 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1141671 END AS outboundUnit#1141672]
(2534) Project
Arguments: [product#1141629, plant#1141630, orderDateTime#1141631, productPlant#1141641, timezonecode#1141655, outboundUnit#1141672]
(2535) Join
Arguments: Inner, ((plantUuid#1141621 = plant#1141630) AND (productUuid#1141623 = product#1141629))
(2536) Filter
Arguments: (calculationDateTime#1141617 <= orderDateTime#1141631)
(2537) Project
Arguments: [plantUuid#1141621 AS plant#1141673, productUuid#1141623 AS product#1141674, storageLocId#1141624, calculationDateTime#1141617, quantity#1141626]
(2538) LogicalRelation
Arguments: parquet, [systemId#1141675, internalUUID#1141676, product#1141677, plant#1141678, calculationDateTime#1141679, stockQuantities#1141680], false
(2539) Repartition
Arguments: 37, true
(2540) LogicalRelation
Arguments: parquet, [marketUnit#1141681, description#1141682, articleHierarchy#1141683, defaultCurrency#1141684, responsibilities#1141685, replenishmentTypes#1141686, distributionCenters#1141687, assignedArticleHierarchyNodes#1141688, minOrderQtySetting#1141689, listingCheck#1141690, odsSelection#1141691, demandProfiles#1141692, constraintProfiles#1141693, optimizationProfiles#1141694, orderGroupSplitProfiles#1141695, supplierMinimumProfiles#1141696, multipleRestrictionProfiles#1141697, preferredUomSource#1141698, handlingOfUnfulfilledDemands#1141699, negligibleQuantitiesThreshold#1141700, eventtype#1141701, minOrderQtySettingInternal#1141702], false
(2541) Repartition
Arguments: 37, true
(2542) Filter
Arguments: (marketUnit#1141681 <=> Alert_Test1)
(2543) Project
Arguments: [marketUnit#1141681, description#1141682, articleHierarchy#1141683, defaultCurrency#1141684, responsibilities#1141685, replenishmentTypes#1141686, distributionCenters#1141687, assignedArticleHierarchyNodes#1141688, minOrderQtySetting#1141689, listingCheck#1141690, odsSelection#1141691, demandProfiles#1141692, constraintProfiles#1141693, optimizationProfiles#1141694, orderGroupSplitProfiles#1141695, supplierMinimumProfiles#1141696, multipleRestrictionProfiles#1141697, preferredUomSource#1141698, handlingOfUnfulfilledDemands#1141699, negligibleQuantitiesThreshold#1141700, eventtype#1141701, minOrderQtySettingInternal#1141702]
(2544) Project
Arguments: [distributionCenters#1141687]
(2545) Generate
Arguments: explode(distributionCenters#1141687), false, [distributionCenters#1141703]
(2546) Project
Arguments: [distributionCenters#1141703]
(2547) Generate
Arguments: explode(distributionCenters#1141703.storageLocations), false, [storageLocations#1141704]
(2548) Project
Arguments: [distributionCenters#1141703.id AS plantId#1141705, distributionCenters#1141703.internalRefUUID AS plantUuid#1141706, storageLocations#1141704]
(2549) Project
Arguments: [plantId#1141705, plantUuid#1141706, storageLocations#1141704.id AS storageLocId#1141707, storageLocations#1141704.internalRefUUID AS storageLocUuid#1141708]
(2550) LogicalRelation
Arguments: parquet, [product#1141709, plant#1141710, orderDateTime#1141711, planningStartDateTime#1141712], false
(2551) RepartitionByExpression
Arguments: [product#1141709, plant#1141710], 37
(2552) Project
Arguments: [product#1141709, plant#1141710, orderDateTime#1141711]
(2553) LogicalRelation
Arguments: parquet, [systemId#1141713, internalUUID#1141714, plant#1141715, product#1141716, blockedForReplenishmentStartingFrom#1141717, productionAspect#1141718, salesPlant#1141719, listing#1141720], false
(2554) Repartition
Arguments: 37, true
(2555) Project
Arguments: [systemId#1141713, internalUUID#1141714, plant#1141715, product#1141716, blockedForReplenishmentStartingFrom#1141717, productionAspect#1141718, salesPlant#1141719, listing#1141720, struct(systemId, systemId#1141713, internalUUID, internalUUID#1141714, plant, plant#1141715, product, product#1141716, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1141717, productionAspect, productionAspect#1141718, salesPlant, salesPlant#1141719, listing, listing#1141720) AS productPlant#1141721]
(2556) Project
Arguments: [productPlant#1141721]
(2557) Join
Arguments: LeftOuter, ((product#1141709 <=> productPlant#1141721.product.internalRefUUID) AND (plant#1141710 <=> productPlant#1141721.plant.internalRefUUID))
(2558) Project
Arguments: [product#1141709, plant#1141710, orderDateTime#1141711, productPlant#1141721]
(2559) SubqueryAlias
Arguments: wl
(2560) LogicalRelation
Arguments: parquet, [systemId#1141722, internalUUID#1141723, id#1141724, displayId#1141725, name#1141726, category#1141727, companyCode#1141728, address#1141729, mainDistributionChain#1141730, mainPurchasingOrganization#1141731, validPurchasingOrganizations#1141732, productGroup#1141733], false
(2561) Repartition
Arguments: 37, true
(2562) Project
Arguments: [internalUUID#1141723, address#1141729.timeZone.code AS timezonecode#1141734]
(2563) Join
Arguments: LeftOuter, (plant#1141710 <=> internalUUID#1141723)
(2564) Project
Arguments: [product#1141709, plant#1141710, orderDateTime#1141711, productPlant#1141721, internalUUID#1141723, CASE WHEN isnotnull(timezonecode#1141734) THEN timezonecode#1141734 ELSE UTC END AS timezonecode#1141735]
(2565) Project
Arguments: [product#1141709, plant#1141710, orderDateTime#1141711, productPlant#1141721, timezonecode#1141735]
(2566) LogicalRelation
Arguments: parquet, [systemId#1141736, internalUUID#1141737, id#1141738, displayId#1141739, name#1141740, baseUnitOfMeasure#1141741, unitOfMeasures#1141742, unitOfMeasureConversions#1141743, productionAspect#1141744, salesAspect#1141745, procurementAspect#1141746, productGroup#1141747], false
(2567) Repartition
Arguments: 37, true
(2568) Join
Arguments: LeftOuter, (product#1141709 = internalUUID#1141737)
(2569) Project
Arguments: [product#1141709, plant#1141710, orderDateTime#1141711, productPlant#1141721, timezonecode#1141735, systemId#1141736, internalUUID#1141737, id#1141738, displayId#1141739, name#1141740, baseUnitOfMeasure#1141741, unitOfMeasures#1141742, unitOfMeasureConversions#1141743, productionAspect#1141744, salesAspect#1141745, procurementAspect#1141746, productGroup#1141747, filter(unitOfMeasureConversions#1141743, lambdafunction((((lambda u#1135738.measurementUnit1.code = productPlant#1141721.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1135738.measurementUnit1.internalRefUUID = productPlant#1141721.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1141741.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1141741.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1141748]
(2570) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1141748.quantityNumerator), true, [quantityNumerator#1141749]
(2571) Project
Arguments: [product#1141709, plant#1141710, orderDateTime#1141711, productPlant#1141721, timezonecode#1141735, systemId#1141736, internalUUID#1141737, id#1141738, displayId#1141739, name#1141740, baseUnitOfMeasure#1141741, unitOfMeasures#1141742, unitOfMeasureConversions#1141743, productionAspect#1141744, salesAspect#1141745, procurementAspect#1141746, productGroup#1141747, filteredUnitOfMeasureConversions#1141748, quantityNumerator#1141749]
(2572) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1141748.quantityDenominator), true, [quantityDenominator#1141750]
(2573) Project
Arguments: [product#1141709, plant#1141710, orderDateTime#1141711, productPlant#1141721, timezonecode#1141735, systemId#1141736, internalUUID#1141737, id#1141738, displayId#1141739, name#1141740, baseUnitOfMeasure#1141741, unitOfMeasures#1141742, unitOfMeasureConversions#1141743, productionAspect#1141744, salesAspect#1141745, procurementAspect#1141746, productGroup#1141747, filteredUnitOfMeasureConversions#1141748, quantityNumerator#1141749, quantityDenominator#1141750]
(2574) Project
Arguments: [product#1141709, plant#1141710, orderDateTime#1141711, productPlant#1141721, timezonecode#1141735, systemId#1141736, internalUUID#1141737, id#1141738, displayId#1141739, name#1141740, baseUnitOfMeasure#1141741, unitOfMeasures#1141742, unitOfMeasureConversions#1141743, productionAspect#1141744, salesAspect#1141745, procurementAspect#1141746, productGroup#1141747, filteredUnitOfMeasureConversions#1141748, quantityNumerator#1141749, quantityDenominator#1141750, (cast(quantityNumerator#1141749 as double) / cast(quantityDenominator#1141750 as double)) AS outboundUnit#1141751]
(2575) Project
Arguments: [product#1141709, plant#1141710, orderDateTime#1141711, productPlant#1141721, timezonecode#1141735, systemId#1141736, internalUUID#1141737, id#1141738, displayId#1141739, name#1141740, baseUnitOfMeasure#1141741, unitOfMeasures#1141742, unitOfMeasureConversions#1141743, productionAspect#1141744, salesAspect#1141745, procurementAspect#1141746, productGroup#1141747, filteredUnitOfMeasureConversions#1141748, quantityNumerator#1141749, quantityDenominator#1141750, CASE WHEN (isnull(outboundUnit#1141751) OR (outboundUnit#1141751 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1141751 END AS outboundUnit#1141752]
(2576) Project
Arguments: [product#1141709, plant#1141710, orderDateTime#1141711, productPlant#1141721, timezonecode#1141735, outboundUnit#1141752]
(2577) Project
Arguments: [plant#1141710]
(2578) Deduplicate
Arguments: [plant#1141710]
(2579) Join
Arguments: Inner, (plantUuid#1141706 = plant#1141710)
(2580) Project
Arguments: [plantId#1141705, plantUuid#1141706, storageLocId#1141707, storageLocUuid#1141708]
(2581) Join
Arguments: Inner, (plant#1141678.internalRefUUID <=> plantUuid#1141706)
(2582) Generate
Arguments: explode(filter(stockQuantities#1141680, lambdafunction(((lambda x#1135796.storageLocation.internalRefUuid = storageLocUuid#1141708) AND (lambda x#1135796.storageLocation.Id = storageLocId#1141707)), lambda x#1135796, false))), false, [stockQuantity#1141753]
(2583) Project
Arguments: [systemId#1141675, internalUUID#1141676, product#1141677, plant#1141678, calculationDateTime#1141679, stockQuantities#1141680, plantId#1141705, plantUuid#1141706, storageLocId#1141707, storageLocUuid#1141708, stockQuantity#1141753]
(2584) Aggregate
Arguments: [plantUuid#1141706, internalUUID#1141676, plant#1141678, product#1141677, systemId#1141675], [plantUuid#1141706, internalUUID#1141676, plant#1141678, product#1141677, systemId#1141675, first(calculationDateTime#1141679, false) AS calculationDateTime#1141754, collect_list(stockQuantity#1141753, 0, 0) AS stockQuantities#1141755]
(2585) Project
Arguments: [systemId#1141675, internalUUID#1141676, product#1141677, plant#1141678, calculationDateTime#1141754, stockQuantities#1141755]
(2586) Generate
Arguments: explode(stockQuantities#1141755), false, [stockQuantity#1141756]
(2587) Project
Arguments: [systemId#1141675, internalUUID#1141676, product#1141677, plant#1141678, calculationDateTime#1141754, stockQuantities#1141755, stockQuantity#1141756]
(2588) Project
Arguments: [plant#1141678.id AS plant#1141757, plant#1141678.internalRefUUID AS plantUuid#1141758, product#1141677.id AS product#1141759, product#1141677.internalRefUUID AS productUuid#1141760, calculationDateTime#1141754, stockQuantity#1141756.storagelocation.id AS storageLocId#1141761, stockQuantity#1141756.storagelocation.internalRefUUID AS storageLocUuid#1141762, stockQuantity#1141756.quantity.measure AS quantity#1141763, stockQuantity#1141756.specialStockIndicator.code AS specialStockIndicator#1141764, stockQuantity#1141756.stockType.code AS stockType#1141765]
(2589) Filter
Arguments: ((specialStockIndicator#1141764 = ) AND (stockType#1141765 = 01))
(2590) LogicalRelation
Arguments: parquet, [product#1141766, plant#1141767, orderDateTime#1141768, planningStartDateTime#1141769], false
(2591) RepartitionByExpression
Arguments: [product#1141766, plant#1141767], 37
(2592) Project
Arguments: [product#1141766, plant#1141767, orderDateTime#1141768]
(2593) LogicalRelation
Arguments: parquet, [systemId#1141770, internalUUID#1141771, plant#1141772, product#1141773, blockedForReplenishmentStartingFrom#1141774, productionAspect#1141775, salesPlant#1141776, listing#1141777], false
(2594) Repartition
Arguments: 37, true
(2595) Project
Arguments: [systemId#1141770, internalUUID#1141771, plant#1141772, product#1141773, blockedForReplenishmentStartingFrom#1141774, productionAspect#1141775, salesPlant#1141776, listing#1141777, struct(systemId, systemId#1141770, internalUUID, internalUUID#1141771, plant, plant#1141772, product, product#1141773, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1141774, productionAspect, productionAspect#1141775, salesPlant, salesPlant#1141776, listing, listing#1141777) AS productPlant#1141778]
(2596) Project
Arguments: [productPlant#1141778]
(2597) Join
Arguments: LeftOuter, ((product#1141766 <=> productPlant#1141778.product.internalRefUUID) AND (plant#1141767 <=> productPlant#1141778.plant.internalRefUUID))
(2598) Project
Arguments: [product#1141766, plant#1141767, orderDateTime#1141768, productPlant#1141778]
(2599) SubqueryAlias
Arguments: wl
(2600) LogicalRelation
Arguments: parquet, [systemId#1141779, internalUUID#1141780, id#1141781, displayId#1141782, name#1141783, category#1141784, companyCode#1141785, address#1141786, mainDistributionChain#1141787, mainPurchasingOrganization#1141788, validPurchasingOrganizations#1141789, productGroup#1141790], false
(2601) Repartition
Arguments: 37, true
(2602) Project
Arguments: [internalUUID#1141780, address#1141786.timeZone.code AS timezonecode#1141791]
(2603) Join
Arguments: LeftOuter, (plant#1141767 <=> internalUUID#1141780)
(2604) Project
Arguments: [product#1141766, plant#1141767, orderDateTime#1141768, productPlant#1141778, internalUUID#1141780, CASE WHEN isnotnull(timezonecode#1141791) THEN timezonecode#1141791 ELSE UTC END AS timezonecode#1141792]
(2605) Project
Arguments: [product#1141766, plant#1141767, orderDateTime#1141768, productPlant#1141778, timezonecode#1141792]
(2606) LogicalRelation
Arguments: parquet, [systemId#1141793, internalUUID#1141794, id#1141795, displayId#1141796, name#1141797, baseUnitOfMeasure#1141798, unitOfMeasures#1141799, unitOfMeasureConversions#1141800, productionAspect#1141801, salesAspect#1141802, procurementAspect#1141803, productGroup#1141804], false
(2607) Repartition
Arguments: 37, true
(2608) Join
Arguments: LeftOuter, (product#1141766 = internalUUID#1141794)
(2609) Project
Arguments: [product#1141766, plant#1141767, orderDateTime#1141768, productPlant#1141778, timezonecode#1141792, systemId#1141793, internalUUID#1141794, id#1141795, displayId#1141796, name#1141797, baseUnitOfMeasure#1141798, unitOfMeasures#1141799, unitOfMeasureConversions#1141800, productionAspect#1141801, salesAspect#1141802, procurementAspect#1141803, productGroup#1141804, filter(unitOfMeasureConversions#1141800, lambdafunction((((lambda u#1135738.measurementUnit1.code = productPlant#1141778.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1135738.measurementUnit1.internalRefUUID = productPlant#1141778.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1141798.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1141798.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1141805]
(2610) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1141805.quantityNumerator), true, [quantityNumerator#1141806]
(2611) Project
Arguments: [product#1141766, plant#1141767, orderDateTime#1141768, productPlant#1141778, timezonecode#1141792, systemId#1141793, internalUUID#1141794, id#1141795, displayId#1141796, name#1141797, baseUnitOfMeasure#1141798, unitOfMeasures#1141799, unitOfMeasureConversions#1141800, productionAspect#1141801, salesAspect#1141802, procurementAspect#1141803, productGroup#1141804, filteredUnitOfMeasureConversions#1141805, quantityNumerator#1141806]
(2612) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1141805.quantityDenominator), true, [quantityDenominator#1141807]
(2613) Project
Arguments: [product#1141766, plant#1141767, orderDateTime#1141768, productPlant#1141778, timezonecode#1141792, systemId#1141793, internalUUID#1141794, id#1141795, displayId#1141796, name#1141797, baseUnitOfMeasure#1141798, unitOfMeasures#1141799, unitOfMeasureConversions#1141800, productionAspect#1141801, salesAspect#1141802, procurementAspect#1141803, productGroup#1141804, filteredUnitOfMeasureConversions#1141805, quantityNumerator#1141806, quantityDenominator#1141807]
(2614) Project
Arguments: [product#1141766, plant#1141767, orderDateTime#1141768, productPlant#1141778, timezonecode#1141792, systemId#1141793, internalUUID#1141794, id#1141795, displayId#1141796, name#1141797, baseUnitOfMeasure#1141798, unitOfMeasures#1141799, unitOfMeasureConversions#1141800, productionAspect#1141801, salesAspect#1141802, procurementAspect#1141803, productGroup#1141804, filteredUnitOfMeasureConversions#1141805, quantityNumerator#1141806, quantityDenominator#1141807, (cast(quantityNumerator#1141806 as double) / cast(quantityDenominator#1141807 as double)) AS outboundUnit#1141808]
(2615) Project
Arguments: [product#1141766, plant#1141767, orderDateTime#1141768, productPlant#1141778, timezonecode#1141792, systemId#1141793, internalUUID#1141794, id#1141795, displayId#1141796, name#1141797, baseUnitOfMeasure#1141798, unitOfMeasures#1141799, unitOfMeasureConversions#1141800, productionAspect#1141801, salesAspect#1141802, procurementAspect#1141803, productGroup#1141804, filteredUnitOfMeasureConversions#1141805, quantityNumerator#1141806, quantityDenominator#1141807, CASE WHEN (isnull(outboundUnit#1141808) OR (outboundUnit#1141808 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1141808 END AS outboundUnit#1141809]
(2616) Project
Arguments: [product#1141766, plant#1141767, orderDateTime#1141768, productPlant#1141778, timezonecode#1141792, outboundUnit#1141809]
(2617) Join
Arguments: Inner, ((plantUuid#1141758 = plant#1141767) AND (productUuid#1141760 = product#1141766))
(2618) Filter
Arguments: (calculationDateTime#1141754 <= orderDateTime#1141768)
(2619) Project
Arguments: [plantUuid#1141758 AS plant#1141810, productUuid#1141760 AS product#1141811, storageLocId#1141761, calculationDateTime#1141754, quantity#1141763]
(2620) Aggregate
Arguments: [plant#1141810, product#1141811, storageLocId#1141761], [plant#1141810, product#1141811, storageLocId#1141761, max(calculationDateTime#1141754) AS max_calc_datetime#1141812]
(2621) Join
Arguments: Inner, ((((plant#1141673 <=> plant#1141810) AND (product#1141674 <=> product#1141811)) AND (storageLocId#1141624 <=> storageLocId#1141761)) AND (calculationDateTime#1141617 <=> max_calc_datetime#1141812))
(2622) Project
Arguments: [plant#1141673, product#1141674, storageLocId#1141624, calculationDateTime#1141617, quantity#1141626]
(2623) Aggregate
Arguments: [product#1141674, plant#1141673], [product#1141674, plant#1141673, sum(quantity#1141626) AS quantitySum#1141813, min(calculationDateTime#1141617) AS minCalculationDateTime#1141814]
(2624) Project
Arguments: [product#1141674, plant#1141673, quantitySum#1141813, minCalculationDateTime#1141814, round(quantitySum#1141813, 0) AS roundedQuantitySum#1141815]
(2625) Join
Arguments: LeftOuter, ((plant#1141495 = plant#1141673) AND (product#1141494 = product#1141674))
(2626) Project
Arguments: [product#1141494, plant#1141495, orderDateTime#1141496, productPlant#1141506, timezonecode#1141520, outboundUnit#1141537, roundedQuantitySum#1141815, minCalculationDateTime#1141814]
(2627) Project
Arguments: [product#1141494, plant#1141495, orderDateTime#1141496, productPlant#1141506, timezonecode#1141520, outboundUnit#1141537, roundedQuantitySum#1141815, minCalculationDateTime#1141814, CASE WHEN isnotnull(minCalculationDateTime#1141814) THEN minCalculationDateTime#1141814 ELSE orderDateTime#1141496 END AS stockDatetime#1141816]
(2628) Project
Arguments: [product#1141494, plant#1141495, orderDateTime#1141496, productPlant#1141506, timezonecode#1141520, outboundUnit#1141537, roundedQuantitySum#1141815, minCalculationDateTime#1141814, stockDatetime#1141816, CASE WHEN isnotnull(roundedQuantitySum#1141815) THEN array(roundedQuantitySum#1141815) ELSE array(0.0) END AS stockBatchQuantities#1141817]
(2629) Project
Arguments: [product#1141494, plant#1141495, orderDateTime#1141496, productPlant#1141506, timezonecode#1141520, outboundUnit#1141537, roundedQuantitySum#1141815, minCalculationDateTime#1141814, stockDatetime#1141816, stockBatchQuantities#1141817, array(2199-01-01 00:00:00) AS stockBatchShelfLifeEndDatetimes#1141818]
(2630) Project
Arguments: [product#1141494, plant#1141495, orderDateTime#1141496, productPlant#1141506, timezonecode#1141520, outboundUnit#1141537, roundedQuantitySum#1141815, stockDatetime#1141816, stockBatchQuantities#1141817, stockBatchShelfLifeEndDatetimes#1141818]
(2631) Project
Arguments: [product#1141494, plant#1141495, orderDateTime#1141496, productPlant#1141506, timezonecode#1141520, outboundUnit#1141537, stockDatetime#1141816, stockBatchQuantities#1141817, stockBatchShelfLifeEndDatetimes#1141818]
(2632) LogicalRelation
Arguments: parquet, [product#1141819, plant#1141820, demandChannel#1141821, demandStream#1141822, considerVariance#1141823, demandTimeBuckets#1141824, demandPointInTimeStart#1141825, demandPointInTimeEnd#1141826, demandPointInTime#1141827], false
(2633) Join
Arguments: LeftOuter, ((product#1141494 = product#1141819) AND (plant#1141495 = plant#1141820))
(2634) Project
Arguments: [product#1141494, plant#1141495, orderDateTime#1141496, productPlant#1141506, timezonecode#1141520, outboundUnit#1141537, stockDatetime#1141816, stockBatchQuantities#1141817, stockBatchShelfLifeEndDatetimes#1141818, demandChannel#1141821, demandStream#1141822, considerVariance#1141823, demandTimeBuckets#1141824, demandPointInTimeStart#1141825, demandPointInTimeEnd#1141826, demandPointInTime#1141827, product#1141819, plant#1141820]
(2635) Project
Arguments: [product#1141494, plant#1141495, orderDateTime#1141496, productPlant#1141506, timezonecode#1141520, outboundUnit#1141537, stockDatetime#1141816, stockBatchQuantities#1141817, stockBatchShelfLifeEndDatetimes#1141818, demandChannel#1141821, demandStream#1141822, considerVariance#1141823, demandTimeBuckets#1141824, demandPointInTimeStart#1141825, demandPointInTimeEnd#1141826, demandPointInTime#1141827, CASE WHEN isnotnull(product#1141819) THEN struct(demandChannel, demandChannel#1141821, demandStream, demandStream#1141822, considerVariance, considerVariance#1141823, demandTimeBuckets, demandTimeBuckets#1141824, demandPointInTimeStart, demandPointInTimeStart#1141825, demandPointInTimeEnd, demandPointInTimeEnd#1141826, demandPointInTime, demandPointInTime#1141827) ELSE cast(null as struct<demandChannel:string,demandStream:string,considerVariance:boolean,demandTimeBuckets:array<struct<demandStartDateTime:timestamp,demandQuantity:double,demandVariance:double>>,demandPointInTimeStart:timestamp,demandPointInTimeEnd:timestamp,demandPointInTime:array<struct<demandDateTime:timestamp,demandQuantity:double,demandVariance:double>>>) END AS rawDemands#1141828]
(2636) Aggregate
Arguments: [product#1141494, plant#1141495, orderDateTime#1141496, productPlant#1141506, timezonecode#1141520, outboundUnit#1141537, stockDatetime#1141816, stockBatchQuantities#1141817, stockBatchShelfLifeEndDatetimes#1141818], [product#1141494, plant#1141495, orderDateTime#1141496, productPlant#1141506, timezonecode#1141520, outboundUnit#1141537, stockDatetime#1141816, stockBatchQuantities#1141817, stockBatchShelfLifeEndDatetimes#1141818, collect_list(rawDemands#1141828, 0, 0) AS rawDemands#1141829]
(2637) DeserializeToObject
Arguments: createexternalrow(invoke(product#1141494.toString()), invoke(plant#1141495.toString()), static_invoke(DateTimeUtils.toJavaTimestamp(orderDateTime#1141496)), if (isnull(productPlant#1141506)) null else createexternalrow(invoke(productPlant#1141506.systemId.toString()), invoke(productPlant#1141506.internalUUID.toString()), if (isnull(productPlant#1141506.plant)) null else createexternalrow(invoke(productPlant#1141506.plant.internalRefUUID.toString()), invoke(productPlant#1141506.plant.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), if (isnull(productPlant#1141506.product)) null else createexternalrow(invoke(productPlant#1141506.product.internalRefUUID.toString()), invoke(productPlant#1141506.product.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(DateTimeUtils.toJavaDate(productPlant#1141506.blockedForReplenishmentStartingFrom)), if (isnull(productPlant#1141506.productionAspect)) null else createexternalrow(if (isnull(productPlant#1141506.productionAspect.productMovementPlants)) null else createexternalrow(if (isnull(productPlant#1141506.productionAspect.productMovementPlants.unitOfIssue)) null else createexternalrow(invoke(productPlant#1141506.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID.toString()), invoke(productPlant#1141506.productionAspect.productMovementPlants.unitOfIssue.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), if (isnull(productPlant#1141506.productionAspect.productPlanningPlants)) null else createexternalrow(if (isnull(productPlant#1141506.productionAspect.productPlanningPlants.mrpType)) null else createexternalrow(invoke(productPlant#1141506.productionAspect.productPlanningPlants.mrpType.internalRefUUID.toString()), invoke(productPlant#1141506.productionAspect.productPlanningPlants.mrpType.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1141506.productionAspect.productPlanningPlants.abcIndicator)) null else createexternalrow(invoke(productPlant#1141506.productionAspect.productPlanningPlants.abcIndicator.internalRefUUID.toString()), invoke(productPlant#1141506.productionAspect.productPlanningPlants.abcIndicator.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1141506.productionAspect.productPlanningPlants.mrpController)) null else createexternalrow(invoke(productPlant#1141506.productionAspect.productPlanningPlants.mrpController.internalRefUUID.toString()), invoke(productPlant#1141506.productionAspect.productPlanningPlants.mrpController.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(java.lang.Double.valueOf(productPlant#1141506.productionAspect.productPlanningPlants.minimumLotSize)), if (isnull(productPlant#1141506.productionAspect.productPlanningPlants.logisticalRoundingProfile)) null else createexternalrow(invoke(productPlant#1141506.productionAspect.productPlanningPlants.logisticalRoundingProfile.internalRefUUID.toString()), invoke(productPlant#1141506.productionAspect.productPlanningPlants.logisticalRoundingProfile.logisticalRoundingProfile.toString()), StructField(internalRefUUID,StringType,true), StructField(logisticalRoundingProfile,StringType,true)), if (isnull(productPlant#1141506.productionAspect.productPlanningPlants.sourceOfSupplyCategory)) null else createexternalrow(invoke(productPlant#1141506.productionAspect.productPlanningPlants.sourceOfSupplyCategory.internalRefUUID.toString()), invoke(productPlant#1141506.productionAspect.productPlanningPlants.sourceOfSupplyCategory.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true), StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true), StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(minimumLotSize,DoubleType,true), StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true), StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true), StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)), if (isnull(productPlant#1141506.salesPlant)) null else createexternalrow(if (isnull(productPlant#1141506.salesPlant.loadingGroup)) null else createexternalrow(invoke(productPlant#1141506.salesPlant.loadingGroup.internalRefUUID.toString()), invoke(productPlant#1141506.salesPlant.loadingGroup.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), mapobjects(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 152118), if (isnull(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 152118))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 152118).validFrom)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 152118).validTo)), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 152118).isListed)), StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true)), productPlant#1141506.listing, Some(class scala.collection.mutable.ArraySeq)), StructField(systemId,StringType,true), StructField(internalUUID,StringType,true), StructField(plant,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(product,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(blockedForReplenishmentStartingFrom,DateType,true), StructField(productionAspect,StructType(StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)),true), StructField(salesPlant,StructType(StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true), StructField(listing,ArrayType(StructType(StructField(validFrom,TimestampType,true),StructField(validTo,TimestampType,true),StructField(isListed,BooleanType,true)),true),true)), invoke(timezonecode#1141520.toString()), static_invoke(java.lang.Double.valueOf(outboundUnit#1141537)), static_invoke(DateTimeUtils.toJavaTimestamp(stockDatetime#1141816)), mapobjects(lambdavariable(MapObject, DoubleType, true, 152119), static_invoke(java.lang.Double.valueOf(cast(lambdavariable(MapObject, DoubleType, true, 152119) as double))), stockBatchQuantities#1141817, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, false, 152120), assertnotnull(static_invoke(DateTimeUtils.toJavaTimestamp(cast(lambdavariable(MapObject, TimestampType, false, 152120) as timestamp)))), stockBatchShelfLifeEndDatetimes#1141818, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, 152121), assertnotnull(if (isnull(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, 152121))) null else createexternalrow(invoke(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, 152121).demandChannel.toString()), invoke(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, 152121).demandStream.toString()), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, 152121).considerVariance)), mapobjects(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 152122), if (isnull(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 152122))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 152122).demandStartDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 152122).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 152122).demandVariance)), StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true)), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, 152121).demandTimeBuckets, Some(class scala.collection.mutable.ArraySeq)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, 152121).demandPointInTimeStart)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, 152121).demandPointInTimeEnd)), mapobjects(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 152123), if (isnull(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 152123))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 152123).demandDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 152123).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 152123).demandVariance)), StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true)), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, 152121).demandPointInTime, Some(class scala.collection.mutable.ArraySeq)), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true))), rawDemands#1141829, Some(class scala.collection.mutable.ArraySeq)), StructField(product,StringType,true), StructField(plant,StringType,true), StructField(orderDateTime,TimestampType,true), StructField(productPlant,StructType(StructField(systemId,StringType,true),StructField(internalUUID,StringType,true),StructField(plant,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(product,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(blockedForReplenishmentStartingFrom,DateType,true),StructField(productionAspect,StructType(StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)),true),StructField(salesPlant,StructType(StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(listing,ArrayType(StructType(StructField(validFrom,TimestampType,true),StructField(validTo,TimestampType,true),StructField(isListed,BooleanType,true)),true),true)),true), StructField(timezonecode,StringType,true), StructField(outboundUnit,DoubleType,true), StructField(stockDatetime,TimestampType,true), StructField(stockBatchQuantities,ArrayType(DoubleType,true),false), StructField(stockBatchShelfLifeEndDatetimes,ArrayType(TimestampType,false),false), StructField(rawDemands,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(considerVariance,BooleanType,true),StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true),StructField(demandPointInTimeStart,TimestampType,true),StructField(demandPointInTimeEnd,TimestampType,true),StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true)),false),false)), obj#1136159: org.apache.spark.sql.Row
(2638) MapElements
Arguments: com.sap.s4hana.eureka.business.crporderquantitykpiservice.core.business.datasnapshot.DemandTransformatorImpl$$Lambda/0x00000008023bc120@a39b9be, interface org.apache.spark.sql.Row, [StructField(product,StringType,true), StructField(plant,StringType,true), StructField(orderDateTime,TimestampType,true), StructField(productPlant,StructType(StructField(systemId,StringType,true),StructField(internalUUID,StringType,true),StructField(plant,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(product,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(blockedForReplenishmentStartingFrom,DateType,true),StructField(productionAspect,StructType(StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)),true),StructField(salesPlant,StructType(StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(listing,ArrayType(StructType(StructField(validFrom,TimestampType,true),StructField(validTo,TimestampType,true),StructField(isListed,BooleanType,true)),true),true)),true), StructField(timezonecode,StringType,true), StructField(outboundUnit,DoubleType,true), StructField(stockDatetime,TimestampType,true), StructField(stockBatchQuantities,ArrayType(DoubleType,true),false), StructField(stockBatchShelfLifeEndDatetimes,ArrayType(TimestampType,false),false), StructField(rawDemands,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(considerVariance,BooleanType,true),StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true),StructField(demandPointInTimeStart,TimestampType,true),StructField(demandPointInTimeEnd,TimestampType,true),StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true)),false),false)], obj#1136164: org.apache.spark.sql.Row
(2639) SerializeFromObject
Arguments: [if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(0))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 0, product), StringType, ObjectType(class java.lang.String)))) AS product#1141830, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(1))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 1, plant), StringType, ObjectType(class java.lang.String)))) AS plant#1141831, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(2))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), assertnotnull(if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)))) null else named_struct(demandChannel, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(0))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 0, demandChannel), StringType, ObjectType(class java.lang.String)))), demandStream, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(1))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 1, demandStream), StringType, ObjectType(class java.lang.String)))), considerVariance, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(2))) null else invoke(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 2, considerVariance), BooleanType, ObjectType(class java.lang.Boolean)).booleanValue()), demandValues, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(3))) null else if (invoke(class [D.isInstance(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 3, demandValues), ArrayType(DoubleType,false), ObjectType(class java.lang.Object))))) static_invoke(ArrayData.toArrayData(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 3, demandValues), ArrayType(DoubleType,false), ObjectType(class java.lang.Object)))) else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152109), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152109), DoubleType, ObjectType(class java.lang.Double)).doubleValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 3, demandValues), ArrayType(DoubleType,false), ObjectType(class java.lang.Object)), None), demandVariances, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(4))) null else if (invoke(class [D.isInstance(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 4, demandVariances), ArrayType(DoubleType,true), ObjectType(class java.lang.Object))))) static_invoke(ArrayData.toArrayData(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 4, demandVariances), ArrayType(DoubleType,true), ObjectType(class java.lang.Object)))) else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152110), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152110), DoubleType, ObjectType(class java.lang.Double)).doubleValue()), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 4, demandVariances), ArrayType(DoubleType,true), ObjectType(class java.lang.Object)), None), anchorDatetimes, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(5))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152111), assertnotnull(static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152111), TimestampType, ObjectType(class java.sql.Timestamp))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 5, anchorDatetimes), ArrayType(TimestampType,false), ObjectType(class java.lang.Object)), None), anchorWeekdays, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(6))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152112), assertnotnull(static_invoke(UTF8String.fromString(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152112), StringType, ObjectType(class java.lang.String))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 6, anchorWeekdays), ArrayType(StringType,false), ObjectType(class java.lang.Object)), None), anchorIndices, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(7))) null else if (invoke(class [I.isInstance(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 7, anchorIndices), ArrayType(IntegerType,false), ObjectType(class java.lang.Object))))) static_invoke(ArrayData.toArrayData(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 7, anchorIndices), ArrayType(IntegerType,false), ObjectType(class java.lang.Object)))) else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152113), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152113), IntegerType, ObjectType(class java.lang.Integer)).intValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152108), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 7, anchorIndices), ArrayType(IntegerType,false), ObjectType(class java.lang.Object)), None))), validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 2, dayBucketDemands), ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(considerVariance,BooleanType,true),StructField(demandValues,ArrayType(DoubleType,false),true),StructField(demandVariances,ArrayType(DoubleType,true),true),StructField(anchorDatetimes,ArrayType(TimestampType,false),true),StructField(anchorWeekdays,ArrayType(StringType,false),true),StructField(anchorIndices,ArrayType(IntegerType,false),true)),false), ObjectType(class java.lang.Object)), None) AS dayBucketDemands#1141832, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(3))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), assertnotnull(if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)))) null else named_struct(demandChannel, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(0))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 0, demandChannel), StringType, ObjectType(class java.lang.String)))), demandStream, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(1))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 1, demandStream), StringType, ObjectType(class java.lang.String)))), considerVariance, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(2))) null else invoke(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 2, considerVariance), BooleanType, ObjectType(class java.lang.Boolean)).booleanValue()), demandDatetimes, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(3))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152115), assertnotnull(static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152115), TimestampType, ObjectType(class java.sql.Timestamp))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 3, demandDatetimes), ArrayType(TimestampType,false), ObjectType(class java.lang.Object)), None), demandValues, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(4))) null else if (invoke(class [D.isInstance(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 4, demandValues), ArrayType(DoubleType,false), ObjectType(class java.lang.Object))))) static_invoke(ArrayData.toArrayData(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 4, demandValues), ArrayType(DoubleType,false), ObjectType(class java.lang.Object)))) else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152116), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152116), DoubleType, ObjectType(class java.lang.Double)).doubleValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 4, demandValues), ArrayType(DoubleType,false), ObjectType(class java.lang.Object)), None), demandVariances, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(5))) null else if (invoke(class [D.isInstance(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 5, demandVariances), ArrayType(DoubleType,true), ObjectType(class java.lang.Object))))) static_invoke(ArrayData.toArrayData(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 5, demandVariances), ArrayType(DoubleType,true), ObjectType(class java.lang.Object)))) else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152117), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152117), DoubleType, ObjectType(class java.lang.Double)).doubleValue()), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 5, demandVariances), ArrayType(DoubleType,true), ObjectType(class java.lang.Object)), None), horizonStartDatetime, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(6))) null else static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 6, horizonStartDatetime), TimestampType, ObjectType(class java.sql.Timestamp)))), horizonEndDatetime, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(7))) null else static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152114), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 7, horizonEndDatetime), TimestampType, ObjectType(class java.sql.Timestamp)))))), validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 3, pointInTimeDemands), ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(considerVariance,BooleanType,true),StructField(demandDatetimes,ArrayType(TimestampType,false),true),StructField(demandValues,ArrayType(DoubleType,false),true),StructField(demandVariances,ArrayType(DoubleType,true),true),StructField(horizonStartDatetime,TimestampType,true),StructField(horizonEndDatetime,TimestampType,true)),false), ObjectType(class java.lang.Object)), None) AS pointInTimeDemands#1141833]
(2640) Join
Arguments: LeftOuter, ((plant#1141831 <=> plant#1141170) AND (product#1141830 <=> product#1141169))
(2641) Project
Arguments: [product#1141169, plant#1141170, orderDateTime#1141171, productPlant#1141181, timezonecode#1141195, outboundUnit#1141212, stockDatetime#1141491, stockBatchQuantities#1141492, stockBatchShelfLifeEndDatetimes#1141493, plant#1141831, dayBucketDemands#1141832, pointInTimeDemands#1141833]
(2642) Project
Arguments: [product#1141169, plant#1141170, orderDateTime#1141171, productPlant#1141181, timezonecode#1141195, outboundUnit#1141212, stockDatetime#1141491, stockBatchQuantities#1141492, stockBatchShelfLifeEndDatetimes#1141493, dayBucketDemands#1141832, pointInTimeDemands#1141833]
(2643) LogicalRelation
Arguments: parquet, [systemId#1141834, internalUUID#1141835, id#1141836, displayId#1141837, supplier#1141838, type#1141839, status#1141840, isMarkedForDeletion#1141841, items#1141842], false
(2644) Repartition
Arguments: 37, true
(2645) Generate
Arguments: explode(items#1141842), false, [item#1141843]
(2646) Project
Arguments: [id#1141836, internalUUID#1141835, isMarkedForDeletion#1141841, supplier#1141838.internalRefUUID AS supplierUuid#1141844, item#1141843]
(2647) Filter
Arguments: (((NOT isMarkedForDeletion#1141841 AND NOT item#1141843.deletionIndicator) AND NOT item#1141843.completeIndicator) AND NOT item#1141843.returnIndicator)
(2648) Project
Arguments: [id#1141836, internalUUID#1141835, supplierUuid#1141844, item#1141843.plant.internalRefUUID AS plant#1141845, item#1141843.product.internalRefUUID AS product#1141846, item#1141843.plant.id AS externalPlantId#1141847, item#1141843.product.id AS externalProductId#1141848, item#1141843.storageLocation.internalRefUUID AS storageLocUuid#1141849, item#1141843.quantityUnit.code AS quantityUom#1141850, item#1141843.quantityUnit.internalRefUUID AS quantityUomUuid#1141851, item#1141843.quantityNumerator AS quantityNumerator#1141852, item#1141843.quantityDenominator AS quantityDenominator#1141853, item#1141843.scheduleLines AS scheduleLines#1141854, item#1141843.confirmations AS confirmations#1141855]
(2649) Join
Arguments: Inner, ((product#1141169 <=> product#1141846) AND (plant#1141170 <=> supplierUuid#1141844))
(2650) Project
Arguments: [id#1141836, internalUUID#1141835, supplierUuid#1141844, plant#1141845, product#1141846, externalPlantId#1141847, externalProductId#1141848, storageLocUuid#1141849, quantityUom#1141850, quantityUomUuid#1141851, quantityNumerator#1141852, quantityDenominator#1141853, scheduleLines#1141854, confirmations#1141855, stockDatetime#1141491, plant#1141170]
(2651) Project
Arguments: [id#1141836, internalUUID#1141835, supplierUuid#1141844, product#1141846, externalPlantId#1141847, externalProductId#1141848, storageLocUuid#1141849, quantityUom#1141850, quantityUomUuid#1141851, quantityNumerator#1141852, quantityDenominator#1141853, scheduleLines#1141854, confirmations#1141855, stockDatetime#1141491, plant#1141170]
(2652) Project
Arguments: [id#1141836, internalUUID#1141835, supplierUuid#1141844, product#1141846, externalPlantId#1141847, externalProductId#1141848, storageLocUuid#1141849, quantityUom#1141850, quantityUomUuid#1141851, quantityNumerator#1141852, quantityDenominator#1141853, scheduleLines#1141854, confirmations#1141855, stockDatetime#1141491, plant#1141170, filter(transform(filter(transform(scheduleLines#1141854, lambdafunction(struct(openQty, (greatest((lambda x_134#1137959.quantity - coalesce(lambda x_134#1137959.deliveredQuantity, 0.0)), 0.0) * -1.0), availabilityDatetime, coalesce(lambda x_134#1137959.productAvailabilityDateTime, lambda x_134#1137959.deliveryAt)), lambda x_134#1137959, false)), lambdafunction((lambda x_135#1137960.availabilityDatetime < stockDatetime#1141491), lambda x_135#1137960, false)), lambdafunction(struct(documentId, id#1141836, documentUuid, internalUUID#1141835, openQty, lambda x_136#1137961.openQty, openQtyInBaseUnit, ((lambda x_136#1137961.openQty * quantityNumerator#1141852) / quantityDenominator#1141853), qtyUom, quantityUom#1141850, qtyUomUuid, quantityUomUuid#1141851, availabilityDatetime, lambda x_136#1137961.availabilityDatetime, shelfLifeEndDatetime, 2199-01-01 00:00:00), lambda x_136#1137961, false)), lambdafunction(NOT (lambda x_137#1137962.openQty = 0.0), lambda x_137#1137962, false)) AS openGoodsMovements#1141856]
(2653) Aggregate
Arguments: [product#1141846, plant#1141170], [product#1141846, plant#1141170, flatten(collect_list(openGoodsMovements#1141856, 0, 0)) AS openGoodsMovements#1141857]
(2654) Filter
Arguments: (array_size(openGoodsMovements#1141857) > 0)
(2655) Union
Arguments: false, false
(2656) Aggregate
Arguments: [product#1141154, plant#1141153], [product#1141154, plant#1141153, flatten(collect_list(openGoodsMovements#1141168, 0, 0)) AS openGoodsMovements#1141858]
(2657) Join
Arguments: LeftOuter, ((product#1139739 = product#1141154) AND (plant#1139740 = plant#1141153))
(2658) Project
Arguments: [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, timezonecode#1139765, outboundUnit#1139782, stockDatetime#1140061, stockBatchQuantities#1140062, stockBatchShelfLifeEndDatetimes#1140063, dayBucketDemands#1140402, pointInTimeDemands#1140403, openGoodsMovements#1141858]
(2659) Project
Arguments: [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, timezonecode#1139765, outboundUnit#1139782, stockDatetime#1140061, stockBatchQuantities#1140062, stockBatchShelfLifeEndDatetimes#1140063, dayBucketDemands#1140402, pointInTimeDemands#1140403, coalesce(openGoodsMovements#1141858.openQtyInBaseUnit, cast(array() as array<double>)) AS openGoodsMovementQuantities#1141859, coalesce(openGoodsMovements#1141858.availabilityDatetime, cast(array() as array<timestamp>)) AS openGoodsMovementAvailabilityDatetimes#1141860, coalesce(openGoodsMovements#1141858.shelfLifeEndDatetime, cast(array() as array<timestamp>)) AS openGoodsMovementShelfLifeEndDatetimes#1141861]
(2660) Project
Arguments: [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, timezonecode#1139765, outboundUnit#1139782, stockDatetime#1140061, stockBatchQuantities#1140062, stockBatchShelfLifeEndDatetimes#1140063, dayBucketDemands#1140402, pointInTimeDemands#1140403, openGoodsMovementQuantities#1141859, openGoodsMovementAvailabilityDatetimes#1141860, openGoodsMovementShelfLifeEndDatetimes#1141861, array(struct(configurationValidityDatetime, 1970-01-01 00:00:00, configurationName, ShelfLife.LIFOPreference, configurationValue, 0.42), struct(configurationValidityDatetime, 1970-01-01 00:00:00, configurationName, StockExtrapolation.ConsiderUnfulfilledDemands, configurationValue, 1)) AS configuration#1141862]
(2661) Project
Arguments: [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, timezonecode#1139765, outboundUnit#1139782, stockDatetime#1140061, stockBatchQuantities#1140062, stockBatchShelfLifeEndDatetimes#1140063, dayBucketDemands#1140402, pointInTimeDemands#1140403, openGoodsMovementQuantities#1141859, openGoodsMovementAvailabilityDatetimes#1141860, openGoodsMovementShelfLifeEndDatetimes#1141861, configuration#1141862, productPlant#1139751.listing AS listing#1139679]
(2662) Project
Arguments: [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, timezonecode#1139765, outboundUnit#1139782, stockDatetime#1140061, stockBatchQuantities#1140062, stockBatchShelfLifeEndDatetimes#1140063, dayBucketDemands#1140402, pointInTimeDemands#1140403, openGoodsMovementQuantities#1141859, openGoodsMovementAvailabilityDatetimes#1141860, openGoodsMovementShelfLifeEndDatetimes#1141861, configuration#1141862, CASE WHEN isnotnull(listing#1139679) THEN listing#1139679 ELSE cast(array() as array<struct<validFrom:timestamp,validTo:timestamp,isListed:boolean>>) END AS listing#1139681]
(2663) Project
Arguments: [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, timezonecode#1139765, outboundUnit#1139782, stockDatetime#1140061, stockBatchQuantities#1140062, stockBatchShelfLifeEndDatetimes#1140063, dayBucketDemands#1140402, pointInTimeDemands#1140403, openGoodsMovementQuantities#1141859, openGoodsMovementAvailabilityDatetimes#1141860, openGoodsMovementShelfLifeEndDatetimes#1141861, configuration#1141862, filter(listing#1139681, lambdafunction((lambda listing#1139683.isListed = true), lambda listing#1139683, false)) AS listing#1139682]
(2664) Project
Arguments: [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, timezonecode#1139765, outboundUnit#1139782, stockDatetime#1140061, stockBatchQuantities#1140062, stockBatchShelfLifeEndDatetimes#1140063, dayBucketDemands#1140402, pointInTimeDemands#1140403, openGoodsMovementQuantities#1141859, openGoodsMovementAvailabilityDatetimes#1141860, openGoodsMovementShelfLifeEndDatetimes#1141861, configuration#1141862, array_sort(listing#1139682, lambdafunction(if ((isnull(lambda left#1139685) AND isnull(lambda right#1139686))) 0 else if (isnull(lambda left#1139685)) 1 else if (isnull(lambda right#1139686)) -1 else if ((lambda left#1139685 < lambda right#1139686)) -1 else if ((lambda left#1139685 > lambda right#1139686)) 1 else 0, lambda left#1139685, lambda right#1139686, false), false) AS listing#1139684]
(2665) DeserializeToObject
Arguments: createexternalrow(invoke(product#1139739.toString()), invoke(plant#1139740.toString()), static_invoke(DateTimeUtils.toJavaTimestamp(orderDateTime#1139741)), if (isnull(productPlant#1139751)) null else createexternalrow(invoke(productPlant#1139751.systemId.toString()), invoke(productPlant#1139751.internalUUID.toString()), if (isnull(productPlant#1139751.plant)) null else createexternalrow(invoke(productPlant#1139751.plant.internalRefUUID.toString()), invoke(productPlant#1139751.plant.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), if (isnull(productPlant#1139751.product)) null else createexternalrow(invoke(productPlant#1139751.product.internalRefUUID.toString()), invoke(productPlant#1139751.product.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(DateTimeUtils.toJavaDate(productPlant#1139751.blockedForReplenishmentStartingFrom)), if (isnull(productPlant#1139751.productionAspect)) null else createexternalrow(if (isnull(productPlant#1139751.productionAspect.productMovementPlants)) null else createexternalrow(if (isnull(productPlant#1139751.productionAspect.productMovementPlants.unitOfIssue)) null else createexternalrow(invoke(productPlant#1139751.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID.toString()), invoke(productPlant#1139751.productionAspect.productMovementPlants.unitOfIssue.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), if (isnull(productPlant#1139751.productionAspect.productPlanningPlants)) null else createexternalrow(if (isnull(productPlant#1139751.productionAspect.productPlanningPlants.mrpType)) null else createexternalrow(invoke(productPlant#1139751.productionAspect.productPlanningPlants.mrpType.internalRefUUID.toString()), invoke(productPlant#1139751.productionAspect.productPlanningPlants.mrpType.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1139751.productionAspect.productPlanningPlants.abcIndicator)) null else createexternalrow(invoke(productPlant#1139751.productionAspect.productPlanningPlants.abcIndicator.internalRefUUID.toString()), invoke(productPlant#1139751.productionAspect.productPlanningPlants.abcIndicator.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1139751.productionAspect.productPlanningPlants.mrpController)) null else createexternalrow(invoke(productPlant#1139751.productionAspect.productPlanningPlants.mrpController.internalRefUUID.toString()), invoke(productPlant#1139751.productionAspect.productPlanningPlants.mrpController.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(java.lang.Double.valueOf(productPlant#1139751.productionAspect.productPlanningPlants.minimumLotSize)), if (isnull(productPlant#1139751.productionAspect.productPlanningPlants.logisticalRoundingProfile)) null else createexternalrow(invoke(productPlant#1139751.productionAspect.productPlanningPlants.logisticalRoundingProfile.internalRefUUID.toString()), invoke(productPlant#1139751.productionAspect.productPlanningPlants.logisticalRoundingProfile.logisticalRoundingProfile.toString()), StructField(internalRefUUID,StringType,true), StructField(logisticalRoundingProfile,StringType,true)), if (isnull(productPlant#1139751.productionAspect.productPlanningPlants.sourceOfSupplyCategory)) null else createexternalrow(invoke(productPlant#1139751.productionAspect.productPlanningPlants.sourceOfSupplyCategory.internalRefUUID.toString()), invoke(productPlant#1139751.productionAspect.productPlanningPlants.sourceOfSupplyCategory.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true), StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true), StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(minimumLotSize,DoubleType,true), StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true), StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true), StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)), if (isnull(productPlant#1139751.salesPlant)) null else createexternalrow(if (isnull(productPlant#1139751.salesPlant.loadingGroup)) null else createexternalrow(invoke(productPlant#1139751.salesPlant.loadingGroup.internalRefUUID.toString()), invoke(productPlant#1139751.salesPlant.loadingGroup.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), mapobjects(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 152452), if (isnull(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 152452))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 152452).validFrom)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 152452).validTo)), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 152452).isListed)), StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true)), productPlant#1139751.listing, Some(class scala.collection.mutable.ArraySeq)), StructField(systemId,StringType,true), StructField(internalUUID,StringType,true), StructField(plant,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(product,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(blockedForReplenishmentStartingFrom,DateType,true), StructField(productionAspect,StructType(StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)),true), StructField(salesPlant,StructType(StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true), StructField(listing,ArrayType(StructType(StructField(validFrom,TimestampType,true),StructField(validTo,TimestampType,true),StructField(isListed,BooleanType,true)),true),true)), invoke(timezonecode#1139765.toString()), static_invoke(java.lang.Double.valueOf(outboundUnit#1139782)), static_invoke(DateTimeUtils.toJavaTimestamp(stockDatetime#1140061)), mapobjects(lambdavariable(MapObject, DoubleType, true, 152453), static_invoke(java.lang.Double.valueOf(cast(lambdavariable(MapObject, DoubleType, true, 152453) as double))), stockBatchQuantities#1140062, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, false, 152454), assertnotnull(static_invoke(DateTimeUtils.toJavaTimestamp(cast(lambdavariable(MapObject, TimestampType, false, 152454) as timestamp)))), stockBatchShelfLifeEndDatetimes#1140063, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), false, 152455), assertnotnull(if (isnull(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), false, 152455))) null else createexternalrow(invoke(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), false, 152455).demandChannel.toString()), invoke(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), false, 152455).demandStream.toString()), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), false, 152455).considerVariance)), mapobjects(lambdavariable(MapObject, DoubleType, false, 152456), assertnotnull(static_invoke(java.lang.Double.valueOf(cast(lambdavariable(MapObject, DoubleType, false, 152456) as double)))), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), false, 152455).demandValues, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, DoubleType, true, 152457), static_invoke(java.lang.Double.valueOf(cast(lambdavariable(MapObject, DoubleType, true, 152457) as double))), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), false, 152455).demandVariances, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, false, 152458), assertnotnull(static_invoke(DateTimeUtils.toJavaTimestamp(cast(lambdavariable(MapObject, TimestampType, false, 152458) as timestamp)))), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), false, 152455).anchorDatetimes, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, StringType, false, 152459), assertnotnull(invoke(cast(lambdavariable(MapObject, StringType, false, 152459) as string).toString())), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), false, 152455).anchorWeekdays, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, IntegerType, false, 152460), assertnotnull(static_invoke(java.lang.Integer.valueOf(cast(lambdavariable(MapObject, IntegerType, false, 152460) as int)))), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), false, 152455).anchorIndices, Some(class scala.collection.mutable.ArraySeq)), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true))), dayBucketDemands#1140402, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), false, 152461), assertnotnull(if (isnull(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), false, 152461))) null else createexternalrow(invoke(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), false, 152461).demandChannel.toString()), invoke(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), false, 152461).demandStream.toString()), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), false, 152461).considerVariance)), mapobjects(lambdavariable(MapObject, TimestampType, false, 152462), assertnotnull(static_invoke(DateTimeUtils.toJavaTimestamp(cast(lambdavariable(MapObject, TimestampType, false, 152462) as timestamp)))), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), false, 152461).demandDatetimes, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, DoubleType, false, 152463), assertnotnull(static_invoke(java.lang.Double.valueOf(cast(lambdavariable(MapObject, DoubleType, false, 152463) as double)))), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), false, 152461).demandValues, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, DoubleType, true, 152464), static_invoke(java.lang.Double.valueOf(cast(lambdavariable(MapObject, DoubleType, true, 152464) as double))), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), false, 152461).demandVariances, Some(class scala.collection.mutable.ArraySeq)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), false, 152461).horizonStartDatetime)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), false, 152461).horizonEndDatetime)), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true))), pointInTimeDemands#1140403, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, DoubleType, true, 152465), static_invoke(java.lang.Double.valueOf(cast(lambdavariable(MapObject, DoubleType, true, 152465) as double))), openGoodsMovementQuantities#1141859, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, true, 152466), static_invoke(DateTimeUtils.toJavaTimestamp(cast(lambdavariable(MapObject, TimestampType, true, 152466) as timestamp))), openGoodsMovementAvailabilityDatetimes#1141860, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, false, 152467), assertnotnull(static_invoke(DateTimeUtils.toJavaTimestamp(cast(lambdavariable(MapObject, TimestampType, false, 152467) as timestamp)))), openGoodsMovementShelfLifeEndDatetimes#1141861, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, StructField(configurationValidityDatetime,TimestampType,false), StructField(configurationName,StringType,false), StructField(configurationValue,StringType,false), false, 152468), assertnotnull(if (isnull(lambdavariable(MapObject, StructField(configurationValidityDatetime,TimestampType,false), StructField(configurationName,StringType,false), StructField(configurationValue,StringType,false), false, 152468))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(configurationValidityDatetime,TimestampType,false), StructField(configurationName,StringType,false), StructField(configurationValue,StringType,false), false, 152468).configurationValidityDatetime)), invoke(lambdavariable(MapObject, StructField(configurationValidityDatetime,TimestampType,false), StructField(configurationName,StringType,false), StructField(configurationValue,StringType,false), false, 152468).configurationName.toString()), invoke(lambdavariable(MapObject, StructField(configurationValidityDatetime,TimestampType,false), StructField(configurationName,StringType,false), StructField(configurationValue,StringType,false), false, 152468).configurationValue.toString()), StructField(configurationValidityDatetime,TimestampType,false), StructField(configurationName,StringType,false), StructField(configurationValue,StringType,false))), configuration#1141862, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 152469), if (isnull(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 152469))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 152469).validFrom)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 152469).validTo)), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 152469).isListed)), StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true)), listing#1139684, Some(class scala.collection.mutable.ArraySeq)), StructField(product,StringType,true), StructField(plant,StringType,true), StructField(orderDateTime,TimestampType,true), StructField(productPlant,StructType(StructField(systemId,StringType,true),StructField(internalUUID,StringType,true),StructField(plant,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(product,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(blockedForReplenishmentStartingFrom,DateType,true),StructField(productionAspect,StructType(StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)),true),StructField(salesPlant,StructType(StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(listing,ArrayType(StructType(StructField(validFrom,TimestampType,true),StructField(validTo,TimestampType,true),StructField(isListed,BooleanType,true)),true),true)),true), StructField(timezonecode,StringType,true), StructField(outboundUnit,DoubleType,true), StructField(stockDatetime,TimestampType,true), StructField(stockBatchQuantities,ArrayType(DoubleType,true),false), StructField(stockBatchShelfLifeEndDatetimes,ArrayType(TimestampType,false),false), ... 7 more fields), obj#1139719: org.apache.spark.sql.Row
(2666) MapElements
Arguments: com.sap.s4hana.eureka.business.crporderquantitykpiservice.core.business.datasnapshot.ListingSnapshotEnhancementImpl$$Lambda/0x000000080249e4c8@75d0fa77, interface org.apache.spark.sql.Row, [StructField(product,StringType,true), StructField(plant,StringType,true), StructField(orderDateTime,TimestampType,true), StructField(productPlant,StructType(StructField(systemId,StringType,true),StructField(internalUUID,StringType,true),StructField(plant,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(product,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(blockedForReplenishmentStartingFrom,DateType,true),StructField(productionAspect,StructType(StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)),true),StructField(salesPlant,StructType(StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(listing,ArrayType(StructType(StructField(validFrom,TimestampType,true),StructField(validTo,TimestampType,true),StructField(isListed,BooleanType,true)),true),true)),true), StructField(timezonecode,StringType,true), StructField(outboundUnit,DoubleType,true), StructField(stockDatetime,TimestampType,true), StructField(stockBatchQuantities,ArrayType(DoubleType,true),false), StructField(stockBatchShelfLifeEndDatetimes,ArrayType(TimestampType,false),false), StructField(dayBucketDemands,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(considerVariance,BooleanType,true),StructField(demandValues,ArrayType(DoubleType,false),true),StructField(demandVariances,ArrayType(DoubleType,true),true),StructField(anchorDatetimes,ArrayType(TimestampType,false),true),StructField(anchorWeekdays,ArrayType(StringType,false),true),StructField(anchorIndices,ArrayType(IntegerType,false),true)),false),true), StructField(pointInTimeDemands,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(considerVariance,BooleanType,true),StructField(demandDatetimes,ArrayType(TimestampType,false),true),StructField(demandValues,ArrayType(DoubleType,false),true),StructField(demandVariances,ArrayType(DoubleType,true),true),StructField(horizonStartDatetime,TimestampType,true),StructField(horizonEndDatetime,TimestampType,true)),false),true), StructField(openGoodsMovementQuantities,ArrayType(DoubleType,true),false), StructField(openGoodsMovementAvailabilityDatetimes,ArrayType(TimestampType,true),false), StructField(openGoodsMovementShelfLifeEndDatetimes,ArrayType(TimestampType,false),false), StructField(configuration,ArrayType(StructType(StructField(configurationValidityDatetime,TimestampType,false),StructField(configurationName,StringType,false),StructField(configurationValue,StringType,false)),false),false), StructField(listing,ArrayType(StructType(StructField(validFrom,TimestampType,true),StructField(validTo,TimestampType,true),StructField(isListed,BooleanType,true)),true),true)], obj#1139726: org.apache.spark.sql.Row
(2667) SerializeFromObject
Arguments: [if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(0))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 0, product), StringType, ObjectType(class java.lang.String)))) AS product#1139733, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(1))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 1, plant), StringType, ObjectType(class java.lang.String)))) AS plant#1139734, assertnotnull(mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152448), static_invoke(UTF8String.fromString(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152448), StringType, ObjectType(class java.lang.String)))), validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 2, timeDependentSettingsName), ArrayType(StringType,true), ObjectType(class java.lang.Object)), None)) AS timeDependentSettingsName#1139735, assertnotnull(mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152449), static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152449), TimestampType, ObjectType(class java.sql.Timestamp)))), validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 3, timeDependentSettingsStartDatetime), ArrayType(TimestampType,true), ObjectType(class java.lang.Object)), None)) AS timeDependentSettingsStartDatetime#1139736, assertnotnull(mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152450), static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152450), TimestampType, ObjectType(class java.sql.Timestamp)))), validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 4, timeDependentSettingsEndDatetime), ArrayType(TimestampType,true), ObjectType(class java.lang.Object)), None)) AS timeDependentSettingsEndDatetime#1139737, assertnotnull(if (invoke(class [D.isInstance(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 5, timeDependentSettingsValue), ArrayType(DoubleType,true), ObjectType(class java.lang.Object))))) static_invoke(ArrayData.toArrayData(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 5, timeDependentSettingsValue), ArrayType(DoubleType,true), ObjectType(class java.lang.Object)))) else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152451), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 152451), DoubleType, ObjectType(class java.lang.Double)).doubleValue()), validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 5, timeDependentSettingsValue), ArrayType(DoubleType,true), ObjectType(class java.lang.Object)), None)) AS timeDependentSettingsValue#1139738]
(2668) Join
Arguments: LeftOuter, ((product#1135691 = product#1139733) AND (plant#1135692 = plant#1139734))
(2669) Project
Arguments: [product#1135691, plant#1135692, orderDateTime#1135693, productPlant#1135705, timezonecode#1135723, outboundUnit#1135750, stockDatetime#1136095, stockBatchQuantities#1136096, stockBatchShelfLifeEndDatetimes#1136097, dayBucketDemands#1136171, pointInTimeDemands#1136172, openGoodsMovementQuantities#1139437, openGoodsMovementAvailabilityDatetimes#1139438, openGoodsMovementShelfLifeEndDatetimes#1139439, configuration#1139540, timeDependentSettingsName#1139735, timeDependentSettingsStartDatetime#1139736, timeDependentSettingsEndDatetime#1139737, timeDependentSettingsValue#1139738]
(2670) Project
Arguments: [product#1135691, plant#1135692, orderDateTime#1135693, productPlant#1135705, timezonecode#1135723, outboundUnit#1135750, stockDatetime#1136095, stockBatchQuantities#1136096, stockBatchShelfLifeEndDatetimes#1136097, dayBucketDemands#1136171, pointInTimeDemands#1136172, openGoodsMovementQuantities#1139437, openGoodsMovementAvailabilityDatetimes#1139438, openGoodsMovementShelfLifeEndDatetimes#1139439, configuration#1139540, CASE WHEN isnotnull(timeDependentSettingsName#1139735) THEN timeDependentSettingsName#1139735 ELSE cast(array() as array<string>) END AS timeDependentSettingsName#1142017, timeDependentSettingsStartDatetime#1139736, timeDependentSettingsEndDatetime#1139737, timeDependentSettingsValue#1139738]
(2671) Project
Arguments: [product#1135691, plant#1135692, orderDateTime#1135693, productPlant#1135705, timezonecode#1135723, outboundUnit#1135750, stockDatetime#1136095, stockBatchQuantities#1136096, stockBatchShelfLifeEndDatetimes#1136097, dayBucketDemands#1136171, pointInTimeDemands#1136172, openGoodsMovementQuantities#1139437, openGoodsMovementAvailabilityDatetimes#1139438, openGoodsMovementShelfLifeEndDatetimes#1139439, configuration#1139540, timeDependentSettingsName#1142017, CASE WHEN isnotnull(timeDependentSettingsStartDatetime#1139736) THEN timeDependentSettingsStartDatetime#1139736 ELSE cast(array() as array<timestamp>) END AS timeDependentSettingsStartDatetime#1142018, timeDependentSettingsEndDatetime#1139737, timeDependentSettingsValue#1139738]
(2672) Project
Arguments: [product#1135691, plant#1135692, orderDateTime#1135693, productPlant#1135705, timezonecode#1135723, outboundUnit#1135750, stockDatetime#1136095, stockBatchQuantities#1136096, stockBatchShelfLifeEndDatetimes#1136097, dayBucketDemands#1136171, pointInTimeDemands#1136172, openGoodsMovementQuantities#1139437, openGoodsMovementAvailabilityDatetimes#1139438, openGoodsMovementShelfLifeEndDatetimes#1139439, configuration#1139540, timeDependentSettingsName#1142017, timeDependentSettingsStartDatetime#1142018, CASE WHEN isnotnull(timeDependentSettingsEndDatetime#1139737) THEN timeDependentSettingsEndDatetime#1139737 ELSE cast(array() as array<timestamp>) END AS timeDependentSettingsEndDatetime#1142019, timeDependentSettingsValue#1139738]
(2673) Project
Arguments: [product#1135691, plant#1135692, orderDateTime#1135693, productPlant#1135705, timezonecode#1135723, outboundUnit#1135750, stockDatetime#1136095, stockBatchQuantities#1136096, stockBatchShelfLifeEndDatetimes#1136097, dayBucketDemands#1136171, pointInTimeDemands#1136172, openGoodsMovementQuantities#1139437, openGoodsMovementAvailabilityDatetimes#1139438, openGoodsMovementShelfLifeEndDatetimes#1139439, configuration#1139540, timeDependentSettingsName#1142017, timeDependentSettingsStartDatetime#1142018, timeDependentSettingsEndDatetime#1142019, CASE WHEN isnotnull(timeDependentSettingsValue#1139738) THEN timeDependentSettingsValue#1139738 ELSE cast(array() as array<double>) END AS timeDependentSettingsValue#1142020]
(2674) Project
Arguments: [product#1135691, plant#1135692, orderDateTime#1135693, timezonecode#1135723, outboundUnit#1135750, stockDatetime#1136095, stockBatchQuantities#1136096, stockBatchShelfLifeEndDatetimes#1136097, dayBucketDemands#1136171, pointInTimeDemands#1136172, openGoodsMovementQuantities#1139437, openGoodsMovementAvailabilityDatetimes#1139438, openGoodsMovementShelfLifeEndDatetimes#1139439, configuration#1139540, timeDependentSettingsName#1142017, timeDependentSettingsStartDatetime#1142018, timeDependentSettingsEndDatetime#1142019, timeDependentSettingsValue#1142020]
(2675) Project
Arguments: [product#1135691, plant#1135692, orderDateTime#1135693, outboundUnit#1135750, stockDatetime#1136095, stockBatchQuantities#1136096, stockBatchShelfLifeEndDatetimes#1136097, dayBucketDemands#1136171, pointInTimeDemands#1136172, openGoodsMovementQuantities#1139437, openGoodsMovementAvailabilityDatetimes#1139438, openGoodsMovementShelfLifeEndDatetimes#1139439, configuration#1139540, timeDependentSettingsName#1142017, timeDependentSettingsStartDatetime#1142018, timeDependentSettingsEndDatetime#1142019, timeDependentSettingsValue#1142020]
(2676) Project
Arguments: [product#1135691, plant#1135692, outboundUnit#1135750, stockDatetime#1136095, stockBatchQuantities#1136096, stockBatchShelfLifeEndDatetimes#1136097, dayBucketDemands#1136171, pointInTimeDemands#1136172, openGoodsMovementQuantities#1139437, openGoodsMovementAvailabilityDatetimes#1139438, openGoodsMovementShelfLifeEndDatetimes#1139439, configuration#1139540, timeDependentSettingsName#1142017, timeDependentSettingsStartDatetime#1142018, timeDependentSettingsEndDatetime#1142019, timeDependentSettingsValue#1142020]