== 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@20504c81, [path=hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-quantity-kpi-service/internal/data-snapshot/10000001356/0_1_10000001356], Overwrite
(3) LogicalRelation
Arguments: parquet, [product#1225622, plant#1225623, orderDateTime#1225624, planningStartDateTime#1225625], false
(4) RepartitionByExpression
Arguments: [product#1225622, plant#1225623], 37
(5) Project
Arguments: [product#1225622, plant#1225623, orderDateTime#1225624]
(6) LogicalRelation
Arguments: parquet, [systemId#1225627, internalUUID#1225628, plant#1225629, product#1225630, blockedForReplenishmentStartingFrom#1225631, productionAspect#1225632, salesPlant#1225633, listing#1225634], false
(7) Repartition
Arguments: 37, true
(8) Project
Arguments: [systemId#1225627, internalUUID#1225628, plant#1225629, product#1225630, blockedForReplenishmentStartingFrom#1225631, productionAspect#1225632, salesPlant#1225633, listing#1225634, struct(systemId, systemId#1225627, internalUUID, internalUUID#1225628, plant, plant#1225629, product, product#1225630, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1225631, productionAspect, productionAspect#1225632, salesPlant, salesPlant#1225633, listing, listing#1225634) AS productPlant#1225636]
(9) Project
Arguments: [productPlant#1225636]
(10) Join
Arguments: LeftOuter, ((product#1225622 <=> productPlant#1225636.product.internalRefUUID) AND (plant#1225623 <=> productPlant#1225636.plant.internalRefUUID))
(11) Project
Arguments: [product#1225622, plant#1225623, orderDateTime#1225624, productPlant#1225636]
(12) SubqueryAlias
Arguments: wl
(13) LogicalRelation
Arguments: parquet, [systemId#1225639, internalUUID#1225640, id#1225641, displayId#1225642, name#1225643, category#1225644, companyCode#1225645, address#1225646, mainDistributionChain#1225647, mainPurchasingOrganization#1225648, validPurchasingOrganizations#1225649, productGroup#1225650], false
(14) Repartition
Arguments: 37, true
(15) Project
Arguments: [internalUUID#1225640, address#1225646.timeZone.code AS timezonecode#1225651]
(16) Join
Arguments: LeftOuter, (plant#1225623 <=> internalUUID#1225640)
(17) Project
Arguments: [product#1225622, plant#1225623, orderDateTime#1225624, productPlant#1225636, internalUUID#1225640, CASE WHEN isnotnull(timezonecode#1225651) THEN timezonecode#1225651 ELSE UTC END AS timezonecode#1225654]
(18) Project
Arguments: [product#1225622, plant#1225623, orderDateTime#1225624, productPlant#1225636, timezonecode#1225654]
(19) LogicalRelation
Arguments: parquet, [systemId#1225655, internalUUID#1225656, id#1225657, displayId#1225658, name#1225659, baseUnitOfMeasure#1225660, unitOfMeasures#1225661, unitOfMeasureConversions#1225662, productionAspect#1225663, salesAspect#1225664, procurementAspect#1225665, productGroup#1225666], false
(20) Repartition
Arguments: 37, true
(21) Join
Arguments: LeftOuter, (product#1225622 = internalUUID#1225656)
(22) Project
Arguments: [product#1225622, plant#1225623, orderDateTime#1225624, productPlant#1225636, timezonecode#1225654, systemId#1225655, internalUUID#1225656, id#1225657, displayId#1225658, name#1225659, baseUnitOfMeasure#1225660, unitOfMeasures#1225661, unitOfMeasureConversions#1225662, productionAspect#1225663, salesAspect#1225664, procurementAspect#1225665, productGroup#1225666, filter(unitOfMeasureConversions#1225662, lambdafunction((((lambda u#1225669.measurementUnit1.code = productPlant#1225636.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1225669.measurementUnit1.internalRefUUID = productPlant#1225636.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1225660.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1225660.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1225668]
(23) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1225668.quantityNumerator), true, [quantityNumerator#1225676]
(24) Project
Arguments: [product#1225622, plant#1225623, orderDateTime#1225624, productPlant#1225636, timezonecode#1225654, systemId#1225655, internalUUID#1225656, id#1225657, displayId#1225658, name#1225659, baseUnitOfMeasure#1225660, unitOfMeasures#1225661, unitOfMeasureConversions#1225662, productionAspect#1225663, salesAspect#1225664, procurementAspect#1225665, productGroup#1225666, filteredUnitOfMeasureConversions#1225668, quantityNumerator#1225676]
(25) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1225668.quantityDenominator), true, [quantityDenominator#1225679]
(26) Project
Arguments: [product#1225622, plant#1225623, orderDateTime#1225624, productPlant#1225636, timezonecode#1225654, systemId#1225655, internalUUID#1225656, id#1225657, displayId#1225658, name#1225659, baseUnitOfMeasure#1225660, unitOfMeasures#1225661, unitOfMeasureConversions#1225662, productionAspect#1225663, salesAspect#1225664, procurementAspect#1225665, productGroup#1225666, filteredUnitOfMeasureConversions#1225668, quantityNumerator#1225676, quantityDenominator#1225679]
(27) Project
Arguments: [product#1225622, plant#1225623, orderDateTime#1225624, productPlant#1225636, timezonecode#1225654, systemId#1225655, internalUUID#1225656, id#1225657, displayId#1225658, name#1225659, baseUnitOfMeasure#1225660, unitOfMeasures#1225661, unitOfMeasureConversions#1225662, productionAspect#1225663, salesAspect#1225664, procurementAspect#1225665, productGroup#1225666, filteredUnitOfMeasureConversions#1225668, quantityNumerator#1225676, quantityDenominator#1225679, (cast(quantityNumerator#1225676 as double) / cast(quantityDenominator#1225679 as double)) AS outboundUnit#1225680]
(28) Project
Arguments: [product#1225622, plant#1225623, orderDateTime#1225624, productPlant#1225636, timezonecode#1225654, systemId#1225655, internalUUID#1225656, id#1225657, displayId#1225658, name#1225659, baseUnitOfMeasure#1225660, unitOfMeasures#1225661, unitOfMeasureConversions#1225662, productionAspect#1225663, salesAspect#1225664, procurementAspect#1225665, productGroup#1225666, filteredUnitOfMeasureConversions#1225668, quantityNumerator#1225676, quantityDenominator#1225679, CASE WHEN (isnull(outboundUnit#1225680) OR (outboundUnit#1225680 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1225680 END AS outboundUnit#1225681]
(29) Project
Arguments: [product#1225622, plant#1225623, orderDateTime#1225624, productPlant#1225636, timezonecode#1225654, outboundUnit#1225681]
(30) LogicalRelation
Arguments: parquet, [systemId#1225718, internalUUID#1225719, product#1225720, plant#1225721, calculationDateTime#1225722, stockQuantities#1225723], false
(31) Repartition
Arguments: 37, true
(32) LogicalRelation
Arguments: parquet, [marketUnit#1225682, description#1225683, articleHierarchy#1225684, defaultCurrency#1225685, responsibilities#1225686, replenishmentTypes#1225687, distributionCenters#1225688, assignedArticleHierarchyNodes#1225689, minOrderQtySetting#1225690, listingCheck#1225691, odsSelection#1225692, demandProfiles#1225693, constraintProfiles#1225694, optimizationProfiles#1225695, orderGroupSplitProfiles#1225696, supplierMinimumProfiles#1225697, multipleRestrictionProfiles#1225698, preferredUomSource#1225699, handlingOfUnfulfilledDemands#1225700, negligibleQuantitiesThreshold#1225701, eventtype#1225702, minOrderQtySettingInternal#1225703], false
(33) Repartition
Arguments: 37, true
(34) Filter
Arguments: (marketUnit#1225682 <=> AUTO_MUV2)
(35) Project
Arguments: [marketUnit#1225682, description#1225683, articleHierarchy#1225684, defaultCurrency#1225685, responsibilities#1225686, replenishmentTypes#1225687, distributionCenters#1225688, assignedArticleHierarchyNodes#1225689, minOrderQtySetting#1225690, listingCheck#1225691, odsSelection#1225692, demandProfiles#1225693, constraintProfiles#1225694, optimizationProfiles#1225695, orderGroupSplitProfiles#1225696, supplierMinimumProfiles#1225697, multipleRestrictionProfiles#1225698, preferredUomSource#1225699, handlingOfUnfulfilledDemands#1225700, negligibleQuantitiesThreshold#1225701, eventtype#1225702, minOrderQtySettingInternal#1225703]
(36) Project
Arguments: [distributionCenters#1225688]
(37) Generate
Arguments: explode(distributionCenters#1225688), false, [distributionCenters#1225706]
(38) Project
Arguments: [distributionCenters#1225706]
(39) Generate
Arguments: explode(distributionCenters#1225706.storageLocations), false, [storageLocations#1225713]
(40) Project
Arguments: [distributionCenters#1225706.id AS plantId#1225707, distributionCenters#1225706.internalRefUUID AS plantUuid#1225708, storageLocations#1225713]
(41) Project
Arguments: [plantId#1225707, plantUuid#1225708, storageLocations#1225713.id AS storageLocId#1225714, storageLocations#1225713.internalRefUUID AS storageLocUuid#1225715]
(42) LogicalRelation
Arguments: parquet, [product#1225978, plant#1225979, orderDateTime#1225980, planningStartDateTime#1225981], false
(43) RepartitionByExpression
Arguments: [product#1225978, plant#1225979], 37
(44) Project
Arguments: [product#1225978, plant#1225979, orderDateTime#1225980]
(45) LogicalRelation
Arguments: parquet, [systemId#1225982, internalUUID#1225983, plant#1225984, product#1225985, blockedForReplenishmentStartingFrom#1225986, productionAspect#1225987, salesPlant#1225988, listing#1225989], false
(46) Repartition
Arguments: 37, true
(47) Project
Arguments: [systemId#1225982, internalUUID#1225983, plant#1225984, product#1225985, blockedForReplenishmentStartingFrom#1225986, productionAspect#1225987, salesPlant#1225988, listing#1225989, struct(systemId, systemId#1225982, internalUUID, internalUUID#1225983, plant, plant#1225984, product, product#1225985, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1225986, productionAspect, productionAspect#1225987, salesPlant, salesPlant#1225988, listing, listing#1225989) AS productPlant#1225990]
(48) Project
Arguments: [productPlant#1225990]
(49) Join
Arguments: LeftOuter, ((product#1225978 <=> productPlant#1225990.product.internalRefUUID) AND (plant#1225979 <=> productPlant#1225990.plant.internalRefUUID))
(50) Project
Arguments: [product#1225978, plant#1225979, orderDateTime#1225980, productPlant#1225990]
(51) SubqueryAlias
Arguments: wl
(52) LogicalRelation
Arguments: parquet, [systemId#1225991, internalUUID#1225992, id#1225993, displayId#1225994, name#1225995, category#1225996, companyCode#1225997, address#1225998, mainDistributionChain#1225999, mainPurchasingOrganization#1226000, validPurchasingOrganizations#1226001, productGroup#1226002], false
(53) Repartition
Arguments: 37, true
(54) Project
Arguments: [internalUUID#1225992, address#1225998.timeZone.code AS timezonecode#1226003]
(55) Join
Arguments: LeftOuter, (plant#1225979 <=> internalUUID#1225992)
(56) Project
Arguments: [product#1225978, plant#1225979, orderDateTime#1225980, productPlant#1225990, internalUUID#1225992, CASE WHEN isnotnull(timezonecode#1226003) THEN timezonecode#1226003 ELSE UTC END AS timezonecode#1226004]
(57) Project
Arguments: [product#1225978, plant#1225979, orderDateTime#1225980, productPlant#1225990, timezonecode#1226004]
(58) LogicalRelation
Arguments: parquet, [systemId#1226005, internalUUID#1226006, id#1226007, displayId#1226008, name#1226009, baseUnitOfMeasure#1226010, unitOfMeasures#1226011, unitOfMeasureConversions#1226012, productionAspect#1226013, salesAspect#1226014, procurementAspect#1226015, productGroup#1226016], false
(59) Repartition
Arguments: 37, true
(60) Join
Arguments: LeftOuter, (product#1225978 = internalUUID#1226006)
(61) Project
Arguments: [product#1225978, plant#1225979, orderDateTime#1225980, productPlant#1225990, timezonecode#1226004, systemId#1226005, internalUUID#1226006, id#1226007, displayId#1226008, name#1226009, baseUnitOfMeasure#1226010, unitOfMeasures#1226011, unitOfMeasureConversions#1226012, productionAspect#1226013, salesAspect#1226014, procurementAspect#1226015, productGroup#1226016, filter(unitOfMeasureConversions#1226012, lambdafunction((((lambda u#1225669.measurementUnit1.code = productPlant#1225990.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1225669.measurementUnit1.internalRefUUID = productPlant#1225990.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1226010.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1226010.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1226017]
(62) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1226017.quantityNumerator), true, [quantityNumerator#1226018]
(63) Project
Arguments: [product#1225978, plant#1225979, orderDateTime#1225980, productPlant#1225990, timezonecode#1226004, systemId#1226005, internalUUID#1226006, id#1226007, displayId#1226008, name#1226009, baseUnitOfMeasure#1226010, unitOfMeasures#1226011, unitOfMeasureConversions#1226012, productionAspect#1226013, salesAspect#1226014, procurementAspect#1226015, productGroup#1226016, filteredUnitOfMeasureConversions#1226017, quantityNumerator#1226018]
(64) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1226017.quantityDenominator), true, [quantityDenominator#1226019]
(65) Project
Arguments: [product#1225978, plant#1225979, orderDateTime#1225980, productPlant#1225990, timezonecode#1226004, systemId#1226005, internalUUID#1226006, id#1226007, displayId#1226008, name#1226009, baseUnitOfMeasure#1226010, unitOfMeasures#1226011, unitOfMeasureConversions#1226012, productionAspect#1226013, salesAspect#1226014, procurementAspect#1226015, productGroup#1226016, filteredUnitOfMeasureConversions#1226017, quantityNumerator#1226018, quantityDenominator#1226019]
(66) Project
Arguments: [product#1225978, plant#1225979, orderDateTime#1225980, productPlant#1225990, timezonecode#1226004, systemId#1226005, internalUUID#1226006, id#1226007, displayId#1226008, name#1226009, baseUnitOfMeasure#1226010, unitOfMeasures#1226011, unitOfMeasureConversions#1226012, productionAspect#1226013, salesAspect#1226014, procurementAspect#1226015, productGroup#1226016, filteredUnitOfMeasureConversions#1226017, quantityNumerator#1226018, quantityDenominator#1226019, (cast(quantityNumerator#1226018 as double) / cast(quantityDenominator#1226019 as double)) AS outboundUnit#1226020]
(67) Project
Arguments: [product#1225978, plant#1225979, orderDateTime#1225980, productPlant#1225990, timezonecode#1226004, systemId#1226005, internalUUID#1226006, id#1226007, displayId#1226008, name#1226009, baseUnitOfMeasure#1226010, unitOfMeasures#1226011, unitOfMeasureConversions#1226012, productionAspect#1226013, salesAspect#1226014, procurementAspect#1226015, productGroup#1226016, filteredUnitOfMeasureConversions#1226017, quantityNumerator#1226018, quantityDenominator#1226019, CASE WHEN (isnull(outboundUnit#1226020) OR (outboundUnit#1226020 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1226020 END AS outboundUnit#1226021]
(68) Project
Arguments: [product#1225978, plant#1225979, orderDateTime#1225980, productPlant#1225990, timezonecode#1226004, outboundUnit#1226021]
(69) Project
Arguments: [plant#1225979]
(70) Deduplicate
Arguments: [plant#1225979]
(71) Join
Arguments: Inner, (plantUuid#1225708 = plant#1225979)
(72) Project
Arguments: [plantId#1225707, plantUuid#1225708, storageLocId#1225714, storageLocUuid#1225715]
(73) Join
Arguments: Inner, (plant#1225721.internalRefUUID <=> plantUuid#1225708)
(74) Generate
Arguments: explode(filter(stockQuantities#1225723, lambdafunction(((lambda x#1225727.storageLocation.internalRefUuid = storageLocUuid#1225715) AND (lambda x#1225727.storageLocation.Id = storageLocId#1225714)), lambda x#1225727, false))), false, [stockQuantity#1225728]
(75) Project
Arguments: [systemId#1225718, internalUUID#1225719, product#1225720, plant#1225721, calculationDateTime#1225722, stockQuantities#1225723, plantId#1225707, plantUuid#1225708, storageLocId#1225714, storageLocUuid#1225715, stockQuantity#1225728]
(76) Aggregate
Arguments: [plantUuid#1225708, internalUUID#1225719, plant#1225721, product#1225720, systemId#1225718], [plantUuid#1225708, internalUUID#1225719, plant#1225721, product#1225720, systemId#1225718, first(calculationDateTime#1225722, false) AS calculationDateTime#1225729, collect_list(stockQuantity#1225728, 0, 0) AS stockQuantities#1225730]
(77) Project
Arguments: [systemId#1225718, internalUUID#1225719, product#1225720, plant#1225721, calculationDateTime#1225729, stockQuantities#1225730]
(78) Generate
Arguments: explode(stockQuantities#1225730), false, [stockQuantity#1225745]
(79) Project
Arguments: [systemId#1225718, internalUUID#1225719, product#1225720, plant#1225721, calculationDateTime#1225729, stockQuantities#1225730, stockQuantity#1225745]
(80) Project
Arguments: [plant#1225721.id AS plant#1225746, plant#1225721.internalRefUUID AS plantUuid#1225747, product#1225720.id AS product#1225748, product#1225720.internalRefUUID AS productUuid#1225749, calculationDateTime#1225729, stockQuantity#1225745.storagelocation.id AS storageLocId#1225750, stockQuantity#1225745.storagelocation.internalRefUUID AS storageLocUuid#1225751, stockQuantity#1225745.quantity.measure AS quantity#1225752, stockQuantity#1225745.specialStockIndicator.code AS specialStockIndicator#1225753, stockQuantity#1225745.stockType.code AS stockType#1225754]
(81) Filter
Arguments: ((specialStockIndicator#1225753 = ) AND (stockType#1225754 = 01))
(82) LogicalRelation
Arguments: parquet, [product#1225764, plant#1225765, orderDateTime#1225766, planningStartDateTime#1225767], false
(83) RepartitionByExpression
Arguments: [product#1225764, plant#1225765], 37
(84) Project
Arguments: [product#1225764, plant#1225765, orderDateTime#1225766]
(85) LogicalRelation
Arguments: parquet, [systemId#1225768, internalUUID#1225769, plant#1225770, product#1225771, blockedForReplenishmentStartingFrom#1225772, productionAspect#1225773, salesPlant#1225774, listing#1225775], false
(86) Repartition
Arguments: 37, true
(87) Project
Arguments: [systemId#1225768, internalUUID#1225769, plant#1225770, product#1225771, blockedForReplenishmentStartingFrom#1225772, productionAspect#1225773, salesPlant#1225774, listing#1225775, struct(systemId, systemId#1225768, internalUUID, internalUUID#1225769, plant, plant#1225770, product, product#1225771, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1225772, productionAspect, productionAspect#1225773, salesPlant, salesPlant#1225774, listing, listing#1225775) AS productPlant#1225776]
(88) Project
Arguments: [productPlant#1225776]
(89) Join
Arguments: LeftOuter, ((product#1225764 <=> productPlant#1225776.product.internalRefUUID) AND (plant#1225765 <=> productPlant#1225776.plant.internalRefUUID))
(90) Project
Arguments: [product#1225764, plant#1225765, orderDateTime#1225766, productPlant#1225776]
(91) SubqueryAlias
Arguments: wl
(92) LogicalRelation
Arguments: parquet, [systemId#1225777, internalUUID#1225778, id#1225779, displayId#1225780, name#1225781, category#1225782, companyCode#1225783, address#1225784, mainDistributionChain#1225785, mainPurchasingOrganization#1225786, validPurchasingOrganizations#1225787, productGroup#1225788], false
(93) Repartition
Arguments: 37, true
(94) Project
Arguments: [internalUUID#1225778, address#1225784.timeZone.code AS timezonecode#1225789]
(95) Join
Arguments: LeftOuter, (plant#1225765 <=> internalUUID#1225778)
(96) Project
Arguments: [product#1225764, plant#1225765, orderDateTime#1225766, productPlant#1225776, internalUUID#1225778, CASE WHEN isnotnull(timezonecode#1225789) THEN timezonecode#1225789 ELSE UTC END AS timezonecode#1225790]
(97) Project
Arguments: [product#1225764, plant#1225765, orderDateTime#1225766, productPlant#1225776, timezonecode#1225790]
(98) LogicalRelation
Arguments: parquet, [systemId#1225791, internalUUID#1225792, id#1225793, displayId#1225794, name#1225795, baseUnitOfMeasure#1225796, unitOfMeasures#1225797, unitOfMeasureConversions#1225798, productionAspect#1225799, salesAspect#1225800, procurementAspect#1225801, productGroup#1225802], false
(99) Repartition
Arguments: 37, true
(100) Join
Arguments: LeftOuter, (product#1225764 = internalUUID#1225792)
(101) Project
Arguments: [product#1225764, plant#1225765, orderDateTime#1225766, productPlant#1225776, timezonecode#1225790, systemId#1225791, internalUUID#1225792, id#1225793, displayId#1225794, name#1225795, baseUnitOfMeasure#1225796, unitOfMeasures#1225797, unitOfMeasureConversions#1225798, productionAspect#1225799, salesAspect#1225800, procurementAspect#1225801, productGroup#1225802, filter(unitOfMeasureConversions#1225798, lambdafunction((((lambda u#1225669.measurementUnit1.code = productPlant#1225776.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1225669.measurementUnit1.internalRefUUID = productPlant#1225776.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1225796.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1225796.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1225803]
(102) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1225803.quantityNumerator), true, [quantityNumerator#1225804]
(103) Project
Arguments: [product#1225764, plant#1225765, orderDateTime#1225766, productPlant#1225776, timezonecode#1225790, systemId#1225791, internalUUID#1225792, id#1225793, displayId#1225794, name#1225795, baseUnitOfMeasure#1225796, unitOfMeasures#1225797, unitOfMeasureConversions#1225798, productionAspect#1225799, salesAspect#1225800, procurementAspect#1225801, productGroup#1225802, filteredUnitOfMeasureConversions#1225803, quantityNumerator#1225804]
(104) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1225803.quantityDenominator), true, [quantityDenominator#1225805]
(105) Project
Arguments: [product#1225764, plant#1225765, orderDateTime#1225766, productPlant#1225776, timezonecode#1225790, systemId#1225791, internalUUID#1225792, id#1225793, displayId#1225794, name#1225795, baseUnitOfMeasure#1225796, unitOfMeasures#1225797, unitOfMeasureConversions#1225798, productionAspect#1225799, salesAspect#1225800, procurementAspect#1225801, productGroup#1225802, filteredUnitOfMeasureConversions#1225803, quantityNumerator#1225804, quantityDenominator#1225805]
(106) Project
Arguments: [product#1225764, plant#1225765, orderDateTime#1225766, productPlant#1225776, timezonecode#1225790, systemId#1225791, internalUUID#1225792, id#1225793, displayId#1225794, name#1225795, baseUnitOfMeasure#1225796, unitOfMeasures#1225797, unitOfMeasureConversions#1225798, productionAspect#1225799, salesAspect#1225800, procurementAspect#1225801, productGroup#1225802, filteredUnitOfMeasureConversions#1225803, quantityNumerator#1225804, quantityDenominator#1225805, (cast(quantityNumerator#1225804 as double) / cast(quantityDenominator#1225805 as double)) AS outboundUnit#1225806]
(107) Project
Arguments: [product#1225764, plant#1225765, orderDateTime#1225766, productPlant#1225776, timezonecode#1225790, systemId#1225791, internalUUID#1225792, id#1225793, displayId#1225794, name#1225795, baseUnitOfMeasure#1225796, unitOfMeasures#1225797, unitOfMeasureConversions#1225798, productionAspect#1225799, salesAspect#1225800, procurementAspect#1225801, productGroup#1225802, filteredUnitOfMeasureConversions#1225803, quantityNumerator#1225804, quantityDenominator#1225805, CASE WHEN (isnull(outboundUnit#1225806) OR (outboundUnit#1225806 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1225806 END AS outboundUnit#1225807]
(108) Project
Arguments: [product#1225764, plant#1225765, orderDateTime#1225766, productPlant#1225776, timezonecode#1225790, outboundUnit#1225807]
(109) Join
Arguments: Inner, ((plantUuid#1225747 = plant#1225765) AND (productUuid#1225749 = product#1225764))
(110) Filter
Arguments: (calculationDateTime#1225729 <= orderDateTime#1225766)
(111) Project
Arguments: [plantUuid#1225747 AS plant#1225812, productUuid#1225749 AS product#1225813, storageLocId#1225750, calculationDateTime#1225729, quantity#1225752]
(112) LogicalRelation
Arguments: parquet, [systemId#1225821, internalUUID#1225822, product#1225823, plant#1225824, calculationDateTime#1225825, stockQuantities#1225826], false
(113) Repartition
Arguments: 37, true
(114) LogicalRelation
Arguments: parquet, [marketUnit#1225827, description#1225828, articleHierarchy#1225829, defaultCurrency#1225830, responsibilities#1225831, replenishmentTypes#1225832, distributionCenters#1225833, assignedArticleHierarchyNodes#1225834, minOrderQtySetting#1225835, listingCheck#1225836, odsSelection#1225837, demandProfiles#1225838, constraintProfiles#1225839, optimizationProfiles#1225840, orderGroupSplitProfiles#1225841, supplierMinimumProfiles#1225842, multipleRestrictionProfiles#1225843, preferredUomSource#1225844, handlingOfUnfulfilledDemands#1225845, negligibleQuantitiesThreshold#1225846, eventtype#1225847, minOrderQtySettingInternal#1225848], false
(115) Repartition
Arguments: 37, true
(116) Filter
Arguments: (marketUnit#1225827 <=> AUTO_MUV2)
(117) Project
Arguments: [marketUnit#1225827, description#1225828, articleHierarchy#1225829, defaultCurrency#1225830, responsibilities#1225831, replenishmentTypes#1225832, distributionCenters#1225833, assignedArticleHierarchyNodes#1225834, minOrderQtySetting#1225835, listingCheck#1225836, odsSelection#1225837, demandProfiles#1225838, constraintProfiles#1225839, optimizationProfiles#1225840, orderGroupSplitProfiles#1225841, supplierMinimumProfiles#1225842, multipleRestrictionProfiles#1225843, preferredUomSource#1225844, handlingOfUnfulfilledDemands#1225845, negligibleQuantitiesThreshold#1225846, eventtype#1225847, minOrderQtySettingInternal#1225848]
(118) Project
Arguments: [distributionCenters#1225833]
(119) Generate
Arguments: explode(distributionCenters#1225833), false, [distributionCenters#1225849]
(120) Project
Arguments: [distributionCenters#1225849]
(121) Generate
Arguments: explode(distributionCenters#1225849.storageLocations), false, [storageLocations#1225850]
(122) Project
Arguments: [distributionCenters#1225849.id AS plantId#1225851, distributionCenters#1225849.internalRefUUID AS plantUuid#1225852, storageLocations#1225850]
(123) Project
Arguments: [plantId#1225851, plantUuid#1225852, storageLocations#1225850.id AS storageLocId#1225853, storageLocations#1225850.internalRefUUID AS storageLocUuid#1225854]
(124) LogicalRelation
Arguments: parquet, [product#1225855, plant#1225856, orderDateTime#1225857, planningStartDateTime#1225858], false
(125) RepartitionByExpression
Arguments: [product#1225855, plant#1225856], 37
(126) Project
Arguments: [product#1225855, plant#1225856, orderDateTime#1225857]
(127) LogicalRelation
Arguments: parquet, [systemId#1225859, internalUUID#1225860, plant#1225861, product#1225862, blockedForReplenishmentStartingFrom#1225863, productionAspect#1225864, salesPlant#1225865, listing#1225866], false
(128) Repartition
Arguments: 37, true
(129) Project
Arguments: [systemId#1225859, internalUUID#1225860, plant#1225861, product#1225862, blockedForReplenishmentStartingFrom#1225863, productionAspect#1225864, salesPlant#1225865, listing#1225866, struct(systemId, systemId#1225859, internalUUID, internalUUID#1225860, plant, plant#1225861, product, product#1225862, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1225863, productionAspect, productionAspect#1225864, salesPlant, salesPlant#1225865, listing, listing#1225866) AS productPlant#1225867]
(130) Project
Arguments: [productPlant#1225867]
(131) Join
Arguments: LeftOuter, ((product#1225855 <=> productPlant#1225867.product.internalRefUUID) AND (plant#1225856 <=> productPlant#1225867.plant.internalRefUUID))
(132) Project
Arguments: [product#1225855, plant#1225856, orderDateTime#1225857, productPlant#1225867]
(133) SubqueryAlias
Arguments: wl
(134) LogicalRelation
Arguments: parquet, [systemId#1225868, internalUUID#1225869, id#1225870, displayId#1225871, name#1225872, category#1225873, companyCode#1225874, address#1225875, mainDistributionChain#1225876, mainPurchasingOrganization#1225877, validPurchasingOrganizations#1225878, productGroup#1225879], false
(135) Repartition
Arguments: 37, true
(136) Project
Arguments: [internalUUID#1225869, address#1225875.timeZone.code AS timezonecode#1225880]
(137) Join
Arguments: LeftOuter, (plant#1225856 <=> internalUUID#1225869)
(138) Project
Arguments: [product#1225855, plant#1225856, orderDateTime#1225857, productPlant#1225867, internalUUID#1225869, CASE WHEN isnotnull(timezonecode#1225880) THEN timezonecode#1225880 ELSE UTC END AS timezonecode#1225881]
(139) Project
Arguments: [product#1225855, plant#1225856, orderDateTime#1225857, productPlant#1225867, timezonecode#1225881]
(140) LogicalRelation
Arguments: parquet, [systemId#1225882, internalUUID#1225883, id#1225884, displayId#1225885, name#1225886, baseUnitOfMeasure#1225887, unitOfMeasures#1225888, unitOfMeasureConversions#1225889, productionAspect#1225890, salesAspect#1225891, procurementAspect#1225892, productGroup#1225893], false
(141) Repartition
Arguments: 37, true
(142) Join
Arguments: LeftOuter, (product#1225855 = internalUUID#1225883)
(143) Project
Arguments: [product#1225855, plant#1225856, orderDateTime#1225857, productPlant#1225867, timezonecode#1225881, systemId#1225882, internalUUID#1225883, id#1225884, displayId#1225885, name#1225886, baseUnitOfMeasure#1225887, unitOfMeasures#1225888, unitOfMeasureConversions#1225889, productionAspect#1225890, salesAspect#1225891, procurementAspect#1225892, productGroup#1225893, filter(unitOfMeasureConversions#1225889, lambdafunction((((lambda u#1225669.measurementUnit1.code = productPlant#1225867.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1225669.measurementUnit1.internalRefUUID = productPlant#1225867.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1225887.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1225887.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1225894]
(144) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1225894.quantityNumerator), true, [quantityNumerator#1225895]
(145) Project
Arguments: [product#1225855, plant#1225856, orderDateTime#1225857, productPlant#1225867, timezonecode#1225881, systemId#1225882, internalUUID#1225883, id#1225884, displayId#1225885, name#1225886, baseUnitOfMeasure#1225887, unitOfMeasures#1225888, unitOfMeasureConversions#1225889, productionAspect#1225890, salesAspect#1225891, procurementAspect#1225892, productGroup#1225893, filteredUnitOfMeasureConversions#1225894, quantityNumerator#1225895]
(146) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1225894.quantityDenominator), true, [quantityDenominator#1225896]
(147) Project
Arguments: [product#1225855, plant#1225856, orderDateTime#1225857, productPlant#1225867, timezonecode#1225881, systemId#1225882, internalUUID#1225883, id#1225884, displayId#1225885, name#1225886, baseUnitOfMeasure#1225887, unitOfMeasures#1225888, unitOfMeasureConversions#1225889, productionAspect#1225890, salesAspect#1225891, procurementAspect#1225892, productGroup#1225893, filteredUnitOfMeasureConversions#1225894, quantityNumerator#1225895, quantityDenominator#1225896]
(148) Project
Arguments: [product#1225855, plant#1225856, orderDateTime#1225857, productPlant#1225867, timezonecode#1225881, systemId#1225882, internalUUID#1225883, id#1225884, displayId#1225885, name#1225886, baseUnitOfMeasure#1225887, unitOfMeasures#1225888, unitOfMeasureConversions#1225889, productionAspect#1225890, salesAspect#1225891, procurementAspect#1225892, productGroup#1225893, filteredUnitOfMeasureConversions#1225894, quantityNumerator#1225895, quantityDenominator#1225896, (cast(quantityNumerator#1225895 as double) / cast(quantityDenominator#1225896 as double)) AS outboundUnit#1225897]
(149) Project
Arguments: [product#1225855, plant#1225856, orderDateTime#1225857, productPlant#1225867, timezonecode#1225881, systemId#1225882, internalUUID#1225883, id#1225884, displayId#1225885, name#1225886, baseUnitOfMeasure#1225887, unitOfMeasures#1225888, unitOfMeasureConversions#1225889, productionAspect#1225890, salesAspect#1225891, procurementAspect#1225892, productGroup#1225893, filteredUnitOfMeasureConversions#1225894, quantityNumerator#1225895, quantityDenominator#1225896, CASE WHEN (isnull(outboundUnit#1225897) OR (outboundUnit#1225897 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1225897 END AS outboundUnit#1225898]
(150) Project
Arguments: [product#1225855, plant#1225856, orderDateTime#1225857, productPlant#1225867, timezonecode#1225881, outboundUnit#1225898]
(151) Project
Arguments: [plant#1225856]
(152) Deduplicate
Arguments: [plant#1225856]
(153) Join
Arguments: Inner, (plantUuid#1225852 = plant#1225856)
(154) Project
Arguments: [plantId#1225851, plantUuid#1225852, storageLocId#1225853, storageLocUuid#1225854]
(155) Join
Arguments: Inner, (plant#1225824.internalRefUUID <=> plantUuid#1225852)
(156) Generate
Arguments: explode(filter(stockQuantities#1225826, lambdafunction(((lambda x#1225727.storageLocation.internalRefUuid = storageLocUuid#1225854) AND (lambda x#1225727.storageLocation.Id = storageLocId#1225853)), lambda x#1225727, false))), false, [stockQuantity#1225899]
(157) Project
Arguments: [systemId#1225821, internalUUID#1225822, product#1225823, plant#1225824, calculationDateTime#1225825, stockQuantities#1225826, plantId#1225851, plantUuid#1225852, storageLocId#1225853, storageLocUuid#1225854, stockQuantity#1225899]
(158) Aggregate
Arguments: [plantUuid#1225852, internalUUID#1225822, plant#1225824, product#1225823, systemId#1225821], [plantUuid#1225852, internalUUID#1225822, plant#1225824, product#1225823, systemId#1225821, first(calculationDateTime#1225825, false) AS calculationDateTime#1225900, collect_list(stockQuantity#1225899, 0, 0) AS stockQuantities#1225901]
(159) Project
Arguments: [systemId#1225821, internalUUID#1225822, product#1225823, plant#1225824, calculationDateTime#1225900, stockQuantities#1225901]
(160) Generate
Arguments: explode(stockQuantities#1225901), false, [stockQuantity#1225902]
(161) Project
Arguments: [systemId#1225821, internalUUID#1225822, product#1225823, plant#1225824, calculationDateTime#1225900, stockQuantities#1225901, stockQuantity#1225902]
(162) Project
Arguments: [plant#1225824.id AS plant#1225903, plant#1225824.internalRefUUID AS plantUuid#1225904, product#1225823.id AS product#1225905, product#1225823.internalRefUUID AS productUuid#1225906, calculationDateTime#1225900, stockQuantity#1225902.storagelocation.id AS storageLocId#1225907, stockQuantity#1225902.storagelocation.internalRefUUID AS storageLocUuid#1225908, stockQuantity#1225902.quantity.measure AS quantity#1225909, stockQuantity#1225902.specialStockIndicator.code AS specialStockIndicator#1225910, stockQuantity#1225902.stockType.code AS stockType#1225911]
(163) Filter
Arguments: ((specialStockIndicator#1225910 = ) AND (stockType#1225911 = 01))
(164) LogicalRelation
Arguments: parquet, [product#1225912, plant#1225913, orderDateTime#1225914, planningStartDateTime#1225915], false
(165) RepartitionByExpression
Arguments: [product#1225912, plant#1225913], 37
(166) Project
Arguments: [product#1225912, plant#1225913, orderDateTime#1225914]
(167) LogicalRelation
Arguments: parquet, [systemId#1225916, internalUUID#1225917, plant#1225918, product#1225919, blockedForReplenishmentStartingFrom#1225920, productionAspect#1225921, salesPlant#1225922, listing#1225923], false
(168) Repartition
Arguments: 37, true
(169) Project
Arguments: [systemId#1225916, internalUUID#1225917, plant#1225918, product#1225919, blockedForReplenishmentStartingFrom#1225920, productionAspect#1225921, salesPlant#1225922, listing#1225923, struct(systemId, systemId#1225916, internalUUID, internalUUID#1225917, plant, plant#1225918, product, product#1225919, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1225920, productionAspect, productionAspect#1225921, salesPlant, salesPlant#1225922, listing, listing#1225923) AS productPlant#1225924]
(170) Project
Arguments: [productPlant#1225924]
(171) Join
Arguments: LeftOuter, ((product#1225912 <=> productPlant#1225924.product.internalRefUUID) AND (plant#1225913 <=> productPlant#1225924.plant.internalRefUUID))
(172) Project
Arguments: [product#1225912, plant#1225913, orderDateTime#1225914, productPlant#1225924]
(173) SubqueryAlias
Arguments: wl
(174) LogicalRelation
Arguments: parquet, [systemId#1225925, internalUUID#1225926, id#1225927, displayId#1225928, name#1225929, category#1225930, companyCode#1225931, address#1225932, mainDistributionChain#1225933, mainPurchasingOrganization#1225934, validPurchasingOrganizations#1225935, productGroup#1225936], false
(175) Repartition
Arguments: 37, true
(176) Project
Arguments: [internalUUID#1225926, address#1225932.timeZone.code AS timezonecode#1225937]
(177) Join
Arguments: LeftOuter, (plant#1225913 <=> internalUUID#1225926)
(178) Project
Arguments: [product#1225912, plant#1225913, orderDateTime#1225914, productPlant#1225924, internalUUID#1225926, CASE WHEN isnotnull(timezonecode#1225937) THEN timezonecode#1225937 ELSE UTC END AS timezonecode#1225938]
(179) Project
Arguments: [product#1225912, plant#1225913, orderDateTime#1225914, productPlant#1225924, timezonecode#1225938]
(180) LogicalRelation
Arguments: parquet, [systemId#1225939, internalUUID#1225940, id#1225941, displayId#1225942, name#1225943, baseUnitOfMeasure#1225944, unitOfMeasures#1225945, unitOfMeasureConversions#1225946, productionAspect#1225947, salesAspect#1225948, procurementAspect#1225949, productGroup#1225950], false
(181) Repartition
Arguments: 37, true
(182) Join
Arguments: LeftOuter, (product#1225912 = internalUUID#1225940)
(183) Project
Arguments: [product#1225912, plant#1225913, orderDateTime#1225914, productPlant#1225924, timezonecode#1225938, systemId#1225939, internalUUID#1225940, id#1225941, displayId#1225942, name#1225943, baseUnitOfMeasure#1225944, unitOfMeasures#1225945, unitOfMeasureConversions#1225946, productionAspect#1225947, salesAspect#1225948, procurementAspect#1225949, productGroup#1225950, filter(unitOfMeasureConversions#1225946, lambdafunction((((lambda u#1225669.measurementUnit1.code = productPlant#1225924.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1225669.measurementUnit1.internalRefUUID = productPlant#1225924.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1225944.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1225944.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1225951]
(184) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1225951.quantityNumerator), true, [quantityNumerator#1225952]
(185) Project
Arguments: [product#1225912, plant#1225913, orderDateTime#1225914, productPlant#1225924, timezonecode#1225938, systemId#1225939, internalUUID#1225940, id#1225941, displayId#1225942, name#1225943, baseUnitOfMeasure#1225944, unitOfMeasures#1225945, unitOfMeasureConversions#1225946, productionAspect#1225947, salesAspect#1225948, procurementAspect#1225949, productGroup#1225950, filteredUnitOfMeasureConversions#1225951, quantityNumerator#1225952]
(186) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1225951.quantityDenominator), true, [quantityDenominator#1225953]
(187) Project
Arguments: [product#1225912, plant#1225913, orderDateTime#1225914, productPlant#1225924, timezonecode#1225938, systemId#1225939, internalUUID#1225940, id#1225941, displayId#1225942, name#1225943, baseUnitOfMeasure#1225944, unitOfMeasures#1225945, unitOfMeasureConversions#1225946, productionAspect#1225947, salesAspect#1225948, procurementAspect#1225949, productGroup#1225950, filteredUnitOfMeasureConversions#1225951, quantityNumerator#1225952, quantityDenominator#1225953]
(188) Project
Arguments: [product#1225912, plant#1225913, orderDateTime#1225914, productPlant#1225924, timezonecode#1225938, systemId#1225939, internalUUID#1225940, id#1225941, displayId#1225942, name#1225943, baseUnitOfMeasure#1225944, unitOfMeasures#1225945, unitOfMeasureConversions#1225946, productionAspect#1225947, salesAspect#1225948, procurementAspect#1225949, productGroup#1225950, filteredUnitOfMeasureConversions#1225951, quantityNumerator#1225952, quantityDenominator#1225953, (cast(quantityNumerator#1225952 as double) / cast(quantityDenominator#1225953 as double)) AS outboundUnit#1225954]
(189) Project
Arguments: [product#1225912, plant#1225913, orderDateTime#1225914, productPlant#1225924, timezonecode#1225938, systemId#1225939, internalUUID#1225940, id#1225941, displayId#1225942, name#1225943, baseUnitOfMeasure#1225944, unitOfMeasures#1225945, unitOfMeasureConversions#1225946, productionAspect#1225947, salesAspect#1225948, procurementAspect#1225949, productGroup#1225950, filteredUnitOfMeasureConversions#1225951, quantityNumerator#1225952, quantityDenominator#1225953, CASE WHEN (isnull(outboundUnit#1225954) OR (outboundUnit#1225954 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1225954 END AS outboundUnit#1225955]
(190) Project
Arguments: [product#1225912, plant#1225913, orderDateTime#1225914, productPlant#1225924, timezonecode#1225938, outboundUnit#1225955]
(191) Join
Arguments: Inner, ((plantUuid#1225904 = plant#1225913) AND (productUuid#1225906 = product#1225912))
(192) Filter
Arguments: (calculationDateTime#1225900 <= orderDateTime#1225914)
(193) Project
Arguments: [plantUuid#1225904 AS plant#1225956, productUuid#1225906 AS product#1225957, storageLocId#1225907, calculationDateTime#1225900, quantity#1225909]
(194) Aggregate
Arguments: [plant#1225956, product#1225957, storageLocId#1225907], [plant#1225956, product#1225957, storageLocId#1225907, max(calculationDateTime#1225900) AS max_calc_datetime#1225814]
(195) Join
Arguments: Inner, ((((plant#1225812 <=> plant#1225956) AND (product#1225813 <=> product#1225957)) AND (storageLocId#1225750 <=> storageLocId#1225907)) AND (calculationDateTime#1225729 <=> max_calc_datetime#1225814))
(196) Project
Arguments: [plant#1225812, product#1225813, storageLocId#1225750, calculationDateTime#1225729, quantity#1225752]
(197) Aggregate
Arguments: [product#1225813, plant#1225812], [product#1225813, plant#1225812, sum(quantity#1225752) AS quantitySum#1225968, min(calculationDateTime#1225729) AS minCalculationDateTime#1225969]
(198) Project
Arguments: [product#1225813, plant#1225812, quantitySum#1225968, minCalculationDateTime#1225969, round(quantitySum#1225968, 0) AS roundedQuantitySum#1225977]
(199) Join
Arguments: LeftOuter, ((plant#1225623 = plant#1225812) AND (product#1225622 = product#1225813))
(200) Project
Arguments: [product#1225622, plant#1225623, orderDateTime#1225624, productPlant#1225636, timezonecode#1225654, outboundUnit#1225681, roundedQuantitySum#1225977, minCalculationDateTime#1225969]
(201) Project
Arguments: [product#1225622, plant#1225623, orderDateTime#1225624, productPlant#1225636, timezonecode#1225654, outboundUnit#1225681, roundedQuantitySum#1225977, minCalculationDateTime#1225969, CASE WHEN isnotnull(minCalculationDateTime#1225969) THEN minCalculationDateTime#1225969 ELSE orderDateTime#1225624 END AS stockDatetime#1226026]
(202) Project
Arguments: [product#1225622, plant#1225623, orderDateTime#1225624, productPlant#1225636, timezonecode#1225654, outboundUnit#1225681, roundedQuantitySum#1225977, minCalculationDateTime#1225969, stockDatetime#1226026, CASE WHEN isnotnull(roundedQuantitySum#1225977) THEN array(roundedQuantitySum#1225977) ELSE array(0.0) END AS stockBatchQuantities#1226027]
(203) Project
Arguments: [product#1225622, plant#1225623, orderDateTime#1225624, productPlant#1225636, timezonecode#1225654, outboundUnit#1225681, roundedQuantitySum#1225977, minCalculationDateTime#1225969, stockDatetime#1226026, stockBatchQuantities#1226027, array(2199-01-01 00:00:00) AS stockBatchShelfLifeEndDatetimes#1226028]
(204) Project
Arguments: [product#1225622, plant#1225623, orderDateTime#1225624, productPlant#1225636, timezonecode#1225654, outboundUnit#1225681, roundedQuantitySum#1225977, stockDatetime#1226026, stockBatchQuantities#1226027, stockBatchShelfLifeEndDatetimes#1226028]
(205) Project
Arguments: [product#1225622, plant#1225623, orderDateTime#1225624, productPlant#1225636, timezonecode#1225654, outboundUnit#1225681, stockDatetime#1226026, stockBatchQuantities#1226027, stockBatchShelfLifeEndDatetimes#1226028]
(206) LogicalRelation
Arguments: parquet, [product#1226104, plant#1226105, orderDateTime#1226106, planningStartDateTime#1226107], false
(207) RepartitionByExpression
Arguments: [product#1226104, plant#1226105], 37
(208) Project
Arguments: [product#1226104, plant#1226105, orderDateTime#1226106]
(209) LogicalRelation
Arguments: parquet, [systemId#1226108, internalUUID#1226109, plant#1226110, product#1226111, blockedForReplenishmentStartingFrom#1226112, productionAspect#1226113, salesPlant#1226114, listing#1226115], false
(210) Repartition
Arguments: 37, true
(211) Project
Arguments: [systemId#1226108, internalUUID#1226109, plant#1226110, product#1226111, blockedForReplenishmentStartingFrom#1226112, productionAspect#1226113, salesPlant#1226114, listing#1226115, struct(systemId, systemId#1226108, internalUUID, internalUUID#1226109, plant, plant#1226110, product, product#1226111, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1226112, productionAspect, productionAspect#1226113, salesPlant, salesPlant#1226114, listing, listing#1226115) AS productPlant#1226116]
(212) Project
Arguments: [productPlant#1226116]
(213) Join
Arguments: LeftOuter, ((product#1226104 <=> productPlant#1226116.product.internalRefUUID) AND (plant#1226105 <=> productPlant#1226116.plant.internalRefUUID))
(214) Project
Arguments: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116]
(215) SubqueryAlias
Arguments: wl
(216) LogicalRelation
Arguments: parquet, [systemId#1226117, internalUUID#1226118, id#1226119, displayId#1226120, name#1226121, category#1226122, companyCode#1226123, address#1226124, mainDistributionChain#1226125, mainPurchasingOrganization#1226126, validPurchasingOrganizations#1226127, productGroup#1226128], false
(217) Repartition
Arguments: 37, true
(218) Project
Arguments: [internalUUID#1226118, address#1226124.timeZone.code AS timezonecode#1226129]
(219) Join
Arguments: LeftOuter, (plant#1226105 <=> internalUUID#1226118)
(220) Project
Arguments: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, internalUUID#1226118, CASE WHEN isnotnull(timezonecode#1226129) THEN timezonecode#1226129 ELSE UTC END AS timezonecode#1226130]
(221) Project
Arguments: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130]
(222) LogicalRelation
Arguments: parquet, [systemId#1226131, internalUUID#1226132, id#1226133, displayId#1226134, name#1226135, baseUnitOfMeasure#1226136, unitOfMeasures#1226137, unitOfMeasureConversions#1226138, productionAspect#1226139, salesAspect#1226140, procurementAspect#1226141, productGroup#1226142], false
(223) Repartition
Arguments: 37, true
(224) Join
Arguments: LeftOuter, (product#1226104 = internalUUID#1226132)
(225) Project
Arguments: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, systemId#1226131, internalUUID#1226132, id#1226133, displayId#1226134, name#1226135, baseUnitOfMeasure#1226136, unitOfMeasures#1226137, unitOfMeasureConversions#1226138, productionAspect#1226139, salesAspect#1226140, procurementAspect#1226141, productGroup#1226142, filter(unitOfMeasureConversions#1226138, lambdafunction((((lambda u#1225669.measurementUnit1.code = productPlant#1226116.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1225669.measurementUnit1.internalRefUUID = productPlant#1226116.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1226136.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1226136.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1226143]
(226) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1226143.quantityNumerator), true, [quantityNumerator#1226144]
(227) Project
Arguments: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, systemId#1226131, internalUUID#1226132, id#1226133, displayId#1226134, name#1226135, baseUnitOfMeasure#1226136, unitOfMeasures#1226137, unitOfMeasureConversions#1226138, productionAspect#1226139, salesAspect#1226140, procurementAspect#1226141, productGroup#1226142, filteredUnitOfMeasureConversions#1226143, quantityNumerator#1226144]
(228) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1226143.quantityDenominator), true, [quantityDenominator#1226145]
(229) Project
Arguments: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, systemId#1226131, internalUUID#1226132, id#1226133, displayId#1226134, name#1226135, baseUnitOfMeasure#1226136, unitOfMeasures#1226137, unitOfMeasureConversions#1226138, productionAspect#1226139, salesAspect#1226140, procurementAspect#1226141, productGroup#1226142, filteredUnitOfMeasureConversions#1226143, quantityNumerator#1226144, quantityDenominator#1226145]
(230) Project
Arguments: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, systemId#1226131, internalUUID#1226132, id#1226133, displayId#1226134, name#1226135, baseUnitOfMeasure#1226136, unitOfMeasures#1226137, unitOfMeasureConversions#1226138, productionAspect#1226139, salesAspect#1226140, procurementAspect#1226141, productGroup#1226142, filteredUnitOfMeasureConversions#1226143, quantityNumerator#1226144, quantityDenominator#1226145, (cast(quantityNumerator#1226144 as double) / cast(quantityDenominator#1226145 as double)) AS outboundUnit#1226146]
(231) Project
Arguments: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, systemId#1226131, internalUUID#1226132, id#1226133, displayId#1226134, name#1226135, baseUnitOfMeasure#1226136, unitOfMeasures#1226137, unitOfMeasureConversions#1226138, productionAspect#1226139, salesAspect#1226140, procurementAspect#1226141, productGroup#1226142, filteredUnitOfMeasureConversions#1226143, quantityNumerator#1226144, quantityDenominator#1226145, CASE WHEN (isnull(outboundUnit#1226146) OR (outboundUnit#1226146 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1226146 END AS outboundUnit#1226147]
(232) Project
Arguments: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226147]
(233) LogicalRelation
Arguments: parquet, [systemId#1226148, internalUUID#1226149, product#1226150, plant#1226151, calculationDateTime#1226152, stockQuantities#1226153], false
(234) Repartition
Arguments: 37, true
(235) LogicalRelation
Arguments: parquet, [marketUnit#1226154, description#1226155, articleHierarchy#1226156, defaultCurrency#1226157, responsibilities#1226158, replenishmentTypes#1226159, distributionCenters#1226160, assignedArticleHierarchyNodes#1226161, minOrderQtySetting#1226162, listingCheck#1226163, odsSelection#1226164, demandProfiles#1226165, constraintProfiles#1226166, optimizationProfiles#1226167, orderGroupSplitProfiles#1226168, supplierMinimumProfiles#1226169, multipleRestrictionProfiles#1226170, preferredUomSource#1226171, handlingOfUnfulfilledDemands#1226172, negligibleQuantitiesThreshold#1226173, eventtype#1226174, minOrderQtySettingInternal#1226175], false
(236) Repartition
Arguments: 37, true
(237) Filter
Arguments: (marketUnit#1226154 <=> AUTO_MUV2)
(238) Project
Arguments: [marketUnit#1226154, description#1226155, articleHierarchy#1226156, defaultCurrency#1226157, responsibilities#1226158, replenishmentTypes#1226159, distributionCenters#1226160, assignedArticleHierarchyNodes#1226161, minOrderQtySetting#1226162, listingCheck#1226163, odsSelection#1226164, demandProfiles#1226165, constraintProfiles#1226166, optimizationProfiles#1226167, orderGroupSplitProfiles#1226168, supplierMinimumProfiles#1226169, multipleRestrictionProfiles#1226170, preferredUomSource#1226171, handlingOfUnfulfilledDemands#1226172, negligibleQuantitiesThreshold#1226173, eventtype#1226174, minOrderQtySettingInternal#1226175]
(239) Project
Arguments: [distributionCenters#1226160]
(240) Generate
Arguments: explode(distributionCenters#1226160), false, [distributionCenters#1226176]
(241) Project
Arguments: [distributionCenters#1226176]
(242) Generate
Arguments: explode(distributionCenters#1226176.storageLocations), false, [storageLocations#1226177]
(243) Project
Arguments: [distributionCenters#1226176.id AS plantId#1226178, distributionCenters#1226176.internalRefUUID AS plantUuid#1226179, storageLocations#1226177]
(244) Project
Arguments: [plantId#1226178, plantUuid#1226179, storageLocations#1226177.id AS storageLocId#1226180, storageLocations#1226177.internalRefUUID AS storageLocUuid#1226181]
(245) LogicalRelation
Arguments: parquet, [product#1226182, plant#1226183, orderDateTime#1226184, planningStartDateTime#1226185], false
(246) RepartitionByExpression
Arguments: [product#1226182, plant#1226183], 37
(247) Project
Arguments: [product#1226182, plant#1226183, orderDateTime#1226184]
(248) LogicalRelation
Arguments: parquet, [systemId#1226186, internalUUID#1226187, plant#1226188, product#1226189, blockedForReplenishmentStartingFrom#1226190, productionAspect#1226191, salesPlant#1226192, listing#1226193], false
(249) Repartition
Arguments: 37, true
(250) Project
Arguments: [systemId#1226186, internalUUID#1226187, plant#1226188, product#1226189, blockedForReplenishmentStartingFrom#1226190, productionAspect#1226191, salesPlant#1226192, listing#1226193, struct(systemId, systemId#1226186, internalUUID, internalUUID#1226187, plant, plant#1226188, product, product#1226189, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1226190, productionAspect, productionAspect#1226191, salesPlant, salesPlant#1226192, listing, listing#1226193) AS productPlant#1226194]
(251) Project
Arguments: [productPlant#1226194]
(252) Join
Arguments: LeftOuter, ((product#1226182 <=> productPlant#1226194.product.internalRefUUID) AND (plant#1226183 <=> productPlant#1226194.plant.internalRefUUID))
(253) Project
Arguments: [product#1226182, plant#1226183, orderDateTime#1226184, productPlant#1226194]
(254) SubqueryAlias
Arguments: wl
(255) LogicalRelation
Arguments: parquet, [systemId#1226195, internalUUID#1226196, id#1226197, displayId#1226198, name#1226199, category#1226200, companyCode#1226201, address#1226202, mainDistributionChain#1226203, mainPurchasingOrganization#1226204, validPurchasingOrganizations#1226205, productGroup#1226206], false
(256) Repartition
Arguments: 37, true
(257) Project
Arguments: [internalUUID#1226196, address#1226202.timeZone.code AS timezonecode#1226207]
(258) Join
Arguments: LeftOuter, (plant#1226183 <=> internalUUID#1226196)
(259) Project
Arguments: [product#1226182, plant#1226183, orderDateTime#1226184, productPlant#1226194, internalUUID#1226196, CASE WHEN isnotnull(timezonecode#1226207) THEN timezonecode#1226207 ELSE UTC END AS timezonecode#1226208]
(260) Project
Arguments: [product#1226182, plant#1226183, orderDateTime#1226184, productPlant#1226194, timezonecode#1226208]
(261) LogicalRelation
Arguments: parquet, [systemId#1226209, internalUUID#1226210, id#1226211, displayId#1226212, name#1226213, baseUnitOfMeasure#1226214, unitOfMeasures#1226215, unitOfMeasureConversions#1226216, productionAspect#1226217, salesAspect#1226218, procurementAspect#1226219, productGroup#1226220], false
(262) Repartition
Arguments: 37, true
(263) Join
Arguments: LeftOuter, (product#1226182 = internalUUID#1226210)
(264) Project
Arguments: [product#1226182, plant#1226183, orderDateTime#1226184, productPlant#1226194, timezonecode#1226208, systemId#1226209, internalUUID#1226210, id#1226211, displayId#1226212, name#1226213, baseUnitOfMeasure#1226214, unitOfMeasures#1226215, unitOfMeasureConversions#1226216, productionAspect#1226217, salesAspect#1226218, procurementAspect#1226219, productGroup#1226220, filter(unitOfMeasureConversions#1226216, lambdafunction((((lambda u#1225669.measurementUnit1.code = productPlant#1226194.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1225669.measurementUnit1.internalRefUUID = productPlant#1226194.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1226214.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1226214.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1226221]
(265) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1226221.quantityNumerator), true, [quantityNumerator#1226222]
(266) Project
Arguments: [product#1226182, plant#1226183, orderDateTime#1226184, productPlant#1226194, timezonecode#1226208, systemId#1226209, internalUUID#1226210, id#1226211, displayId#1226212, name#1226213, baseUnitOfMeasure#1226214, unitOfMeasures#1226215, unitOfMeasureConversions#1226216, productionAspect#1226217, salesAspect#1226218, procurementAspect#1226219, productGroup#1226220, filteredUnitOfMeasureConversions#1226221, quantityNumerator#1226222]
(267) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1226221.quantityDenominator), true, [quantityDenominator#1226223]
(268) Project
Arguments: [product#1226182, plant#1226183, orderDateTime#1226184, productPlant#1226194, timezonecode#1226208, systemId#1226209, internalUUID#1226210, id#1226211, displayId#1226212, name#1226213, baseUnitOfMeasure#1226214, unitOfMeasures#1226215, unitOfMeasureConversions#1226216, productionAspect#1226217, salesAspect#1226218, procurementAspect#1226219, productGroup#1226220, filteredUnitOfMeasureConversions#1226221, quantityNumerator#1226222, quantityDenominator#1226223]
(269) Project
Arguments: [product#1226182, plant#1226183, orderDateTime#1226184, productPlant#1226194, timezonecode#1226208, systemId#1226209, internalUUID#1226210, id#1226211, displayId#1226212, name#1226213, baseUnitOfMeasure#1226214, unitOfMeasures#1226215, unitOfMeasureConversions#1226216, productionAspect#1226217, salesAspect#1226218, procurementAspect#1226219, productGroup#1226220, filteredUnitOfMeasureConversions#1226221, quantityNumerator#1226222, quantityDenominator#1226223, (cast(quantityNumerator#1226222 as double) / cast(quantityDenominator#1226223 as double)) AS outboundUnit#1226224]
(270) Project
Arguments: [product#1226182, plant#1226183, orderDateTime#1226184, productPlant#1226194, timezonecode#1226208, systemId#1226209, internalUUID#1226210, id#1226211, displayId#1226212, name#1226213, baseUnitOfMeasure#1226214, unitOfMeasures#1226215, unitOfMeasureConversions#1226216, productionAspect#1226217, salesAspect#1226218, procurementAspect#1226219, productGroup#1226220, filteredUnitOfMeasureConversions#1226221, quantityNumerator#1226222, quantityDenominator#1226223, CASE WHEN (isnull(outboundUnit#1226224) OR (outboundUnit#1226224 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1226224 END AS outboundUnit#1226225]
(271) Project
Arguments: [product#1226182, plant#1226183, orderDateTime#1226184, productPlant#1226194, timezonecode#1226208, outboundUnit#1226225]
(272) Project
Arguments: [plant#1226183]
(273) Deduplicate
Arguments: [plant#1226183]
(274) Join
Arguments: Inner, (plantUuid#1226179 = plant#1226183)
(275) Project
Arguments: [plantId#1226178, plantUuid#1226179, storageLocId#1226180, storageLocUuid#1226181]
(276) Join
Arguments: Inner, (plant#1226151.internalRefUUID <=> plantUuid#1226179)
(277) Generate
Arguments: explode(filter(stockQuantities#1226153, lambdafunction(((lambda x#1225727.storageLocation.internalRefUuid = storageLocUuid#1226181) AND (lambda x#1225727.storageLocation.Id = storageLocId#1226180)), lambda x#1225727, false))), false, [stockQuantity#1226226]
(278) Project
Arguments: [systemId#1226148, internalUUID#1226149, product#1226150, plant#1226151, calculationDateTime#1226152, stockQuantities#1226153, plantId#1226178, plantUuid#1226179, storageLocId#1226180, storageLocUuid#1226181, stockQuantity#1226226]
(279) Aggregate
Arguments: [plantUuid#1226179, internalUUID#1226149, plant#1226151, product#1226150, systemId#1226148], [plantUuid#1226179, internalUUID#1226149, plant#1226151, product#1226150, systemId#1226148, first(calculationDateTime#1226152, false) AS calculationDateTime#1226227, collect_list(stockQuantity#1226226, 0, 0) AS stockQuantities#1226228]
(280) Project
Arguments: [systemId#1226148, internalUUID#1226149, product#1226150, plant#1226151, calculationDateTime#1226227, stockQuantities#1226228]
(281) Generate
Arguments: explode(stockQuantities#1226228), false, [stockQuantity#1226229]
(282) Project
Arguments: [systemId#1226148, internalUUID#1226149, product#1226150, plant#1226151, calculationDateTime#1226227, stockQuantities#1226228, stockQuantity#1226229]
(283) Project
Arguments: [plant#1226151.id AS plant#1226230, plant#1226151.internalRefUUID AS plantUuid#1226231, product#1226150.id AS product#1226232, product#1226150.internalRefUUID AS productUuid#1226233, calculationDateTime#1226227, stockQuantity#1226229.storagelocation.id AS storageLocId#1226234, stockQuantity#1226229.storagelocation.internalRefUUID AS storageLocUuid#1226235, stockQuantity#1226229.quantity.measure AS quantity#1226236, stockQuantity#1226229.specialStockIndicator.code AS specialStockIndicator#1226237, stockQuantity#1226229.stockType.code AS stockType#1226238]
(284) Filter
Arguments: ((specialStockIndicator#1226237 = ) AND (stockType#1226238 = 01))
(285) LogicalRelation
Arguments: parquet, [product#1226239, plant#1226240, orderDateTime#1226241, planningStartDateTime#1226242], false
(286) RepartitionByExpression
Arguments: [product#1226239, plant#1226240], 37
(287) Project
Arguments: [product#1226239, plant#1226240, orderDateTime#1226241]
(288) LogicalRelation
Arguments: parquet, [systemId#1226243, internalUUID#1226244, plant#1226245, product#1226246, blockedForReplenishmentStartingFrom#1226247, productionAspect#1226248, salesPlant#1226249, listing#1226250], false
(289) Repartition
Arguments: 37, true
(290) Project
Arguments: [systemId#1226243, internalUUID#1226244, plant#1226245, product#1226246, blockedForReplenishmentStartingFrom#1226247, productionAspect#1226248, salesPlant#1226249, listing#1226250, struct(systemId, systemId#1226243, internalUUID, internalUUID#1226244, plant, plant#1226245, product, product#1226246, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1226247, productionAspect, productionAspect#1226248, salesPlant, salesPlant#1226249, listing, listing#1226250) AS productPlant#1226251]
(291) Project
Arguments: [productPlant#1226251]
(292) Join
Arguments: LeftOuter, ((product#1226239 <=> productPlant#1226251.product.internalRefUUID) AND (plant#1226240 <=> productPlant#1226251.plant.internalRefUUID))
(293) Project
Arguments: [product#1226239, plant#1226240, orderDateTime#1226241, productPlant#1226251]
(294) SubqueryAlias
Arguments: wl
(295) LogicalRelation
Arguments: parquet, [systemId#1226252, internalUUID#1226253, id#1226254, displayId#1226255, name#1226256, category#1226257, companyCode#1226258, address#1226259, mainDistributionChain#1226260, mainPurchasingOrganization#1226261, validPurchasingOrganizations#1226262, productGroup#1226263], false
(296) Repartition
Arguments: 37, true
(297) Project
Arguments: [internalUUID#1226253, address#1226259.timeZone.code AS timezonecode#1226264]
(298) Join
Arguments: LeftOuter, (plant#1226240 <=> internalUUID#1226253)
(299) Project
Arguments: [product#1226239, plant#1226240, orderDateTime#1226241, productPlant#1226251, internalUUID#1226253, CASE WHEN isnotnull(timezonecode#1226264) THEN timezonecode#1226264 ELSE UTC END AS timezonecode#1226265]
(300) Project
Arguments: [product#1226239, plant#1226240, orderDateTime#1226241, productPlant#1226251, timezonecode#1226265]
(301) LogicalRelation
Arguments: parquet, [systemId#1226266, internalUUID#1226267, id#1226268, displayId#1226269, name#1226270, baseUnitOfMeasure#1226271, unitOfMeasures#1226272, unitOfMeasureConversions#1226273, productionAspect#1226274, salesAspect#1226275, procurementAspect#1226276, productGroup#1226277], false
(302) Repartition
Arguments: 37, true
(303) Join
Arguments: LeftOuter, (product#1226239 = internalUUID#1226267)
(304) Project
Arguments: [product#1226239, plant#1226240, orderDateTime#1226241, productPlant#1226251, timezonecode#1226265, systemId#1226266, internalUUID#1226267, id#1226268, displayId#1226269, name#1226270, baseUnitOfMeasure#1226271, unitOfMeasures#1226272, unitOfMeasureConversions#1226273, productionAspect#1226274, salesAspect#1226275, procurementAspect#1226276, productGroup#1226277, filter(unitOfMeasureConversions#1226273, lambdafunction((((lambda u#1225669.measurementUnit1.code = productPlant#1226251.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1225669.measurementUnit1.internalRefUUID = productPlant#1226251.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1226271.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1226271.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1226278]
(305) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1226278.quantityNumerator), true, [quantityNumerator#1226279]
(306) Project
Arguments: [product#1226239, plant#1226240, orderDateTime#1226241, productPlant#1226251, timezonecode#1226265, systemId#1226266, internalUUID#1226267, id#1226268, displayId#1226269, name#1226270, baseUnitOfMeasure#1226271, unitOfMeasures#1226272, unitOfMeasureConversions#1226273, productionAspect#1226274, salesAspect#1226275, procurementAspect#1226276, productGroup#1226277, filteredUnitOfMeasureConversions#1226278, quantityNumerator#1226279]
(307) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1226278.quantityDenominator), true, [quantityDenominator#1226280]
(308) Project
Arguments: [product#1226239, plant#1226240, orderDateTime#1226241, productPlant#1226251, timezonecode#1226265, systemId#1226266, internalUUID#1226267, id#1226268, displayId#1226269, name#1226270, baseUnitOfMeasure#1226271, unitOfMeasures#1226272, unitOfMeasureConversions#1226273, productionAspect#1226274, salesAspect#1226275, procurementAspect#1226276, productGroup#1226277, filteredUnitOfMeasureConversions#1226278, quantityNumerator#1226279, quantityDenominator#1226280]
(309) Project
Arguments: [product#1226239, plant#1226240, orderDateTime#1226241, productPlant#1226251, timezonecode#1226265, systemId#1226266, internalUUID#1226267, id#1226268, displayId#1226269, name#1226270, baseUnitOfMeasure#1226271, unitOfMeasures#1226272, unitOfMeasureConversions#1226273, productionAspect#1226274, salesAspect#1226275, procurementAspect#1226276, productGroup#1226277, filteredUnitOfMeasureConversions#1226278, quantityNumerator#1226279, quantityDenominator#1226280, (cast(quantityNumerator#1226279 as double) / cast(quantityDenominator#1226280 as double)) AS outboundUnit#1226281]
(310) Project
Arguments: [product#1226239, plant#1226240, orderDateTime#1226241, productPlant#1226251, timezonecode#1226265, systemId#1226266, internalUUID#1226267, id#1226268, displayId#1226269, name#1226270, baseUnitOfMeasure#1226271, unitOfMeasures#1226272, unitOfMeasureConversions#1226273, productionAspect#1226274, salesAspect#1226275, procurementAspect#1226276, productGroup#1226277, filteredUnitOfMeasureConversions#1226278, quantityNumerator#1226279, quantityDenominator#1226280, CASE WHEN (isnull(outboundUnit#1226281) OR (outboundUnit#1226281 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1226281 END AS outboundUnit#1226282]
(311) Project
Arguments: [product#1226239, plant#1226240, orderDateTime#1226241, productPlant#1226251, timezonecode#1226265, outboundUnit#1226282]
(312) Join
Arguments: Inner, ((plantUuid#1226231 = plant#1226240) AND (productUuid#1226233 = product#1226239))
(313) Filter
Arguments: (calculationDateTime#1226227 <= orderDateTime#1226241)
(314) Project
Arguments: [plantUuid#1226231 AS plant#1226283, productUuid#1226233 AS product#1226284, storageLocId#1226234, calculationDateTime#1226227, quantity#1226236]
(315) LogicalRelation
Arguments: parquet, [systemId#1226285, internalUUID#1226286, product#1226287, plant#1226288, calculationDateTime#1226289, stockQuantities#1226290], false
(316) Repartition
Arguments: 37, true
(317) LogicalRelation
Arguments: parquet, [marketUnit#1226291, description#1226292, articleHierarchy#1226293, defaultCurrency#1226294, responsibilities#1226295, replenishmentTypes#1226296, distributionCenters#1226297, assignedArticleHierarchyNodes#1226298, minOrderQtySetting#1226299, listingCheck#1226300, odsSelection#1226301, demandProfiles#1226302, constraintProfiles#1226303, optimizationProfiles#1226304, orderGroupSplitProfiles#1226305, supplierMinimumProfiles#1226306, multipleRestrictionProfiles#1226307, preferredUomSource#1226308, handlingOfUnfulfilledDemands#1226309, negligibleQuantitiesThreshold#1226310, eventtype#1226311, minOrderQtySettingInternal#1226312], false
(318) Repartition
Arguments: 37, true
(319) Filter
Arguments: (marketUnit#1226291 <=> AUTO_MUV2)
(320) Project
Arguments: [marketUnit#1226291, description#1226292, articleHierarchy#1226293, defaultCurrency#1226294, responsibilities#1226295, replenishmentTypes#1226296, distributionCenters#1226297, assignedArticleHierarchyNodes#1226298, minOrderQtySetting#1226299, listingCheck#1226300, odsSelection#1226301, demandProfiles#1226302, constraintProfiles#1226303, optimizationProfiles#1226304, orderGroupSplitProfiles#1226305, supplierMinimumProfiles#1226306, multipleRestrictionProfiles#1226307, preferredUomSource#1226308, handlingOfUnfulfilledDemands#1226309, negligibleQuantitiesThreshold#1226310, eventtype#1226311, minOrderQtySettingInternal#1226312]
(321) Project
Arguments: [distributionCenters#1226297]
(322) Generate
Arguments: explode(distributionCenters#1226297), false, [distributionCenters#1226313]
(323) Project
Arguments: [distributionCenters#1226313]
(324) Generate
Arguments: explode(distributionCenters#1226313.storageLocations), false, [storageLocations#1226314]
(325) Project
Arguments: [distributionCenters#1226313.id AS plantId#1226315, distributionCenters#1226313.internalRefUUID AS plantUuid#1226316, storageLocations#1226314]
(326) Project
Arguments: [plantId#1226315, plantUuid#1226316, storageLocations#1226314.id AS storageLocId#1226317, storageLocations#1226314.internalRefUUID AS storageLocUuid#1226318]
(327) LogicalRelation
Arguments: parquet, [product#1226319, plant#1226320, orderDateTime#1226321, planningStartDateTime#1226322], false
(328) RepartitionByExpression
Arguments: [product#1226319, plant#1226320], 37
(329) Project
Arguments: [product#1226319, plant#1226320, orderDateTime#1226321]
(330) LogicalRelation
Arguments: parquet, [systemId#1226323, internalUUID#1226324, plant#1226325, product#1226326, blockedForReplenishmentStartingFrom#1226327, productionAspect#1226328, salesPlant#1226329, listing#1226330], false
(331) Repartition
Arguments: 37, true
(332) Project
Arguments: [systemId#1226323, internalUUID#1226324, plant#1226325, product#1226326, blockedForReplenishmentStartingFrom#1226327, productionAspect#1226328, salesPlant#1226329, listing#1226330, struct(systemId, systemId#1226323, internalUUID, internalUUID#1226324, plant, plant#1226325, product, product#1226326, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1226327, productionAspect, productionAspect#1226328, salesPlant, salesPlant#1226329, listing, listing#1226330) AS productPlant#1226331]
(333) Project
Arguments: [productPlant#1226331]
(334) Join
Arguments: LeftOuter, ((product#1226319 <=> productPlant#1226331.product.internalRefUUID) AND (plant#1226320 <=> productPlant#1226331.plant.internalRefUUID))
(335) Project
Arguments: [product#1226319, plant#1226320, orderDateTime#1226321, productPlant#1226331]
(336) SubqueryAlias
Arguments: wl
(337) LogicalRelation
Arguments: parquet, [systemId#1226332, internalUUID#1226333, id#1226334, displayId#1226335, name#1226336, category#1226337, companyCode#1226338, address#1226339, mainDistributionChain#1226340, mainPurchasingOrganization#1226341, validPurchasingOrganizations#1226342, productGroup#1226343], false
(338) Repartition
Arguments: 37, true
(339) Project
Arguments: [internalUUID#1226333, address#1226339.timeZone.code AS timezonecode#1226344]
(340) Join
Arguments: LeftOuter, (plant#1226320 <=> internalUUID#1226333)
(341) Project
Arguments: [product#1226319, plant#1226320, orderDateTime#1226321, productPlant#1226331, internalUUID#1226333, CASE WHEN isnotnull(timezonecode#1226344) THEN timezonecode#1226344 ELSE UTC END AS timezonecode#1226345]
(342) Project
Arguments: [product#1226319, plant#1226320, orderDateTime#1226321, productPlant#1226331, timezonecode#1226345]
(343) LogicalRelation
Arguments: parquet, [systemId#1226346, internalUUID#1226347, id#1226348, displayId#1226349, name#1226350, baseUnitOfMeasure#1226351, unitOfMeasures#1226352, unitOfMeasureConversions#1226353, productionAspect#1226354, salesAspect#1226355, procurementAspect#1226356, productGroup#1226357], false
(344) Repartition
Arguments: 37, true
(345) Join
Arguments: LeftOuter, (product#1226319 = internalUUID#1226347)
(346) Project
Arguments: [product#1226319, plant#1226320, orderDateTime#1226321, productPlant#1226331, timezonecode#1226345, systemId#1226346, internalUUID#1226347, id#1226348, displayId#1226349, name#1226350, baseUnitOfMeasure#1226351, unitOfMeasures#1226352, unitOfMeasureConversions#1226353, productionAspect#1226354, salesAspect#1226355, procurementAspect#1226356, productGroup#1226357, filter(unitOfMeasureConversions#1226353, lambdafunction((((lambda u#1225669.measurementUnit1.code = productPlant#1226331.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1225669.measurementUnit1.internalRefUUID = productPlant#1226331.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1226351.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1226351.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1226358]
(347) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1226358.quantityNumerator), true, [quantityNumerator#1226359]
(348) Project
Arguments: [product#1226319, plant#1226320, orderDateTime#1226321, productPlant#1226331, timezonecode#1226345, systemId#1226346, internalUUID#1226347, id#1226348, displayId#1226349, name#1226350, baseUnitOfMeasure#1226351, unitOfMeasures#1226352, unitOfMeasureConversions#1226353, productionAspect#1226354, salesAspect#1226355, procurementAspect#1226356, productGroup#1226357, filteredUnitOfMeasureConversions#1226358, quantityNumerator#1226359]
(349) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1226358.quantityDenominator), true, [quantityDenominator#1226360]
(350) Project
Arguments: [product#1226319, plant#1226320, orderDateTime#1226321, productPlant#1226331, timezonecode#1226345, systemId#1226346, internalUUID#1226347, id#1226348, displayId#1226349, name#1226350, baseUnitOfMeasure#1226351, unitOfMeasures#1226352, unitOfMeasureConversions#1226353, productionAspect#1226354, salesAspect#1226355, procurementAspect#1226356, productGroup#1226357, filteredUnitOfMeasureConversions#1226358, quantityNumerator#1226359, quantityDenominator#1226360]
(351) Project
Arguments: [product#1226319, plant#1226320, orderDateTime#1226321, productPlant#1226331, timezonecode#1226345, systemId#1226346, internalUUID#1226347, id#1226348, displayId#1226349, name#1226350, baseUnitOfMeasure#1226351, unitOfMeasures#1226352, unitOfMeasureConversions#1226353, productionAspect#1226354, salesAspect#1226355, procurementAspect#1226356, productGroup#1226357, filteredUnitOfMeasureConversions#1226358, quantityNumerator#1226359, quantityDenominator#1226360, (cast(quantityNumerator#1226359 as double) / cast(quantityDenominator#1226360 as double)) AS outboundUnit#1226361]
(352) Project
Arguments: [product#1226319, plant#1226320, orderDateTime#1226321, productPlant#1226331, timezonecode#1226345, systemId#1226346, internalUUID#1226347, id#1226348, displayId#1226349, name#1226350, baseUnitOfMeasure#1226351, unitOfMeasures#1226352, unitOfMeasureConversions#1226353, productionAspect#1226354, salesAspect#1226355, procurementAspect#1226356, productGroup#1226357, filteredUnitOfMeasureConversions#1226358, quantityNumerator#1226359, quantityDenominator#1226360, CASE WHEN (isnull(outboundUnit#1226361) OR (outboundUnit#1226361 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1226361 END AS outboundUnit#1226362]
(353) Project
Arguments: [product#1226319, plant#1226320, orderDateTime#1226321, productPlant#1226331, timezonecode#1226345, outboundUnit#1226362]
(354) Project
Arguments: [plant#1226320]
(355) Deduplicate
Arguments: [plant#1226320]
(356) Join
Arguments: Inner, (plantUuid#1226316 = plant#1226320)
(357) Project
Arguments: [plantId#1226315, plantUuid#1226316, storageLocId#1226317, storageLocUuid#1226318]
(358) Join
Arguments: Inner, (plant#1226288.internalRefUUID <=> plantUuid#1226316)
(359) Generate
Arguments: explode(filter(stockQuantities#1226290, lambdafunction(((lambda x#1225727.storageLocation.internalRefUuid = storageLocUuid#1226318) AND (lambda x#1225727.storageLocation.Id = storageLocId#1226317)), lambda x#1225727, false))), false, [stockQuantity#1226363]
(360) Project
Arguments: [systemId#1226285, internalUUID#1226286, product#1226287, plant#1226288, calculationDateTime#1226289, stockQuantities#1226290, plantId#1226315, plantUuid#1226316, storageLocId#1226317, storageLocUuid#1226318, stockQuantity#1226363]
(361) Aggregate
Arguments: [plantUuid#1226316, internalUUID#1226286, plant#1226288, product#1226287, systemId#1226285], [plantUuid#1226316, internalUUID#1226286, plant#1226288, product#1226287, systemId#1226285, first(calculationDateTime#1226289, false) AS calculationDateTime#1226364, collect_list(stockQuantity#1226363, 0, 0) AS stockQuantities#1226365]
(362) Project
Arguments: [systemId#1226285, internalUUID#1226286, product#1226287, plant#1226288, calculationDateTime#1226364, stockQuantities#1226365]
(363) Generate
Arguments: explode(stockQuantities#1226365), false, [stockQuantity#1226366]
(364) Project
Arguments: [systemId#1226285, internalUUID#1226286, product#1226287, plant#1226288, calculationDateTime#1226364, stockQuantities#1226365, stockQuantity#1226366]
(365) Project
Arguments: [plant#1226288.id AS plant#1226367, plant#1226288.internalRefUUID AS plantUuid#1226368, product#1226287.id AS product#1226369, product#1226287.internalRefUUID AS productUuid#1226370, calculationDateTime#1226364, stockQuantity#1226366.storagelocation.id AS storageLocId#1226371, stockQuantity#1226366.storagelocation.internalRefUUID AS storageLocUuid#1226372, stockQuantity#1226366.quantity.measure AS quantity#1226373, stockQuantity#1226366.specialStockIndicator.code AS specialStockIndicator#1226374, stockQuantity#1226366.stockType.code AS stockType#1226375]
(366) Filter
Arguments: ((specialStockIndicator#1226374 = ) AND (stockType#1226375 = 01))
(367) LogicalRelation
Arguments: parquet, [product#1226376, plant#1226377, orderDateTime#1226378, planningStartDateTime#1226379], false
(368) RepartitionByExpression
Arguments: [product#1226376, plant#1226377], 37
(369) Project
Arguments: [product#1226376, plant#1226377, orderDateTime#1226378]
(370) LogicalRelation
Arguments: parquet, [systemId#1226380, internalUUID#1226381, plant#1226382, product#1226383, blockedForReplenishmentStartingFrom#1226384, productionAspect#1226385, salesPlant#1226386, listing#1226387], false
(371) Repartition
Arguments: 37, true
(372) Project
Arguments: [systemId#1226380, internalUUID#1226381, plant#1226382, product#1226383, blockedForReplenishmentStartingFrom#1226384, productionAspect#1226385, salesPlant#1226386, listing#1226387, struct(systemId, systemId#1226380, internalUUID, internalUUID#1226381, plant, plant#1226382, product, product#1226383, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1226384, productionAspect, productionAspect#1226385, salesPlant, salesPlant#1226386, listing, listing#1226387) AS productPlant#1226388]
(373) Project
Arguments: [productPlant#1226388]
(374) Join
Arguments: LeftOuter, ((product#1226376 <=> productPlant#1226388.product.internalRefUUID) AND (plant#1226377 <=> productPlant#1226388.plant.internalRefUUID))
(375) Project
Arguments: [product#1226376, plant#1226377, orderDateTime#1226378, productPlant#1226388]
(376) SubqueryAlias
Arguments: wl
(377) LogicalRelation
Arguments: parquet, [systemId#1226389, internalUUID#1226390, id#1226391, displayId#1226392, name#1226393, category#1226394, companyCode#1226395, address#1226396, mainDistributionChain#1226397, mainPurchasingOrganization#1226398, validPurchasingOrganizations#1226399, productGroup#1226400], false
(378) Repartition
Arguments: 37, true
(379) Project
Arguments: [internalUUID#1226390, address#1226396.timeZone.code AS timezonecode#1226401]
(380) Join
Arguments: LeftOuter, (plant#1226377 <=> internalUUID#1226390)
(381) Project
Arguments: [product#1226376, plant#1226377, orderDateTime#1226378, productPlant#1226388, internalUUID#1226390, CASE WHEN isnotnull(timezonecode#1226401) THEN timezonecode#1226401 ELSE UTC END AS timezonecode#1226402]
(382) Project
Arguments: [product#1226376, plant#1226377, orderDateTime#1226378, productPlant#1226388, timezonecode#1226402]
(383) LogicalRelation
Arguments: parquet, [systemId#1226403, internalUUID#1226404, id#1226405, displayId#1226406, name#1226407, baseUnitOfMeasure#1226408, unitOfMeasures#1226409, unitOfMeasureConversions#1226410, productionAspect#1226411, salesAspect#1226412, procurementAspect#1226413, productGroup#1226414], false
(384) Repartition
Arguments: 37, true
(385) Join
Arguments: LeftOuter, (product#1226376 = internalUUID#1226404)
(386) Project
Arguments: [product#1226376, plant#1226377, orderDateTime#1226378, productPlant#1226388, timezonecode#1226402, systemId#1226403, internalUUID#1226404, id#1226405, displayId#1226406, name#1226407, baseUnitOfMeasure#1226408, unitOfMeasures#1226409, unitOfMeasureConversions#1226410, productionAspect#1226411, salesAspect#1226412, procurementAspect#1226413, productGroup#1226414, filter(unitOfMeasureConversions#1226410, lambdafunction((((lambda u#1225669.measurementUnit1.code = productPlant#1226388.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1225669.measurementUnit1.internalRefUUID = productPlant#1226388.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1226408.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1226408.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1226415]
(387) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1226415.quantityNumerator), true, [quantityNumerator#1226416]
(388) Project
Arguments: [product#1226376, plant#1226377, orderDateTime#1226378, productPlant#1226388, timezonecode#1226402, systemId#1226403, internalUUID#1226404, id#1226405, displayId#1226406, name#1226407, baseUnitOfMeasure#1226408, unitOfMeasures#1226409, unitOfMeasureConversions#1226410, productionAspect#1226411, salesAspect#1226412, procurementAspect#1226413, productGroup#1226414, filteredUnitOfMeasureConversions#1226415, quantityNumerator#1226416]
(389) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1226415.quantityDenominator), true, [quantityDenominator#1226417]
(390) Project
Arguments: [product#1226376, plant#1226377, orderDateTime#1226378, productPlant#1226388, timezonecode#1226402, systemId#1226403, internalUUID#1226404, id#1226405, displayId#1226406, name#1226407, baseUnitOfMeasure#1226408, unitOfMeasures#1226409, unitOfMeasureConversions#1226410, productionAspect#1226411, salesAspect#1226412, procurementAspect#1226413, productGroup#1226414, filteredUnitOfMeasureConversions#1226415, quantityNumerator#1226416, quantityDenominator#1226417]
(391) Project
Arguments: [product#1226376, plant#1226377, orderDateTime#1226378, productPlant#1226388, timezonecode#1226402, systemId#1226403, internalUUID#1226404, id#1226405, displayId#1226406, name#1226407, baseUnitOfMeasure#1226408, unitOfMeasures#1226409, unitOfMeasureConversions#1226410, productionAspect#1226411, salesAspect#1226412, procurementAspect#1226413, productGroup#1226414, filteredUnitOfMeasureConversions#1226415, quantityNumerator#1226416, quantityDenominator#1226417, (cast(quantityNumerator#1226416 as double) / cast(quantityDenominator#1226417 as double)) AS outboundUnit#1226418]
(392) Project
Arguments: [product#1226376, plant#1226377, orderDateTime#1226378, productPlant#1226388, timezonecode#1226402, systemId#1226403, internalUUID#1226404, id#1226405, displayId#1226406, name#1226407, baseUnitOfMeasure#1226408, unitOfMeasures#1226409, unitOfMeasureConversions#1226410, productionAspect#1226411, salesAspect#1226412, procurementAspect#1226413, productGroup#1226414, filteredUnitOfMeasureConversions#1226415, quantityNumerator#1226416, quantityDenominator#1226417, CASE WHEN (isnull(outboundUnit#1226418) OR (outboundUnit#1226418 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1226418 END AS outboundUnit#1226419]
(393) Project
Arguments: [product#1226376, plant#1226377, orderDateTime#1226378, productPlant#1226388, timezonecode#1226402, outboundUnit#1226419]
(394) Join
Arguments: Inner, ((plantUuid#1226368 = plant#1226377) AND (productUuid#1226370 = product#1226376))
(395) Filter
Arguments: (calculationDateTime#1226364 <= orderDateTime#1226378)
(396) Project
Arguments: [plantUuid#1226368 AS plant#1226420, productUuid#1226370 AS product#1226421, storageLocId#1226371, calculationDateTime#1226364, quantity#1226373]
(397) Aggregate
Arguments: [plant#1226420, product#1226421, storageLocId#1226371], [plant#1226420, product#1226421, storageLocId#1226371, max(calculationDateTime#1226364) AS max_calc_datetime#1226422]
(398) Join
Arguments: Inner, ((((plant#1226283 <=> plant#1226420) AND (product#1226284 <=> product#1226421)) AND (storageLocId#1226234 <=> storageLocId#1226371)) AND (calculationDateTime#1226227 <=> max_calc_datetime#1226422))
(399) Project
Arguments: [plant#1226283, product#1226284, storageLocId#1226234, calculationDateTime#1226227, quantity#1226236]
(400) Aggregate
Arguments: [product#1226284, plant#1226283], [product#1226284, plant#1226283, sum(quantity#1226236) AS quantitySum#1226423, min(calculationDateTime#1226227) AS minCalculationDateTime#1226424]
(401) Project
Arguments: [product#1226284, plant#1226283, quantitySum#1226423, minCalculationDateTime#1226424, round(quantitySum#1226423, 0) AS roundedQuantitySum#1226425]
(402) Join
Arguments: LeftOuter, ((plant#1226105 = plant#1226283) AND (product#1226104 = product#1226284))
(403) Project
Arguments: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226147, roundedQuantitySum#1226425, minCalculationDateTime#1226424]
(404) Project
Arguments: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226147, roundedQuantitySum#1226425, minCalculationDateTime#1226424, CASE WHEN isnotnull(minCalculationDateTime#1226424) THEN minCalculationDateTime#1226424 ELSE orderDateTime#1226106 END AS stockDatetime#1226426]
(405) Project
Arguments: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226147, roundedQuantitySum#1226425, minCalculationDateTime#1226424, stockDatetime#1226426, CASE WHEN isnotnull(roundedQuantitySum#1226425) THEN array(roundedQuantitySum#1226425) ELSE array(0.0) END AS stockBatchQuantities#1226427]
(406) Project
Arguments: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226147, roundedQuantitySum#1226425, minCalculationDateTime#1226424, stockDatetime#1226426, stockBatchQuantities#1226427, array(2199-01-01 00:00:00) AS stockBatchShelfLifeEndDatetimes#1226428]
(407) Project
Arguments: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226147, roundedQuantitySum#1226425, stockDatetime#1226426, stockBatchQuantities#1226427, stockBatchShelfLifeEndDatetimes#1226428]
(408) Project
Arguments: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226147, stockDatetime#1226426, stockBatchQuantities#1226427, stockBatchShelfLifeEndDatetimes#1226428]
(409) LogicalRelation
Arguments: parquet, [product#1226029, plant#1226030, demandChannel#1226031, demandStream#1226032, considerVariance#1226033, demandTimeBuckets#1226034, demandPointInTimeStart#1226035, demandPointInTimeEnd#1226036, demandPointInTime#1226037], false
(410) Join
Arguments: LeftOuter, ((product#1226104 = product#1226029) AND (plant#1226105 = plant#1226030))
(411) Project
Arguments: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226147, stockDatetime#1226426, stockBatchQuantities#1226427, stockBatchShelfLifeEndDatetimes#1226428, demandChannel#1226031, demandStream#1226032, considerVariance#1226033, demandTimeBuckets#1226034, demandPointInTimeStart#1226035, demandPointInTimeEnd#1226036, demandPointInTime#1226037, product#1226029, plant#1226030]
(412) Project
Arguments: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226147, stockDatetime#1226426, stockBatchQuantities#1226427, stockBatchShelfLifeEndDatetimes#1226428, demandChannel#1226031, demandStream#1226032, considerVariance#1226033, demandTimeBuckets#1226034, demandPointInTimeStart#1226035, demandPointInTimeEnd#1226036, demandPointInTime#1226037, CASE WHEN isnotnull(product#1226029) THEN struct(demandChannel, demandChannel#1226031, demandStream, demandStream#1226032, considerVariance, considerVariance#1226033, demandTimeBuckets, demandTimeBuckets#1226034, demandPointInTimeStart, demandPointInTimeStart#1226035, demandPointInTimeEnd, demandPointInTimeEnd#1226036, demandPointInTime, demandPointInTime#1226037) 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#1226050]
(413) Aggregate
Arguments: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226147, stockDatetime#1226426, stockBatchQuantities#1226427, stockBatchShelfLifeEndDatetimes#1226428], [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226147, stockDatetime#1226426, stockBatchQuantities#1226427, stockBatchShelfLifeEndDatetimes#1226428, collect_list(rawDemands#1226050, 0, 0) AS rawDemands#1226051]
(414) DeserializeToObject
Arguments: createexternalrow(invoke(product#1226104.toString()), invoke(plant#1226105.toString()), static_invoke(DateTimeUtils.toJavaTimestamp(orderDateTime#1226106)), if (isnull(productPlant#1226116)) null else createexternalrow(invoke(productPlant#1226116.systemId.toString()), invoke(productPlant#1226116.internalUUID.toString()), if (isnull(productPlant#1226116.plant)) null else createexternalrow(invoke(productPlant#1226116.plant.internalRefUUID.toString()), invoke(productPlant#1226116.plant.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), if (isnull(productPlant#1226116.product)) null else createexternalrow(invoke(productPlant#1226116.product.internalRefUUID.toString()), invoke(productPlant#1226116.product.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(DateTimeUtils.toJavaDate(productPlant#1226116.blockedForReplenishmentStartingFrom)), if (isnull(productPlant#1226116.productionAspect)) null else createexternalrow(if (isnull(productPlant#1226116.productionAspect.productMovementPlants)) null else createexternalrow(if (isnull(productPlant#1226116.productionAspect.productMovementPlants.unitOfIssue)) null else createexternalrow(invoke(productPlant#1226116.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID.toString()), invoke(productPlant#1226116.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#1226116.productionAspect.productPlanningPlants)) null else createexternalrow(if (isnull(productPlant#1226116.productionAspect.productPlanningPlants.mrpType)) null else createexternalrow(invoke(productPlant#1226116.productionAspect.productPlanningPlants.mrpType.internalRefUUID.toString()), invoke(productPlant#1226116.productionAspect.productPlanningPlants.mrpType.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1226116.productionAspect.productPlanningPlants.abcIndicator)) null else createexternalrow(invoke(productPlant#1226116.productionAspect.productPlanningPlants.abcIndicator.internalRefUUID.toString()), invoke(productPlant#1226116.productionAspect.productPlanningPlants.abcIndicator.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1226116.productionAspect.productPlanningPlants.mrpController)) null else createexternalrow(invoke(productPlant#1226116.productionAspect.productPlanningPlants.mrpController.internalRefUUID.toString()), invoke(productPlant#1226116.productionAspect.productPlanningPlants.mrpController.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(java.lang.Double.valueOf(productPlant#1226116.productionAspect.productPlanningPlants.minimumLotSize)), if (isnull(productPlant#1226116.productionAspect.productPlanningPlants.logisticalRoundingProfile)) null else createexternalrow(invoke(productPlant#1226116.productionAspect.productPlanningPlants.logisticalRoundingProfile.internalRefUUID.toString()), invoke(productPlant#1226116.productionAspect.productPlanningPlants.logisticalRoundingProfile.logisticalRoundingProfile.toString()), StructField(internalRefUUID,StringType,true), StructField(logisticalRoundingProfile,StringType,true)), if (isnull(productPlant#1226116.productionAspect.productPlanningPlants.sourceOfSupplyCategory)) null else createexternalrow(invoke(productPlant#1226116.productionAspect.productPlanningPlants.sourceOfSupplyCategory.internalRefUUID.toString()), invoke(productPlant#1226116.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#1226116.salesPlant)) null else createexternalrow(if (isnull(productPlant#1226116.salesPlant.loadingGroup)) null else createexternalrow(invoke(productPlant#1226116.salesPlant.loadingGroup.internalRefUUID.toString()), invoke(productPlant#1226116.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, 163428), if (isnull(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 163428))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 163428).validFrom)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 163428).validTo)), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 163428).isListed)), StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true)), productPlant#1226116.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#1226130.toString()), static_invoke(java.lang.Double.valueOf(outboundUnit#1226147)), static_invoke(DateTimeUtils.toJavaTimestamp(stockDatetime#1226426)), mapobjects(lambdavariable(MapObject, DoubleType, true, 163429), static_invoke(java.lang.Double.valueOf(cast(lambdavariable(MapObject, DoubleType, true, 163429) as double))), stockBatchQuantities#1226427, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, false, 163430), assertnotnull(static_invoke(DateTimeUtils.toJavaTimestamp(cast(lambdavariable(MapObject, TimestampType, false, 163430) as timestamp)))), stockBatchShelfLifeEndDatetimes#1226428, 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, 163431), 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, 163431))) 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, 163431).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, 163431).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, 163431).considerVariance)), mapobjects(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 163432), if (isnull(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 163432))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 163432).demandStartDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 163432).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 163432).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, 163431).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, 163431).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, 163431).demandPointInTimeEnd)), mapobjects(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 163433), if (isnull(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 163433))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 163433).demandDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 163433).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 163433).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, 163431).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#1226051, 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#1226090: org.apache.spark.sql.Row
(415) MapElements
Arguments: com.sap.s4hana.eureka.business.crporderquantitykpiservice.core.business.datasnapshot.DemandTransformatorImpl$$Lambda/0x00000008023bc120@58fc6bc3, 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#1226095: 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#1226100, 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#1226101, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(2))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163418), assertnotnull(if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163418), 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, 163418), 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, 163418), 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, 163418), 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, 163418), 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, 163418), 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, 163418), 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, 163418), 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, 163418), 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, 163418), 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, 163419), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163419), DoubleType, ObjectType(class java.lang.Double)).doubleValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163418), 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, 163418), 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, 163418), 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, 163418), 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, 163420), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163420), DoubleType, ObjectType(class java.lang.Double)).doubleValue()), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163418), 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, 163418), 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, 163421), assertnotnull(static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163421), TimestampType, ObjectType(class java.sql.Timestamp))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163418), 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, 163418), 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, 163422), assertnotnull(static_invoke(UTF8String.fromString(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163422), StringType, ObjectType(class java.lang.String))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163418), 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, 163418), 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, 163418), 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, 163418), 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, 163423), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163423), IntegerType, ObjectType(class java.lang.Integer)).intValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163418), 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#1226102, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(3))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163424), assertnotnull(if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163424), 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, 163424), 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, 163424), 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, 163424), 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, 163424), 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, 163424), 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, 163424), 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, 163424), 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, 163425), assertnotnull(static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163425), TimestampType, ObjectType(class java.sql.Timestamp))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163424), 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, 163424), 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, 163424), 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, 163424), 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, 163426), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163426), DoubleType, ObjectType(class java.lang.Double)).doubleValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163424), 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, 163424), 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, 163424), 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, 163424), 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, 163427), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163427), DoubleType, ObjectType(class java.lang.Double)).doubleValue()), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163424), 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, 163424), 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, 163424), 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, 163424), 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, 163424), 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#1226103]
(417) Join
Arguments: LeftOuter, ((plant#1226101 <=> plant#1225623) AND (product#1226100 <=> product#1225622))
(418) Project
Arguments: [product#1225622, plant#1225623, orderDateTime#1225624, productPlant#1225636, timezonecode#1225654, outboundUnit#1225681, stockDatetime#1226026, stockBatchQuantities#1226027, stockBatchShelfLifeEndDatetimes#1226028, plant#1226101, dayBucketDemands#1226102, pointInTimeDemands#1226103]
(419) Project
Arguments: [product#1225622, plant#1225623, orderDateTime#1225624, productPlant#1225636, timezonecode#1225654, outboundUnit#1225681, stockDatetime#1226026, stockBatchQuantities#1226027, stockBatchShelfLifeEndDatetimes#1226028, dayBucketDemands#1226102, pointInTimeDemands#1226103]
(420) LogicalRelation
Arguments: parquet, [product#1229852, plant#1229853, orderDateTime#1229854, planningStartDateTime#1229855], false
(421) RepartitionByExpression
Arguments: [product#1229852, plant#1229853], 37
(422) Project
Arguments: [product#1229852, plant#1229853, orderDateTime#1229854]
(423) LogicalRelation
Arguments: parquet, [systemId#1229856, internalUUID#1229857, plant#1229858, product#1229859, blockedForReplenishmentStartingFrom#1229860, productionAspect#1229861, salesPlant#1229862, listing#1229863], false
(424) Repartition
Arguments: 37, true
(425) Project
Arguments: [systemId#1229856, internalUUID#1229857, plant#1229858, product#1229859, blockedForReplenishmentStartingFrom#1229860, productionAspect#1229861, salesPlant#1229862, listing#1229863, struct(systemId, systemId#1229856, internalUUID, internalUUID#1229857, plant, plant#1229858, product, product#1229859, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1229860, productionAspect, productionAspect#1229861, salesPlant, salesPlant#1229862, listing, listing#1229863) AS productPlant#1229864]
(426) Project
Arguments: [productPlant#1229864]
(427) Join
Arguments: LeftOuter, ((product#1229852 <=> productPlant#1229864.product.internalRefUUID) AND (plant#1229853 <=> productPlant#1229864.plant.internalRefUUID))
(428) Project
Arguments: [product#1229852, plant#1229853, orderDateTime#1229854, productPlant#1229864]
(429) SubqueryAlias
Arguments: wl
(430) LogicalRelation
Arguments: parquet, [systemId#1229865, internalUUID#1229866, id#1229867, displayId#1229868, name#1229869, category#1229870, companyCode#1229871, address#1229872, mainDistributionChain#1229873, mainPurchasingOrganization#1229874, validPurchasingOrganizations#1229875, productGroup#1229876], false
(431) Repartition
Arguments: 37, true
(432) Project
Arguments: [internalUUID#1229866, address#1229872.timeZone.code AS timezonecode#1229877]
(433) Join
Arguments: LeftOuter, (plant#1229853 <=> internalUUID#1229866)
(434) Project
Arguments: [product#1229852, plant#1229853, orderDateTime#1229854, productPlant#1229864, internalUUID#1229866, CASE WHEN isnotnull(timezonecode#1229877) THEN timezonecode#1229877 ELSE UTC END AS timezonecode#1229878]
(435) Project
Arguments: [product#1229852, plant#1229853, orderDateTime#1229854, productPlant#1229864, timezonecode#1229878]
(436) LogicalRelation
Arguments: parquet, [systemId#1229879, internalUUID#1229880, id#1229881, displayId#1229882, name#1229883, baseUnitOfMeasure#1229884, unitOfMeasures#1229885, unitOfMeasureConversions#1229886, productionAspect#1229887, salesAspect#1229888, procurementAspect#1229889, productGroup#1229890], false
(437) Repartition
Arguments: 37, true
(438) Join
Arguments: LeftOuter, (product#1229852 = internalUUID#1229880)
(439) Project
Arguments: [product#1229852, plant#1229853, orderDateTime#1229854, productPlant#1229864, timezonecode#1229878, systemId#1229879, internalUUID#1229880, id#1229881, displayId#1229882, name#1229883, baseUnitOfMeasure#1229884, unitOfMeasures#1229885, unitOfMeasureConversions#1229886, productionAspect#1229887, salesAspect#1229888, procurementAspect#1229889, productGroup#1229890, filter(unitOfMeasureConversions#1229886, lambdafunction((((lambda u#1225669.measurementUnit1.code = productPlant#1229864.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1225669.measurementUnit1.internalRefUUID = productPlant#1229864.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1229884.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1229884.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1229891]
(440) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1229891.quantityNumerator), true, [quantityNumerator#1229892]
(441) Project
Arguments: [product#1229852, plant#1229853, orderDateTime#1229854, productPlant#1229864, timezonecode#1229878, systemId#1229879, internalUUID#1229880, id#1229881, displayId#1229882, name#1229883, baseUnitOfMeasure#1229884, unitOfMeasures#1229885, unitOfMeasureConversions#1229886, productionAspect#1229887, salesAspect#1229888, procurementAspect#1229889, productGroup#1229890, filteredUnitOfMeasureConversions#1229891, quantityNumerator#1229892]
(442) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1229891.quantityDenominator), true, [quantityDenominator#1229893]
(443) Project
Arguments: [product#1229852, plant#1229853, orderDateTime#1229854, productPlant#1229864, timezonecode#1229878, systemId#1229879, internalUUID#1229880, id#1229881, displayId#1229882, name#1229883, baseUnitOfMeasure#1229884, unitOfMeasures#1229885, unitOfMeasureConversions#1229886, productionAspect#1229887, salesAspect#1229888, procurementAspect#1229889, productGroup#1229890, filteredUnitOfMeasureConversions#1229891, quantityNumerator#1229892, quantityDenominator#1229893]
(444) Project
Arguments: [product#1229852, plant#1229853, orderDateTime#1229854, productPlant#1229864, timezonecode#1229878, systemId#1229879, internalUUID#1229880, id#1229881, displayId#1229882, name#1229883, baseUnitOfMeasure#1229884, unitOfMeasures#1229885, unitOfMeasureConversions#1229886, productionAspect#1229887, salesAspect#1229888, procurementAspect#1229889, productGroup#1229890, filteredUnitOfMeasureConversions#1229891, quantityNumerator#1229892, quantityDenominator#1229893, (cast(quantityNumerator#1229892 as double) / cast(quantityDenominator#1229893 as double)) AS outboundUnit#1229894]
(445) Project
Arguments: [product#1229852, plant#1229853, orderDateTime#1229854, productPlant#1229864, timezonecode#1229878, systemId#1229879, internalUUID#1229880, id#1229881, displayId#1229882, name#1229883, baseUnitOfMeasure#1229884, unitOfMeasures#1229885, unitOfMeasureConversions#1229886, productionAspect#1229887, salesAspect#1229888, procurementAspect#1229889, productGroup#1229890, filteredUnitOfMeasureConversions#1229891, quantityNumerator#1229892, quantityDenominator#1229893, CASE WHEN (isnull(outboundUnit#1229894) OR (outboundUnit#1229894 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1229894 END AS outboundUnit#1229895]
(446) Project
Arguments: [product#1229852, plant#1229853, orderDateTime#1229854, productPlant#1229864, timezonecode#1229878, outboundUnit#1229895]
(447) LogicalRelation
Arguments: parquet, [systemId#1229896, internalUUID#1229897, product#1229898, plant#1229899, calculationDateTime#1229900, stockQuantities#1229901], false
(448) Repartition
Arguments: 37, true
(449) LogicalRelation
Arguments: parquet, [marketUnit#1229902, description#1229903, articleHierarchy#1229904, defaultCurrency#1229905, responsibilities#1229906, replenishmentTypes#1229907, distributionCenters#1229908, assignedArticleHierarchyNodes#1229909, minOrderQtySetting#1229910, listingCheck#1229911, odsSelection#1229912, demandProfiles#1229913, constraintProfiles#1229914, optimizationProfiles#1229915, orderGroupSplitProfiles#1229916, supplierMinimumProfiles#1229917, multipleRestrictionProfiles#1229918, preferredUomSource#1229919, handlingOfUnfulfilledDemands#1229920, negligibleQuantitiesThreshold#1229921, eventtype#1229922, minOrderQtySettingInternal#1229923], false
(450) Repartition
Arguments: 37, true
(451) Filter
Arguments: (marketUnit#1229902 <=> AUTO_MUV2)
(452) Project
Arguments: [marketUnit#1229902, description#1229903, articleHierarchy#1229904, defaultCurrency#1229905, responsibilities#1229906, replenishmentTypes#1229907, distributionCenters#1229908, assignedArticleHierarchyNodes#1229909, minOrderQtySetting#1229910, listingCheck#1229911, odsSelection#1229912, demandProfiles#1229913, constraintProfiles#1229914, optimizationProfiles#1229915, orderGroupSplitProfiles#1229916, supplierMinimumProfiles#1229917, multipleRestrictionProfiles#1229918, preferredUomSource#1229919, handlingOfUnfulfilledDemands#1229920, negligibleQuantitiesThreshold#1229921, eventtype#1229922, minOrderQtySettingInternal#1229923]
(453) Project
Arguments: [distributionCenters#1229908]
(454) Generate
Arguments: explode(distributionCenters#1229908), false, [distributionCenters#1229924]
(455) Project
Arguments: [distributionCenters#1229924]
(456) Generate
Arguments: explode(distributionCenters#1229924.storageLocations), false, [storageLocations#1229925]
(457) Project
Arguments: [distributionCenters#1229924.id AS plantId#1229926, distributionCenters#1229924.internalRefUUID AS plantUuid#1229927, storageLocations#1229925]
(458) Project
Arguments: [plantId#1229926, plantUuid#1229927, storageLocations#1229925.id AS storageLocId#1229928, storageLocations#1229925.internalRefUUID AS storageLocUuid#1229929]
(459) LogicalRelation
Arguments: parquet, [product#1229930, plant#1229931, orderDateTime#1229932, planningStartDateTime#1229933], false
(460) RepartitionByExpression
Arguments: [product#1229930, plant#1229931], 37
(461) Project
Arguments: [product#1229930, plant#1229931, orderDateTime#1229932]
(462) LogicalRelation
Arguments: parquet, [systemId#1229934, internalUUID#1229935, plant#1229936, product#1229937, blockedForReplenishmentStartingFrom#1229938, productionAspect#1229939, salesPlant#1229940, listing#1229941], false
(463) Repartition
Arguments: 37, true
(464) Project
Arguments: [systemId#1229934, internalUUID#1229935, plant#1229936, product#1229937, blockedForReplenishmentStartingFrom#1229938, productionAspect#1229939, salesPlant#1229940, listing#1229941, struct(systemId, systemId#1229934, internalUUID, internalUUID#1229935, plant, plant#1229936, product, product#1229937, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1229938, productionAspect, productionAspect#1229939, salesPlant, salesPlant#1229940, listing, listing#1229941) AS productPlant#1229942]
(465) Project
Arguments: [productPlant#1229942]
(466) Join
Arguments: LeftOuter, ((product#1229930 <=> productPlant#1229942.product.internalRefUUID) AND (plant#1229931 <=> productPlant#1229942.plant.internalRefUUID))
(467) Project
Arguments: [product#1229930, plant#1229931, orderDateTime#1229932, productPlant#1229942]
(468) SubqueryAlias
Arguments: wl
(469) LogicalRelation
Arguments: parquet, [systemId#1229943, internalUUID#1229944, id#1229945, displayId#1229946, name#1229947, category#1229948, companyCode#1229949, address#1229950, mainDistributionChain#1229951, mainPurchasingOrganization#1229952, validPurchasingOrganizations#1229953, productGroup#1229954], false
(470) Repartition
Arguments: 37, true
(471) Project
Arguments: [internalUUID#1229944, address#1229950.timeZone.code AS timezonecode#1229955]
(472) Join
Arguments: LeftOuter, (plant#1229931 <=> internalUUID#1229944)
(473) Project
Arguments: [product#1229930, plant#1229931, orderDateTime#1229932, productPlant#1229942, internalUUID#1229944, CASE WHEN isnotnull(timezonecode#1229955) THEN timezonecode#1229955 ELSE UTC END AS timezonecode#1229956]
(474) Project
Arguments: [product#1229930, plant#1229931, orderDateTime#1229932, productPlant#1229942, timezonecode#1229956]
(475) LogicalRelation
Arguments: parquet, [systemId#1229957, internalUUID#1229958, id#1229959, displayId#1229960, name#1229961, baseUnitOfMeasure#1229962, unitOfMeasures#1229963, unitOfMeasureConversions#1229964, productionAspect#1229965, salesAspect#1229966, procurementAspect#1229967, productGroup#1229968], false
(476) Repartition
Arguments: 37, true
(477) Join
Arguments: LeftOuter, (product#1229930 = internalUUID#1229958)
(478) Project
Arguments: [product#1229930, plant#1229931, orderDateTime#1229932, productPlant#1229942, timezonecode#1229956, systemId#1229957, internalUUID#1229958, id#1229959, displayId#1229960, name#1229961, baseUnitOfMeasure#1229962, unitOfMeasures#1229963, unitOfMeasureConversions#1229964, productionAspect#1229965, salesAspect#1229966, procurementAspect#1229967, productGroup#1229968, filter(unitOfMeasureConversions#1229964, lambdafunction((((lambda u#1225669.measurementUnit1.code = productPlant#1229942.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1225669.measurementUnit1.internalRefUUID = productPlant#1229942.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1229962.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1229962.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1229969]
(479) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1229969.quantityNumerator), true, [quantityNumerator#1229970]
(480) Project
Arguments: [product#1229930, plant#1229931, orderDateTime#1229932, productPlant#1229942, timezonecode#1229956, systemId#1229957, internalUUID#1229958, id#1229959, displayId#1229960, name#1229961, baseUnitOfMeasure#1229962, unitOfMeasures#1229963, unitOfMeasureConversions#1229964, productionAspect#1229965, salesAspect#1229966, procurementAspect#1229967, productGroup#1229968, filteredUnitOfMeasureConversions#1229969, quantityNumerator#1229970]
(481) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1229969.quantityDenominator), true, [quantityDenominator#1229971]
(482) Project
Arguments: [product#1229930, plant#1229931, orderDateTime#1229932, productPlant#1229942, timezonecode#1229956, systemId#1229957, internalUUID#1229958, id#1229959, displayId#1229960, name#1229961, baseUnitOfMeasure#1229962, unitOfMeasures#1229963, unitOfMeasureConversions#1229964, productionAspect#1229965, salesAspect#1229966, procurementAspect#1229967, productGroup#1229968, filteredUnitOfMeasureConversions#1229969, quantityNumerator#1229970, quantityDenominator#1229971]
(483) Project
Arguments: [product#1229930, plant#1229931, orderDateTime#1229932, productPlant#1229942, timezonecode#1229956, systemId#1229957, internalUUID#1229958, id#1229959, displayId#1229960, name#1229961, baseUnitOfMeasure#1229962, unitOfMeasures#1229963, unitOfMeasureConversions#1229964, productionAspect#1229965, salesAspect#1229966, procurementAspect#1229967, productGroup#1229968, filteredUnitOfMeasureConversions#1229969, quantityNumerator#1229970, quantityDenominator#1229971, (cast(quantityNumerator#1229970 as double) / cast(quantityDenominator#1229971 as double)) AS outboundUnit#1229972]
(484) Project
Arguments: [product#1229930, plant#1229931, orderDateTime#1229932, productPlant#1229942, timezonecode#1229956, systemId#1229957, internalUUID#1229958, id#1229959, displayId#1229960, name#1229961, baseUnitOfMeasure#1229962, unitOfMeasures#1229963, unitOfMeasureConversions#1229964, productionAspect#1229965, salesAspect#1229966, procurementAspect#1229967, productGroup#1229968, filteredUnitOfMeasureConversions#1229969, quantityNumerator#1229970, quantityDenominator#1229971, CASE WHEN (isnull(outboundUnit#1229972) OR (outboundUnit#1229972 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1229972 END AS outboundUnit#1229973]
(485) Project
Arguments: [product#1229930, plant#1229931, orderDateTime#1229932, productPlant#1229942, timezonecode#1229956, outboundUnit#1229973]
(486) Project
Arguments: [plant#1229931]
(487) Deduplicate
Arguments: [plant#1229931]
(488) Join
Arguments: Inner, (plantUuid#1229927 = plant#1229931)
(489) Project
Arguments: [plantId#1229926, plantUuid#1229927, storageLocId#1229928, storageLocUuid#1229929]
(490) Join
Arguments: Inner, (plant#1229899.internalRefUUID <=> plantUuid#1229927)
(491) Generate
Arguments: explode(filter(stockQuantities#1229901, lambdafunction(((lambda x#1225727.storageLocation.internalRefUuid = storageLocUuid#1229929) AND (lambda x#1225727.storageLocation.Id = storageLocId#1229928)), lambda x#1225727, false))), false, [stockQuantity#1229974]
(492) Project
Arguments: [systemId#1229896, internalUUID#1229897, product#1229898, plant#1229899, calculationDateTime#1229900, stockQuantities#1229901, plantId#1229926, plantUuid#1229927, storageLocId#1229928, storageLocUuid#1229929, stockQuantity#1229974]
(493) Aggregate
Arguments: [plantUuid#1229927, internalUUID#1229897, plant#1229899, product#1229898, systemId#1229896], [plantUuid#1229927, internalUUID#1229897, plant#1229899, product#1229898, systemId#1229896, first(calculationDateTime#1229900, false) AS calculationDateTime#1229975, collect_list(stockQuantity#1229974, 0, 0) AS stockQuantities#1229976]
(494) Project
Arguments: [systemId#1229896, internalUUID#1229897, product#1229898, plant#1229899, calculationDateTime#1229975, stockQuantities#1229976]
(495) Generate
Arguments: explode(stockQuantities#1229976), false, [stockQuantity#1229977]
(496) Project
Arguments: [systemId#1229896, internalUUID#1229897, product#1229898, plant#1229899, calculationDateTime#1229975, stockQuantities#1229976, stockQuantity#1229977]
(497) Project
Arguments: [plant#1229899.id AS plant#1229978, plant#1229899.internalRefUUID AS plantUuid#1229979, product#1229898.id AS product#1229980, product#1229898.internalRefUUID AS productUuid#1229981, calculationDateTime#1229975, stockQuantity#1229977.storagelocation.id AS storageLocId#1229982, stockQuantity#1229977.storagelocation.internalRefUUID AS storageLocUuid#1229983, stockQuantity#1229977.quantity.measure AS quantity#1229984, stockQuantity#1229977.specialStockIndicator.code AS specialStockIndicator#1229985, stockQuantity#1229977.stockType.code AS stockType#1229986]
(498) Filter
Arguments: ((specialStockIndicator#1229985 = ) AND (stockType#1229986 = 01))
(499) LogicalRelation
Arguments: parquet, [product#1229987, plant#1229988, orderDateTime#1229989, planningStartDateTime#1229990], false
(500) RepartitionByExpression
Arguments: [product#1229987, plant#1229988], 37
(501) Project
Arguments: [product#1229987, plant#1229988, orderDateTime#1229989]
(502) LogicalRelation
Arguments: parquet, [systemId#1229991, internalUUID#1229992, plant#1229993, product#1229994, blockedForReplenishmentStartingFrom#1229995, productionAspect#1229996, salesPlant#1229997, listing#1229998], false
(503) Repartition
Arguments: 37, true
(504) Project
Arguments: [systemId#1229991, internalUUID#1229992, plant#1229993, product#1229994, blockedForReplenishmentStartingFrom#1229995, productionAspect#1229996, salesPlant#1229997, listing#1229998, struct(systemId, systemId#1229991, internalUUID, internalUUID#1229992, plant, plant#1229993, product, product#1229994, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1229995, productionAspect, productionAspect#1229996, salesPlant, salesPlant#1229997, listing, listing#1229998) AS productPlant#1229999]
(505) Project
Arguments: [productPlant#1229999]
(506) Join
Arguments: LeftOuter, ((product#1229987 <=> productPlant#1229999.product.internalRefUUID) AND (plant#1229988 <=> productPlant#1229999.plant.internalRefUUID))
(507) Project
Arguments: [product#1229987, plant#1229988, orderDateTime#1229989, productPlant#1229999]
(508) SubqueryAlias
Arguments: wl
(509) LogicalRelation
Arguments: parquet, [systemId#1230000, internalUUID#1230001, id#1230002, displayId#1230003, name#1230004, category#1230005, companyCode#1230006, address#1230007, mainDistributionChain#1230008, mainPurchasingOrganization#1230009, validPurchasingOrganizations#1230010, productGroup#1230011], false
(510) Repartition
Arguments: 37, true
(511) Project
Arguments: [internalUUID#1230001, address#1230007.timeZone.code AS timezonecode#1230012]
(512) Join
Arguments: LeftOuter, (plant#1229988 <=> internalUUID#1230001)
(513) Project
Arguments: [product#1229987, plant#1229988, orderDateTime#1229989, productPlant#1229999, internalUUID#1230001, CASE WHEN isnotnull(timezonecode#1230012) THEN timezonecode#1230012 ELSE UTC END AS timezonecode#1230013]
(514) Project
Arguments: [product#1229987, plant#1229988, orderDateTime#1229989, productPlant#1229999, timezonecode#1230013]
(515) LogicalRelation
Arguments: parquet, [systemId#1230014, internalUUID#1230015, id#1230016, displayId#1230017, name#1230018, baseUnitOfMeasure#1230019, unitOfMeasures#1230020, unitOfMeasureConversions#1230021, productionAspect#1230022, salesAspect#1230023, procurementAspect#1230024, productGroup#1230025], false
(516) Repartition
Arguments: 37, true
(517) Join
Arguments: LeftOuter, (product#1229987 = internalUUID#1230015)
(518) Project
Arguments: [product#1229987, plant#1229988, orderDateTime#1229989, productPlant#1229999, timezonecode#1230013, systemId#1230014, internalUUID#1230015, id#1230016, displayId#1230017, name#1230018, baseUnitOfMeasure#1230019, unitOfMeasures#1230020, unitOfMeasureConversions#1230021, productionAspect#1230022, salesAspect#1230023, procurementAspect#1230024, productGroup#1230025, filter(unitOfMeasureConversions#1230021, lambdafunction((((lambda u#1225669.measurementUnit1.code = productPlant#1229999.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1225669.measurementUnit1.internalRefUUID = productPlant#1229999.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1230019.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1230019.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1230026]
(519) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1230026.quantityNumerator), true, [quantityNumerator#1230027]
(520) Project
Arguments: [product#1229987, plant#1229988, orderDateTime#1229989, productPlant#1229999, timezonecode#1230013, systemId#1230014, internalUUID#1230015, id#1230016, displayId#1230017, name#1230018, baseUnitOfMeasure#1230019, unitOfMeasures#1230020, unitOfMeasureConversions#1230021, productionAspect#1230022, salesAspect#1230023, procurementAspect#1230024, productGroup#1230025, filteredUnitOfMeasureConversions#1230026, quantityNumerator#1230027]
(521) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1230026.quantityDenominator), true, [quantityDenominator#1230028]
(522) Project
Arguments: [product#1229987, plant#1229988, orderDateTime#1229989, productPlant#1229999, timezonecode#1230013, systemId#1230014, internalUUID#1230015, id#1230016, displayId#1230017, name#1230018, baseUnitOfMeasure#1230019, unitOfMeasures#1230020, unitOfMeasureConversions#1230021, productionAspect#1230022, salesAspect#1230023, procurementAspect#1230024, productGroup#1230025, filteredUnitOfMeasureConversions#1230026, quantityNumerator#1230027, quantityDenominator#1230028]
(523) Project
Arguments: [product#1229987, plant#1229988, orderDateTime#1229989, productPlant#1229999, timezonecode#1230013, systemId#1230014, internalUUID#1230015, id#1230016, displayId#1230017, name#1230018, baseUnitOfMeasure#1230019, unitOfMeasures#1230020, unitOfMeasureConversions#1230021, productionAspect#1230022, salesAspect#1230023, procurementAspect#1230024, productGroup#1230025, filteredUnitOfMeasureConversions#1230026, quantityNumerator#1230027, quantityDenominator#1230028, (cast(quantityNumerator#1230027 as double) / cast(quantityDenominator#1230028 as double)) AS outboundUnit#1230029]
(524) Project
Arguments: [product#1229987, plant#1229988, orderDateTime#1229989, productPlant#1229999, timezonecode#1230013, systemId#1230014, internalUUID#1230015, id#1230016, displayId#1230017, name#1230018, baseUnitOfMeasure#1230019, unitOfMeasures#1230020, unitOfMeasureConversions#1230021, productionAspect#1230022, salesAspect#1230023, procurementAspect#1230024, productGroup#1230025, filteredUnitOfMeasureConversions#1230026, quantityNumerator#1230027, quantityDenominator#1230028, CASE WHEN (isnull(outboundUnit#1230029) OR (outboundUnit#1230029 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1230029 END AS outboundUnit#1230030]
(525) Project
Arguments: [product#1229987, plant#1229988, orderDateTime#1229989, productPlant#1229999, timezonecode#1230013, outboundUnit#1230030]
(526) Join
Arguments: Inner, ((plantUuid#1229979 = plant#1229988) AND (productUuid#1229981 = product#1229987))
(527) Filter
Arguments: (calculationDateTime#1229975 <= orderDateTime#1229989)
(528) Project
Arguments: [plantUuid#1229979 AS plant#1230031, productUuid#1229981 AS product#1230032, storageLocId#1229982, calculationDateTime#1229975, quantity#1229984]
(529) LogicalRelation
Arguments: parquet, [systemId#1230033, internalUUID#1230034, product#1230035, plant#1230036, calculationDateTime#1230037, stockQuantities#1230038], false
(530) Repartition
Arguments: 37, true
(531) LogicalRelation
Arguments: parquet, [marketUnit#1230039, description#1230040, articleHierarchy#1230041, defaultCurrency#1230042, responsibilities#1230043, replenishmentTypes#1230044, distributionCenters#1230045, assignedArticleHierarchyNodes#1230046, minOrderQtySetting#1230047, listingCheck#1230048, odsSelection#1230049, demandProfiles#1230050, constraintProfiles#1230051, optimizationProfiles#1230052, orderGroupSplitProfiles#1230053, supplierMinimumProfiles#1230054, multipleRestrictionProfiles#1230055, preferredUomSource#1230056, handlingOfUnfulfilledDemands#1230057, negligibleQuantitiesThreshold#1230058, eventtype#1230059, minOrderQtySettingInternal#1230060], false
(532) Repartition
Arguments: 37, true
(533) Filter
Arguments: (marketUnit#1230039 <=> AUTO_MUV2)
(534) Project
Arguments: [marketUnit#1230039, description#1230040, articleHierarchy#1230041, defaultCurrency#1230042, responsibilities#1230043, replenishmentTypes#1230044, distributionCenters#1230045, assignedArticleHierarchyNodes#1230046, minOrderQtySetting#1230047, listingCheck#1230048, odsSelection#1230049, demandProfiles#1230050, constraintProfiles#1230051, optimizationProfiles#1230052, orderGroupSplitProfiles#1230053, supplierMinimumProfiles#1230054, multipleRestrictionProfiles#1230055, preferredUomSource#1230056, handlingOfUnfulfilledDemands#1230057, negligibleQuantitiesThreshold#1230058, eventtype#1230059, minOrderQtySettingInternal#1230060]
(535) Project
Arguments: [distributionCenters#1230045]
(536) Generate
Arguments: explode(distributionCenters#1230045), false, [distributionCenters#1230061]
(537) Project
Arguments: [distributionCenters#1230061]
(538) Generate
Arguments: explode(distributionCenters#1230061.storageLocations), false, [storageLocations#1230062]
(539) Project
Arguments: [distributionCenters#1230061.id AS plantId#1230063, distributionCenters#1230061.internalRefUUID AS plantUuid#1230064, storageLocations#1230062]
(540) Project
Arguments: [plantId#1230063, plantUuid#1230064, storageLocations#1230062.id AS storageLocId#1230065, storageLocations#1230062.internalRefUUID AS storageLocUuid#1230066]
(541) LogicalRelation
Arguments: parquet, [product#1230067, plant#1230068, orderDateTime#1230069, planningStartDateTime#1230070], false
(542) RepartitionByExpression
Arguments: [product#1230067, plant#1230068], 37
(543) Project
Arguments: [product#1230067, plant#1230068, orderDateTime#1230069]
(544) LogicalRelation
Arguments: parquet, [systemId#1230071, internalUUID#1230072, plant#1230073, product#1230074, blockedForReplenishmentStartingFrom#1230075, productionAspect#1230076, salesPlant#1230077, listing#1230078], false
(545) Repartition
Arguments: 37, true
(546) Project
Arguments: [systemId#1230071, internalUUID#1230072, plant#1230073, product#1230074, blockedForReplenishmentStartingFrom#1230075, productionAspect#1230076, salesPlant#1230077, listing#1230078, struct(systemId, systemId#1230071, internalUUID, internalUUID#1230072, plant, plant#1230073, product, product#1230074, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1230075, productionAspect, productionAspect#1230076, salesPlant, salesPlant#1230077, listing, listing#1230078) AS productPlant#1230079]
(547) Project
Arguments: [productPlant#1230079]
(548) Join
Arguments: LeftOuter, ((product#1230067 <=> productPlant#1230079.product.internalRefUUID) AND (plant#1230068 <=> productPlant#1230079.plant.internalRefUUID))
(549) Project
Arguments: [product#1230067, plant#1230068, orderDateTime#1230069, productPlant#1230079]
(550) SubqueryAlias
Arguments: wl
(551) LogicalRelation
Arguments: parquet, [systemId#1230080, internalUUID#1230081, id#1230082, displayId#1230083, name#1230084, category#1230085, companyCode#1230086, address#1230087, mainDistributionChain#1230088, mainPurchasingOrganization#1230089, validPurchasingOrganizations#1230090, productGroup#1230091], false
(552) Repartition
Arguments: 37, true
(553) Project
Arguments: [internalUUID#1230081, address#1230087.timeZone.code AS timezonecode#1230092]
(554) Join
Arguments: LeftOuter, (plant#1230068 <=> internalUUID#1230081)
(555) Project
Arguments: [product#1230067, plant#1230068, orderDateTime#1230069, productPlant#1230079, internalUUID#1230081, CASE WHEN isnotnull(timezonecode#1230092) THEN timezonecode#1230092 ELSE UTC END AS timezonecode#1230093]
(556) Project
Arguments: [product#1230067, plant#1230068, orderDateTime#1230069, productPlant#1230079, timezonecode#1230093]
(557) LogicalRelation
Arguments: parquet, [systemId#1230094, internalUUID#1230095, id#1230096, displayId#1230097, name#1230098, baseUnitOfMeasure#1230099, unitOfMeasures#1230100, unitOfMeasureConversions#1230101, productionAspect#1230102, salesAspect#1230103, procurementAspect#1230104, productGroup#1230105], false
(558) Repartition
Arguments: 37, true
(559) Join
Arguments: LeftOuter, (product#1230067 = internalUUID#1230095)
(560) Project
Arguments: [product#1230067, plant#1230068, orderDateTime#1230069, productPlant#1230079, timezonecode#1230093, systemId#1230094, internalUUID#1230095, id#1230096, displayId#1230097, name#1230098, baseUnitOfMeasure#1230099, unitOfMeasures#1230100, unitOfMeasureConversions#1230101, productionAspect#1230102, salesAspect#1230103, procurementAspect#1230104, productGroup#1230105, filter(unitOfMeasureConversions#1230101, lambdafunction((((lambda u#1225669.measurementUnit1.code = productPlant#1230079.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1225669.measurementUnit1.internalRefUUID = productPlant#1230079.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1230099.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1230099.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1230106]
(561) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1230106.quantityNumerator), true, [quantityNumerator#1230107]
(562) Project
Arguments: [product#1230067, plant#1230068, orderDateTime#1230069, productPlant#1230079, timezonecode#1230093, systemId#1230094, internalUUID#1230095, id#1230096, displayId#1230097, name#1230098, baseUnitOfMeasure#1230099, unitOfMeasures#1230100, unitOfMeasureConversions#1230101, productionAspect#1230102, salesAspect#1230103, procurementAspect#1230104, productGroup#1230105, filteredUnitOfMeasureConversions#1230106, quantityNumerator#1230107]
(563) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1230106.quantityDenominator), true, [quantityDenominator#1230108]
(564) Project
Arguments: [product#1230067, plant#1230068, orderDateTime#1230069, productPlant#1230079, timezonecode#1230093, systemId#1230094, internalUUID#1230095, id#1230096, displayId#1230097, name#1230098, baseUnitOfMeasure#1230099, unitOfMeasures#1230100, unitOfMeasureConversions#1230101, productionAspect#1230102, salesAspect#1230103, procurementAspect#1230104, productGroup#1230105, filteredUnitOfMeasureConversions#1230106, quantityNumerator#1230107, quantityDenominator#1230108]
(565) Project
Arguments: [product#1230067, plant#1230068, orderDateTime#1230069, productPlant#1230079, timezonecode#1230093, systemId#1230094, internalUUID#1230095, id#1230096, displayId#1230097, name#1230098, baseUnitOfMeasure#1230099, unitOfMeasures#1230100, unitOfMeasureConversions#1230101, productionAspect#1230102, salesAspect#1230103, procurementAspect#1230104, productGroup#1230105, filteredUnitOfMeasureConversions#1230106, quantityNumerator#1230107, quantityDenominator#1230108, (cast(quantityNumerator#1230107 as double) / cast(quantityDenominator#1230108 as double)) AS outboundUnit#1230109]
(566) Project
Arguments: [product#1230067, plant#1230068, orderDateTime#1230069, productPlant#1230079, timezonecode#1230093, systemId#1230094, internalUUID#1230095, id#1230096, displayId#1230097, name#1230098, baseUnitOfMeasure#1230099, unitOfMeasures#1230100, unitOfMeasureConversions#1230101, productionAspect#1230102, salesAspect#1230103, procurementAspect#1230104, productGroup#1230105, filteredUnitOfMeasureConversions#1230106, quantityNumerator#1230107, quantityDenominator#1230108, CASE WHEN (isnull(outboundUnit#1230109) OR (outboundUnit#1230109 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1230109 END AS outboundUnit#1230110]
(567) Project
Arguments: [product#1230067, plant#1230068, orderDateTime#1230069, productPlant#1230079, timezonecode#1230093, outboundUnit#1230110]
(568) Project
Arguments: [plant#1230068]
(569) Deduplicate
Arguments: [plant#1230068]
(570) Join
Arguments: Inner, (plantUuid#1230064 = plant#1230068)
(571) Project
Arguments: [plantId#1230063, plantUuid#1230064, storageLocId#1230065, storageLocUuid#1230066]
(572) Join
Arguments: Inner, (plant#1230036.internalRefUUID <=> plantUuid#1230064)
(573) Generate
Arguments: explode(filter(stockQuantities#1230038, lambdafunction(((lambda x#1225727.storageLocation.internalRefUuid = storageLocUuid#1230066) AND (lambda x#1225727.storageLocation.Id = storageLocId#1230065)), lambda x#1225727, false))), false, [stockQuantity#1230111]
(574) Project
Arguments: [systemId#1230033, internalUUID#1230034, product#1230035, plant#1230036, calculationDateTime#1230037, stockQuantities#1230038, plantId#1230063, plantUuid#1230064, storageLocId#1230065, storageLocUuid#1230066, stockQuantity#1230111]
(575) Aggregate
Arguments: [plantUuid#1230064, internalUUID#1230034, plant#1230036, product#1230035, systemId#1230033], [plantUuid#1230064, internalUUID#1230034, plant#1230036, product#1230035, systemId#1230033, first(calculationDateTime#1230037, false) AS calculationDateTime#1230112, collect_list(stockQuantity#1230111, 0, 0) AS stockQuantities#1230113]
(576) Project
Arguments: [systemId#1230033, internalUUID#1230034, product#1230035, plant#1230036, calculationDateTime#1230112, stockQuantities#1230113]
(577) Generate
Arguments: explode(stockQuantities#1230113), false, [stockQuantity#1230114]
(578) Project
Arguments: [systemId#1230033, internalUUID#1230034, product#1230035, plant#1230036, calculationDateTime#1230112, stockQuantities#1230113, stockQuantity#1230114]
(579) Project
Arguments: [plant#1230036.id AS plant#1230115, plant#1230036.internalRefUUID AS plantUuid#1230116, product#1230035.id AS product#1230117, product#1230035.internalRefUUID AS productUuid#1230118, calculationDateTime#1230112, stockQuantity#1230114.storagelocation.id AS storageLocId#1230119, stockQuantity#1230114.storagelocation.internalRefUUID AS storageLocUuid#1230120, stockQuantity#1230114.quantity.measure AS quantity#1230121, stockQuantity#1230114.specialStockIndicator.code AS specialStockIndicator#1230122, stockQuantity#1230114.stockType.code AS stockType#1230123]
(580) Filter
Arguments: ((specialStockIndicator#1230122 = ) AND (stockType#1230123 = 01))
(581) LogicalRelation
Arguments: parquet, [product#1230124, plant#1230125, orderDateTime#1230126, planningStartDateTime#1230127], false
(582) RepartitionByExpression
Arguments: [product#1230124, plant#1230125], 37
(583) Project
Arguments: [product#1230124, plant#1230125, orderDateTime#1230126]
(584) LogicalRelation
Arguments: parquet, [systemId#1230128, internalUUID#1230129, plant#1230130, product#1230131, blockedForReplenishmentStartingFrom#1230132, productionAspect#1230133, salesPlant#1230134, listing#1230135], false
(585) Repartition
Arguments: 37, true
(586) Project
Arguments: [systemId#1230128, internalUUID#1230129, plant#1230130, product#1230131, blockedForReplenishmentStartingFrom#1230132, productionAspect#1230133, salesPlant#1230134, listing#1230135, struct(systemId, systemId#1230128, internalUUID, internalUUID#1230129, plant, plant#1230130, product, product#1230131, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1230132, productionAspect, productionAspect#1230133, salesPlant, salesPlant#1230134, listing, listing#1230135) AS productPlant#1230136]
(587) Project
Arguments: [productPlant#1230136]
(588) Join
Arguments: LeftOuter, ((product#1230124 <=> productPlant#1230136.product.internalRefUUID) AND (plant#1230125 <=> productPlant#1230136.plant.internalRefUUID))
(589) Project
Arguments: [product#1230124, plant#1230125, orderDateTime#1230126, productPlant#1230136]
(590) SubqueryAlias
Arguments: wl
(591) LogicalRelation
Arguments: parquet, [systemId#1230137, internalUUID#1230138, id#1230139, displayId#1230140, name#1230141, category#1230142, companyCode#1230143, address#1230144, mainDistributionChain#1230145, mainPurchasingOrganization#1230146, validPurchasingOrganizations#1230147, productGroup#1230148], false
(592) Repartition
Arguments: 37, true
(593) Project
Arguments: [internalUUID#1230138, address#1230144.timeZone.code AS timezonecode#1230149]
(594) Join
Arguments: LeftOuter, (plant#1230125 <=> internalUUID#1230138)
(595) Project
Arguments: [product#1230124, plant#1230125, orderDateTime#1230126, productPlant#1230136, internalUUID#1230138, CASE WHEN isnotnull(timezonecode#1230149) THEN timezonecode#1230149 ELSE UTC END AS timezonecode#1230150]
(596) Project
Arguments: [product#1230124, plant#1230125, orderDateTime#1230126, productPlant#1230136, timezonecode#1230150]
(597) LogicalRelation
Arguments: parquet, [systemId#1230151, internalUUID#1230152, id#1230153, displayId#1230154, name#1230155, baseUnitOfMeasure#1230156, unitOfMeasures#1230157, unitOfMeasureConversions#1230158, productionAspect#1230159, salesAspect#1230160, procurementAspect#1230161, productGroup#1230162], false
(598) Repartition
Arguments: 37, true
(599) Join
Arguments: LeftOuter, (product#1230124 = internalUUID#1230152)
(600) Project
Arguments: [product#1230124, plant#1230125, orderDateTime#1230126, productPlant#1230136, timezonecode#1230150, systemId#1230151, internalUUID#1230152, id#1230153, displayId#1230154, name#1230155, baseUnitOfMeasure#1230156, unitOfMeasures#1230157, unitOfMeasureConversions#1230158, productionAspect#1230159, salesAspect#1230160, procurementAspect#1230161, productGroup#1230162, filter(unitOfMeasureConversions#1230158, lambdafunction((((lambda u#1225669.measurementUnit1.code = productPlant#1230136.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1225669.measurementUnit1.internalRefUUID = productPlant#1230136.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1230156.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1230156.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1230163]
(601) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1230163.quantityNumerator), true, [quantityNumerator#1230164]
(602) Project
Arguments: [product#1230124, plant#1230125, orderDateTime#1230126, productPlant#1230136, timezonecode#1230150, systemId#1230151, internalUUID#1230152, id#1230153, displayId#1230154, name#1230155, baseUnitOfMeasure#1230156, unitOfMeasures#1230157, unitOfMeasureConversions#1230158, productionAspect#1230159, salesAspect#1230160, procurementAspect#1230161, productGroup#1230162, filteredUnitOfMeasureConversions#1230163, quantityNumerator#1230164]
(603) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1230163.quantityDenominator), true, [quantityDenominator#1230165]
(604) Project
Arguments: [product#1230124, plant#1230125, orderDateTime#1230126, productPlant#1230136, timezonecode#1230150, systemId#1230151, internalUUID#1230152, id#1230153, displayId#1230154, name#1230155, baseUnitOfMeasure#1230156, unitOfMeasures#1230157, unitOfMeasureConversions#1230158, productionAspect#1230159, salesAspect#1230160, procurementAspect#1230161, productGroup#1230162, filteredUnitOfMeasureConversions#1230163, quantityNumerator#1230164, quantityDenominator#1230165]
(605) Project
Arguments: [product#1230124, plant#1230125, orderDateTime#1230126, productPlant#1230136, timezonecode#1230150, systemId#1230151, internalUUID#1230152, id#1230153, displayId#1230154, name#1230155, baseUnitOfMeasure#1230156, unitOfMeasures#1230157, unitOfMeasureConversions#1230158, productionAspect#1230159, salesAspect#1230160, procurementAspect#1230161, productGroup#1230162, filteredUnitOfMeasureConversions#1230163, quantityNumerator#1230164, quantityDenominator#1230165, (cast(quantityNumerator#1230164 as double) / cast(quantityDenominator#1230165 as double)) AS outboundUnit#1230166]
(606) Project
Arguments: [product#1230124, plant#1230125, orderDateTime#1230126, productPlant#1230136, timezonecode#1230150, systemId#1230151, internalUUID#1230152, id#1230153, displayId#1230154, name#1230155, baseUnitOfMeasure#1230156, unitOfMeasures#1230157, unitOfMeasureConversions#1230158, productionAspect#1230159, salesAspect#1230160, procurementAspect#1230161, productGroup#1230162, filteredUnitOfMeasureConversions#1230163, quantityNumerator#1230164, quantityDenominator#1230165, CASE WHEN (isnull(outboundUnit#1230166) OR (outboundUnit#1230166 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1230166 END AS outboundUnit#1230167]
(607) Project
Arguments: [product#1230124, plant#1230125, orderDateTime#1230126, productPlant#1230136, timezonecode#1230150, outboundUnit#1230167]
(608) Join
Arguments: Inner, ((plantUuid#1230116 = plant#1230125) AND (productUuid#1230118 = product#1230124))
(609) Filter
Arguments: (calculationDateTime#1230112 <= orderDateTime#1230126)
(610) Project
Arguments: [plantUuid#1230116 AS plant#1230168, productUuid#1230118 AS product#1230169, storageLocId#1230119, calculationDateTime#1230112, quantity#1230121]
(611) Aggregate
Arguments: [plant#1230168, product#1230169, storageLocId#1230119], [plant#1230168, product#1230169, storageLocId#1230119, max(calculationDateTime#1230112) AS max_calc_datetime#1230170]
(612) Join
Arguments: Inner, ((((plant#1230031 <=> plant#1230168) AND (product#1230032 <=> product#1230169)) AND (storageLocId#1229982 <=> storageLocId#1230119)) AND (calculationDateTime#1229975 <=> max_calc_datetime#1230170))
(613) Project
Arguments: [plant#1230031, product#1230032, storageLocId#1229982, calculationDateTime#1229975, quantity#1229984]
(614) Aggregate
Arguments: [product#1230032, plant#1230031], [product#1230032, plant#1230031, sum(quantity#1229984) AS quantitySum#1230171, min(calculationDateTime#1229975) AS minCalculationDateTime#1230172]
(615) Project
Arguments: [product#1230032, plant#1230031, quantitySum#1230171, minCalculationDateTime#1230172, round(quantitySum#1230171, 0) AS roundedQuantitySum#1230173]
(616) Join
Arguments: LeftOuter, ((plant#1229853 = plant#1230031) AND (product#1229852 = product#1230032))
(617) Project
Arguments: [product#1229852, plant#1229853, orderDateTime#1229854, productPlant#1229864, timezonecode#1229878, outboundUnit#1229895, roundedQuantitySum#1230173, minCalculationDateTime#1230172]
(618) Project
Arguments: [product#1229852, plant#1229853, orderDateTime#1229854, productPlant#1229864, timezonecode#1229878, outboundUnit#1229895, roundedQuantitySum#1230173, minCalculationDateTime#1230172, CASE WHEN isnotnull(minCalculationDateTime#1230172) THEN minCalculationDateTime#1230172 ELSE orderDateTime#1229854 END AS stockDatetime#1230174]
(619) Project
Arguments: [product#1229852, plant#1229853, orderDateTime#1229854, productPlant#1229864, timezonecode#1229878, outboundUnit#1229895, roundedQuantitySum#1230173, minCalculationDateTime#1230172, stockDatetime#1230174, CASE WHEN isnotnull(roundedQuantitySum#1230173) THEN array(roundedQuantitySum#1230173) ELSE array(0.0) END AS stockBatchQuantities#1230175]
(620) Project
Arguments: [product#1229852, plant#1229853, orderDateTime#1229854, productPlant#1229864, timezonecode#1229878, outboundUnit#1229895, roundedQuantitySum#1230173, minCalculationDateTime#1230172, stockDatetime#1230174, stockBatchQuantities#1230175, array(2199-01-01 00:00:00) AS stockBatchShelfLifeEndDatetimes#1230176]
(621) Project
Arguments: [product#1229852, plant#1229853, orderDateTime#1229854, productPlant#1229864, timezonecode#1229878, outboundUnit#1229895, roundedQuantitySum#1230173, stockDatetime#1230174, stockBatchQuantities#1230175, stockBatchShelfLifeEndDatetimes#1230176]
(622) Project
Arguments: [product#1229852, plant#1229853, orderDateTime#1229854, productPlant#1229864, timezonecode#1229878, outboundUnit#1229895, stockDatetime#1230174, stockBatchQuantities#1230175, stockBatchShelfLifeEndDatetimes#1230176]
(623) LogicalRelation
Arguments: parquet, [product#1230177, plant#1230178, orderDateTime#1230179, planningStartDateTime#1230180], false
(624) RepartitionByExpression
Arguments: [product#1230177, plant#1230178], 37
(625) Project
Arguments: [product#1230177, plant#1230178, orderDateTime#1230179]
(626) LogicalRelation
Arguments: parquet, [systemId#1230181, internalUUID#1230182, plant#1230183, product#1230184, blockedForReplenishmentStartingFrom#1230185, productionAspect#1230186, salesPlant#1230187, listing#1230188], false
(627) Repartition
Arguments: 37, true
(628) Project
Arguments: [systemId#1230181, internalUUID#1230182, plant#1230183, product#1230184, blockedForReplenishmentStartingFrom#1230185, productionAspect#1230186, salesPlant#1230187, listing#1230188, struct(systemId, systemId#1230181, internalUUID, internalUUID#1230182, plant, plant#1230183, product, product#1230184, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1230185, productionAspect, productionAspect#1230186, salesPlant, salesPlant#1230187, listing, listing#1230188) AS productPlant#1230189]
(629) Project
Arguments: [productPlant#1230189]
(630) Join
Arguments: LeftOuter, ((product#1230177 <=> productPlant#1230189.product.internalRefUUID) AND (plant#1230178 <=> productPlant#1230189.plant.internalRefUUID))
(631) Project
Arguments: [product#1230177, plant#1230178, orderDateTime#1230179, productPlant#1230189]
(632) SubqueryAlias
Arguments: wl
(633) LogicalRelation
Arguments: parquet, [systemId#1230190, internalUUID#1230191, id#1230192, displayId#1230193, name#1230194, category#1230195, companyCode#1230196, address#1230197, mainDistributionChain#1230198, mainPurchasingOrganization#1230199, validPurchasingOrganizations#1230200, productGroup#1230201], false
(634) Repartition
Arguments: 37, true
(635) Project
Arguments: [internalUUID#1230191, address#1230197.timeZone.code AS timezonecode#1230202]
(636) Join
Arguments: LeftOuter, (plant#1230178 <=> internalUUID#1230191)
(637) Project
Arguments: [product#1230177, plant#1230178, orderDateTime#1230179, productPlant#1230189, internalUUID#1230191, CASE WHEN isnotnull(timezonecode#1230202) THEN timezonecode#1230202 ELSE UTC END AS timezonecode#1230203]
(638) Project
Arguments: [product#1230177, plant#1230178, orderDateTime#1230179, productPlant#1230189, timezonecode#1230203]
(639) LogicalRelation
Arguments: parquet, [systemId#1230204, internalUUID#1230205, id#1230206, displayId#1230207, name#1230208, baseUnitOfMeasure#1230209, unitOfMeasures#1230210, unitOfMeasureConversions#1230211, productionAspect#1230212, salesAspect#1230213, procurementAspect#1230214, productGroup#1230215], false
(640) Repartition
Arguments: 37, true
(641) Join
Arguments: LeftOuter, (product#1230177 = internalUUID#1230205)
(642) Project
Arguments: [product#1230177, plant#1230178, orderDateTime#1230179, productPlant#1230189, timezonecode#1230203, systemId#1230204, internalUUID#1230205, id#1230206, displayId#1230207, name#1230208, baseUnitOfMeasure#1230209, unitOfMeasures#1230210, unitOfMeasureConversions#1230211, productionAspect#1230212, salesAspect#1230213, procurementAspect#1230214, productGroup#1230215, filter(unitOfMeasureConversions#1230211, lambdafunction((((lambda u#1225669.measurementUnit1.code = productPlant#1230189.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1225669.measurementUnit1.internalRefUUID = productPlant#1230189.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1230209.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1230209.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1230216]
(643) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1230216.quantityNumerator), true, [quantityNumerator#1230217]
(644) Project
Arguments: [product#1230177, plant#1230178, orderDateTime#1230179, productPlant#1230189, timezonecode#1230203, systemId#1230204, internalUUID#1230205, id#1230206, displayId#1230207, name#1230208, baseUnitOfMeasure#1230209, unitOfMeasures#1230210, unitOfMeasureConversions#1230211, productionAspect#1230212, salesAspect#1230213, procurementAspect#1230214, productGroup#1230215, filteredUnitOfMeasureConversions#1230216, quantityNumerator#1230217]
(645) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1230216.quantityDenominator), true, [quantityDenominator#1230218]
(646) Project
Arguments: [product#1230177, plant#1230178, orderDateTime#1230179, productPlant#1230189, timezonecode#1230203, systemId#1230204, internalUUID#1230205, id#1230206, displayId#1230207, name#1230208, baseUnitOfMeasure#1230209, unitOfMeasures#1230210, unitOfMeasureConversions#1230211, productionAspect#1230212, salesAspect#1230213, procurementAspect#1230214, productGroup#1230215, filteredUnitOfMeasureConversions#1230216, quantityNumerator#1230217, quantityDenominator#1230218]
(647) Project
Arguments: [product#1230177, plant#1230178, orderDateTime#1230179, productPlant#1230189, timezonecode#1230203, systemId#1230204, internalUUID#1230205, id#1230206, displayId#1230207, name#1230208, baseUnitOfMeasure#1230209, unitOfMeasures#1230210, unitOfMeasureConversions#1230211, productionAspect#1230212, salesAspect#1230213, procurementAspect#1230214, productGroup#1230215, filteredUnitOfMeasureConversions#1230216, quantityNumerator#1230217, quantityDenominator#1230218, (cast(quantityNumerator#1230217 as double) / cast(quantityDenominator#1230218 as double)) AS outboundUnit#1230219]
(648) Project
Arguments: [product#1230177, plant#1230178, orderDateTime#1230179, productPlant#1230189, timezonecode#1230203, systemId#1230204, internalUUID#1230205, id#1230206, displayId#1230207, name#1230208, baseUnitOfMeasure#1230209, unitOfMeasures#1230210, unitOfMeasureConversions#1230211, productionAspect#1230212, salesAspect#1230213, procurementAspect#1230214, productGroup#1230215, filteredUnitOfMeasureConversions#1230216, quantityNumerator#1230217, quantityDenominator#1230218, CASE WHEN (isnull(outboundUnit#1230219) OR (outboundUnit#1230219 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1230219 END AS outboundUnit#1230220]
(649) Project
Arguments: [product#1230177, plant#1230178, orderDateTime#1230179, productPlant#1230189, timezonecode#1230203, outboundUnit#1230220]
(650) LogicalRelation
Arguments: parquet, [systemId#1230221, internalUUID#1230222, product#1230223, plant#1230224, calculationDateTime#1230225, stockQuantities#1230226], false
(651) Repartition
Arguments: 37, true
(652) LogicalRelation
Arguments: parquet, [marketUnit#1230227, description#1230228, articleHierarchy#1230229, defaultCurrency#1230230, responsibilities#1230231, replenishmentTypes#1230232, distributionCenters#1230233, assignedArticleHierarchyNodes#1230234, minOrderQtySetting#1230235, listingCheck#1230236, odsSelection#1230237, demandProfiles#1230238, constraintProfiles#1230239, optimizationProfiles#1230240, orderGroupSplitProfiles#1230241, supplierMinimumProfiles#1230242, multipleRestrictionProfiles#1230243, preferredUomSource#1230244, handlingOfUnfulfilledDemands#1230245, negligibleQuantitiesThreshold#1230246, eventtype#1230247, minOrderQtySettingInternal#1230248], false
(653) Repartition
Arguments: 37, true
(654) Filter
Arguments: (marketUnit#1230227 <=> AUTO_MUV2)
(655) Project
Arguments: [marketUnit#1230227, description#1230228, articleHierarchy#1230229, defaultCurrency#1230230, responsibilities#1230231, replenishmentTypes#1230232, distributionCenters#1230233, assignedArticleHierarchyNodes#1230234, minOrderQtySetting#1230235, listingCheck#1230236, odsSelection#1230237, demandProfiles#1230238, constraintProfiles#1230239, optimizationProfiles#1230240, orderGroupSplitProfiles#1230241, supplierMinimumProfiles#1230242, multipleRestrictionProfiles#1230243, preferredUomSource#1230244, handlingOfUnfulfilledDemands#1230245, negligibleQuantitiesThreshold#1230246, eventtype#1230247, minOrderQtySettingInternal#1230248]
(656) Project
Arguments: [distributionCenters#1230233]
(657) Generate
Arguments: explode(distributionCenters#1230233), false, [distributionCenters#1230249]
(658) Project
Arguments: [distributionCenters#1230249]
(659) Generate
Arguments: explode(distributionCenters#1230249.storageLocations), false, [storageLocations#1230250]
(660) Project
Arguments: [distributionCenters#1230249.id AS plantId#1230251, distributionCenters#1230249.internalRefUUID AS plantUuid#1230252, storageLocations#1230250]
(661) Project
Arguments: [plantId#1230251, plantUuid#1230252, storageLocations#1230250.id AS storageLocId#1230253, storageLocations#1230250.internalRefUUID AS storageLocUuid#1230254]
(662) LogicalRelation
Arguments: parquet, [product#1230255, plant#1230256, orderDateTime#1230257, planningStartDateTime#1230258], false
(663) RepartitionByExpression
Arguments: [product#1230255, plant#1230256], 37
(664) Project
Arguments: [product#1230255, plant#1230256, orderDateTime#1230257]
(665) LogicalRelation
Arguments: parquet, [systemId#1230259, internalUUID#1230260, plant#1230261, product#1230262, blockedForReplenishmentStartingFrom#1230263, productionAspect#1230264, salesPlant#1230265, listing#1230266], false
(666) Repartition
Arguments: 37, true
(667) Project
Arguments: [systemId#1230259, internalUUID#1230260, plant#1230261, product#1230262, blockedForReplenishmentStartingFrom#1230263, productionAspect#1230264, salesPlant#1230265, listing#1230266, struct(systemId, systemId#1230259, internalUUID, internalUUID#1230260, plant, plant#1230261, product, product#1230262, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1230263, productionAspect, productionAspect#1230264, salesPlant, salesPlant#1230265, listing, listing#1230266) AS productPlant#1230267]
(668) Project
Arguments: [productPlant#1230267]
(669) Join
Arguments: LeftOuter, ((product#1230255 <=> productPlant#1230267.product.internalRefUUID) AND (plant#1230256 <=> productPlant#1230267.plant.internalRefUUID))
(670) Project
Arguments: [product#1230255, plant#1230256, orderDateTime#1230257, productPlant#1230267]
(671) SubqueryAlias
Arguments: wl
(672) LogicalRelation
Arguments: parquet, [systemId#1230268, internalUUID#1230269, id#1230270, displayId#1230271, name#1230272, category#1230273, companyCode#1230274, address#1230275, mainDistributionChain#1230276, mainPurchasingOrganization#1230277, validPurchasingOrganizations#1230278, productGroup#1230279], false
(673) Repartition
Arguments: 37, true
(674) Project
Arguments: [internalUUID#1230269, address#1230275.timeZone.code AS timezonecode#1230280]
(675) Join
Arguments: LeftOuter, (plant#1230256 <=> internalUUID#1230269)
(676) Project
Arguments: [product#1230255, plant#1230256, orderDateTime#1230257, productPlant#1230267, internalUUID#1230269, CASE WHEN isnotnull(timezonecode#1230280) THEN timezonecode#1230280 ELSE UTC END AS timezonecode#1230281]
(677) Project
Arguments: [product#1230255, plant#1230256, orderDateTime#1230257, productPlant#1230267, timezonecode#1230281]
(678) LogicalRelation
Arguments: parquet, [systemId#1230282, internalUUID#1230283, id#1230284, displayId#1230285, name#1230286, baseUnitOfMeasure#1230287, unitOfMeasures#1230288, unitOfMeasureConversions#1230289, productionAspect#1230290, salesAspect#1230291, procurementAspect#1230292, productGroup#1230293], false
(679) Repartition
Arguments: 37, true
(680) Join
Arguments: LeftOuter, (product#1230255 = internalUUID#1230283)
(681) Project
Arguments: [product#1230255, plant#1230256, orderDateTime#1230257, productPlant#1230267, timezonecode#1230281, systemId#1230282, internalUUID#1230283, id#1230284, displayId#1230285, name#1230286, baseUnitOfMeasure#1230287, unitOfMeasures#1230288, unitOfMeasureConversions#1230289, productionAspect#1230290, salesAspect#1230291, procurementAspect#1230292, productGroup#1230293, filter(unitOfMeasureConversions#1230289, lambdafunction((((lambda u#1225669.measurementUnit1.code = productPlant#1230267.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1225669.measurementUnit1.internalRefUUID = productPlant#1230267.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1230287.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1230287.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1230294]
(682) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1230294.quantityNumerator), true, [quantityNumerator#1230295]
(683) Project
Arguments: [product#1230255, plant#1230256, orderDateTime#1230257, productPlant#1230267, timezonecode#1230281, systemId#1230282, internalUUID#1230283, id#1230284, displayId#1230285, name#1230286, baseUnitOfMeasure#1230287, unitOfMeasures#1230288, unitOfMeasureConversions#1230289, productionAspect#1230290, salesAspect#1230291, procurementAspect#1230292, productGroup#1230293, filteredUnitOfMeasureConversions#1230294, quantityNumerator#1230295]
(684) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1230294.quantityDenominator), true, [quantityDenominator#1230296]
(685) Project
Arguments: [product#1230255, plant#1230256, orderDateTime#1230257, productPlant#1230267, timezonecode#1230281, systemId#1230282, internalUUID#1230283, id#1230284, displayId#1230285, name#1230286, baseUnitOfMeasure#1230287, unitOfMeasures#1230288, unitOfMeasureConversions#1230289, productionAspect#1230290, salesAspect#1230291, procurementAspect#1230292, productGroup#1230293, filteredUnitOfMeasureConversions#1230294, quantityNumerator#1230295, quantityDenominator#1230296]
(686) Project
Arguments: [product#1230255, plant#1230256, orderDateTime#1230257, productPlant#1230267, timezonecode#1230281, systemId#1230282, internalUUID#1230283, id#1230284, displayId#1230285, name#1230286, baseUnitOfMeasure#1230287, unitOfMeasures#1230288, unitOfMeasureConversions#1230289, productionAspect#1230290, salesAspect#1230291, procurementAspect#1230292, productGroup#1230293, filteredUnitOfMeasureConversions#1230294, quantityNumerator#1230295, quantityDenominator#1230296, (cast(quantityNumerator#1230295 as double) / cast(quantityDenominator#1230296 as double)) AS outboundUnit#1230297]
(687) Project
Arguments: [product#1230255, plant#1230256, orderDateTime#1230257, productPlant#1230267, timezonecode#1230281, systemId#1230282, internalUUID#1230283, id#1230284, displayId#1230285, name#1230286, baseUnitOfMeasure#1230287, unitOfMeasures#1230288, unitOfMeasureConversions#1230289, productionAspect#1230290, salesAspect#1230291, procurementAspect#1230292, productGroup#1230293, filteredUnitOfMeasureConversions#1230294, quantityNumerator#1230295, quantityDenominator#1230296, CASE WHEN (isnull(outboundUnit#1230297) OR (outboundUnit#1230297 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1230297 END AS outboundUnit#1230298]
(688) Project
Arguments: [product#1230255, plant#1230256, orderDateTime#1230257, productPlant#1230267, timezonecode#1230281, outboundUnit#1230298]
(689) Project
Arguments: [plant#1230256]
(690) Deduplicate
Arguments: [plant#1230256]
(691) Join
Arguments: Inner, (plantUuid#1230252 = plant#1230256)
(692) Project
Arguments: [plantId#1230251, plantUuid#1230252, storageLocId#1230253, storageLocUuid#1230254]
(693) Join
Arguments: Inner, (plant#1230224.internalRefUUID <=> plantUuid#1230252)
(694) Generate
Arguments: explode(filter(stockQuantities#1230226, lambdafunction(((lambda x#1225727.storageLocation.internalRefUuid = storageLocUuid#1230254) AND (lambda x#1225727.storageLocation.Id = storageLocId#1230253)), lambda x#1225727, false))), false, [stockQuantity#1230299]
(695) Project
Arguments: [systemId#1230221, internalUUID#1230222, product#1230223, plant#1230224, calculationDateTime#1230225, stockQuantities#1230226, plantId#1230251, plantUuid#1230252, storageLocId#1230253, storageLocUuid#1230254, stockQuantity#1230299]
(696) Aggregate
Arguments: [plantUuid#1230252, internalUUID#1230222, plant#1230224, product#1230223, systemId#1230221], [plantUuid#1230252, internalUUID#1230222, plant#1230224, product#1230223, systemId#1230221, first(calculationDateTime#1230225, false) AS calculationDateTime#1230300, collect_list(stockQuantity#1230299, 0, 0) AS stockQuantities#1230301]
(697) Project
Arguments: [systemId#1230221, internalUUID#1230222, product#1230223, plant#1230224, calculationDateTime#1230300, stockQuantities#1230301]
(698) Generate
Arguments: explode(stockQuantities#1230301), false, [stockQuantity#1230302]
(699) Project
Arguments: [systemId#1230221, internalUUID#1230222, product#1230223, plant#1230224, calculationDateTime#1230300, stockQuantities#1230301, stockQuantity#1230302]
(700) Project
Arguments: [plant#1230224.id AS plant#1230303, plant#1230224.internalRefUUID AS plantUuid#1230304, product#1230223.id AS product#1230305, product#1230223.internalRefUUID AS productUuid#1230306, calculationDateTime#1230300, stockQuantity#1230302.storagelocation.id AS storageLocId#1230307, stockQuantity#1230302.storagelocation.internalRefUUID AS storageLocUuid#1230308, stockQuantity#1230302.quantity.measure AS quantity#1230309, stockQuantity#1230302.specialStockIndicator.code AS specialStockIndicator#1230310, stockQuantity#1230302.stockType.code AS stockType#1230311]
(701) Filter
Arguments: ((specialStockIndicator#1230310 = ) AND (stockType#1230311 = 01))
(702) LogicalRelation
Arguments: parquet, [product#1230312, plant#1230313, orderDateTime#1230314, planningStartDateTime#1230315], false
(703) RepartitionByExpression
Arguments: [product#1230312, plant#1230313], 37
(704) Project
Arguments: [product#1230312, plant#1230313, orderDateTime#1230314]
(705) LogicalRelation
Arguments: parquet, [systemId#1230316, internalUUID#1230317, plant#1230318, product#1230319, blockedForReplenishmentStartingFrom#1230320, productionAspect#1230321, salesPlant#1230322, listing#1230323], false
(706) Repartition
Arguments: 37, true
(707) Project
Arguments: [systemId#1230316, internalUUID#1230317, plant#1230318, product#1230319, blockedForReplenishmentStartingFrom#1230320, productionAspect#1230321, salesPlant#1230322, listing#1230323, struct(systemId, systemId#1230316, internalUUID, internalUUID#1230317, plant, plant#1230318, product, product#1230319, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1230320, productionAspect, productionAspect#1230321, salesPlant, salesPlant#1230322, listing, listing#1230323) AS productPlant#1230324]
(708) Project
Arguments: [productPlant#1230324]
(709) Join
Arguments: LeftOuter, ((product#1230312 <=> productPlant#1230324.product.internalRefUUID) AND (plant#1230313 <=> productPlant#1230324.plant.internalRefUUID))
(710) Project
Arguments: [product#1230312, plant#1230313, orderDateTime#1230314, productPlant#1230324]
(711) SubqueryAlias
Arguments: wl
(712) LogicalRelation
Arguments: parquet, [systemId#1230325, internalUUID#1230326, id#1230327, displayId#1230328, name#1230329, category#1230330, companyCode#1230331, address#1230332, mainDistributionChain#1230333, mainPurchasingOrganization#1230334, validPurchasingOrganizations#1230335, productGroup#1230336], false
(713) Repartition
Arguments: 37, true
(714) Project
Arguments: [internalUUID#1230326, address#1230332.timeZone.code AS timezonecode#1230337]
(715) Join
Arguments: LeftOuter, (plant#1230313 <=> internalUUID#1230326)
(716) Project
Arguments: [product#1230312, plant#1230313, orderDateTime#1230314, productPlant#1230324, internalUUID#1230326, CASE WHEN isnotnull(timezonecode#1230337) THEN timezonecode#1230337 ELSE UTC END AS timezonecode#1230338]
(717) Project
Arguments: [product#1230312, plant#1230313, orderDateTime#1230314, productPlant#1230324, timezonecode#1230338]
(718) LogicalRelation
Arguments: parquet, [systemId#1230339, internalUUID#1230340, id#1230341, displayId#1230342, name#1230343, baseUnitOfMeasure#1230344, unitOfMeasures#1230345, unitOfMeasureConversions#1230346, productionAspect#1230347, salesAspect#1230348, procurementAspect#1230349, productGroup#1230350], false
(719) Repartition
Arguments: 37, true
(720) Join
Arguments: LeftOuter, (product#1230312 = internalUUID#1230340)
(721) Project
Arguments: [product#1230312, plant#1230313, orderDateTime#1230314, productPlant#1230324, timezonecode#1230338, systemId#1230339, internalUUID#1230340, id#1230341, displayId#1230342, name#1230343, baseUnitOfMeasure#1230344, unitOfMeasures#1230345, unitOfMeasureConversions#1230346, productionAspect#1230347, salesAspect#1230348, procurementAspect#1230349, productGroup#1230350, filter(unitOfMeasureConversions#1230346, lambdafunction((((lambda u#1225669.measurementUnit1.code = productPlant#1230324.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1225669.measurementUnit1.internalRefUUID = productPlant#1230324.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1230344.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1230344.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1230351]
(722) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1230351.quantityNumerator), true, [quantityNumerator#1230352]
(723) Project
Arguments: [product#1230312, plant#1230313, orderDateTime#1230314, productPlant#1230324, timezonecode#1230338, systemId#1230339, internalUUID#1230340, id#1230341, displayId#1230342, name#1230343, baseUnitOfMeasure#1230344, unitOfMeasures#1230345, unitOfMeasureConversions#1230346, productionAspect#1230347, salesAspect#1230348, procurementAspect#1230349, productGroup#1230350, filteredUnitOfMeasureConversions#1230351, quantityNumerator#1230352]
(724) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1230351.quantityDenominator), true, [quantityDenominator#1230353]
(725) Project
Arguments: [product#1230312, plant#1230313, orderDateTime#1230314, productPlant#1230324, timezonecode#1230338, systemId#1230339, internalUUID#1230340, id#1230341, displayId#1230342, name#1230343, baseUnitOfMeasure#1230344, unitOfMeasures#1230345, unitOfMeasureConversions#1230346, productionAspect#1230347, salesAspect#1230348, procurementAspect#1230349, productGroup#1230350, filteredUnitOfMeasureConversions#1230351, quantityNumerator#1230352, quantityDenominator#1230353]
(726) Project
Arguments: [product#1230312, plant#1230313, orderDateTime#1230314, productPlant#1230324, timezonecode#1230338, systemId#1230339, internalUUID#1230340, id#1230341, displayId#1230342, name#1230343, baseUnitOfMeasure#1230344, unitOfMeasures#1230345, unitOfMeasureConversions#1230346, productionAspect#1230347, salesAspect#1230348, procurementAspect#1230349, productGroup#1230350, filteredUnitOfMeasureConversions#1230351, quantityNumerator#1230352, quantityDenominator#1230353, (cast(quantityNumerator#1230352 as double) / cast(quantityDenominator#1230353 as double)) AS outboundUnit#1230354]
(727) Project
Arguments: [product#1230312, plant#1230313, orderDateTime#1230314, productPlant#1230324, timezonecode#1230338, systemId#1230339, internalUUID#1230340, id#1230341, displayId#1230342, name#1230343, baseUnitOfMeasure#1230344, unitOfMeasures#1230345, unitOfMeasureConversions#1230346, productionAspect#1230347, salesAspect#1230348, procurementAspect#1230349, productGroup#1230350, filteredUnitOfMeasureConversions#1230351, quantityNumerator#1230352, quantityDenominator#1230353, CASE WHEN (isnull(outboundUnit#1230354) OR (outboundUnit#1230354 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1230354 END AS outboundUnit#1230355]
(728) Project
Arguments: [product#1230312, plant#1230313, orderDateTime#1230314, productPlant#1230324, timezonecode#1230338, outboundUnit#1230355]
(729) Join
Arguments: Inner, ((plantUuid#1230304 = plant#1230313) AND (productUuid#1230306 = product#1230312))
(730) Filter
Arguments: (calculationDateTime#1230300 <= orderDateTime#1230314)
(731) Project
Arguments: [plantUuid#1230304 AS plant#1230356, productUuid#1230306 AS product#1230357, storageLocId#1230307, calculationDateTime#1230300, quantity#1230309]
(732) LogicalRelation
Arguments: parquet, [systemId#1230358, internalUUID#1230359, product#1230360, plant#1230361, calculationDateTime#1230362, stockQuantities#1230363], false
(733) Repartition
Arguments: 37, true
(734) LogicalRelation
Arguments: parquet, [marketUnit#1230364, description#1230365, articleHierarchy#1230366, defaultCurrency#1230367, responsibilities#1230368, replenishmentTypes#1230369, distributionCenters#1230370, assignedArticleHierarchyNodes#1230371, minOrderQtySetting#1230372, listingCheck#1230373, odsSelection#1230374, demandProfiles#1230375, constraintProfiles#1230376, optimizationProfiles#1230377, orderGroupSplitProfiles#1230378, supplierMinimumProfiles#1230379, multipleRestrictionProfiles#1230380, preferredUomSource#1230381, handlingOfUnfulfilledDemands#1230382, negligibleQuantitiesThreshold#1230383, eventtype#1230384, minOrderQtySettingInternal#1230385], false
(735) Repartition
Arguments: 37, true
(736) Filter
Arguments: (marketUnit#1230364 <=> AUTO_MUV2)
(737) Project
Arguments: [marketUnit#1230364, description#1230365, articleHierarchy#1230366, defaultCurrency#1230367, responsibilities#1230368, replenishmentTypes#1230369, distributionCenters#1230370, assignedArticleHierarchyNodes#1230371, minOrderQtySetting#1230372, listingCheck#1230373, odsSelection#1230374, demandProfiles#1230375, constraintProfiles#1230376, optimizationProfiles#1230377, orderGroupSplitProfiles#1230378, supplierMinimumProfiles#1230379, multipleRestrictionProfiles#1230380, preferredUomSource#1230381, handlingOfUnfulfilledDemands#1230382, negligibleQuantitiesThreshold#1230383, eventtype#1230384, minOrderQtySettingInternal#1230385]
(738) Project
Arguments: [distributionCenters#1230370]
(739) Generate
Arguments: explode(distributionCenters#1230370), false, [distributionCenters#1230386]
(740) Project
Arguments: [distributionCenters#1230386]
(741) Generate
Arguments: explode(distributionCenters#1230386.storageLocations), false, [storageLocations#1230387]
(742) Project
Arguments: [distributionCenters#1230386.id AS plantId#1230388, distributionCenters#1230386.internalRefUUID AS plantUuid#1230389, storageLocations#1230387]
(743) Project
Arguments: [plantId#1230388, plantUuid#1230389, storageLocations#1230387.id AS storageLocId#1230390, storageLocations#1230387.internalRefUUID AS storageLocUuid#1230391]
(744) LogicalRelation
Arguments: parquet, [product#1230392, plant#1230393, orderDateTime#1230394, planningStartDateTime#1230395], false
(745) RepartitionByExpression
Arguments: [product#1230392, plant#1230393], 37
(746) Project
Arguments: [product#1230392, plant#1230393, orderDateTime#1230394]
(747) LogicalRelation
Arguments: parquet, [systemId#1230396, internalUUID#1230397, plant#1230398, product#1230399, blockedForReplenishmentStartingFrom#1230400, productionAspect#1230401, salesPlant#1230402, listing#1230403], false
(748) Repartition
Arguments: 37, true
(749) Project
Arguments: [systemId#1230396, internalUUID#1230397, plant#1230398, product#1230399, blockedForReplenishmentStartingFrom#1230400, productionAspect#1230401, salesPlant#1230402, listing#1230403, struct(systemId, systemId#1230396, internalUUID, internalUUID#1230397, plant, plant#1230398, product, product#1230399, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1230400, productionAspect, productionAspect#1230401, salesPlant, salesPlant#1230402, listing, listing#1230403) AS productPlant#1230404]
(750) Project
Arguments: [productPlant#1230404]
(751) Join
Arguments: LeftOuter, ((product#1230392 <=> productPlant#1230404.product.internalRefUUID) AND (plant#1230393 <=> productPlant#1230404.plant.internalRefUUID))
(752) Project
Arguments: [product#1230392, plant#1230393, orderDateTime#1230394, productPlant#1230404]
(753) SubqueryAlias
Arguments: wl
(754) LogicalRelation
Arguments: parquet, [systemId#1230405, internalUUID#1230406, id#1230407, displayId#1230408, name#1230409, category#1230410, companyCode#1230411, address#1230412, mainDistributionChain#1230413, mainPurchasingOrganization#1230414, validPurchasingOrganizations#1230415, productGroup#1230416], false
(755) Repartition
Arguments: 37, true
(756) Project
Arguments: [internalUUID#1230406, address#1230412.timeZone.code AS timezonecode#1230417]
(757) Join
Arguments: LeftOuter, (plant#1230393 <=> internalUUID#1230406)
(758) Project
Arguments: [product#1230392, plant#1230393, orderDateTime#1230394, productPlant#1230404, internalUUID#1230406, CASE WHEN isnotnull(timezonecode#1230417) THEN timezonecode#1230417 ELSE UTC END AS timezonecode#1230418]
(759) Project
Arguments: [product#1230392, plant#1230393, orderDateTime#1230394, productPlant#1230404, timezonecode#1230418]
(760) LogicalRelation
Arguments: parquet, [systemId#1230419, internalUUID#1230420, id#1230421, displayId#1230422, name#1230423, baseUnitOfMeasure#1230424, unitOfMeasures#1230425, unitOfMeasureConversions#1230426, productionAspect#1230427, salesAspect#1230428, procurementAspect#1230429, productGroup#1230430], false
(761) Repartition
Arguments: 37, true
(762) Join
Arguments: LeftOuter, (product#1230392 = internalUUID#1230420)
(763) Project
Arguments: [product#1230392, plant#1230393, orderDateTime#1230394, productPlant#1230404, timezonecode#1230418, systemId#1230419, internalUUID#1230420, id#1230421, displayId#1230422, name#1230423, baseUnitOfMeasure#1230424, unitOfMeasures#1230425, unitOfMeasureConversions#1230426, productionAspect#1230427, salesAspect#1230428, procurementAspect#1230429, productGroup#1230430, filter(unitOfMeasureConversions#1230426, lambdafunction((((lambda u#1225669.measurementUnit1.code = productPlant#1230404.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1225669.measurementUnit1.internalRefUUID = productPlant#1230404.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1230424.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1230424.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1230431]
(764) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1230431.quantityNumerator), true, [quantityNumerator#1230432]
(765) Project
Arguments: [product#1230392, plant#1230393, orderDateTime#1230394, productPlant#1230404, timezonecode#1230418, systemId#1230419, internalUUID#1230420, id#1230421, displayId#1230422, name#1230423, baseUnitOfMeasure#1230424, unitOfMeasures#1230425, unitOfMeasureConversions#1230426, productionAspect#1230427, salesAspect#1230428, procurementAspect#1230429, productGroup#1230430, filteredUnitOfMeasureConversions#1230431, quantityNumerator#1230432]
(766) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1230431.quantityDenominator), true, [quantityDenominator#1230433]
(767) Project
Arguments: [product#1230392, plant#1230393, orderDateTime#1230394, productPlant#1230404, timezonecode#1230418, systemId#1230419, internalUUID#1230420, id#1230421, displayId#1230422, name#1230423, baseUnitOfMeasure#1230424, unitOfMeasures#1230425, unitOfMeasureConversions#1230426, productionAspect#1230427, salesAspect#1230428, procurementAspect#1230429, productGroup#1230430, filteredUnitOfMeasureConversions#1230431, quantityNumerator#1230432, quantityDenominator#1230433]
(768) Project
Arguments: [product#1230392, plant#1230393, orderDateTime#1230394, productPlant#1230404, timezonecode#1230418, systemId#1230419, internalUUID#1230420, id#1230421, displayId#1230422, name#1230423, baseUnitOfMeasure#1230424, unitOfMeasures#1230425, unitOfMeasureConversions#1230426, productionAspect#1230427, salesAspect#1230428, procurementAspect#1230429, productGroup#1230430, filteredUnitOfMeasureConversions#1230431, quantityNumerator#1230432, quantityDenominator#1230433, (cast(quantityNumerator#1230432 as double) / cast(quantityDenominator#1230433 as double)) AS outboundUnit#1230434]
(769) Project
Arguments: [product#1230392, plant#1230393, orderDateTime#1230394, productPlant#1230404, timezonecode#1230418, systemId#1230419, internalUUID#1230420, id#1230421, displayId#1230422, name#1230423, baseUnitOfMeasure#1230424, unitOfMeasures#1230425, unitOfMeasureConversions#1230426, productionAspect#1230427, salesAspect#1230428, procurementAspect#1230429, productGroup#1230430, filteredUnitOfMeasureConversions#1230431, quantityNumerator#1230432, quantityDenominator#1230433, CASE WHEN (isnull(outboundUnit#1230434) OR (outboundUnit#1230434 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1230434 END AS outboundUnit#1230435]
(770) Project
Arguments: [product#1230392, plant#1230393, orderDateTime#1230394, productPlant#1230404, timezonecode#1230418, outboundUnit#1230435]
(771) Project
Arguments: [plant#1230393]
(772) Deduplicate
Arguments: [plant#1230393]
(773) Join
Arguments: Inner, (plantUuid#1230389 = plant#1230393)
(774) Project
Arguments: [plantId#1230388, plantUuid#1230389, storageLocId#1230390, storageLocUuid#1230391]
(775) Join
Arguments: Inner, (plant#1230361.internalRefUUID <=> plantUuid#1230389)
(776) Generate
Arguments: explode(filter(stockQuantities#1230363, lambdafunction(((lambda x#1225727.storageLocation.internalRefUuid = storageLocUuid#1230391) AND (lambda x#1225727.storageLocation.Id = storageLocId#1230390)), lambda x#1225727, false))), false, [stockQuantity#1230436]
(777) Project
Arguments: [systemId#1230358, internalUUID#1230359, product#1230360, plant#1230361, calculationDateTime#1230362, stockQuantities#1230363, plantId#1230388, plantUuid#1230389, storageLocId#1230390, storageLocUuid#1230391, stockQuantity#1230436]
(778) Aggregate
Arguments: [plantUuid#1230389, internalUUID#1230359, plant#1230361, product#1230360, systemId#1230358], [plantUuid#1230389, internalUUID#1230359, plant#1230361, product#1230360, systemId#1230358, first(calculationDateTime#1230362, false) AS calculationDateTime#1230437, collect_list(stockQuantity#1230436, 0, 0) AS stockQuantities#1230438]
(779) Project
Arguments: [systemId#1230358, internalUUID#1230359, product#1230360, plant#1230361, calculationDateTime#1230437, stockQuantities#1230438]
(780) Generate
Arguments: explode(stockQuantities#1230438), false, [stockQuantity#1230439]
(781) Project
Arguments: [systemId#1230358, internalUUID#1230359, product#1230360, plant#1230361, calculationDateTime#1230437, stockQuantities#1230438, stockQuantity#1230439]
(782) Project
Arguments: [plant#1230361.id AS plant#1230440, plant#1230361.internalRefUUID AS plantUuid#1230441, product#1230360.id AS product#1230442, product#1230360.internalRefUUID AS productUuid#1230443, calculationDateTime#1230437, stockQuantity#1230439.storagelocation.id AS storageLocId#1230444, stockQuantity#1230439.storagelocation.internalRefUUID AS storageLocUuid#1230445, stockQuantity#1230439.quantity.measure AS quantity#1230446, stockQuantity#1230439.specialStockIndicator.code AS specialStockIndicator#1230447, stockQuantity#1230439.stockType.code AS stockType#1230448]
(783) Filter
Arguments: ((specialStockIndicator#1230447 = ) AND (stockType#1230448 = 01))
(784) LogicalRelation
Arguments: parquet, [product#1230449, plant#1230450, orderDateTime#1230451, planningStartDateTime#1230452], false
(785) RepartitionByExpression
Arguments: [product#1230449, plant#1230450], 37
(786) Project
Arguments: [product#1230449, plant#1230450, orderDateTime#1230451]
(787) LogicalRelation
Arguments: parquet, [systemId#1230453, internalUUID#1230454, plant#1230455, product#1230456, blockedForReplenishmentStartingFrom#1230457, productionAspect#1230458, salesPlant#1230459, listing#1230460], false
(788) Repartition
Arguments: 37, true
(789) Project
Arguments: [systemId#1230453, internalUUID#1230454, plant#1230455, product#1230456, blockedForReplenishmentStartingFrom#1230457, productionAspect#1230458, salesPlant#1230459, listing#1230460, struct(systemId, systemId#1230453, internalUUID, internalUUID#1230454, plant, plant#1230455, product, product#1230456, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1230457, productionAspect, productionAspect#1230458, salesPlant, salesPlant#1230459, listing, listing#1230460) AS productPlant#1230461]
(790) Project
Arguments: [productPlant#1230461]
(791) Join
Arguments: LeftOuter, ((product#1230449 <=> productPlant#1230461.product.internalRefUUID) AND (plant#1230450 <=> productPlant#1230461.plant.internalRefUUID))
(792) Project
Arguments: [product#1230449, plant#1230450, orderDateTime#1230451, productPlant#1230461]
(793) SubqueryAlias
Arguments: wl
(794) LogicalRelation
Arguments: parquet, [systemId#1230462, internalUUID#1230463, id#1230464, displayId#1230465, name#1230466, category#1230467, companyCode#1230468, address#1230469, mainDistributionChain#1230470, mainPurchasingOrganization#1230471, validPurchasingOrganizations#1230472, productGroup#1230473], false
(795) Repartition
Arguments: 37, true
(796) Project
Arguments: [internalUUID#1230463, address#1230469.timeZone.code AS timezonecode#1230474]
(797) Join
Arguments: LeftOuter, (plant#1230450 <=> internalUUID#1230463)
(798) Project
Arguments: [product#1230449, plant#1230450, orderDateTime#1230451, productPlant#1230461, internalUUID#1230463, CASE WHEN isnotnull(timezonecode#1230474) THEN timezonecode#1230474 ELSE UTC END AS timezonecode#1230475]
(799) Project
Arguments: [product#1230449, plant#1230450, orderDateTime#1230451, productPlant#1230461, timezonecode#1230475]
(800) LogicalRelation
Arguments: parquet, [systemId#1230476, internalUUID#1230477, id#1230478, displayId#1230479, name#1230480, baseUnitOfMeasure#1230481, unitOfMeasures#1230482, unitOfMeasureConversions#1230483, productionAspect#1230484, salesAspect#1230485, procurementAspect#1230486, productGroup#1230487], false
(801) Repartition
Arguments: 37, true
(802) Join
Arguments: LeftOuter, (product#1230449 = internalUUID#1230477)
(803) Project
Arguments: [product#1230449, plant#1230450, orderDateTime#1230451, productPlant#1230461, timezonecode#1230475, systemId#1230476, internalUUID#1230477, id#1230478, displayId#1230479, name#1230480, baseUnitOfMeasure#1230481, unitOfMeasures#1230482, unitOfMeasureConversions#1230483, productionAspect#1230484, salesAspect#1230485, procurementAspect#1230486, productGroup#1230487, filter(unitOfMeasureConversions#1230483, lambdafunction((((lambda u#1225669.measurementUnit1.code = productPlant#1230461.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1225669.measurementUnit1.internalRefUUID = productPlant#1230461.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1230481.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1230481.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1230488]
(804) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1230488.quantityNumerator), true, [quantityNumerator#1230489]
(805) Project
Arguments: [product#1230449, plant#1230450, orderDateTime#1230451, productPlant#1230461, timezonecode#1230475, systemId#1230476, internalUUID#1230477, id#1230478, displayId#1230479, name#1230480, baseUnitOfMeasure#1230481, unitOfMeasures#1230482, unitOfMeasureConversions#1230483, productionAspect#1230484, salesAspect#1230485, procurementAspect#1230486, productGroup#1230487, filteredUnitOfMeasureConversions#1230488, quantityNumerator#1230489]
(806) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1230488.quantityDenominator), true, [quantityDenominator#1230490]
(807) Project
Arguments: [product#1230449, plant#1230450, orderDateTime#1230451, productPlant#1230461, timezonecode#1230475, systemId#1230476, internalUUID#1230477, id#1230478, displayId#1230479, name#1230480, baseUnitOfMeasure#1230481, unitOfMeasures#1230482, unitOfMeasureConversions#1230483, productionAspect#1230484, salesAspect#1230485, procurementAspect#1230486, productGroup#1230487, filteredUnitOfMeasureConversions#1230488, quantityNumerator#1230489, quantityDenominator#1230490]
(808) Project
Arguments: [product#1230449, plant#1230450, orderDateTime#1230451, productPlant#1230461, timezonecode#1230475, systemId#1230476, internalUUID#1230477, id#1230478, displayId#1230479, name#1230480, baseUnitOfMeasure#1230481, unitOfMeasures#1230482, unitOfMeasureConversions#1230483, productionAspect#1230484, salesAspect#1230485, procurementAspect#1230486, productGroup#1230487, filteredUnitOfMeasureConversions#1230488, quantityNumerator#1230489, quantityDenominator#1230490, (cast(quantityNumerator#1230489 as double) / cast(quantityDenominator#1230490 as double)) AS outboundUnit#1230491]
(809) Project
Arguments: [product#1230449, plant#1230450, orderDateTime#1230451, productPlant#1230461, timezonecode#1230475, systemId#1230476, internalUUID#1230477, id#1230478, displayId#1230479, name#1230480, baseUnitOfMeasure#1230481, unitOfMeasures#1230482, unitOfMeasureConversions#1230483, productionAspect#1230484, salesAspect#1230485, procurementAspect#1230486, productGroup#1230487, filteredUnitOfMeasureConversions#1230488, quantityNumerator#1230489, quantityDenominator#1230490, CASE WHEN (isnull(outboundUnit#1230491) OR (outboundUnit#1230491 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1230491 END AS outboundUnit#1230492]
(810) Project
Arguments: [product#1230449, plant#1230450, orderDateTime#1230451, productPlant#1230461, timezonecode#1230475, outboundUnit#1230492]
(811) Join
Arguments: Inner, ((plantUuid#1230441 = plant#1230450) AND (productUuid#1230443 = product#1230449))
(812) Filter
Arguments: (calculationDateTime#1230437 <= orderDateTime#1230451)
(813) Project
Arguments: [plantUuid#1230441 AS plant#1230493, productUuid#1230443 AS product#1230494, storageLocId#1230444, calculationDateTime#1230437, quantity#1230446]
(814) Aggregate
Arguments: [plant#1230493, product#1230494, storageLocId#1230444], [plant#1230493, product#1230494, storageLocId#1230444, max(calculationDateTime#1230437) AS max_calc_datetime#1230495]
(815) Join
Arguments: Inner, ((((plant#1230356 <=> plant#1230493) AND (product#1230357 <=> product#1230494)) AND (storageLocId#1230307 <=> storageLocId#1230444)) AND (calculationDateTime#1230300 <=> max_calc_datetime#1230495))
(816) Project
Arguments: [plant#1230356, product#1230357, storageLocId#1230307, calculationDateTime#1230300, quantity#1230309]
(817) Aggregate
Arguments: [product#1230357, plant#1230356], [product#1230357, plant#1230356, sum(quantity#1230309) AS quantitySum#1230496, min(calculationDateTime#1230300) AS minCalculationDateTime#1230497]
(818) Project
Arguments: [product#1230357, plant#1230356, quantitySum#1230496, minCalculationDateTime#1230497, round(quantitySum#1230496, 0) AS roundedQuantitySum#1230498]
(819) Join
Arguments: LeftOuter, ((plant#1230178 = plant#1230356) AND (product#1230177 = product#1230357))
(820) Project
Arguments: [product#1230177, plant#1230178, orderDateTime#1230179, productPlant#1230189, timezonecode#1230203, outboundUnit#1230220, roundedQuantitySum#1230498, minCalculationDateTime#1230497]
(821) Project
Arguments: [product#1230177, plant#1230178, orderDateTime#1230179, productPlant#1230189, timezonecode#1230203, outboundUnit#1230220, roundedQuantitySum#1230498, minCalculationDateTime#1230497, CASE WHEN isnotnull(minCalculationDateTime#1230497) THEN minCalculationDateTime#1230497 ELSE orderDateTime#1230179 END AS stockDatetime#1230499]
(822) Project
Arguments: [product#1230177, plant#1230178, orderDateTime#1230179, productPlant#1230189, timezonecode#1230203, outboundUnit#1230220, roundedQuantitySum#1230498, minCalculationDateTime#1230497, stockDatetime#1230499, CASE WHEN isnotnull(roundedQuantitySum#1230498) THEN array(roundedQuantitySum#1230498) ELSE array(0.0) END AS stockBatchQuantities#1230500]
(823) Project
Arguments: [product#1230177, plant#1230178, orderDateTime#1230179, productPlant#1230189, timezonecode#1230203, outboundUnit#1230220, roundedQuantitySum#1230498, minCalculationDateTime#1230497, stockDatetime#1230499, stockBatchQuantities#1230500, array(2199-01-01 00:00:00) AS stockBatchShelfLifeEndDatetimes#1230501]
(824) Project
Arguments: [product#1230177, plant#1230178, orderDateTime#1230179, productPlant#1230189, timezonecode#1230203, outboundUnit#1230220, roundedQuantitySum#1230498, stockDatetime#1230499, stockBatchQuantities#1230500, stockBatchShelfLifeEndDatetimes#1230501]
(825) Project
Arguments: [product#1230177, plant#1230178, orderDateTime#1230179, productPlant#1230189, timezonecode#1230203, outboundUnit#1230220, stockDatetime#1230499, stockBatchQuantities#1230500, stockBatchShelfLifeEndDatetimes#1230501]
(826) LogicalRelation
Arguments: parquet, [product#1230502, plant#1230503, demandChannel#1230504, demandStream#1230505, considerVariance#1230506, demandTimeBuckets#1230507, demandPointInTimeStart#1230508, demandPointInTimeEnd#1230509, demandPointInTime#1230510], false
(827) Join
Arguments: LeftOuter, ((product#1230177 = product#1230502) AND (plant#1230178 = plant#1230503))
(828) Project
Arguments: [product#1230177, plant#1230178, orderDateTime#1230179, productPlant#1230189, timezonecode#1230203, outboundUnit#1230220, stockDatetime#1230499, stockBatchQuantities#1230500, stockBatchShelfLifeEndDatetimes#1230501, demandChannel#1230504, demandStream#1230505, considerVariance#1230506, demandTimeBuckets#1230507, demandPointInTimeStart#1230508, demandPointInTimeEnd#1230509, demandPointInTime#1230510, product#1230502, plant#1230503]
(829) Project
Arguments: [product#1230177, plant#1230178, orderDateTime#1230179, productPlant#1230189, timezonecode#1230203, outboundUnit#1230220, stockDatetime#1230499, stockBatchQuantities#1230500, stockBatchShelfLifeEndDatetimes#1230501, demandChannel#1230504, demandStream#1230505, considerVariance#1230506, demandTimeBuckets#1230507, demandPointInTimeStart#1230508, demandPointInTimeEnd#1230509, demandPointInTime#1230510, CASE WHEN isnotnull(product#1230502) THEN struct(demandChannel, demandChannel#1230504, demandStream, demandStream#1230505, considerVariance, considerVariance#1230506, demandTimeBuckets, demandTimeBuckets#1230507, demandPointInTimeStart, demandPointInTimeStart#1230508, demandPointInTimeEnd, demandPointInTimeEnd#1230509, demandPointInTime, demandPointInTime#1230510) 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#1230511]
(830) Aggregate
Arguments: [product#1230177, plant#1230178, orderDateTime#1230179, productPlant#1230189, timezonecode#1230203, outboundUnit#1230220, stockDatetime#1230499, stockBatchQuantities#1230500, stockBatchShelfLifeEndDatetimes#1230501], [product#1230177, plant#1230178, orderDateTime#1230179, productPlant#1230189, timezonecode#1230203, outboundUnit#1230220, stockDatetime#1230499, stockBatchQuantities#1230500, stockBatchShelfLifeEndDatetimes#1230501, collect_list(rawDemands#1230511, 0, 0) AS rawDemands#1230512]
(831) DeserializeToObject
Arguments: createexternalrow(invoke(product#1230177.toString()), invoke(plant#1230178.toString()), static_invoke(DateTimeUtils.toJavaTimestamp(orderDateTime#1230179)), if (isnull(productPlant#1230189)) null else createexternalrow(invoke(productPlant#1230189.systemId.toString()), invoke(productPlant#1230189.internalUUID.toString()), if (isnull(productPlant#1230189.plant)) null else createexternalrow(invoke(productPlant#1230189.plant.internalRefUUID.toString()), invoke(productPlant#1230189.plant.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), if (isnull(productPlant#1230189.product)) null else createexternalrow(invoke(productPlant#1230189.product.internalRefUUID.toString()), invoke(productPlant#1230189.product.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(DateTimeUtils.toJavaDate(productPlant#1230189.blockedForReplenishmentStartingFrom)), if (isnull(productPlant#1230189.productionAspect)) null else createexternalrow(if (isnull(productPlant#1230189.productionAspect.productMovementPlants)) null else createexternalrow(if (isnull(productPlant#1230189.productionAspect.productMovementPlants.unitOfIssue)) null else createexternalrow(invoke(productPlant#1230189.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID.toString()), invoke(productPlant#1230189.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#1230189.productionAspect.productPlanningPlants)) null else createexternalrow(if (isnull(productPlant#1230189.productionAspect.productPlanningPlants.mrpType)) null else createexternalrow(invoke(productPlant#1230189.productionAspect.productPlanningPlants.mrpType.internalRefUUID.toString()), invoke(productPlant#1230189.productionAspect.productPlanningPlants.mrpType.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1230189.productionAspect.productPlanningPlants.abcIndicator)) null else createexternalrow(invoke(productPlant#1230189.productionAspect.productPlanningPlants.abcIndicator.internalRefUUID.toString()), invoke(productPlant#1230189.productionAspect.productPlanningPlants.abcIndicator.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1230189.productionAspect.productPlanningPlants.mrpController)) null else createexternalrow(invoke(productPlant#1230189.productionAspect.productPlanningPlants.mrpController.internalRefUUID.toString()), invoke(productPlant#1230189.productionAspect.productPlanningPlants.mrpController.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(java.lang.Double.valueOf(productPlant#1230189.productionAspect.productPlanningPlants.minimumLotSize)), if (isnull(productPlant#1230189.productionAspect.productPlanningPlants.logisticalRoundingProfile)) null else createexternalrow(invoke(productPlant#1230189.productionAspect.productPlanningPlants.logisticalRoundingProfile.internalRefUUID.toString()), invoke(productPlant#1230189.productionAspect.productPlanningPlants.logisticalRoundingProfile.logisticalRoundingProfile.toString()), StructField(internalRefUUID,StringType,true), StructField(logisticalRoundingProfile,StringType,true)), if (isnull(productPlant#1230189.productionAspect.productPlanningPlants.sourceOfSupplyCategory)) null else createexternalrow(invoke(productPlant#1230189.productionAspect.productPlanningPlants.sourceOfSupplyCategory.internalRefUUID.toString()), invoke(productPlant#1230189.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#1230189.salesPlant)) null else createexternalrow(if (isnull(productPlant#1230189.salesPlant.loadingGroup)) null else createexternalrow(invoke(productPlant#1230189.salesPlant.loadingGroup.internalRefUUID.toString()), invoke(productPlant#1230189.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, 163428), if (isnull(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 163428))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 163428).validFrom)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 163428).validTo)), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 163428).isListed)), StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true)), productPlant#1230189.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#1230203.toString()), static_invoke(java.lang.Double.valueOf(outboundUnit#1230220)), static_invoke(DateTimeUtils.toJavaTimestamp(stockDatetime#1230499)), mapobjects(lambdavariable(MapObject, DoubleType, true, 163429), static_invoke(java.lang.Double.valueOf(cast(lambdavariable(MapObject, DoubleType, true, 163429) as double))), stockBatchQuantities#1230500, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, false, 163430), assertnotnull(static_invoke(DateTimeUtils.toJavaTimestamp(cast(lambdavariable(MapObject, TimestampType, false, 163430) as timestamp)))), stockBatchShelfLifeEndDatetimes#1230501, 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, 163431), 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, 163431))) 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, 163431).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, 163431).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, 163431).considerVariance)), mapobjects(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 163432), if (isnull(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 163432))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 163432).demandStartDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 163432).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 163432).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, 163431).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, 163431).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, 163431).demandPointInTimeEnd)), mapobjects(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 163433), if (isnull(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 163433))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 163433).demandDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 163433).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 163433).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, 163431).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#1230512, 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#1226090: org.apache.spark.sql.Row
(832) MapElements
Arguments: com.sap.s4hana.eureka.business.crporderquantitykpiservice.core.business.datasnapshot.DemandTransformatorImpl$$Lambda/0x00000008023bc120@58fc6bc3, 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#1226095: 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#1230513, 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#1230514, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(2))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163418), assertnotnull(if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163418), 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, 163418), 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, 163418), 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, 163418), 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, 163418), 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, 163418), 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, 163418), 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, 163418), 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, 163418), 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, 163418), 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, 163419), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163419), DoubleType, ObjectType(class java.lang.Double)).doubleValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163418), 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, 163418), 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, 163418), 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, 163418), 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, 163420), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163420), DoubleType, ObjectType(class java.lang.Double)).doubleValue()), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163418), 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, 163418), 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, 163421), assertnotnull(static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163421), TimestampType, ObjectType(class java.sql.Timestamp))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163418), 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, 163418), 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, 163422), assertnotnull(static_invoke(UTF8String.fromString(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163422), StringType, ObjectType(class java.lang.String))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163418), 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, 163418), 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, 163418), 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, 163418), 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, 163423), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163423), IntegerType, ObjectType(class java.lang.Integer)).intValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163418), 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#1230515, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(3))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163424), assertnotnull(if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163424), 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, 163424), 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, 163424), 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, 163424), 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, 163424), 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, 163424), 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, 163424), 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, 163424), 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, 163425), assertnotnull(static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163425), TimestampType, ObjectType(class java.sql.Timestamp))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163424), 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, 163424), 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, 163424), 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, 163424), 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, 163426), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163426), DoubleType, ObjectType(class java.lang.Double)).doubleValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163424), 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, 163424), 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, 163424), 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, 163424), 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, 163427), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163427), DoubleType, ObjectType(class java.lang.Double)).doubleValue()), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163424), 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, 163424), 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, 163424), 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, 163424), 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, 163424), 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#1230516]
(834) Join
Arguments: LeftOuter, ((plant#1230514 <=> plant#1229853) AND (product#1230513 <=> product#1229852))
(835) Project
Arguments: [product#1229852, plant#1229853, orderDateTime#1229854, productPlant#1229864, timezonecode#1229878, outboundUnit#1229895, stockDatetime#1230174, stockBatchQuantities#1230175, stockBatchShelfLifeEndDatetimes#1230176, plant#1230514, dayBucketDemands#1230515, pointInTimeDemands#1230516]
(836) Project
Arguments: [product#1229852, plant#1229853, orderDateTime#1229854, productPlant#1229864, timezonecode#1229878, outboundUnit#1229895, stockDatetime#1230174, stockBatchQuantities#1230175, stockBatchShelfLifeEndDatetimes#1230176, dayBucketDemands#1230515, pointInTimeDemands#1230516]
(837) LogicalRelation
Arguments: parquet, [marketUnit#1226493, description#1226494, articleHierarchy#1226495, defaultCurrency#1226496, responsibilities#1226497, replenishmentTypes#1226498, distributionCenters#1226499, assignedArticleHierarchyNodes#1226500, minOrderQtySetting#1226501, listingCheck#1226502, odsSelection#1226503, demandProfiles#1226504, constraintProfiles#1226505, optimizationProfiles#1226506, orderGroupSplitProfiles#1226507, supplierMinimumProfiles#1226508, multipleRestrictionProfiles#1226509, preferredUomSource#1226510, handlingOfUnfulfilledDemands#1226511, negligibleQuantitiesThreshold#1226512, eventtype#1226513, minOrderQtySettingInternal#1226514], false
(838) Repartition
Arguments: 37, true
(839) Filter
Arguments: (marketUnit#1226493 <=> AUTO_MUV2)
(840) Project
Arguments: [marketUnit#1226493, description#1226494, articleHierarchy#1226495, defaultCurrency#1226496, responsibilities#1226497, replenishmentTypes#1226498, distributionCenters#1226499, assignedArticleHierarchyNodes#1226500, minOrderQtySetting#1226501, listingCheck#1226502, odsSelection#1226503, demandProfiles#1226504, constraintProfiles#1226505, optimizationProfiles#1226506, orderGroupSplitProfiles#1226507, supplierMinimumProfiles#1226508, multipleRestrictionProfiles#1226509, preferredUomSource#1226510, handlingOfUnfulfilledDemands#1226511, negligibleQuantitiesThreshold#1226512, eventtype#1226513, minOrderQtySettingInternal#1226514]
(841) Project
Arguments: [distributionCenters#1226499]
(842) Generate
Arguments: explode(distributionCenters#1226499), false, [distributionCenters#1226515]
(843) Project
Arguments: [distributionCenters#1226515]
(844) Generate
Arguments: explode(distributionCenters#1226515.storageLocations), false, [storageLocations#1226516]
(845) Project
Arguments: [distributionCenters#1226515.id AS plantId#1226517, distributionCenters#1226515.internalRefUUID AS plantUuid#1226518, storageLocations#1226516]
(846) Project
Arguments: [plantId#1226517, plantUuid#1226518, storageLocations#1226516.id AS storageLocId#1226519, storageLocations#1226516.internalRefUUID AS storageLocUuid#1226520]
(847) LogicalRelation
Arguments: parquet, [product#1226521, plant#1226522, orderDateTime#1226523, planningStartDateTime#1226524], false
(848) RepartitionByExpression
Arguments: [product#1226521, plant#1226522], 37
(849) Project
Arguments: [product#1226521, plant#1226522, orderDateTime#1226523]
(850) LogicalRelation
Arguments: parquet, [systemId#1226525, internalUUID#1226526, plant#1226527, product#1226528, blockedForReplenishmentStartingFrom#1226529, productionAspect#1226530, salesPlant#1226531, listing#1226532], false
(851) Repartition
Arguments: 37, true
(852) Project
Arguments: [systemId#1226525, internalUUID#1226526, plant#1226527, product#1226528, blockedForReplenishmentStartingFrom#1226529, productionAspect#1226530, salesPlant#1226531, listing#1226532, struct(systemId, systemId#1226525, internalUUID, internalUUID#1226526, plant, plant#1226527, product, product#1226528, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1226529, productionAspect, productionAspect#1226530, salesPlant, salesPlant#1226531, listing, listing#1226532) AS productPlant#1226533]
(853) Project
Arguments: [productPlant#1226533]
(854) Join
Arguments: LeftOuter, ((product#1226521 <=> productPlant#1226533.product.internalRefUUID) AND (plant#1226522 <=> productPlant#1226533.plant.internalRefUUID))
(855) Project
Arguments: [product#1226521, plant#1226522, orderDateTime#1226523, productPlant#1226533]
(856) SubqueryAlias
Arguments: wl
(857) LogicalRelation
Arguments: parquet, [systemId#1226534, internalUUID#1226535, id#1226536, displayId#1226537, name#1226538, category#1226539, companyCode#1226540, address#1226541, mainDistributionChain#1226542, mainPurchasingOrganization#1226543, validPurchasingOrganizations#1226544, productGroup#1226545], false
(858) Repartition
Arguments: 37, true
(859) Project
Arguments: [internalUUID#1226535, address#1226541.timeZone.code AS timezonecode#1226546]
(860) Join
Arguments: LeftOuter, (plant#1226522 <=> internalUUID#1226535)
(861) Project
Arguments: [product#1226521, plant#1226522, orderDateTime#1226523, productPlant#1226533, internalUUID#1226535, CASE WHEN isnotnull(timezonecode#1226546) THEN timezonecode#1226546 ELSE UTC END AS timezonecode#1226547]
(862) Project
Arguments: [product#1226521, plant#1226522, orderDateTime#1226523, productPlant#1226533, timezonecode#1226547]
(863) LogicalRelation
Arguments: parquet, [systemId#1226548, internalUUID#1226549, id#1226550, displayId#1226551, name#1226552, baseUnitOfMeasure#1226553, unitOfMeasures#1226554, unitOfMeasureConversions#1226555, productionAspect#1226556, salesAspect#1226557, procurementAspect#1226558, productGroup#1226559], false
(864) Repartition
Arguments: 37, true
(865) Join
Arguments: LeftOuter, (product#1226521 = internalUUID#1226549)
(866) Project
Arguments: [product#1226521, plant#1226522, orderDateTime#1226523, productPlant#1226533, timezonecode#1226547, systemId#1226548, internalUUID#1226549, id#1226550, displayId#1226551, name#1226552, baseUnitOfMeasure#1226553, unitOfMeasures#1226554, unitOfMeasureConversions#1226555, productionAspect#1226556, salesAspect#1226557, procurementAspect#1226558, productGroup#1226559, filter(unitOfMeasureConversions#1226555, lambdafunction((((lambda u#1225669.measurementUnit1.code = productPlant#1226533.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1225669.measurementUnit1.internalRefUUID = productPlant#1226533.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1226553.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1226553.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1226560]
(867) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1226560.quantityNumerator), true, [quantityNumerator#1226561]
(868) Project
Arguments: [product#1226521, plant#1226522, orderDateTime#1226523, productPlant#1226533, timezonecode#1226547, systemId#1226548, internalUUID#1226549, id#1226550, displayId#1226551, name#1226552, baseUnitOfMeasure#1226553, unitOfMeasures#1226554, unitOfMeasureConversions#1226555, productionAspect#1226556, salesAspect#1226557, procurementAspect#1226558, productGroup#1226559, filteredUnitOfMeasureConversions#1226560, quantityNumerator#1226561]
(869) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1226560.quantityDenominator), true, [quantityDenominator#1226562]
(870) Project
Arguments: [product#1226521, plant#1226522, orderDateTime#1226523, productPlant#1226533, timezonecode#1226547, systemId#1226548, internalUUID#1226549, id#1226550, displayId#1226551, name#1226552, baseUnitOfMeasure#1226553, unitOfMeasures#1226554, unitOfMeasureConversions#1226555, productionAspect#1226556, salesAspect#1226557, procurementAspect#1226558, productGroup#1226559, filteredUnitOfMeasureConversions#1226560, quantityNumerator#1226561, quantityDenominator#1226562]
(871) Project
Arguments: [product#1226521, plant#1226522, orderDateTime#1226523, productPlant#1226533, timezonecode#1226547, systemId#1226548, internalUUID#1226549, id#1226550, displayId#1226551, name#1226552, baseUnitOfMeasure#1226553, unitOfMeasures#1226554, unitOfMeasureConversions#1226555, productionAspect#1226556, salesAspect#1226557, procurementAspect#1226558, productGroup#1226559, filteredUnitOfMeasureConversions#1226560, quantityNumerator#1226561, quantityDenominator#1226562, (cast(quantityNumerator#1226561 as double) / cast(quantityDenominator#1226562 as double)) AS outboundUnit#1226563]
(872) Project
Arguments: [product#1226521, plant#1226522, orderDateTime#1226523, productPlant#1226533, timezonecode#1226547, systemId#1226548, internalUUID#1226549, id#1226550, displayId#1226551, name#1226552, baseUnitOfMeasure#1226553, unitOfMeasures#1226554, unitOfMeasureConversions#1226555, productionAspect#1226556, salesAspect#1226557, procurementAspect#1226558, productGroup#1226559, filteredUnitOfMeasureConversions#1226560, quantityNumerator#1226561, quantityDenominator#1226562, CASE WHEN (isnull(outboundUnit#1226563) OR (outboundUnit#1226563 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1226563 END AS outboundUnit#1226564]
(873) Project
Arguments: [product#1226521, plant#1226522, orderDateTime#1226523, productPlant#1226533, timezonecode#1226547, outboundUnit#1226564]
(874) Project
Arguments: [plant#1226522]
(875) Deduplicate
Arguments: [plant#1226522]
(876) Join
Arguments: Inner, (plantUuid#1226518 = plant#1226522)
(877) Project
Arguments: [plantId#1226517, plantUuid#1226518, storageLocId#1226519, storageLocUuid#1226520]
(878) Project
Arguments: [plantId#1226517, plantUuid#1226518 AS plant#1226492, storageLocId#1226519, storageLocUuid#1226520]
(879) Join
Arguments: Inner, (plant#1229853 = plant#1226492)
(880) Project
Arguments: [plant#1229853, product#1229852, orderDateTime#1229854, productPlant#1229864, timezonecode#1229878, outboundUnit#1229895, stockDatetime#1230174, stockBatchQuantities#1230175, stockBatchShelfLifeEndDatetimes#1230176, dayBucketDemands#1230515, pointInTimeDemands#1230516, plantId#1226517, storageLocId#1226519, storageLocUuid#1226520, plant#1226492]
(881) LogicalRelation
Arguments: parquet, [systemId#1226453, internalUUID#1226454, id#1226455, displayId#1226456, supplier#1226457, type#1226458, status#1226459, isMarkedForDeletion#1226460, items#1226461], false
(882) Repartition
Arguments: 37, true
(883) Generate
Arguments: explode(items#1226461), false, [item#1226465]
(884) Project
Arguments: [id#1226455, internalUUID#1226454, isMarkedForDeletion#1226460, supplier#1226457.internalRefUUID AS supplierUuid#1226462, item#1226465]
(885) Filter
Arguments: (((NOT isMarkedForDeletion#1226460 AND NOT item#1226465.deletionIndicator) AND NOT item#1226465.completeIndicator) AND NOT item#1226465.returnIndicator)
(886) Project
Arguments: [id#1226455, internalUUID#1226454, supplierUuid#1226462, item#1226465.plant.internalRefUUID AS plant#1226470, item#1226465.product.internalRefUUID AS product#1226471, item#1226465.plant.id AS externalPlantId#1226472, item#1226465.product.id AS externalProductId#1226473, item#1226465.storageLocation.internalRefUUID AS storageLocUuid#1226474, item#1226465.quantityUnit.code AS quantityUom#1226475, item#1226465.quantityUnit.internalRefUUID AS quantityUomUuid#1226476, item#1226465.quantityNumerator AS quantityNumerator#1226477, item#1226465.quantityDenominator AS quantityDenominator#1226478, item#1226465.scheduleLines AS scheduleLines#1226479, item#1226465.confirmations AS confirmations#1226480]
(887) Join
Arguments: Inner, (((product#1229852 = product#1226471) AND (plant#1229853 = plant#1226470)) AND (storageLocUuid#1226520 = storageLocUuid#1226474))
(888) Project
Arguments: [product#1229852, plant#1229853, storageLocUuid#1226520, orderDateTime#1229854, productPlant#1229864, timezonecode#1229878, outboundUnit#1229895, stockDatetime#1230174, stockBatchQuantities#1230175, stockBatchShelfLifeEndDatetimes#1230176, dayBucketDemands#1230515, pointInTimeDemands#1230516, plantId#1226517, storageLocId#1226519, id#1226455, internalUUID#1226454, supplierUuid#1226462, externalPlantId#1226472, externalProductId#1226473, quantityUom#1226475, quantityUomUuid#1226476, quantityNumerator#1226477, quantityDenominator#1226478, scheduleLines#1226479, confirmations#1226480, ... 4 more fields]
(889) Project
Arguments: [id#1226455, internalUUID#1226454, supplierUuid#1226462, plant#1226470, product#1226471, externalPlantId#1226472, externalProductId#1226473, storageLocUuid#1226474, quantityUom#1226475, quantityUomUuid#1226476, quantityNumerator#1226477, quantityDenominator#1226478, scheduleLines#1226479, confirmations#1226480, stockDatetime#1230174, timezonecode#1229878]
(890) Project
Arguments: [id#1226455, internalUUID#1226454, supplierUuid#1226462, plant#1226470, product#1226471, externalPlantId#1226472, externalProductId#1226473, storageLocUuid#1226474, quantityUom#1226475, quantityUomUuid#1226476, quantityNumerator#1226477, quantityDenominator#1226478, scheduleLines#1226479, confirmations#1226480, stockDatetime#1230174, timezonecode#1229878, filter(confirmations#1226480, lambdafunction((((lambda x_149#1226571.deletionIndicator = false) AND (lambda x_149#1226571.isRelevantForConfirmation = true)) AND isnotnull(lambda x_149#1226571.confirmedDeliveryAt)), lambda x_149#1226571, false)) AS validConfirmations#1226570]
(891) Project
Arguments: [id#1226455, internalUUID#1226454, supplierUuid#1226462, plant#1226470, product#1226471, externalPlantId#1226472, externalProductId#1226473, storageLocUuid#1226474, quantityUom#1226475, quantityUomUuid#1226476, quantityNumerator#1226477, quantityDenominator#1226478, scheduleLines#1226479, confirmations#1226480, stockDatetime#1230174, timezonecode#1229878, validConfirmations#1226570, array_size(validConfirmations#1226570) AS _w0#1228785]
(892) Window
Arguments: [sum(_w0#1228785) windowspecdefinition(internalUUID#1226454, specifiedwindowframe(RowFrame, unboundedpreceding$(), unboundedfollowing$())) AS _we0#1228786L], [internalUUID#1226454]
(893) Project
Arguments: [id#1226455, internalUUID#1226454, supplierUuid#1226462, plant#1226470, product#1226471, externalPlantId#1226472, externalProductId#1226473, storageLocUuid#1226474, quantityUom#1226475, quantityUomUuid#1226476, quantityNumerator#1226477, quantityDenominator#1226478, scheduleLines#1226479, confirmations#1226480, stockDatetime#1230174, timezonecode#1229878, validConfirmations#1226570, _w0#1228785, _we0#1228786L, filter(transform(CASE WHEN (_we0#1228786L > cast(0 as bigint)) THEN transform(validConfirmations#1226570, lambdafunction(struct(openQty, greatest((lambda x_151#1228781.confirmedQuantity - coalesce(lambda x_151#1228781.mrpRelevantQuantity, 0.0)), 0.0), availabilityDatetime, lambda x_151#1228781.confirmedDeliveryAt), lambda x_151#1228781, false)) ELSE transform(scheduleLines#1226479, lambdafunction(struct(openQty, greatest((lambda x_150#1228782.quantity - coalesce(lambda x_150#1228782.receivedQuantity, 0.0)), 0.0), availabilityDatetime, lambda x_150#1228782.deliveryAt), lambda x_150#1228782, false)) END, lambdafunction(struct(documentId, id#1226455, documentUuid, internalUUID#1226454, openQty, lambda x_152#1228783.openQty, openQtyInBaseUnit, ((lambda x_152#1228783.openQty * quantityNumerator#1226477) / quantityDenominator#1226478), qtyUom, quantityUom#1226475, qtyUomUuid, quantityUomUuid#1226476, availabilityDatetime, lambda x_152#1228783.availabilityDatetime, shelfLifeEndDatetime, 2199-01-01 00:00:00), lambda x_152#1228783, false)), lambdafunction(NOT (lambda x_153#1228784.openQty = 0.0), lambda x_153#1228784, false)) AS openGoodsMovements#1228779]
(894) Project
Arguments: [id#1226455, internalUUID#1226454, supplierUuid#1226462, plant#1226470, product#1226471, externalPlantId#1226472, externalProductId#1226473, storageLocUuid#1226474, quantityUom#1226475, quantityUomUuid#1226476, quantityNumerator#1226477, quantityDenominator#1226478, scheduleLines#1226479, confirmations#1226480, stockDatetime#1230174, timezonecode#1229878, validConfirmations#1226570, openGoodsMovements#1228779]
(895) Aggregate
Arguments: [product#1226471, plant#1226470], [product#1226471, plant#1226470, flatten(collect_list(openGoodsMovements#1228779, 0, 0)) AS openGoodsMovements#1228787]
(896) Filter
Arguments: (array_size(openGoodsMovements#1228787) > 0)
(897) LogicalRelation
Arguments: parquet, [product#1229110, plant#1229111, orderDateTime#1229112, planningStartDateTime#1229113], false
(898) RepartitionByExpression
Arguments: [product#1229110, plant#1229111], 37
(899) Project
Arguments: [product#1229110, plant#1229111, orderDateTime#1229112]
(900) LogicalRelation
Arguments: parquet, [systemId#1229114, internalUUID#1229115, plant#1229116, product#1229117, blockedForReplenishmentStartingFrom#1229118, productionAspect#1229119, salesPlant#1229120, listing#1229121], false
(901) Repartition
Arguments: 37, true
(902) Project
Arguments: [systemId#1229114, internalUUID#1229115, plant#1229116, product#1229117, blockedForReplenishmentStartingFrom#1229118, productionAspect#1229119, salesPlant#1229120, listing#1229121, struct(systemId, systemId#1229114, internalUUID, internalUUID#1229115, plant, plant#1229116, product, product#1229117, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1229118, productionAspect, productionAspect#1229119, salesPlant, salesPlant#1229120, listing, listing#1229121) AS productPlant#1229122]
(903) Project
Arguments: [productPlant#1229122]
(904) Join
Arguments: LeftOuter, ((product#1229110 <=> productPlant#1229122.product.internalRefUUID) AND (plant#1229111 <=> productPlant#1229122.plant.internalRefUUID))
(905) Project
Arguments: [product#1229110, plant#1229111, orderDateTime#1229112, productPlant#1229122]
(906) SubqueryAlias
Arguments: wl
(907) LogicalRelation
Arguments: parquet, [systemId#1229123, internalUUID#1229124, id#1229125, displayId#1229126, name#1229127, category#1229128, companyCode#1229129, address#1229130, mainDistributionChain#1229131, mainPurchasingOrganization#1229132, validPurchasingOrganizations#1229133, productGroup#1229134], false
(908) Repartition
Arguments: 37, true
(909) Project
Arguments: [internalUUID#1229124, address#1229130.timeZone.code AS timezonecode#1229135]
(910) Join
Arguments: LeftOuter, (plant#1229111 <=> internalUUID#1229124)
(911) Project
Arguments: [product#1229110, plant#1229111, orderDateTime#1229112, productPlant#1229122, internalUUID#1229124, CASE WHEN isnotnull(timezonecode#1229135) THEN timezonecode#1229135 ELSE UTC END AS timezonecode#1229136]
(912) Project
Arguments: [product#1229110, plant#1229111, orderDateTime#1229112, productPlant#1229122, timezonecode#1229136]
(913) LogicalRelation
Arguments: parquet, [systemId#1229137, internalUUID#1229138, id#1229139, displayId#1229140, name#1229141, baseUnitOfMeasure#1229142, unitOfMeasures#1229143, unitOfMeasureConversions#1229144, productionAspect#1229145, salesAspect#1229146, procurementAspect#1229147, productGroup#1229148], false
(914) Repartition
Arguments: 37, true
(915) Join
Arguments: LeftOuter, (product#1229110 = internalUUID#1229138)
(916) Project
Arguments: [product#1229110, plant#1229111, orderDateTime#1229112, productPlant#1229122, timezonecode#1229136, systemId#1229137, internalUUID#1229138, id#1229139, displayId#1229140, name#1229141, baseUnitOfMeasure#1229142, unitOfMeasures#1229143, unitOfMeasureConversions#1229144, productionAspect#1229145, salesAspect#1229146, procurementAspect#1229147, productGroup#1229148, filter(unitOfMeasureConversions#1229144, lambdafunction((((lambda u#1225669.measurementUnit1.code = productPlant#1229122.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1225669.measurementUnit1.internalRefUUID = productPlant#1229122.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1229142.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1229142.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1229149]
(917) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1229149.quantityNumerator), true, [quantityNumerator#1229150]
(918) Project
Arguments: [product#1229110, plant#1229111, orderDateTime#1229112, productPlant#1229122, timezonecode#1229136, systemId#1229137, internalUUID#1229138, id#1229139, displayId#1229140, name#1229141, baseUnitOfMeasure#1229142, unitOfMeasures#1229143, unitOfMeasureConversions#1229144, productionAspect#1229145, salesAspect#1229146, procurementAspect#1229147, productGroup#1229148, filteredUnitOfMeasureConversions#1229149, quantityNumerator#1229150]
(919) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1229149.quantityDenominator), true, [quantityDenominator#1229151]
(920) Project
Arguments: [product#1229110, plant#1229111, orderDateTime#1229112, productPlant#1229122, timezonecode#1229136, systemId#1229137, internalUUID#1229138, id#1229139, displayId#1229140, name#1229141, baseUnitOfMeasure#1229142, unitOfMeasures#1229143, unitOfMeasureConversions#1229144, productionAspect#1229145, salesAspect#1229146, procurementAspect#1229147, productGroup#1229148, filteredUnitOfMeasureConversions#1229149, quantityNumerator#1229150, quantityDenominator#1229151]
(921) Project
Arguments: [product#1229110, plant#1229111, orderDateTime#1229112, productPlant#1229122, timezonecode#1229136, systemId#1229137, internalUUID#1229138, id#1229139, displayId#1229140, name#1229141, baseUnitOfMeasure#1229142, unitOfMeasures#1229143, unitOfMeasureConversions#1229144, productionAspect#1229145, salesAspect#1229146, procurementAspect#1229147, productGroup#1229148, filteredUnitOfMeasureConversions#1229149, quantityNumerator#1229150, quantityDenominator#1229151, (cast(quantityNumerator#1229150 as double) / cast(quantityDenominator#1229151 as double)) AS outboundUnit#1229152]
(922) Project
Arguments: [product#1229110, plant#1229111, orderDateTime#1229112, productPlant#1229122, timezonecode#1229136, systemId#1229137, internalUUID#1229138, id#1229139, displayId#1229140, name#1229141, baseUnitOfMeasure#1229142, unitOfMeasures#1229143, unitOfMeasureConversions#1229144, productionAspect#1229145, salesAspect#1229146, procurementAspect#1229147, productGroup#1229148, filteredUnitOfMeasureConversions#1229149, quantityNumerator#1229150, quantityDenominator#1229151, CASE WHEN (isnull(outboundUnit#1229152) OR (outboundUnit#1229152 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1229152 END AS outboundUnit#1229153]
(923) Project
Arguments: [product#1229110, plant#1229111, orderDateTime#1229112, productPlant#1229122, timezonecode#1229136, outboundUnit#1229153]
(924) LogicalRelation
Arguments: parquet, [systemId#1229154, internalUUID#1229155, product#1229156, plant#1229157, calculationDateTime#1229158, stockQuantities#1229159], false
(925) Repartition
Arguments: 37, true
(926) LogicalRelation
Arguments: parquet, [marketUnit#1229160, description#1229161, articleHierarchy#1229162, defaultCurrency#1229163, responsibilities#1229164, replenishmentTypes#1229165, distributionCenters#1229166, assignedArticleHierarchyNodes#1229167, minOrderQtySetting#1229168, listingCheck#1229169, odsSelection#1229170, demandProfiles#1229171, constraintProfiles#1229172, optimizationProfiles#1229173, orderGroupSplitProfiles#1229174, supplierMinimumProfiles#1229175, multipleRestrictionProfiles#1229176, preferredUomSource#1229177, handlingOfUnfulfilledDemands#1229178, negligibleQuantitiesThreshold#1229179, eventtype#1229180, minOrderQtySettingInternal#1229181], false
(927) Repartition
Arguments: 37, true
(928) Filter
Arguments: (marketUnit#1229160 <=> AUTO_MUV2)
(929) Project
Arguments: [marketUnit#1229160, description#1229161, articleHierarchy#1229162, defaultCurrency#1229163, responsibilities#1229164, replenishmentTypes#1229165, distributionCenters#1229166, assignedArticleHierarchyNodes#1229167, minOrderQtySetting#1229168, listingCheck#1229169, odsSelection#1229170, demandProfiles#1229171, constraintProfiles#1229172, optimizationProfiles#1229173, orderGroupSplitProfiles#1229174, supplierMinimumProfiles#1229175, multipleRestrictionProfiles#1229176, preferredUomSource#1229177, handlingOfUnfulfilledDemands#1229178, negligibleQuantitiesThreshold#1229179, eventtype#1229180, minOrderQtySettingInternal#1229181]
(930) Project
Arguments: [distributionCenters#1229166]
(931) Generate
Arguments: explode(distributionCenters#1229166), false, [distributionCenters#1229182]
(932) Project
Arguments: [distributionCenters#1229182]
(933) Generate
Arguments: explode(distributionCenters#1229182.storageLocations), false, [storageLocations#1229183]
(934) Project
Arguments: [distributionCenters#1229182.id AS plantId#1229184, distributionCenters#1229182.internalRefUUID AS plantUuid#1229185, storageLocations#1229183]
(935) Project
Arguments: [plantId#1229184, plantUuid#1229185, storageLocations#1229183.id AS storageLocId#1229186, storageLocations#1229183.internalRefUUID AS storageLocUuid#1229187]
(936) LogicalRelation
Arguments: parquet, [product#1229188, plant#1229189, orderDateTime#1229190, planningStartDateTime#1229191], false
(937) RepartitionByExpression
Arguments: [product#1229188, plant#1229189], 37
(938) Project
Arguments: [product#1229188, plant#1229189, orderDateTime#1229190]
(939) LogicalRelation
Arguments: parquet, [systemId#1229192, internalUUID#1229193, plant#1229194, product#1229195, blockedForReplenishmentStartingFrom#1229196, productionAspect#1229197, salesPlant#1229198, listing#1229199], false
(940) Repartition
Arguments: 37, true
(941) Project
Arguments: [systemId#1229192, internalUUID#1229193, plant#1229194, product#1229195, blockedForReplenishmentStartingFrom#1229196, productionAspect#1229197, salesPlant#1229198, listing#1229199, struct(systemId, systemId#1229192, internalUUID, internalUUID#1229193, plant, plant#1229194, product, product#1229195, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1229196, productionAspect, productionAspect#1229197, salesPlant, salesPlant#1229198, listing, listing#1229199) AS productPlant#1229200]
(942) Project
Arguments: [productPlant#1229200]
(943) Join
Arguments: LeftOuter, ((product#1229188 <=> productPlant#1229200.product.internalRefUUID) AND (plant#1229189 <=> productPlant#1229200.plant.internalRefUUID))
(944) Project
Arguments: [product#1229188, plant#1229189, orderDateTime#1229190, productPlant#1229200]
(945) SubqueryAlias
Arguments: wl
(946) LogicalRelation
Arguments: parquet, [systemId#1229201, internalUUID#1229202, id#1229203, displayId#1229204, name#1229205, category#1229206, companyCode#1229207, address#1229208, mainDistributionChain#1229209, mainPurchasingOrganization#1229210, validPurchasingOrganizations#1229211, productGroup#1229212], false
(947) Repartition
Arguments: 37, true
(948) Project
Arguments: [internalUUID#1229202, address#1229208.timeZone.code AS timezonecode#1229213]
(949) Join
Arguments: LeftOuter, (plant#1229189 <=> internalUUID#1229202)
(950) Project
Arguments: [product#1229188, plant#1229189, orderDateTime#1229190, productPlant#1229200, internalUUID#1229202, CASE WHEN isnotnull(timezonecode#1229213) THEN timezonecode#1229213 ELSE UTC END AS timezonecode#1229214]
(951) Project
Arguments: [product#1229188, plant#1229189, orderDateTime#1229190, productPlant#1229200, timezonecode#1229214]
(952) LogicalRelation
Arguments: parquet, [systemId#1229215, internalUUID#1229216, id#1229217, displayId#1229218, name#1229219, baseUnitOfMeasure#1229220, unitOfMeasures#1229221, unitOfMeasureConversions#1229222, productionAspect#1229223, salesAspect#1229224, procurementAspect#1229225, productGroup#1229226], false
(953) Repartition
Arguments: 37, true
(954) Join
Arguments: LeftOuter, (product#1229188 = internalUUID#1229216)
(955) Project
Arguments: [product#1229188, plant#1229189, orderDateTime#1229190, productPlant#1229200, timezonecode#1229214, systemId#1229215, internalUUID#1229216, id#1229217, displayId#1229218, name#1229219, baseUnitOfMeasure#1229220, unitOfMeasures#1229221, unitOfMeasureConversions#1229222, productionAspect#1229223, salesAspect#1229224, procurementAspect#1229225, productGroup#1229226, filter(unitOfMeasureConversions#1229222, lambdafunction((((lambda u#1225669.measurementUnit1.code = productPlant#1229200.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1225669.measurementUnit1.internalRefUUID = productPlant#1229200.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1229220.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1229220.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1229227]
(956) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1229227.quantityNumerator), true, [quantityNumerator#1229228]
(957) Project
Arguments: [product#1229188, plant#1229189, orderDateTime#1229190, productPlant#1229200, timezonecode#1229214, systemId#1229215, internalUUID#1229216, id#1229217, displayId#1229218, name#1229219, baseUnitOfMeasure#1229220, unitOfMeasures#1229221, unitOfMeasureConversions#1229222, productionAspect#1229223, salesAspect#1229224, procurementAspect#1229225, productGroup#1229226, filteredUnitOfMeasureConversions#1229227, quantityNumerator#1229228]
(958) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1229227.quantityDenominator), true, [quantityDenominator#1229229]
(959) Project
Arguments: [product#1229188, plant#1229189, orderDateTime#1229190, productPlant#1229200, timezonecode#1229214, systemId#1229215, internalUUID#1229216, id#1229217, displayId#1229218, name#1229219, baseUnitOfMeasure#1229220, unitOfMeasures#1229221, unitOfMeasureConversions#1229222, productionAspect#1229223, salesAspect#1229224, procurementAspect#1229225, productGroup#1229226, filteredUnitOfMeasureConversions#1229227, quantityNumerator#1229228, quantityDenominator#1229229]
(960) Project
Arguments: [product#1229188, plant#1229189, orderDateTime#1229190, productPlant#1229200, timezonecode#1229214, systemId#1229215, internalUUID#1229216, id#1229217, displayId#1229218, name#1229219, baseUnitOfMeasure#1229220, unitOfMeasures#1229221, unitOfMeasureConversions#1229222, productionAspect#1229223, salesAspect#1229224, procurementAspect#1229225, productGroup#1229226, filteredUnitOfMeasureConversions#1229227, quantityNumerator#1229228, quantityDenominator#1229229, (cast(quantityNumerator#1229228 as double) / cast(quantityDenominator#1229229 as double)) AS outboundUnit#1229230]
(961) Project
Arguments: [product#1229188, plant#1229189, orderDateTime#1229190, productPlant#1229200, timezonecode#1229214, systemId#1229215, internalUUID#1229216, id#1229217, displayId#1229218, name#1229219, baseUnitOfMeasure#1229220, unitOfMeasures#1229221, unitOfMeasureConversions#1229222, productionAspect#1229223, salesAspect#1229224, procurementAspect#1229225, productGroup#1229226, filteredUnitOfMeasureConversions#1229227, quantityNumerator#1229228, quantityDenominator#1229229, CASE WHEN (isnull(outboundUnit#1229230) OR (outboundUnit#1229230 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1229230 END AS outboundUnit#1229231]
(962) Project
Arguments: [product#1229188, plant#1229189, orderDateTime#1229190, productPlant#1229200, timezonecode#1229214, outboundUnit#1229231]
(963) Project
Arguments: [plant#1229189]
(964) Deduplicate
Arguments: [plant#1229189]
(965) Join
Arguments: Inner, (plantUuid#1229185 = plant#1229189)
(966) Project
Arguments: [plantId#1229184, plantUuid#1229185, storageLocId#1229186, storageLocUuid#1229187]
(967) Join
Arguments: Inner, (plant#1229157.internalRefUUID <=> plantUuid#1229185)
(968) Generate
Arguments: explode(filter(stockQuantities#1229159, lambdafunction(((lambda x#1225727.storageLocation.internalRefUuid = storageLocUuid#1229187) AND (lambda x#1225727.storageLocation.Id = storageLocId#1229186)), lambda x#1225727, false))), false, [stockQuantity#1229232]
(969) Project
Arguments: [systemId#1229154, internalUUID#1229155, product#1229156, plant#1229157, calculationDateTime#1229158, stockQuantities#1229159, plantId#1229184, plantUuid#1229185, storageLocId#1229186, storageLocUuid#1229187, stockQuantity#1229232]
(970) Aggregate
Arguments: [plantUuid#1229185, internalUUID#1229155, plant#1229157, product#1229156, systemId#1229154], [plantUuid#1229185, internalUUID#1229155, plant#1229157, product#1229156, systemId#1229154, first(calculationDateTime#1229158, false) AS calculationDateTime#1229233, collect_list(stockQuantity#1229232, 0, 0) AS stockQuantities#1229234]
(971) Project
Arguments: [systemId#1229154, internalUUID#1229155, product#1229156, plant#1229157, calculationDateTime#1229233, stockQuantities#1229234]
(972) Generate
Arguments: explode(stockQuantities#1229234), false, [stockQuantity#1229235]
(973) Project
Arguments: [systemId#1229154, internalUUID#1229155, product#1229156, plant#1229157, calculationDateTime#1229233, stockQuantities#1229234, stockQuantity#1229235]
(974) Project
Arguments: [plant#1229157.id AS plant#1229236, plant#1229157.internalRefUUID AS plantUuid#1229237, product#1229156.id AS product#1229238, product#1229156.internalRefUUID AS productUuid#1229239, calculationDateTime#1229233, stockQuantity#1229235.storagelocation.id AS storageLocId#1229240, stockQuantity#1229235.storagelocation.internalRefUUID AS storageLocUuid#1229241, stockQuantity#1229235.quantity.measure AS quantity#1229242, stockQuantity#1229235.specialStockIndicator.code AS specialStockIndicator#1229243, stockQuantity#1229235.stockType.code AS stockType#1229244]
(975) Filter
Arguments: ((specialStockIndicator#1229243 = ) AND (stockType#1229244 = 01))
(976) LogicalRelation
Arguments: parquet, [product#1229245, plant#1229246, orderDateTime#1229247, planningStartDateTime#1229248], false
(977) RepartitionByExpression
Arguments: [product#1229245, plant#1229246], 37
(978) Project
Arguments: [product#1229245, plant#1229246, orderDateTime#1229247]
(979) LogicalRelation
Arguments: parquet, [systemId#1229249, internalUUID#1229250, plant#1229251, product#1229252, blockedForReplenishmentStartingFrom#1229253, productionAspect#1229254, salesPlant#1229255, listing#1229256], false
(980) Repartition
Arguments: 37, true
(981) Project
Arguments: [systemId#1229249, internalUUID#1229250, plant#1229251, product#1229252, blockedForReplenishmentStartingFrom#1229253, productionAspect#1229254, salesPlant#1229255, listing#1229256, struct(systemId, systemId#1229249, internalUUID, internalUUID#1229250, plant, plant#1229251, product, product#1229252, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1229253, productionAspect, productionAspect#1229254, salesPlant, salesPlant#1229255, listing, listing#1229256) AS productPlant#1229257]
(982) Project
Arguments: [productPlant#1229257]
(983) Join
Arguments: LeftOuter, ((product#1229245 <=> productPlant#1229257.product.internalRefUUID) AND (plant#1229246 <=> productPlant#1229257.plant.internalRefUUID))
(984) Project
Arguments: [product#1229245, plant#1229246, orderDateTime#1229247, productPlant#1229257]
(985) SubqueryAlias
Arguments: wl
(986) LogicalRelation
Arguments: parquet, [systemId#1229258, internalUUID#1229259, id#1229260, displayId#1229261, name#1229262, category#1229263, companyCode#1229264, address#1229265, mainDistributionChain#1229266, mainPurchasingOrganization#1229267, validPurchasingOrganizations#1229268, productGroup#1229269], false
(987) Repartition
Arguments: 37, true
(988) Project
Arguments: [internalUUID#1229259, address#1229265.timeZone.code AS timezonecode#1229270]
(989) Join
Arguments: LeftOuter, (plant#1229246 <=> internalUUID#1229259)
(990) Project
Arguments: [product#1229245, plant#1229246, orderDateTime#1229247, productPlant#1229257, internalUUID#1229259, CASE WHEN isnotnull(timezonecode#1229270) THEN timezonecode#1229270 ELSE UTC END AS timezonecode#1229271]
(991) Project
Arguments: [product#1229245, plant#1229246, orderDateTime#1229247, productPlant#1229257, timezonecode#1229271]
(992) LogicalRelation
Arguments: parquet, [systemId#1229272, internalUUID#1229273, id#1229274, displayId#1229275, name#1229276, baseUnitOfMeasure#1229277, unitOfMeasures#1229278, unitOfMeasureConversions#1229279, productionAspect#1229280, salesAspect#1229281, procurementAspect#1229282, productGroup#1229283], false
(993) Repartition
Arguments: 37, true
(994) Join
Arguments: LeftOuter, (product#1229245 = internalUUID#1229273)
(995) Project
Arguments: [product#1229245, plant#1229246, orderDateTime#1229247, productPlant#1229257, timezonecode#1229271, systemId#1229272, internalUUID#1229273, id#1229274, displayId#1229275, name#1229276, baseUnitOfMeasure#1229277, unitOfMeasures#1229278, unitOfMeasureConversions#1229279, productionAspect#1229280, salesAspect#1229281, procurementAspect#1229282, productGroup#1229283, filter(unitOfMeasureConversions#1229279, lambdafunction((((lambda u#1225669.measurementUnit1.code = productPlant#1229257.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1225669.measurementUnit1.internalRefUUID = productPlant#1229257.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1229277.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1229277.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1229284]
(996) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1229284.quantityNumerator), true, [quantityNumerator#1229285]
(997) Project
Arguments: [product#1229245, plant#1229246, orderDateTime#1229247, productPlant#1229257, timezonecode#1229271, systemId#1229272, internalUUID#1229273, id#1229274, displayId#1229275, name#1229276, baseUnitOfMeasure#1229277, unitOfMeasures#1229278, unitOfMeasureConversions#1229279, productionAspect#1229280, salesAspect#1229281, procurementAspect#1229282, productGroup#1229283, filteredUnitOfMeasureConversions#1229284, quantityNumerator#1229285]
(998) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1229284.quantityDenominator), true, [quantityDenominator#1229286]
(999) Project
Arguments: [product#1229245, plant#1229246, orderDateTime#1229247, productPlant#1229257, timezonecode#1229271, systemId#1229272, internalUUID#1229273, id#1229274, displayId#1229275, name#1229276, baseUnitOfMeasure#1229277, unitOfMeasures#1229278, unitOfMeasureConversions#1229279, productionAspect#1229280, salesAspect#1229281, procurementAspect#1229282, productGroup#1229283, filteredUnitOfMeasureConversions#1229284, quantityNumerator#1229285, quantityDenominator#1229286]
(1000) Project
Arguments: [product#1229245, plant#1229246, orderDateTime#1229247, productPlant#1229257, timezonecode#1229271, systemId#1229272, internalUUID#1229273, id#1229274, displayId#1229275, name#1229276, baseUnitOfMeasure#1229277, unitOfMeasures#1229278, unitOfMeasureConversions#1229279, productionAspect#1229280, salesAspect#1229281, procurementAspect#1229282, productGroup#1229283, filteredUnitOfMeasureConversions#1229284, quantityNumerator#1229285, quantityDenominator#1229286, (cast(quantityNumerator#1229285 as double) / cast(quantityDenominator#1229286 as double)) AS outboundUnit#1229287]
(1001) Project
Arguments: [product#1229245, plant#1229246, orderDateTime#1229247, productPlant#1229257, timezonecode#1229271, systemId#1229272, internalUUID#1229273, id#1229274, displayId#1229275, name#1229276, baseUnitOfMeasure#1229277, unitOfMeasures#1229278, unitOfMeasureConversions#1229279, productionAspect#1229280, salesAspect#1229281, procurementAspect#1229282, productGroup#1229283, filteredUnitOfMeasureConversions#1229284, quantityNumerator#1229285, quantityDenominator#1229286, CASE WHEN (isnull(outboundUnit#1229287) OR (outboundUnit#1229287 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1229287 END AS outboundUnit#1229288]
(1002) Project
Arguments: [product#1229245, plant#1229246, orderDateTime#1229247, productPlant#1229257, timezonecode#1229271, outboundUnit#1229288]
(1003) Join
Arguments: Inner, ((plantUuid#1229237 = plant#1229246) AND (productUuid#1229239 = product#1229245))
(1004) Filter
Arguments: (calculationDateTime#1229233 <= orderDateTime#1229247)
(1005) Project
Arguments: [plantUuid#1229237 AS plant#1229289, productUuid#1229239 AS product#1229290, storageLocId#1229240, calculationDateTime#1229233, quantity#1229242]
(1006) LogicalRelation
Arguments: parquet, [systemId#1229291, internalUUID#1229292, product#1229293, plant#1229294, calculationDateTime#1229295, stockQuantities#1229296], false
(1007) Repartition
Arguments: 37, true
(1008) LogicalRelation
Arguments: parquet, [marketUnit#1229297, description#1229298, articleHierarchy#1229299, defaultCurrency#1229300, responsibilities#1229301, replenishmentTypes#1229302, distributionCenters#1229303, assignedArticleHierarchyNodes#1229304, minOrderQtySetting#1229305, listingCheck#1229306, odsSelection#1229307, demandProfiles#1229308, constraintProfiles#1229309, optimizationProfiles#1229310, orderGroupSplitProfiles#1229311, supplierMinimumProfiles#1229312, multipleRestrictionProfiles#1229313, preferredUomSource#1229314, handlingOfUnfulfilledDemands#1229315, negligibleQuantitiesThreshold#1229316, eventtype#1229317, minOrderQtySettingInternal#1229318], false
(1009) Repartition
Arguments: 37, true
(1010) Filter
Arguments: (marketUnit#1229297 <=> AUTO_MUV2)
(1011) Project
Arguments: [marketUnit#1229297, description#1229298, articleHierarchy#1229299, defaultCurrency#1229300, responsibilities#1229301, replenishmentTypes#1229302, distributionCenters#1229303, assignedArticleHierarchyNodes#1229304, minOrderQtySetting#1229305, listingCheck#1229306, odsSelection#1229307, demandProfiles#1229308, constraintProfiles#1229309, optimizationProfiles#1229310, orderGroupSplitProfiles#1229311, supplierMinimumProfiles#1229312, multipleRestrictionProfiles#1229313, preferredUomSource#1229314, handlingOfUnfulfilledDemands#1229315, negligibleQuantitiesThreshold#1229316, eventtype#1229317, minOrderQtySettingInternal#1229318]
(1012) Project
Arguments: [distributionCenters#1229303]
(1013) Generate
Arguments: explode(distributionCenters#1229303), false, [distributionCenters#1229319]
(1014) Project
Arguments: [distributionCenters#1229319]
(1015) Generate
Arguments: explode(distributionCenters#1229319.storageLocations), false, [storageLocations#1229320]
(1016) Project
Arguments: [distributionCenters#1229319.id AS plantId#1229321, distributionCenters#1229319.internalRefUUID AS plantUuid#1229322, storageLocations#1229320]
(1017) Project
Arguments: [plantId#1229321, plantUuid#1229322, storageLocations#1229320.id AS storageLocId#1229323, storageLocations#1229320.internalRefUUID AS storageLocUuid#1229324]
(1018) LogicalRelation
Arguments: parquet, [product#1229325, plant#1229326, orderDateTime#1229327, planningStartDateTime#1229328], false
(1019) RepartitionByExpression
Arguments: [product#1229325, plant#1229326], 37
(1020) Project
Arguments: [product#1229325, plant#1229326, orderDateTime#1229327]
(1021) LogicalRelation
Arguments: parquet, [systemId#1229329, internalUUID#1229330, plant#1229331, product#1229332, blockedForReplenishmentStartingFrom#1229333, productionAspect#1229334, salesPlant#1229335, listing#1229336], false
(1022) Repartition
Arguments: 37, true
(1023) Project
Arguments: [systemId#1229329, internalUUID#1229330, plant#1229331, product#1229332, blockedForReplenishmentStartingFrom#1229333, productionAspect#1229334, salesPlant#1229335, listing#1229336, struct(systemId, systemId#1229329, internalUUID, internalUUID#1229330, plant, plant#1229331, product, product#1229332, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1229333, productionAspect, productionAspect#1229334, salesPlant, salesPlant#1229335, listing, listing#1229336) AS productPlant#1229337]
(1024) Project
Arguments: [productPlant#1229337]
(1025) Join
Arguments: LeftOuter, ((product#1229325 <=> productPlant#1229337.product.internalRefUUID) AND (plant#1229326 <=> productPlant#1229337.plant.internalRefUUID))
(1026) Project
Arguments: [product#1229325, plant#1229326, orderDateTime#1229327, productPlant#1229337]
(1027) SubqueryAlias
Arguments: wl
(1028) LogicalRelation
Arguments: parquet, [systemId#1229338, internalUUID#1229339, id#1229340, displayId#1229341, name#1229342, category#1229343, companyCode#1229344, address#1229345, mainDistributionChain#1229346, mainPurchasingOrganization#1229347, validPurchasingOrganizations#1229348, productGroup#1229349], false
(1029) Repartition
Arguments: 37, true
(1030) Project
Arguments: [internalUUID#1229339, address#1229345.timeZone.code AS timezonecode#1229350]
(1031) Join
Arguments: LeftOuter, (plant#1229326 <=> internalUUID#1229339)
(1032) Project
Arguments: [product#1229325, plant#1229326, orderDateTime#1229327, productPlant#1229337, internalUUID#1229339, CASE WHEN isnotnull(timezonecode#1229350) THEN timezonecode#1229350 ELSE UTC END AS timezonecode#1229351]
(1033) Project
Arguments: [product#1229325, plant#1229326, orderDateTime#1229327, productPlant#1229337, timezonecode#1229351]
(1034) LogicalRelation
Arguments: parquet, [systemId#1229352, internalUUID#1229353, id#1229354, displayId#1229355, name#1229356, baseUnitOfMeasure#1229357, unitOfMeasures#1229358, unitOfMeasureConversions#1229359, productionAspect#1229360, salesAspect#1229361, procurementAspect#1229362, productGroup#1229363], false
(1035) Repartition
Arguments: 37, true
(1036) Join
Arguments: LeftOuter, (product#1229325 = internalUUID#1229353)
(1037) Project
Arguments: [product#1229325, plant#1229326, orderDateTime#1229327, productPlant#1229337, timezonecode#1229351, systemId#1229352, internalUUID#1229353, id#1229354, displayId#1229355, name#1229356, baseUnitOfMeasure#1229357, unitOfMeasures#1229358, unitOfMeasureConversions#1229359, productionAspect#1229360, salesAspect#1229361, procurementAspect#1229362, productGroup#1229363, filter(unitOfMeasureConversions#1229359, lambdafunction((((lambda u#1225669.measurementUnit1.code = productPlant#1229337.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1225669.measurementUnit1.internalRefUUID = productPlant#1229337.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1229357.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1229357.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1229364]
(1038) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1229364.quantityNumerator), true, [quantityNumerator#1229365]
(1039) Project
Arguments: [product#1229325, plant#1229326, orderDateTime#1229327, productPlant#1229337, timezonecode#1229351, systemId#1229352, internalUUID#1229353, id#1229354, displayId#1229355, name#1229356, baseUnitOfMeasure#1229357, unitOfMeasures#1229358, unitOfMeasureConversions#1229359, productionAspect#1229360, salesAspect#1229361, procurementAspect#1229362, productGroup#1229363, filteredUnitOfMeasureConversions#1229364, quantityNumerator#1229365]
(1040) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1229364.quantityDenominator), true, [quantityDenominator#1229366]
(1041) Project
Arguments: [product#1229325, plant#1229326, orderDateTime#1229327, productPlant#1229337, timezonecode#1229351, systemId#1229352, internalUUID#1229353, id#1229354, displayId#1229355, name#1229356, baseUnitOfMeasure#1229357, unitOfMeasures#1229358, unitOfMeasureConversions#1229359, productionAspect#1229360, salesAspect#1229361, procurementAspect#1229362, productGroup#1229363, filteredUnitOfMeasureConversions#1229364, quantityNumerator#1229365, quantityDenominator#1229366]
(1042) Project
Arguments: [product#1229325, plant#1229326, orderDateTime#1229327, productPlant#1229337, timezonecode#1229351, systemId#1229352, internalUUID#1229353, id#1229354, displayId#1229355, name#1229356, baseUnitOfMeasure#1229357, unitOfMeasures#1229358, unitOfMeasureConversions#1229359, productionAspect#1229360, salesAspect#1229361, procurementAspect#1229362, productGroup#1229363, filteredUnitOfMeasureConversions#1229364, quantityNumerator#1229365, quantityDenominator#1229366, (cast(quantityNumerator#1229365 as double) / cast(quantityDenominator#1229366 as double)) AS outboundUnit#1229367]
(1043) Project
Arguments: [product#1229325, plant#1229326, orderDateTime#1229327, productPlant#1229337, timezonecode#1229351, systemId#1229352, internalUUID#1229353, id#1229354, displayId#1229355, name#1229356, baseUnitOfMeasure#1229357, unitOfMeasures#1229358, unitOfMeasureConversions#1229359, productionAspect#1229360, salesAspect#1229361, procurementAspect#1229362, productGroup#1229363, filteredUnitOfMeasureConversions#1229364, quantityNumerator#1229365, quantityDenominator#1229366, CASE WHEN (isnull(outboundUnit#1229367) OR (outboundUnit#1229367 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1229367 END AS outboundUnit#1229368]
(1044) Project
Arguments: [product#1229325, plant#1229326, orderDateTime#1229327, productPlant#1229337, timezonecode#1229351, outboundUnit#1229368]
(1045) Project
Arguments: [plant#1229326]
(1046) Deduplicate
Arguments: [plant#1229326]
(1047) Join
Arguments: Inner, (plantUuid#1229322 = plant#1229326)
(1048) Project
Arguments: [plantId#1229321, plantUuid#1229322, storageLocId#1229323, storageLocUuid#1229324]
(1049) Join
Arguments: Inner, (plant#1229294.internalRefUUID <=> plantUuid#1229322)
(1050) Generate
Arguments: explode(filter(stockQuantities#1229296, lambdafunction(((lambda x#1225727.storageLocation.internalRefUuid = storageLocUuid#1229324) AND (lambda x#1225727.storageLocation.Id = storageLocId#1229323)), lambda x#1225727, false))), false, [stockQuantity#1229369]
(1051) Project
Arguments: [systemId#1229291, internalUUID#1229292, product#1229293, plant#1229294, calculationDateTime#1229295, stockQuantities#1229296, plantId#1229321, plantUuid#1229322, storageLocId#1229323, storageLocUuid#1229324, stockQuantity#1229369]
(1052) Aggregate
Arguments: [plantUuid#1229322, internalUUID#1229292, plant#1229294, product#1229293, systemId#1229291], [plantUuid#1229322, internalUUID#1229292, plant#1229294, product#1229293, systemId#1229291, first(calculationDateTime#1229295, false) AS calculationDateTime#1229370, collect_list(stockQuantity#1229369, 0, 0) AS stockQuantities#1229371]
(1053) Project
Arguments: [systemId#1229291, internalUUID#1229292, product#1229293, plant#1229294, calculationDateTime#1229370, stockQuantities#1229371]
(1054) Generate
Arguments: explode(stockQuantities#1229371), false, [stockQuantity#1229372]
(1055) Project
Arguments: [systemId#1229291, internalUUID#1229292, product#1229293, plant#1229294, calculationDateTime#1229370, stockQuantities#1229371, stockQuantity#1229372]
(1056) Project
Arguments: [plant#1229294.id AS plant#1229373, plant#1229294.internalRefUUID AS plantUuid#1229374, product#1229293.id AS product#1229375, product#1229293.internalRefUUID AS productUuid#1229376, calculationDateTime#1229370, stockQuantity#1229372.storagelocation.id AS storageLocId#1229377, stockQuantity#1229372.storagelocation.internalRefUUID AS storageLocUuid#1229378, stockQuantity#1229372.quantity.measure AS quantity#1229379, stockQuantity#1229372.specialStockIndicator.code AS specialStockIndicator#1229380, stockQuantity#1229372.stockType.code AS stockType#1229381]
(1057) Filter
Arguments: ((specialStockIndicator#1229380 = ) AND (stockType#1229381 = 01))
(1058) LogicalRelation
Arguments: parquet, [product#1229382, plant#1229383, orderDateTime#1229384, planningStartDateTime#1229385], false
(1059) RepartitionByExpression
Arguments: [product#1229382, plant#1229383], 37
(1060) Project
Arguments: [product#1229382, plant#1229383, orderDateTime#1229384]
(1061) LogicalRelation
Arguments: parquet, [systemId#1229386, internalUUID#1229387, plant#1229388, product#1229389, blockedForReplenishmentStartingFrom#1229390, productionAspect#1229391, salesPlant#1229392, listing#1229393], false
(1062) Repartition
Arguments: 37, true
(1063) Project
Arguments: [systemId#1229386, internalUUID#1229387, plant#1229388, product#1229389, blockedForReplenishmentStartingFrom#1229390, productionAspect#1229391, salesPlant#1229392, listing#1229393, struct(systemId, systemId#1229386, internalUUID, internalUUID#1229387, plant, plant#1229388, product, product#1229389, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1229390, productionAspect, productionAspect#1229391, salesPlant, salesPlant#1229392, listing, listing#1229393) AS productPlant#1229394]
(1064) Project
Arguments: [productPlant#1229394]
(1065) Join
Arguments: LeftOuter, ((product#1229382 <=> productPlant#1229394.product.internalRefUUID) AND (plant#1229383 <=> productPlant#1229394.plant.internalRefUUID))
(1066) Project
Arguments: [product#1229382, plant#1229383, orderDateTime#1229384, productPlant#1229394]
(1067) SubqueryAlias
Arguments: wl
(1068) LogicalRelation
Arguments: parquet, [systemId#1229395, internalUUID#1229396, id#1229397, displayId#1229398, name#1229399, category#1229400, companyCode#1229401, address#1229402, mainDistributionChain#1229403, mainPurchasingOrganization#1229404, validPurchasingOrganizations#1229405, productGroup#1229406], false
(1069) Repartition
Arguments: 37, true
(1070) Project
Arguments: [internalUUID#1229396, address#1229402.timeZone.code AS timezonecode#1229407]
(1071) Join
Arguments: LeftOuter, (plant#1229383 <=> internalUUID#1229396)
(1072) Project
Arguments: [product#1229382, plant#1229383, orderDateTime#1229384, productPlant#1229394, internalUUID#1229396, CASE WHEN isnotnull(timezonecode#1229407) THEN timezonecode#1229407 ELSE UTC END AS timezonecode#1229408]
(1073) Project
Arguments: [product#1229382, plant#1229383, orderDateTime#1229384, productPlant#1229394, timezonecode#1229408]
(1074) LogicalRelation
Arguments: parquet, [systemId#1229409, internalUUID#1229410, id#1229411, displayId#1229412, name#1229413, baseUnitOfMeasure#1229414, unitOfMeasures#1229415, unitOfMeasureConversions#1229416, productionAspect#1229417, salesAspect#1229418, procurementAspect#1229419, productGroup#1229420], false
(1075) Repartition
Arguments: 37, true
(1076) Join
Arguments: LeftOuter, (product#1229382 = internalUUID#1229410)
(1077) Project
Arguments: [product#1229382, plant#1229383, orderDateTime#1229384, productPlant#1229394, timezonecode#1229408, systemId#1229409, internalUUID#1229410, id#1229411, displayId#1229412, name#1229413, baseUnitOfMeasure#1229414, unitOfMeasures#1229415, unitOfMeasureConversions#1229416, productionAspect#1229417, salesAspect#1229418, procurementAspect#1229419, productGroup#1229420, filter(unitOfMeasureConversions#1229416, lambdafunction((((lambda u#1225669.measurementUnit1.code = productPlant#1229394.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1225669.measurementUnit1.internalRefUUID = productPlant#1229394.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1229414.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1229414.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1229421]
(1078) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1229421.quantityNumerator), true, [quantityNumerator#1229422]
(1079) Project
Arguments: [product#1229382, plant#1229383, orderDateTime#1229384, productPlant#1229394, timezonecode#1229408, systemId#1229409, internalUUID#1229410, id#1229411, displayId#1229412, name#1229413, baseUnitOfMeasure#1229414, unitOfMeasures#1229415, unitOfMeasureConversions#1229416, productionAspect#1229417, salesAspect#1229418, procurementAspect#1229419, productGroup#1229420, filteredUnitOfMeasureConversions#1229421, quantityNumerator#1229422]
(1080) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1229421.quantityDenominator), true, [quantityDenominator#1229423]
(1081) Project
Arguments: [product#1229382, plant#1229383, orderDateTime#1229384, productPlant#1229394, timezonecode#1229408, systemId#1229409, internalUUID#1229410, id#1229411, displayId#1229412, name#1229413, baseUnitOfMeasure#1229414, unitOfMeasures#1229415, unitOfMeasureConversions#1229416, productionAspect#1229417, salesAspect#1229418, procurementAspect#1229419, productGroup#1229420, filteredUnitOfMeasureConversions#1229421, quantityNumerator#1229422, quantityDenominator#1229423]
(1082) Project
Arguments: [product#1229382, plant#1229383, orderDateTime#1229384, productPlant#1229394, timezonecode#1229408, systemId#1229409, internalUUID#1229410, id#1229411, displayId#1229412, name#1229413, baseUnitOfMeasure#1229414, unitOfMeasures#1229415, unitOfMeasureConversions#1229416, productionAspect#1229417, salesAspect#1229418, procurementAspect#1229419, productGroup#1229420, filteredUnitOfMeasureConversions#1229421, quantityNumerator#1229422, quantityDenominator#1229423, (cast(quantityNumerator#1229422 as double) / cast(quantityDenominator#1229423 as double)) AS outboundUnit#1229424]
(1083) Project
Arguments: [product#1229382, plant#1229383, orderDateTime#1229384, productPlant#1229394, timezonecode#1229408, systemId#1229409, internalUUID#1229410, id#1229411, displayId#1229412, name#1229413, baseUnitOfMeasure#1229414, unitOfMeasures#1229415, unitOfMeasureConversions#1229416, productionAspect#1229417, salesAspect#1229418, procurementAspect#1229419, productGroup#1229420, filteredUnitOfMeasureConversions#1229421, quantityNumerator#1229422, quantityDenominator#1229423, CASE WHEN (isnull(outboundUnit#1229424) OR (outboundUnit#1229424 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1229424 END AS outboundUnit#1229425]
(1084) Project
Arguments: [product#1229382, plant#1229383, orderDateTime#1229384, productPlant#1229394, timezonecode#1229408, outboundUnit#1229425]
(1085) Join
Arguments: Inner, ((plantUuid#1229374 = plant#1229383) AND (productUuid#1229376 = product#1229382))
(1086) Filter
Arguments: (calculationDateTime#1229370 <= orderDateTime#1229384)
(1087) Project
Arguments: [plantUuid#1229374 AS plant#1229426, productUuid#1229376 AS product#1229427, storageLocId#1229377, calculationDateTime#1229370, quantity#1229379]
(1088) Aggregate
Arguments: [plant#1229426, product#1229427, storageLocId#1229377], [plant#1229426, product#1229427, storageLocId#1229377, max(calculationDateTime#1229370) AS max_calc_datetime#1229428]
(1089) Join
Arguments: Inner, ((((plant#1229289 <=> plant#1229426) AND (product#1229290 <=> product#1229427)) AND (storageLocId#1229240 <=> storageLocId#1229377)) AND (calculationDateTime#1229233 <=> max_calc_datetime#1229428))
(1090) Project
Arguments: [plant#1229289, product#1229290, storageLocId#1229240, calculationDateTime#1229233, quantity#1229242]
(1091) Aggregate
Arguments: [product#1229290, plant#1229289], [product#1229290, plant#1229289, sum(quantity#1229242) AS quantitySum#1229429, min(calculationDateTime#1229233) AS minCalculationDateTime#1229430]
(1092) Project
Arguments: [product#1229290, plant#1229289, quantitySum#1229429, minCalculationDateTime#1229430, round(quantitySum#1229429, 0) AS roundedQuantitySum#1229431]
(1093) Join
Arguments: LeftOuter, ((plant#1229111 = plant#1229289) AND (product#1229110 = product#1229290))
(1094) Project
Arguments: [product#1229110, plant#1229111, orderDateTime#1229112, productPlant#1229122, timezonecode#1229136, outboundUnit#1229153, roundedQuantitySum#1229431, minCalculationDateTime#1229430]
(1095) Project
Arguments: [product#1229110, plant#1229111, orderDateTime#1229112, productPlant#1229122, timezonecode#1229136, outboundUnit#1229153, roundedQuantitySum#1229431, minCalculationDateTime#1229430, CASE WHEN isnotnull(minCalculationDateTime#1229430) THEN minCalculationDateTime#1229430 ELSE orderDateTime#1229112 END AS stockDatetime#1229432]
(1096) Project
Arguments: [product#1229110, plant#1229111, orderDateTime#1229112, productPlant#1229122, timezonecode#1229136, outboundUnit#1229153, roundedQuantitySum#1229431, minCalculationDateTime#1229430, stockDatetime#1229432, CASE WHEN isnotnull(roundedQuantitySum#1229431) THEN array(roundedQuantitySum#1229431) ELSE array(0.0) END AS stockBatchQuantities#1229433]
(1097) Project
Arguments: [product#1229110, plant#1229111, orderDateTime#1229112, productPlant#1229122, timezonecode#1229136, outboundUnit#1229153, roundedQuantitySum#1229431, minCalculationDateTime#1229430, stockDatetime#1229432, stockBatchQuantities#1229433, array(2199-01-01 00:00:00) AS stockBatchShelfLifeEndDatetimes#1229434]
(1098) Project
Arguments: [product#1229110, plant#1229111, orderDateTime#1229112, productPlant#1229122, timezonecode#1229136, outboundUnit#1229153, roundedQuantitySum#1229431, stockDatetime#1229432, stockBatchQuantities#1229433, stockBatchShelfLifeEndDatetimes#1229434]
(1099) Project
Arguments: [product#1229110, plant#1229111, orderDateTime#1229112, productPlant#1229122, timezonecode#1229136, outboundUnit#1229153, stockDatetime#1229432, stockBatchQuantities#1229433, stockBatchShelfLifeEndDatetimes#1229434]
(1100) LogicalRelation
Arguments: parquet, [product#1229435, plant#1229436, orderDateTime#1229437, planningStartDateTime#1229438], false
(1101) RepartitionByExpression
Arguments: [product#1229435, plant#1229436], 37
(1102) Project
Arguments: [product#1229435, plant#1229436, orderDateTime#1229437]
(1103) LogicalRelation
Arguments: parquet, [systemId#1229439, internalUUID#1229440, plant#1229441, product#1229442, blockedForReplenishmentStartingFrom#1229443, productionAspect#1229444, salesPlant#1229445, listing#1229446], false
(1104) Repartition
Arguments: 37, true
(1105) Project
Arguments: [systemId#1229439, internalUUID#1229440, plant#1229441, product#1229442, blockedForReplenishmentStartingFrom#1229443, productionAspect#1229444, salesPlant#1229445, listing#1229446, struct(systemId, systemId#1229439, internalUUID, internalUUID#1229440, plant, plant#1229441, product, product#1229442, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1229443, productionAspect, productionAspect#1229444, salesPlant, salesPlant#1229445, listing, listing#1229446) AS productPlant#1229447]
(1106) Project
Arguments: [productPlant#1229447]
(1107) Join
Arguments: LeftOuter, ((product#1229435 <=> productPlant#1229447.product.internalRefUUID) AND (plant#1229436 <=> productPlant#1229447.plant.internalRefUUID))
(1108) Project
Arguments: [product#1229435, plant#1229436, orderDateTime#1229437, productPlant#1229447]
(1109) SubqueryAlias
Arguments: wl
(1110) LogicalRelation
Arguments: parquet, [systemId#1229448, internalUUID#1229449, id#1229450, displayId#1229451, name#1229452, category#1229453, companyCode#1229454, address#1229455, mainDistributionChain#1229456, mainPurchasingOrganization#1229457, validPurchasingOrganizations#1229458, productGroup#1229459], false
(1111) Repartition
Arguments: 37, true
(1112) Project
Arguments: [internalUUID#1229449, address#1229455.timeZone.code AS timezonecode#1229460]
(1113) Join
Arguments: LeftOuter, (plant#1229436 <=> internalUUID#1229449)
(1114) Project
Arguments: [product#1229435, plant#1229436, orderDateTime#1229437, productPlant#1229447, internalUUID#1229449, CASE WHEN isnotnull(timezonecode#1229460) THEN timezonecode#1229460 ELSE UTC END AS timezonecode#1229461]
(1115) Project
Arguments: [product#1229435, plant#1229436, orderDateTime#1229437, productPlant#1229447, timezonecode#1229461]
(1116) LogicalRelation
Arguments: parquet, [systemId#1229462, internalUUID#1229463, id#1229464, displayId#1229465, name#1229466, baseUnitOfMeasure#1229467, unitOfMeasures#1229468, unitOfMeasureConversions#1229469, productionAspect#1229470, salesAspect#1229471, procurementAspect#1229472, productGroup#1229473], false
(1117) Repartition
Arguments: 37, true
(1118) Join
Arguments: LeftOuter, (product#1229435 = internalUUID#1229463)
(1119) Project
Arguments: [product#1229435, plant#1229436, orderDateTime#1229437, productPlant#1229447, timezonecode#1229461, systemId#1229462, internalUUID#1229463, id#1229464, displayId#1229465, name#1229466, baseUnitOfMeasure#1229467, unitOfMeasures#1229468, unitOfMeasureConversions#1229469, productionAspect#1229470, salesAspect#1229471, procurementAspect#1229472, productGroup#1229473, filter(unitOfMeasureConversions#1229469, lambdafunction((((lambda u#1225669.measurementUnit1.code = productPlant#1229447.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1225669.measurementUnit1.internalRefUUID = productPlant#1229447.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1229467.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1229467.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1229474]
(1120) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1229474.quantityNumerator), true, [quantityNumerator#1229475]
(1121) Project
Arguments: [product#1229435, plant#1229436, orderDateTime#1229437, productPlant#1229447, timezonecode#1229461, systemId#1229462, internalUUID#1229463, id#1229464, displayId#1229465, name#1229466, baseUnitOfMeasure#1229467, unitOfMeasures#1229468, unitOfMeasureConversions#1229469, productionAspect#1229470, salesAspect#1229471, procurementAspect#1229472, productGroup#1229473, filteredUnitOfMeasureConversions#1229474, quantityNumerator#1229475]
(1122) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1229474.quantityDenominator), true, [quantityDenominator#1229476]
(1123) Project
Arguments: [product#1229435, plant#1229436, orderDateTime#1229437, productPlant#1229447, timezonecode#1229461, systemId#1229462, internalUUID#1229463, id#1229464, displayId#1229465, name#1229466, baseUnitOfMeasure#1229467, unitOfMeasures#1229468, unitOfMeasureConversions#1229469, productionAspect#1229470, salesAspect#1229471, procurementAspect#1229472, productGroup#1229473, filteredUnitOfMeasureConversions#1229474, quantityNumerator#1229475, quantityDenominator#1229476]
(1124) Project
Arguments: [product#1229435, plant#1229436, orderDateTime#1229437, productPlant#1229447, timezonecode#1229461, systemId#1229462, internalUUID#1229463, id#1229464, displayId#1229465, name#1229466, baseUnitOfMeasure#1229467, unitOfMeasures#1229468, unitOfMeasureConversions#1229469, productionAspect#1229470, salesAspect#1229471, procurementAspect#1229472, productGroup#1229473, filteredUnitOfMeasureConversions#1229474, quantityNumerator#1229475, quantityDenominator#1229476, (cast(quantityNumerator#1229475 as double) / cast(quantityDenominator#1229476 as double)) AS outboundUnit#1229477]
(1125) Project
Arguments: [product#1229435, plant#1229436, orderDateTime#1229437, productPlant#1229447, timezonecode#1229461, systemId#1229462, internalUUID#1229463, id#1229464, displayId#1229465, name#1229466, baseUnitOfMeasure#1229467, unitOfMeasures#1229468, unitOfMeasureConversions#1229469, productionAspect#1229470, salesAspect#1229471, procurementAspect#1229472, productGroup#1229473, filteredUnitOfMeasureConversions#1229474, quantityNumerator#1229475, quantityDenominator#1229476, CASE WHEN (isnull(outboundUnit#1229477) OR (outboundUnit#1229477 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1229477 END AS outboundUnit#1229478]
(1126) Project
Arguments: [product#1229435, plant#1229436, orderDateTime#1229437, productPlant#1229447, timezonecode#1229461, outboundUnit#1229478]
(1127) LogicalRelation
Arguments: parquet, [systemId#1229479, internalUUID#1229480, product#1229481, plant#1229482, calculationDateTime#1229483, stockQuantities#1229484], false
(1128) Repartition
Arguments: 37, true
(1129) LogicalRelation
Arguments: parquet, [marketUnit#1229485, description#1229486, articleHierarchy#1229487, defaultCurrency#1229488, responsibilities#1229489, replenishmentTypes#1229490, distributionCenters#1229491, assignedArticleHierarchyNodes#1229492, minOrderQtySetting#1229493, listingCheck#1229494, odsSelection#1229495, demandProfiles#1229496, constraintProfiles#1229497, optimizationProfiles#1229498, orderGroupSplitProfiles#1229499, supplierMinimumProfiles#1229500, multipleRestrictionProfiles#1229501, preferredUomSource#1229502, handlingOfUnfulfilledDemands#1229503, negligibleQuantitiesThreshold#1229504, eventtype#1229505, minOrderQtySettingInternal#1229506], false
(1130) Repartition
Arguments: 37, true
(1131) Filter
Arguments: (marketUnit#1229485 <=> AUTO_MUV2)
(1132) Project
Arguments: [marketUnit#1229485, description#1229486, articleHierarchy#1229487, defaultCurrency#1229488, responsibilities#1229489, replenishmentTypes#1229490, distributionCenters#1229491, assignedArticleHierarchyNodes#1229492, minOrderQtySetting#1229493, listingCheck#1229494, odsSelection#1229495, demandProfiles#1229496, constraintProfiles#1229497, optimizationProfiles#1229498, orderGroupSplitProfiles#1229499, supplierMinimumProfiles#1229500, multipleRestrictionProfiles#1229501, preferredUomSource#1229502, handlingOfUnfulfilledDemands#1229503, negligibleQuantitiesThreshold#1229504, eventtype#1229505, minOrderQtySettingInternal#1229506]
(1133) Project
Arguments: [distributionCenters#1229491]
(1134) Generate
Arguments: explode(distributionCenters#1229491), false, [distributionCenters#1229507]
(1135) Project
Arguments: [distributionCenters#1229507]
(1136) Generate
Arguments: explode(distributionCenters#1229507.storageLocations), false, [storageLocations#1229508]
(1137) Project
Arguments: [distributionCenters#1229507.id AS plantId#1229509, distributionCenters#1229507.internalRefUUID AS plantUuid#1229510, storageLocations#1229508]
(1138) Project
Arguments: [plantId#1229509, plantUuid#1229510, storageLocations#1229508.id AS storageLocId#1229511, storageLocations#1229508.internalRefUUID AS storageLocUuid#1229512]
(1139) LogicalRelation
Arguments: parquet, [product#1229513, plant#1229514, orderDateTime#1229515, planningStartDateTime#1229516], false
(1140) RepartitionByExpression
Arguments: [product#1229513, plant#1229514], 37
(1141) Project
Arguments: [product#1229513, plant#1229514, orderDateTime#1229515]
(1142) LogicalRelation
Arguments: parquet, [systemId#1229517, internalUUID#1229518, plant#1229519, product#1229520, blockedForReplenishmentStartingFrom#1229521, productionAspect#1229522, salesPlant#1229523, listing#1229524], false
(1143) Repartition
Arguments: 37, true
(1144) Project
Arguments: [systemId#1229517, internalUUID#1229518, plant#1229519, product#1229520, blockedForReplenishmentStartingFrom#1229521, productionAspect#1229522, salesPlant#1229523, listing#1229524, struct(systemId, systemId#1229517, internalUUID, internalUUID#1229518, plant, plant#1229519, product, product#1229520, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1229521, productionAspect, productionAspect#1229522, salesPlant, salesPlant#1229523, listing, listing#1229524) AS productPlant#1229525]
(1145) Project
Arguments: [productPlant#1229525]
(1146) Join
Arguments: LeftOuter, ((product#1229513 <=> productPlant#1229525.product.internalRefUUID) AND (plant#1229514 <=> productPlant#1229525.plant.internalRefUUID))
(1147) Project
Arguments: [product#1229513, plant#1229514, orderDateTime#1229515, productPlant#1229525]
(1148) SubqueryAlias
Arguments: wl
(1149) LogicalRelation
Arguments: parquet, [systemId#1229526, internalUUID#1229527, id#1229528, displayId#1229529, name#1229530, category#1229531, companyCode#1229532, address#1229533, mainDistributionChain#1229534, mainPurchasingOrganization#1229535, validPurchasingOrganizations#1229536, productGroup#1229537], false
(1150) Repartition
Arguments: 37, true
(1151) Project
Arguments: [internalUUID#1229527, address#1229533.timeZone.code AS timezonecode#1229538]
(1152) Join
Arguments: LeftOuter, (plant#1229514 <=> internalUUID#1229527)
(1153) Project
Arguments: [product#1229513, plant#1229514, orderDateTime#1229515, productPlant#1229525, internalUUID#1229527, CASE WHEN isnotnull(timezonecode#1229538) THEN timezonecode#1229538 ELSE UTC END AS timezonecode#1229539]
(1154) Project
Arguments: [product#1229513, plant#1229514, orderDateTime#1229515, productPlant#1229525, timezonecode#1229539]
(1155) LogicalRelation
Arguments: parquet, [systemId#1229540, internalUUID#1229541, id#1229542, displayId#1229543, name#1229544, baseUnitOfMeasure#1229545, unitOfMeasures#1229546, unitOfMeasureConversions#1229547, productionAspect#1229548, salesAspect#1229549, procurementAspect#1229550, productGroup#1229551], false
(1156) Repartition
Arguments: 37, true
(1157) Join
Arguments: LeftOuter, (product#1229513 = internalUUID#1229541)
(1158) Project
Arguments: [product#1229513, plant#1229514, orderDateTime#1229515, productPlant#1229525, timezonecode#1229539, systemId#1229540, internalUUID#1229541, id#1229542, displayId#1229543, name#1229544, baseUnitOfMeasure#1229545, unitOfMeasures#1229546, unitOfMeasureConversions#1229547, productionAspect#1229548, salesAspect#1229549, procurementAspect#1229550, productGroup#1229551, filter(unitOfMeasureConversions#1229547, lambdafunction((((lambda u#1225669.measurementUnit1.code = productPlant#1229525.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1225669.measurementUnit1.internalRefUUID = productPlant#1229525.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1229545.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1229545.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1229552]
(1159) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1229552.quantityNumerator), true, [quantityNumerator#1229553]
(1160) Project
Arguments: [product#1229513, plant#1229514, orderDateTime#1229515, productPlant#1229525, timezonecode#1229539, systemId#1229540, internalUUID#1229541, id#1229542, displayId#1229543, name#1229544, baseUnitOfMeasure#1229545, unitOfMeasures#1229546, unitOfMeasureConversions#1229547, productionAspect#1229548, salesAspect#1229549, procurementAspect#1229550, productGroup#1229551, filteredUnitOfMeasureConversions#1229552, quantityNumerator#1229553]
(1161) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1229552.quantityDenominator), true, [quantityDenominator#1229554]
(1162) Project
Arguments: [product#1229513, plant#1229514, orderDateTime#1229515, productPlant#1229525, timezonecode#1229539, systemId#1229540, internalUUID#1229541, id#1229542, displayId#1229543, name#1229544, baseUnitOfMeasure#1229545, unitOfMeasures#1229546, unitOfMeasureConversions#1229547, productionAspect#1229548, salesAspect#1229549, procurementAspect#1229550, productGroup#1229551, filteredUnitOfMeasureConversions#1229552, quantityNumerator#1229553, quantityDenominator#1229554]
(1163) Project
Arguments: [product#1229513, plant#1229514, orderDateTime#1229515, productPlant#1229525, timezonecode#1229539, systemId#1229540, internalUUID#1229541, id#1229542, displayId#1229543, name#1229544, baseUnitOfMeasure#1229545, unitOfMeasures#1229546, unitOfMeasureConversions#1229547, productionAspect#1229548, salesAspect#1229549, procurementAspect#1229550, productGroup#1229551, filteredUnitOfMeasureConversions#1229552, quantityNumerator#1229553, quantityDenominator#1229554, (cast(quantityNumerator#1229553 as double) / cast(quantityDenominator#1229554 as double)) AS outboundUnit#1229555]
(1164) Project
Arguments: [product#1229513, plant#1229514, orderDateTime#1229515, productPlant#1229525, timezonecode#1229539, systemId#1229540, internalUUID#1229541, id#1229542, displayId#1229543, name#1229544, baseUnitOfMeasure#1229545, unitOfMeasures#1229546, unitOfMeasureConversions#1229547, productionAspect#1229548, salesAspect#1229549, procurementAspect#1229550, productGroup#1229551, filteredUnitOfMeasureConversions#1229552, quantityNumerator#1229553, quantityDenominator#1229554, CASE WHEN (isnull(outboundUnit#1229555) OR (outboundUnit#1229555 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1229555 END AS outboundUnit#1229556]
(1165) Project
Arguments: [product#1229513, plant#1229514, orderDateTime#1229515, productPlant#1229525, timezonecode#1229539, outboundUnit#1229556]
(1166) Project
Arguments: [plant#1229514]
(1167) Deduplicate
Arguments: [plant#1229514]
(1168) Join
Arguments: Inner, (plantUuid#1229510 = plant#1229514)
(1169) Project
Arguments: [plantId#1229509, plantUuid#1229510, storageLocId#1229511, storageLocUuid#1229512]
(1170) Join
Arguments: Inner, (plant#1229482.internalRefUUID <=> plantUuid#1229510)
(1171) Generate
Arguments: explode(filter(stockQuantities#1229484, lambdafunction(((lambda x#1225727.storageLocation.internalRefUuid = storageLocUuid#1229512) AND (lambda x#1225727.storageLocation.Id = storageLocId#1229511)), lambda x#1225727, false))), false, [stockQuantity#1229557]
(1172) Project
Arguments: [systemId#1229479, internalUUID#1229480, product#1229481, plant#1229482, calculationDateTime#1229483, stockQuantities#1229484, plantId#1229509, plantUuid#1229510, storageLocId#1229511, storageLocUuid#1229512, stockQuantity#1229557]
(1173) Aggregate
Arguments: [plantUuid#1229510, internalUUID#1229480, plant#1229482, product#1229481, systemId#1229479], [plantUuid#1229510, internalUUID#1229480, plant#1229482, product#1229481, systemId#1229479, first(calculationDateTime#1229483, false) AS calculationDateTime#1229558, collect_list(stockQuantity#1229557, 0, 0) AS stockQuantities#1229559]
(1174) Project
Arguments: [systemId#1229479, internalUUID#1229480, product#1229481, plant#1229482, calculationDateTime#1229558, stockQuantities#1229559]
(1175) Generate
Arguments: explode(stockQuantities#1229559), false, [stockQuantity#1229560]
(1176) Project
Arguments: [systemId#1229479, internalUUID#1229480, product#1229481, plant#1229482, calculationDateTime#1229558, stockQuantities#1229559, stockQuantity#1229560]
(1177) Project
Arguments: [plant#1229482.id AS plant#1229561, plant#1229482.internalRefUUID AS plantUuid#1229562, product#1229481.id AS product#1229563, product#1229481.internalRefUUID AS productUuid#1229564, calculationDateTime#1229558, stockQuantity#1229560.storagelocation.id AS storageLocId#1229565, stockQuantity#1229560.storagelocation.internalRefUUID AS storageLocUuid#1229566, stockQuantity#1229560.quantity.measure AS quantity#1229567, stockQuantity#1229560.specialStockIndicator.code AS specialStockIndicator#1229568, stockQuantity#1229560.stockType.code AS stockType#1229569]
(1178) Filter
Arguments: ((specialStockIndicator#1229568 = ) AND (stockType#1229569 = 01))
(1179) LogicalRelation
Arguments: parquet, [product#1229570, plant#1229571, orderDateTime#1229572, planningStartDateTime#1229573], false
(1180) RepartitionByExpression
Arguments: [product#1229570, plant#1229571], 37
(1181) Project
Arguments: [product#1229570, plant#1229571, orderDateTime#1229572]
(1182) LogicalRelation
Arguments: parquet, [systemId#1229574, internalUUID#1229575, plant#1229576, product#1229577, blockedForReplenishmentStartingFrom#1229578, productionAspect#1229579, salesPlant#1229580, listing#1229581], false
(1183) Repartition
Arguments: 37, true
(1184) Project
Arguments: [systemId#1229574, internalUUID#1229575, plant#1229576, product#1229577, blockedForReplenishmentStartingFrom#1229578, productionAspect#1229579, salesPlant#1229580, listing#1229581, struct(systemId, systemId#1229574, internalUUID, internalUUID#1229575, plant, plant#1229576, product, product#1229577, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1229578, productionAspect, productionAspect#1229579, salesPlant, salesPlant#1229580, listing, listing#1229581) AS productPlant#1229582]
(1185) Project
Arguments: [productPlant#1229582]
(1186) Join
Arguments: LeftOuter, ((product#1229570 <=> productPlant#1229582.product.internalRefUUID) AND (plant#1229571 <=> productPlant#1229582.plant.internalRefUUID))
(1187) Project
Arguments: [product#1229570, plant#1229571, orderDateTime#1229572, productPlant#1229582]
(1188) SubqueryAlias
Arguments: wl
(1189) LogicalRelation
Arguments: parquet, [systemId#1229583, internalUUID#1229584, id#1229585, displayId#1229586, name#1229587, category#1229588, companyCode#1229589, address#1229590, mainDistributionChain#1229591, mainPurchasingOrganization#1229592, validPurchasingOrganizations#1229593, productGroup#1229594], false
(1190) Repartition
Arguments: 37, true
(1191) Project
Arguments: [internalUUID#1229584, address#1229590.timeZone.code AS timezonecode#1229595]
(1192) Join
Arguments: LeftOuter, (plant#1229571 <=> internalUUID#1229584)
(1193) Project
Arguments: [product#1229570, plant#1229571, orderDateTime#1229572, productPlant#1229582, internalUUID#1229584, CASE WHEN isnotnull(timezonecode#1229595) THEN timezonecode#1229595 ELSE UTC END AS timezonecode#1229596]
(1194) Project
Arguments: [product#1229570, plant#1229571, orderDateTime#1229572, productPlant#1229582, timezonecode#1229596]
(1195) LogicalRelation
Arguments: parquet, [systemId#1229597, internalUUID#1229598, id#1229599, displayId#1229600, name#1229601, baseUnitOfMeasure#1229602, unitOfMeasures#1229603, unitOfMeasureConversions#1229604, productionAspect#1229605, salesAspect#1229606, procurementAspect#1229607, productGroup#1229608], false
(1196) Repartition
Arguments: 37, true
(1197) Join
Arguments: LeftOuter, (product#1229570 = internalUUID#1229598)
(1198) Project
Arguments: [product#1229570, plant#1229571, orderDateTime#1229572, productPlant#1229582, timezonecode#1229596, systemId#1229597, internalUUID#1229598, id#1229599, displayId#1229600, name#1229601, baseUnitOfMeasure#1229602, unitOfMeasures#1229603, unitOfMeasureConversions#1229604, productionAspect#1229605, salesAspect#1229606, procurementAspect#1229607, productGroup#1229608, filter(unitOfMeasureConversions#1229604, lambdafunction((((lambda u#1225669.measurementUnit1.code = productPlant#1229582.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1225669.measurementUnit1.internalRefUUID = productPlant#1229582.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1229602.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1229602.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1229609]
(1199) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1229609.quantityNumerator), true, [quantityNumerator#1229610]
(1200) Project
Arguments: [product#1229570, plant#1229571, orderDateTime#1229572, productPlant#1229582, timezonecode#1229596, systemId#1229597, internalUUID#1229598, id#1229599, displayId#1229600, name#1229601, baseUnitOfMeasure#1229602, unitOfMeasures#1229603, unitOfMeasureConversions#1229604, productionAspect#1229605, salesAspect#1229606, procurementAspect#1229607, productGroup#1229608, filteredUnitOfMeasureConversions#1229609, quantityNumerator#1229610]
(1201) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1229609.quantityDenominator), true, [quantityDenominator#1229611]
(1202) Project
Arguments: [product#1229570, plant#1229571, orderDateTime#1229572, productPlant#1229582, timezonecode#1229596, systemId#1229597, internalUUID#1229598, id#1229599, displayId#1229600, name#1229601, baseUnitOfMeasure#1229602, unitOfMeasures#1229603, unitOfMeasureConversions#1229604, productionAspect#1229605, salesAspect#1229606, procurementAspect#1229607, productGroup#1229608, filteredUnitOfMeasureConversions#1229609, quantityNumerator#1229610, quantityDenominator#1229611]
(1203) Project
Arguments: [product#1229570, plant#1229571, orderDateTime#1229572, productPlant#1229582, timezonecode#1229596, systemId#1229597, internalUUID#1229598, id#1229599, displayId#1229600, name#1229601, baseUnitOfMeasure#1229602, unitOfMeasures#1229603, unitOfMeasureConversions#1229604, productionAspect#1229605, salesAspect#1229606, procurementAspect#1229607, productGroup#1229608, filteredUnitOfMeasureConversions#1229609, quantityNumerator#1229610, quantityDenominator#1229611, (cast(quantityNumerator#1229610 as double) / cast(quantityDenominator#1229611 as double)) AS outboundUnit#1229612]
(1204) Project
Arguments: [product#1229570, plant#1229571, orderDateTime#1229572, productPlant#1229582, timezonecode#1229596, systemId#1229597, internalUUID#1229598, id#1229599, displayId#1229600, name#1229601, baseUnitOfMeasure#1229602, unitOfMeasures#1229603, unitOfMeasureConversions#1229604, productionAspect#1229605, salesAspect#1229606, procurementAspect#1229607, productGroup#1229608, filteredUnitOfMeasureConversions#1229609, quantityNumerator#1229610, quantityDenominator#1229611, CASE WHEN (isnull(outboundUnit#1229612) OR (outboundUnit#1229612 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1229612 END AS outboundUnit#1229613]
(1205) Project
Arguments: [product#1229570, plant#1229571, orderDateTime#1229572, productPlant#1229582, timezonecode#1229596, outboundUnit#1229613]
(1206) Join
Arguments: Inner, ((plantUuid#1229562 = plant#1229571) AND (productUuid#1229564 = product#1229570))
(1207) Filter
Arguments: (calculationDateTime#1229558 <= orderDateTime#1229572)
(1208) Project
Arguments: [plantUuid#1229562 AS plant#1229614, productUuid#1229564 AS product#1229615, storageLocId#1229565, calculationDateTime#1229558, quantity#1229567]
(1209) LogicalRelation
Arguments: parquet, [systemId#1229616, internalUUID#1229617, product#1229618, plant#1229619, calculationDateTime#1229620, stockQuantities#1229621], false
(1210) Repartition
Arguments: 37, true
(1211) LogicalRelation
Arguments: parquet, [marketUnit#1229622, description#1229623, articleHierarchy#1229624, defaultCurrency#1229625, responsibilities#1229626, replenishmentTypes#1229627, distributionCenters#1229628, assignedArticleHierarchyNodes#1229629, minOrderQtySetting#1229630, listingCheck#1229631, odsSelection#1229632, demandProfiles#1229633, constraintProfiles#1229634, optimizationProfiles#1229635, orderGroupSplitProfiles#1229636, supplierMinimumProfiles#1229637, multipleRestrictionProfiles#1229638, preferredUomSource#1229639, handlingOfUnfulfilledDemands#1229640, negligibleQuantitiesThreshold#1229641, eventtype#1229642, minOrderQtySettingInternal#1229643], false
(1212) Repartition
Arguments: 37, true
(1213) Filter
Arguments: (marketUnit#1229622 <=> AUTO_MUV2)
(1214) Project
Arguments: [marketUnit#1229622, description#1229623, articleHierarchy#1229624, defaultCurrency#1229625, responsibilities#1229626, replenishmentTypes#1229627, distributionCenters#1229628, assignedArticleHierarchyNodes#1229629, minOrderQtySetting#1229630, listingCheck#1229631, odsSelection#1229632, demandProfiles#1229633, constraintProfiles#1229634, optimizationProfiles#1229635, orderGroupSplitProfiles#1229636, supplierMinimumProfiles#1229637, multipleRestrictionProfiles#1229638, preferredUomSource#1229639, handlingOfUnfulfilledDemands#1229640, negligibleQuantitiesThreshold#1229641, eventtype#1229642, minOrderQtySettingInternal#1229643]
(1215) Project
Arguments: [distributionCenters#1229628]
(1216) Generate
Arguments: explode(distributionCenters#1229628), false, [distributionCenters#1229644]
(1217) Project
Arguments: [distributionCenters#1229644]
(1218) Generate
Arguments: explode(distributionCenters#1229644.storageLocations), false, [storageLocations#1229645]
(1219) Project
Arguments: [distributionCenters#1229644.id AS plantId#1229646, distributionCenters#1229644.internalRefUUID AS plantUuid#1229647, storageLocations#1229645]
(1220) Project
Arguments: [plantId#1229646, plantUuid#1229647, storageLocations#1229645.id AS storageLocId#1229648, storageLocations#1229645.internalRefUUID AS storageLocUuid#1229649]
(1221) LogicalRelation
Arguments: parquet, [product#1229650, plant#1229651, orderDateTime#1229652, planningStartDateTime#1229653], false
(1222) RepartitionByExpression
Arguments: [product#1229650, plant#1229651], 37
(1223) Project
Arguments: [product#1229650, plant#1229651, orderDateTime#1229652]
(1224) LogicalRelation
Arguments: parquet, [systemId#1229654, internalUUID#1229655, plant#1229656, product#1229657, blockedForReplenishmentStartingFrom#1229658, productionAspect#1229659, salesPlant#1229660, listing#1229661], false
(1225) Repartition
Arguments: 37, true
(1226) Project
Arguments: [systemId#1229654, internalUUID#1229655, plant#1229656, product#1229657, blockedForReplenishmentStartingFrom#1229658, productionAspect#1229659, salesPlant#1229660, listing#1229661, struct(systemId, systemId#1229654, internalUUID, internalUUID#1229655, plant, plant#1229656, product, product#1229657, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1229658, productionAspect, productionAspect#1229659, salesPlant, salesPlant#1229660, listing, listing#1229661) AS productPlant#1229662]
(1227) Project
Arguments: [productPlant#1229662]
(1228) Join
Arguments: LeftOuter, ((product#1229650 <=> productPlant#1229662.product.internalRefUUID) AND (plant#1229651 <=> productPlant#1229662.plant.internalRefUUID))
(1229) Project
Arguments: [product#1229650, plant#1229651, orderDateTime#1229652, productPlant#1229662]
(1230) SubqueryAlias
Arguments: wl
(1231) LogicalRelation
Arguments: parquet, [systemId#1229663, internalUUID#1229664, id#1229665, displayId#1229666, name#1229667, category#1229668, companyCode#1229669, address#1229670, mainDistributionChain#1229671, mainPurchasingOrganization#1229672, validPurchasingOrganizations#1229673, productGroup#1229674], false
(1232) Repartition
Arguments: 37, true
(1233) Project
Arguments: [internalUUID#1229664, address#1229670.timeZone.code AS timezonecode#1229675]
(1234) Join
Arguments: LeftOuter, (plant#1229651 <=> internalUUID#1229664)
(1235) Project
Arguments: [product#1229650, plant#1229651, orderDateTime#1229652, productPlant#1229662, internalUUID#1229664, CASE WHEN isnotnull(timezonecode#1229675) THEN timezonecode#1229675 ELSE UTC END AS timezonecode#1229676]
(1236) Project
Arguments: [product#1229650, plant#1229651, orderDateTime#1229652, productPlant#1229662, timezonecode#1229676]
(1237) LogicalRelation
Arguments: parquet, [systemId#1229677, internalUUID#1229678, id#1229679, displayId#1229680, name#1229681, baseUnitOfMeasure#1229682, unitOfMeasures#1229683, unitOfMeasureConversions#1229684, productionAspect#1229685, salesAspect#1229686, procurementAspect#1229687, productGroup#1229688], false
(1238) Repartition
Arguments: 37, true
(1239) Join
Arguments: LeftOuter, (product#1229650 = internalUUID#1229678)
(1240) Project
Arguments: [product#1229650, plant#1229651, orderDateTime#1229652, productPlant#1229662, timezonecode#1229676, systemId#1229677, internalUUID#1229678, id#1229679, displayId#1229680, name#1229681, baseUnitOfMeasure#1229682, unitOfMeasures#1229683, unitOfMeasureConversions#1229684, productionAspect#1229685, salesAspect#1229686, procurementAspect#1229687, productGroup#1229688, filter(unitOfMeasureConversions#1229684, lambdafunction((((lambda u#1225669.measurementUnit1.code = productPlant#1229662.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1225669.measurementUnit1.internalRefUUID = productPlant#1229662.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1229682.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1229682.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1229689]
(1241) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1229689.quantityNumerator), true, [quantityNumerator#1229690]
(1242) Project
Arguments: [product#1229650, plant#1229651, orderDateTime#1229652, productPlant#1229662, timezonecode#1229676, systemId#1229677, internalUUID#1229678, id#1229679, displayId#1229680, name#1229681, baseUnitOfMeasure#1229682, unitOfMeasures#1229683, unitOfMeasureConversions#1229684, productionAspect#1229685, salesAspect#1229686, procurementAspect#1229687, productGroup#1229688, filteredUnitOfMeasureConversions#1229689, quantityNumerator#1229690]
(1243) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1229689.quantityDenominator), true, [quantityDenominator#1229691]
(1244) Project
Arguments: [product#1229650, plant#1229651, orderDateTime#1229652, productPlant#1229662, timezonecode#1229676, systemId#1229677, internalUUID#1229678, id#1229679, displayId#1229680, name#1229681, baseUnitOfMeasure#1229682, unitOfMeasures#1229683, unitOfMeasureConversions#1229684, productionAspect#1229685, salesAspect#1229686, procurementAspect#1229687, productGroup#1229688, filteredUnitOfMeasureConversions#1229689, quantityNumerator#1229690, quantityDenominator#1229691]
(1245) Project
Arguments: [product#1229650, plant#1229651, orderDateTime#1229652, productPlant#1229662, timezonecode#1229676, systemId#1229677, internalUUID#1229678, id#1229679, displayId#1229680, name#1229681, baseUnitOfMeasure#1229682, unitOfMeasures#1229683, unitOfMeasureConversions#1229684, productionAspect#1229685, salesAspect#1229686, procurementAspect#1229687, productGroup#1229688, filteredUnitOfMeasureConversions#1229689, quantityNumerator#1229690, quantityDenominator#1229691, (cast(quantityNumerator#1229690 as double) / cast(quantityDenominator#1229691 as double)) AS outboundUnit#1229692]
(1246) Project
Arguments: [product#1229650, plant#1229651, orderDateTime#1229652, productPlant#1229662, timezonecode#1229676, systemId#1229677, internalUUID#1229678, id#1229679, displayId#1229680, name#1229681, baseUnitOfMeasure#1229682, unitOfMeasures#1229683, unitOfMeasureConversions#1229684, productionAspect#1229685, salesAspect#1229686, procurementAspect#1229687, productGroup#1229688, filteredUnitOfMeasureConversions#1229689, quantityNumerator#1229690, quantityDenominator#1229691, CASE WHEN (isnull(outboundUnit#1229692) OR (outboundUnit#1229692 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1229692 END AS outboundUnit#1229693]
(1247) Project
Arguments: [product#1229650, plant#1229651, orderDateTime#1229652, productPlant#1229662, timezonecode#1229676, outboundUnit#1229693]
(1248) Project
Arguments: [plant#1229651]
(1249) Deduplicate
Arguments: [plant#1229651]
(1250) Join
Arguments: Inner, (plantUuid#1229647 = plant#1229651)
(1251) Project
Arguments: [plantId#1229646, plantUuid#1229647, storageLocId#1229648, storageLocUuid#1229649]
(1252) Join
Arguments: Inner, (plant#1229619.internalRefUUID <=> plantUuid#1229647)
(1253) Generate
Arguments: explode(filter(stockQuantities#1229621, lambdafunction(((lambda x#1225727.storageLocation.internalRefUuid = storageLocUuid#1229649) AND (lambda x#1225727.storageLocation.Id = storageLocId#1229648)), lambda x#1225727, false))), false, [stockQuantity#1229694]
(1254) Project
Arguments: [systemId#1229616, internalUUID#1229617, product#1229618, plant#1229619, calculationDateTime#1229620, stockQuantities#1229621, plantId#1229646, plantUuid#1229647, storageLocId#1229648, storageLocUuid#1229649, stockQuantity#1229694]
(1255) Aggregate
Arguments: [plantUuid#1229647, internalUUID#1229617, plant#1229619, product#1229618, systemId#1229616], [plantUuid#1229647, internalUUID#1229617, plant#1229619, product#1229618, systemId#1229616, first(calculationDateTime#1229620, false) AS calculationDateTime#1229695, collect_list(stockQuantity#1229694, 0, 0) AS stockQuantities#1229696]
(1256) Project
Arguments: [systemId#1229616, internalUUID#1229617, product#1229618, plant#1229619, calculationDateTime#1229695, stockQuantities#1229696]
(1257) Generate
Arguments: explode(stockQuantities#1229696), false, [stockQuantity#1229697]
(1258) Project
Arguments: [systemId#1229616, internalUUID#1229617, product#1229618, plant#1229619, calculationDateTime#1229695, stockQuantities#1229696, stockQuantity#1229697]
(1259) Project
Arguments: [plant#1229619.id AS plant#1229698, plant#1229619.internalRefUUID AS plantUuid#1229699, product#1229618.id AS product#1229700, product#1229618.internalRefUUID AS productUuid#1229701, calculationDateTime#1229695, stockQuantity#1229697.storagelocation.id AS storageLocId#1229702, stockQuantity#1229697.storagelocation.internalRefUUID AS storageLocUuid#1229703, stockQuantity#1229697.quantity.measure AS quantity#1229704, stockQuantity#1229697.specialStockIndicator.code AS specialStockIndicator#1229705, stockQuantity#1229697.stockType.code AS stockType#1229706]
(1260) Filter
Arguments: ((specialStockIndicator#1229705 = ) AND (stockType#1229706 = 01))
(1261) LogicalRelation
Arguments: parquet, [product#1229707, plant#1229708, orderDateTime#1229709, planningStartDateTime#1229710], false
(1262) RepartitionByExpression
Arguments: [product#1229707, plant#1229708], 37
(1263) Project
Arguments: [product#1229707, plant#1229708, orderDateTime#1229709]
(1264) LogicalRelation
Arguments: parquet, [systemId#1229711, internalUUID#1229712, plant#1229713, product#1229714, blockedForReplenishmentStartingFrom#1229715, productionAspect#1229716, salesPlant#1229717, listing#1229718], false
(1265) Repartition
Arguments: 37, true
(1266) Project
Arguments: [systemId#1229711, internalUUID#1229712, plant#1229713, product#1229714, blockedForReplenishmentStartingFrom#1229715, productionAspect#1229716, salesPlant#1229717, listing#1229718, struct(systemId, systemId#1229711, internalUUID, internalUUID#1229712, plant, plant#1229713, product, product#1229714, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1229715, productionAspect, productionAspect#1229716, salesPlant, salesPlant#1229717, listing, listing#1229718) AS productPlant#1229719]
(1267) Project
Arguments: [productPlant#1229719]
(1268) Join
Arguments: LeftOuter, ((product#1229707 <=> productPlant#1229719.product.internalRefUUID) AND (plant#1229708 <=> productPlant#1229719.plant.internalRefUUID))
(1269) Project
Arguments: [product#1229707, plant#1229708, orderDateTime#1229709, productPlant#1229719]
(1270) SubqueryAlias
Arguments: wl
(1271) LogicalRelation
Arguments: parquet, [systemId#1229720, internalUUID#1229721, id#1229722, displayId#1229723, name#1229724, category#1229725, companyCode#1229726, address#1229727, mainDistributionChain#1229728, mainPurchasingOrganization#1229729, validPurchasingOrganizations#1229730, productGroup#1229731], false
(1272) Repartition
Arguments: 37, true
(1273) Project
Arguments: [internalUUID#1229721, address#1229727.timeZone.code AS timezonecode#1229732]
(1274) Join
Arguments: LeftOuter, (plant#1229708 <=> internalUUID#1229721)
(1275) Project
Arguments: [product#1229707, plant#1229708, orderDateTime#1229709, productPlant#1229719, internalUUID#1229721, CASE WHEN isnotnull(timezonecode#1229732) THEN timezonecode#1229732 ELSE UTC END AS timezonecode#1229733]
(1276) Project
Arguments: [product#1229707, plant#1229708, orderDateTime#1229709, productPlant#1229719, timezonecode#1229733]
(1277) LogicalRelation
Arguments: parquet, [systemId#1229734, internalUUID#1229735, id#1229736, displayId#1229737, name#1229738, baseUnitOfMeasure#1229739, unitOfMeasures#1229740, unitOfMeasureConversions#1229741, productionAspect#1229742, salesAspect#1229743, procurementAspect#1229744, productGroup#1229745], false
(1278) Repartition
Arguments: 37, true
(1279) Join
Arguments: LeftOuter, (product#1229707 = internalUUID#1229735)
(1280) Project
Arguments: [product#1229707, plant#1229708, orderDateTime#1229709, productPlant#1229719, timezonecode#1229733, systemId#1229734, internalUUID#1229735, id#1229736, displayId#1229737, name#1229738, baseUnitOfMeasure#1229739, unitOfMeasures#1229740, unitOfMeasureConversions#1229741, productionAspect#1229742, salesAspect#1229743, procurementAspect#1229744, productGroup#1229745, filter(unitOfMeasureConversions#1229741, lambdafunction((((lambda u#1225669.measurementUnit1.code = productPlant#1229719.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1225669.measurementUnit1.internalRefUUID = productPlant#1229719.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1229739.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1229739.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1229746]
(1281) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1229746.quantityNumerator), true, [quantityNumerator#1229747]
(1282) Project
Arguments: [product#1229707, plant#1229708, orderDateTime#1229709, productPlant#1229719, timezonecode#1229733, systemId#1229734, internalUUID#1229735, id#1229736, displayId#1229737, name#1229738, baseUnitOfMeasure#1229739, unitOfMeasures#1229740, unitOfMeasureConversions#1229741, productionAspect#1229742, salesAspect#1229743, procurementAspect#1229744, productGroup#1229745, filteredUnitOfMeasureConversions#1229746, quantityNumerator#1229747]
(1283) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1229746.quantityDenominator), true, [quantityDenominator#1229748]
(1284) Project
Arguments: [product#1229707, plant#1229708, orderDateTime#1229709, productPlant#1229719, timezonecode#1229733, systemId#1229734, internalUUID#1229735, id#1229736, displayId#1229737, name#1229738, baseUnitOfMeasure#1229739, unitOfMeasures#1229740, unitOfMeasureConversions#1229741, productionAspect#1229742, salesAspect#1229743, procurementAspect#1229744, productGroup#1229745, filteredUnitOfMeasureConversions#1229746, quantityNumerator#1229747, quantityDenominator#1229748]
(1285) Project
Arguments: [product#1229707, plant#1229708, orderDateTime#1229709, productPlant#1229719, timezonecode#1229733, systemId#1229734, internalUUID#1229735, id#1229736, displayId#1229737, name#1229738, baseUnitOfMeasure#1229739, unitOfMeasures#1229740, unitOfMeasureConversions#1229741, productionAspect#1229742, salesAspect#1229743, procurementAspect#1229744, productGroup#1229745, filteredUnitOfMeasureConversions#1229746, quantityNumerator#1229747, quantityDenominator#1229748, (cast(quantityNumerator#1229747 as double) / cast(quantityDenominator#1229748 as double)) AS outboundUnit#1229749]
(1286) Project
Arguments: [product#1229707, plant#1229708, orderDateTime#1229709, productPlant#1229719, timezonecode#1229733, systemId#1229734, internalUUID#1229735, id#1229736, displayId#1229737, name#1229738, baseUnitOfMeasure#1229739, unitOfMeasures#1229740, unitOfMeasureConversions#1229741, productionAspect#1229742, salesAspect#1229743, procurementAspect#1229744, productGroup#1229745, filteredUnitOfMeasureConversions#1229746, quantityNumerator#1229747, quantityDenominator#1229748, CASE WHEN (isnull(outboundUnit#1229749) OR (outboundUnit#1229749 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1229749 END AS outboundUnit#1229750]
(1287) Project
Arguments: [product#1229707, plant#1229708, orderDateTime#1229709, productPlant#1229719, timezonecode#1229733, outboundUnit#1229750]
(1288) Join
Arguments: Inner, ((plantUuid#1229699 = plant#1229708) AND (productUuid#1229701 = product#1229707))
(1289) Filter
Arguments: (calculationDateTime#1229695 <= orderDateTime#1229709)
(1290) Project
Arguments: [plantUuid#1229699 AS plant#1229751, productUuid#1229701 AS product#1229752, storageLocId#1229702, calculationDateTime#1229695, quantity#1229704]
(1291) Aggregate
Arguments: [plant#1229751, product#1229752, storageLocId#1229702], [plant#1229751, product#1229752, storageLocId#1229702, max(calculationDateTime#1229695) AS max_calc_datetime#1229753]
(1292) Join
Arguments: Inner, ((((plant#1229614 <=> plant#1229751) AND (product#1229615 <=> product#1229752)) AND (storageLocId#1229565 <=> storageLocId#1229702)) AND (calculationDateTime#1229558 <=> max_calc_datetime#1229753))
(1293) Project
Arguments: [plant#1229614, product#1229615, storageLocId#1229565, calculationDateTime#1229558, quantity#1229567]
(1294) Aggregate
Arguments: [product#1229615, plant#1229614], [product#1229615, plant#1229614, sum(quantity#1229567) AS quantitySum#1229754, min(calculationDateTime#1229558) AS minCalculationDateTime#1229755]
(1295) Project
Arguments: [product#1229615, plant#1229614, quantitySum#1229754, minCalculationDateTime#1229755, round(quantitySum#1229754, 0) AS roundedQuantitySum#1229756]
(1296) Join
Arguments: LeftOuter, ((plant#1229436 = plant#1229614) AND (product#1229435 = product#1229615))
(1297) Project
Arguments: [product#1229435, plant#1229436, orderDateTime#1229437, productPlant#1229447, timezonecode#1229461, outboundUnit#1229478, roundedQuantitySum#1229756, minCalculationDateTime#1229755]
(1298) Project
Arguments: [product#1229435, plant#1229436, orderDateTime#1229437, productPlant#1229447, timezonecode#1229461, outboundUnit#1229478, roundedQuantitySum#1229756, minCalculationDateTime#1229755, CASE WHEN isnotnull(minCalculationDateTime#1229755) THEN minCalculationDateTime#1229755 ELSE orderDateTime#1229437 END AS stockDatetime#1229757]
(1299) Project
Arguments: [product#1229435, plant#1229436, orderDateTime#1229437, productPlant#1229447, timezonecode#1229461, outboundUnit#1229478, roundedQuantitySum#1229756, minCalculationDateTime#1229755, stockDatetime#1229757, CASE WHEN isnotnull(roundedQuantitySum#1229756) THEN array(roundedQuantitySum#1229756) ELSE array(0.0) END AS stockBatchQuantities#1229758]
(1300) Project
Arguments: [product#1229435, plant#1229436, orderDateTime#1229437, productPlant#1229447, timezonecode#1229461, outboundUnit#1229478, roundedQuantitySum#1229756, minCalculationDateTime#1229755, stockDatetime#1229757, stockBatchQuantities#1229758, array(2199-01-01 00:00:00) AS stockBatchShelfLifeEndDatetimes#1229759]
(1301) Project
Arguments: [product#1229435, plant#1229436, orderDateTime#1229437, productPlant#1229447, timezonecode#1229461, outboundUnit#1229478, roundedQuantitySum#1229756, stockDatetime#1229757, stockBatchQuantities#1229758, stockBatchShelfLifeEndDatetimes#1229759]
(1302) Project
Arguments: [product#1229435, plant#1229436, orderDateTime#1229437, productPlant#1229447, timezonecode#1229461, outboundUnit#1229478, stockDatetime#1229757, stockBatchQuantities#1229758, stockBatchShelfLifeEndDatetimes#1229759]
(1303) LogicalRelation
Arguments: parquet, [product#1229760, plant#1229761, demandChannel#1229762, demandStream#1229763, considerVariance#1229764, demandTimeBuckets#1229765, demandPointInTimeStart#1229766, demandPointInTimeEnd#1229767, demandPointInTime#1229768], false
(1304) Join
Arguments: LeftOuter, ((product#1229435 = product#1229760) AND (plant#1229436 = plant#1229761))
(1305) Project
Arguments: [product#1229435, plant#1229436, orderDateTime#1229437, productPlant#1229447, timezonecode#1229461, outboundUnit#1229478, stockDatetime#1229757, stockBatchQuantities#1229758, stockBatchShelfLifeEndDatetimes#1229759, demandChannel#1229762, demandStream#1229763, considerVariance#1229764, demandTimeBuckets#1229765, demandPointInTimeStart#1229766, demandPointInTimeEnd#1229767, demandPointInTime#1229768, product#1229760, plant#1229761]
(1306) Project
Arguments: [product#1229435, plant#1229436, orderDateTime#1229437, productPlant#1229447, timezonecode#1229461, outboundUnit#1229478, stockDatetime#1229757, stockBatchQuantities#1229758, stockBatchShelfLifeEndDatetimes#1229759, demandChannel#1229762, demandStream#1229763, considerVariance#1229764, demandTimeBuckets#1229765, demandPointInTimeStart#1229766, demandPointInTimeEnd#1229767, demandPointInTime#1229768, CASE WHEN isnotnull(product#1229760) THEN struct(demandChannel, demandChannel#1229762, demandStream, demandStream#1229763, considerVariance, considerVariance#1229764, demandTimeBuckets, demandTimeBuckets#1229765, demandPointInTimeStart, demandPointInTimeStart#1229766, demandPointInTimeEnd, demandPointInTimeEnd#1229767, demandPointInTime, demandPointInTime#1229768) 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#1229769]
(1307) Aggregate
Arguments: [product#1229435, plant#1229436, orderDateTime#1229437, productPlant#1229447, timezonecode#1229461, outboundUnit#1229478, stockDatetime#1229757, stockBatchQuantities#1229758, stockBatchShelfLifeEndDatetimes#1229759], [product#1229435, plant#1229436, orderDateTime#1229437, productPlant#1229447, timezonecode#1229461, outboundUnit#1229478, stockDatetime#1229757, stockBatchQuantities#1229758, stockBatchShelfLifeEndDatetimes#1229759, collect_list(rawDemands#1229769, 0, 0) AS rawDemands#1229770]
(1308) DeserializeToObject
Arguments: createexternalrow(invoke(product#1229435.toString()), invoke(plant#1229436.toString()), static_invoke(DateTimeUtils.toJavaTimestamp(orderDateTime#1229437)), if (isnull(productPlant#1229447)) null else createexternalrow(invoke(productPlant#1229447.systemId.toString()), invoke(productPlant#1229447.internalUUID.toString()), if (isnull(productPlant#1229447.plant)) null else createexternalrow(invoke(productPlant#1229447.plant.internalRefUUID.toString()), invoke(productPlant#1229447.plant.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), if (isnull(productPlant#1229447.product)) null else createexternalrow(invoke(productPlant#1229447.product.internalRefUUID.toString()), invoke(productPlant#1229447.product.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(DateTimeUtils.toJavaDate(productPlant#1229447.blockedForReplenishmentStartingFrom)), if (isnull(productPlant#1229447.productionAspect)) null else createexternalrow(if (isnull(productPlant#1229447.productionAspect.productMovementPlants)) null else createexternalrow(if (isnull(productPlant#1229447.productionAspect.productMovementPlants.unitOfIssue)) null else createexternalrow(invoke(productPlant#1229447.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID.toString()), invoke(productPlant#1229447.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#1229447.productionAspect.productPlanningPlants)) null else createexternalrow(if (isnull(productPlant#1229447.productionAspect.productPlanningPlants.mrpType)) null else createexternalrow(invoke(productPlant#1229447.productionAspect.productPlanningPlants.mrpType.internalRefUUID.toString()), invoke(productPlant#1229447.productionAspect.productPlanningPlants.mrpType.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1229447.productionAspect.productPlanningPlants.abcIndicator)) null else createexternalrow(invoke(productPlant#1229447.productionAspect.productPlanningPlants.abcIndicator.internalRefUUID.toString()), invoke(productPlant#1229447.productionAspect.productPlanningPlants.abcIndicator.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1229447.productionAspect.productPlanningPlants.mrpController)) null else createexternalrow(invoke(productPlant#1229447.productionAspect.productPlanningPlants.mrpController.internalRefUUID.toString()), invoke(productPlant#1229447.productionAspect.productPlanningPlants.mrpController.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(java.lang.Double.valueOf(productPlant#1229447.productionAspect.productPlanningPlants.minimumLotSize)), if (isnull(productPlant#1229447.productionAspect.productPlanningPlants.logisticalRoundingProfile)) null else createexternalrow(invoke(productPlant#1229447.productionAspect.productPlanningPlants.logisticalRoundingProfile.internalRefUUID.toString()), invoke(productPlant#1229447.productionAspect.productPlanningPlants.logisticalRoundingProfile.logisticalRoundingProfile.toString()), StructField(internalRefUUID,StringType,true), StructField(logisticalRoundingProfile,StringType,true)), if (isnull(productPlant#1229447.productionAspect.productPlanningPlants.sourceOfSupplyCategory)) null else createexternalrow(invoke(productPlant#1229447.productionAspect.productPlanningPlants.sourceOfSupplyCategory.internalRefUUID.toString()), invoke(productPlant#1229447.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#1229447.salesPlant)) null else createexternalrow(if (isnull(productPlant#1229447.salesPlant.loadingGroup)) null else createexternalrow(invoke(productPlant#1229447.salesPlant.loadingGroup.internalRefUUID.toString()), invoke(productPlant#1229447.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, 163428), if (isnull(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 163428))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 163428).validFrom)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 163428).validTo)), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 163428).isListed)), StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true)), productPlant#1229447.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#1229461.toString()), static_invoke(java.lang.Double.valueOf(outboundUnit#1229478)), static_invoke(DateTimeUtils.toJavaTimestamp(stockDatetime#1229757)), mapobjects(lambdavariable(MapObject, DoubleType, true, 163429), static_invoke(java.lang.Double.valueOf(cast(lambdavariable(MapObject, DoubleType, true, 163429) as double))), stockBatchQuantities#1229758, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, false, 163430), assertnotnull(static_invoke(DateTimeUtils.toJavaTimestamp(cast(lambdavariable(MapObject, TimestampType, false, 163430) as timestamp)))), stockBatchShelfLifeEndDatetimes#1229759, 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, 163431), 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, 163431))) 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, 163431).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, 163431).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, 163431).considerVariance)), mapobjects(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 163432), if (isnull(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 163432))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 163432).demandStartDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 163432).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 163432).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, 163431).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, 163431).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, 163431).demandPointInTimeEnd)), mapobjects(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 163433), if (isnull(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 163433))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 163433).demandDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 163433).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 163433).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, 163431).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#1229770, 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#1226090: org.apache.spark.sql.Row
(1309) MapElements
Arguments: com.sap.s4hana.eureka.business.crporderquantitykpiservice.core.business.datasnapshot.DemandTransformatorImpl$$Lambda/0x00000008023bc120@58fc6bc3, 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#1226095: 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#1229771, 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#1229772, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(2))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163418), assertnotnull(if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163418), 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, 163418), 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, 163418), 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, 163418), 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, 163418), 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, 163418), 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, 163418), 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, 163418), 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, 163418), 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, 163418), 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, 163419), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163419), DoubleType, ObjectType(class java.lang.Double)).doubleValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163418), 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, 163418), 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, 163418), 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, 163418), 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, 163420), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163420), DoubleType, ObjectType(class java.lang.Double)).doubleValue()), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163418), 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, 163418), 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, 163421), assertnotnull(static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163421), TimestampType, ObjectType(class java.sql.Timestamp))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163418), 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, 163418), 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, 163422), assertnotnull(static_invoke(UTF8String.fromString(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163422), StringType, ObjectType(class java.lang.String))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163418), 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, 163418), 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, 163418), 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, 163418), 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, 163423), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163423), IntegerType, ObjectType(class java.lang.Integer)).intValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163418), 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#1229773, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(3))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163424), assertnotnull(if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163424), 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, 163424), 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, 163424), 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, 163424), 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, 163424), 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, 163424), 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, 163424), 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, 163424), 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, 163425), assertnotnull(static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163425), TimestampType, ObjectType(class java.sql.Timestamp))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163424), 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, 163424), 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, 163424), 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, 163424), 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, 163426), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163426), DoubleType, ObjectType(class java.lang.Double)).doubleValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163424), 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, 163424), 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, 163424), 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, 163424), 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, 163427), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163427), DoubleType, ObjectType(class java.lang.Double)).doubleValue()), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163424), 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, 163424), 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, 163424), 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, 163424), 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, 163424), 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#1229774]
(1311) Join
Arguments: LeftOuter, ((plant#1229772 <=> plant#1229111) AND (product#1229771 <=> product#1229110))
(1312) Project
Arguments: [product#1229110, plant#1229111, orderDateTime#1229112, productPlant#1229122, timezonecode#1229136, outboundUnit#1229153, stockDatetime#1229432, stockBatchQuantities#1229433, stockBatchShelfLifeEndDatetimes#1229434, plant#1229772, dayBucketDemands#1229773, pointInTimeDemands#1229774]
(1313) Project
Arguments: [product#1229110, plant#1229111, orderDateTime#1229112, productPlant#1229122, timezonecode#1229136, outboundUnit#1229153, stockDatetime#1229432, stockBatchQuantities#1229433, stockBatchShelfLifeEndDatetimes#1229434, dayBucketDemands#1229773, pointInTimeDemands#1229774]
(1314) LogicalRelation
Arguments: parquet, [systemId#1229775, internalUUID#1229776, id#1229777, displayId#1229778, supplier#1229779, type#1229780, status#1229781, isMarkedForDeletion#1229782, items#1229783], false
(1315) Repartition
Arguments: 37, true
(1316) Generate
Arguments: explode(items#1229783), false, [item#1229784]
(1317) Project
Arguments: [id#1229777, internalUUID#1229776, isMarkedForDeletion#1229782, supplier#1229779.internalRefUUID AS supplierUuid#1229785, item#1229784]
(1318) Filter
Arguments: (((NOT isMarkedForDeletion#1229782 AND NOT item#1229784.deletionIndicator) AND NOT item#1229784.completeIndicator) AND NOT item#1229784.returnIndicator)
(1319) Project
Arguments: [id#1229777, internalUUID#1229776, supplierUuid#1229785, item#1229784.plant.internalRefUUID AS plant#1229786, item#1229784.product.internalRefUUID AS product#1229787, item#1229784.plant.id AS externalPlantId#1229788, item#1229784.product.id AS externalProductId#1229789, item#1229784.storageLocation.internalRefUUID AS storageLocUuid#1229790, item#1229784.quantityUnit.code AS quantityUom#1229791, item#1229784.quantityUnit.internalRefUUID AS quantityUomUuid#1229792, item#1229784.quantityNumerator AS quantityNumerator#1229793, item#1229784.quantityDenominator AS quantityDenominator#1229794, item#1229784.scheduleLines AS scheduleLines#1229795, item#1229784.confirmations AS confirmations#1229796]
(1320) Join
Arguments: Inner, ((product#1229110 <=> product#1229787) AND (plant#1229111 <=> supplierUuid#1229785))
(1321) Project
Arguments: [id#1229777, internalUUID#1229776, supplierUuid#1229785, plant#1229786, product#1229787, externalPlantId#1229788, externalProductId#1229789, storageLocUuid#1229790, quantityUom#1229791, quantityUomUuid#1229792, quantityNumerator#1229793, quantityDenominator#1229794, scheduleLines#1229795, confirmations#1229796, stockDatetime#1229432, plant#1229111]
(1322) Project
Arguments: [id#1229777, internalUUID#1229776, supplierUuid#1229785, product#1229787, externalPlantId#1229788, externalProductId#1229789, storageLocUuid#1229790, quantityUom#1229791, quantityUomUuid#1229792, quantityNumerator#1229793, quantityDenominator#1229794, scheduleLines#1229795, confirmations#1229796, stockDatetime#1229432, plant#1229111]
(1323) Project
Arguments: [id#1229777, internalUUID#1229776, supplierUuid#1229785, product#1229787, externalPlantId#1229788, externalProductId#1229789, storageLocUuid#1229790, quantityUom#1229791, quantityUomUuid#1229792, quantityNumerator#1229793, quantityDenominator#1229794, scheduleLines#1229795, confirmations#1229796, stockDatetime#1229432, plant#1229111, filter(transform(filter(transform(scheduleLines#1229795, lambdafunction(struct(openQty, (greatest((lambda x_154#1229088.quantity - coalesce(lambda x_154#1229088.deliveredQuantity, 0.0)), 0.0) * -1.0), availabilityDatetime, coalesce(lambda x_154#1229088.productAvailabilityDateTime, lambda x_154#1229088.deliveryAt)), lambda x_154#1229088, false)), lambdafunction((lambda x_155#1229089.availabilityDatetime < stockDatetime#1229432), lambda x_155#1229089, false)), lambdafunction(struct(documentId, id#1229777, documentUuid, internalUUID#1229776, openQty, lambda x_156#1229090.openQty, openQtyInBaseUnit, ((lambda x_156#1229090.openQty * quantityNumerator#1229793) / quantityDenominator#1229794), qtyUom, quantityUom#1229791, qtyUomUuid, quantityUomUuid#1229792, availabilityDatetime, lambda x_156#1229090.availabilityDatetime, shelfLifeEndDatetime, 2199-01-01 00:00:00), lambda x_156#1229090, false)), lambdafunction(NOT (lambda x_157#1229091.openQty = 0.0), lambda x_157#1229091, false)) AS openGoodsMovements#1229087]
(1324) Aggregate
Arguments: [product#1229787, plant#1229111], [product#1229787, plant#1229111, flatten(collect_list(openGoodsMovements#1229087, 0, 0)) AS openGoodsMovements#1229092]
(1325) Filter
Arguments: (array_size(openGoodsMovements#1229092) > 0)
(1326) Union
Arguments: false, false
(1327) Aggregate
Arguments: [product#1226471, plant#1226470], [product#1226471, plant#1226470, flatten(collect_list(openGoodsMovements#1228787, 0, 0)) AS openGoodsMovements#1229847]
(1328) Join
Arguments: LeftOuter, ((product#1225622 = product#1226471) AND (plant#1225623 = plant#1226470))
(1329) Project
Arguments: [product#1225622, plant#1225623, orderDateTime#1225624, productPlant#1225636, timezonecode#1225654, outboundUnit#1225681, stockDatetime#1226026, stockBatchQuantities#1226027, stockBatchShelfLifeEndDatetimes#1226028, dayBucketDemands#1226102, pointInTimeDemands#1226103, openGoodsMovements#1229847]
(1330) Project
Arguments: [product#1225622, plant#1225623, orderDateTime#1225624, productPlant#1225636, timezonecode#1225654, outboundUnit#1225681, stockDatetime#1226026, stockBatchQuantities#1226027, stockBatchShelfLifeEndDatetimes#1226028, dayBucketDemands#1226102, pointInTimeDemands#1226103, coalesce(openGoodsMovements#1229847.openQtyInBaseUnit, cast(array() as array<double>)) AS openGoodsMovementQuantities#1230566, coalesce(openGoodsMovements#1229847.availabilityDatetime, cast(array() as array<timestamp>)) AS openGoodsMovementAvailabilityDatetimes#1230567, coalesce(openGoodsMovements#1229847.shelfLifeEndDatetime, cast(array() as array<timestamp>)) AS openGoodsMovementShelfLifeEndDatetimes#1230568]
(1331) Project
Arguments: [product#1225622, plant#1225623, orderDateTime#1225624, productPlant#1225636, timezonecode#1225654, outboundUnit#1225681, stockDatetime#1226026, stockBatchQuantities#1226027, stockBatchShelfLifeEndDatetimes#1226028, dayBucketDemands#1226102, pointInTimeDemands#1226103, openGoodsMovementQuantities#1230566, openGoodsMovementAvailabilityDatetimes#1230567, openGoodsMovementShelfLifeEndDatetimes#1230568, 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#1230669]
(1332) LogicalRelation
Arguments: parquet, [product#1230868, plant#1230869, orderDateTime#1230870, planningStartDateTime#1230871], false
(1333) RepartitionByExpression
Arguments: [product#1230868, plant#1230869], 37
(1334) Project
Arguments: [product#1230868, plant#1230869, orderDateTime#1230870]
(1335) LogicalRelation
Arguments: parquet, [systemId#1230872, internalUUID#1230873, plant#1230874, product#1230875, blockedForReplenishmentStartingFrom#1230876, productionAspect#1230877, salesPlant#1230878, listing#1230879], false
(1336) Repartition
Arguments: 37, true
(1337) Project
Arguments: [systemId#1230872, internalUUID#1230873, plant#1230874, product#1230875, blockedForReplenishmentStartingFrom#1230876, productionAspect#1230877, salesPlant#1230878, listing#1230879, struct(systemId, systemId#1230872, internalUUID, internalUUID#1230873, plant, plant#1230874, product, product#1230875, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1230876, productionAspect, productionAspect#1230877, salesPlant, salesPlant#1230878, listing, listing#1230879) AS productPlant#1230880]
(1338) Project
Arguments: [productPlant#1230880]
(1339) Join
Arguments: LeftOuter, ((product#1230868 <=> productPlant#1230880.product.internalRefUUID) AND (plant#1230869 <=> productPlant#1230880.plant.internalRefUUID))
(1340) Project
Arguments: [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880]
(1341) SubqueryAlias
Arguments: wl
(1342) LogicalRelation
Arguments: parquet, [systemId#1230881, internalUUID#1230882, id#1230883, displayId#1230884, name#1230885, category#1230886, companyCode#1230887, address#1230888, mainDistributionChain#1230889, mainPurchasingOrganization#1230890, validPurchasingOrganizations#1230891, productGroup#1230892], false
(1343) Repartition
Arguments: 37, true
(1344) Project
Arguments: [internalUUID#1230882, address#1230888.timeZone.code AS timezonecode#1230893]
(1345) Join
Arguments: LeftOuter, (plant#1230869 <=> internalUUID#1230882)
(1346) Project
Arguments: [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880, internalUUID#1230882, CASE WHEN isnotnull(timezonecode#1230893) THEN timezonecode#1230893 ELSE UTC END AS timezonecode#1230894]
(1347) Project
Arguments: [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880, timezonecode#1230894]
(1348) LogicalRelation
Arguments: parquet, [systemId#1230895, internalUUID#1230896, id#1230897, displayId#1230898, name#1230899, baseUnitOfMeasure#1230900, unitOfMeasures#1230901, unitOfMeasureConversions#1230902, productionAspect#1230903, salesAspect#1230904, procurementAspect#1230905, productGroup#1230906], false
(1349) Repartition
Arguments: 37, true
(1350) Join
Arguments: LeftOuter, (product#1230868 = internalUUID#1230896)
(1351) Project
Arguments: [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880, timezonecode#1230894, systemId#1230895, internalUUID#1230896, id#1230897, displayId#1230898, name#1230899, baseUnitOfMeasure#1230900, unitOfMeasures#1230901, unitOfMeasureConversions#1230902, productionAspect#1230903, salesAspect#1230904, procurementAspect#1230905, productGroup#1230906, filter(unitOfMeasureConversions#1230902, lambdafunction((((lambda u#1225669.measurementUnit1.code = productPlant#1230880.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1225669.measurementUnit1.internalRefUUID = productPlant#1230880.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1230900.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1230900.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1230907]
(1352) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1230907.quantityNumerator), true, [quantityNumerator#1230908]
(1353) Project
Arguments: [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880, timezonecode#1230894, systemId#1230895, internalUUID#1230896, id#1230897, displayId#1230898, name#1230899, baseUnitOfMeasure#1230900, unitOfMeasures#1230901, unitOfMeasureConversions#1230902, productionAspect#1230903, salesAspect#1230904, procurementAspect#1230905, productGroup#1230906, filteredUnitOfMeasureConversions#1230907, quantityNumerator#1230908]
(1354) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1230907.quantityDenominator), true, [quantityDenominator#1230909]
(1355) Project
Arguments: [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880, timezonecode#1230894, systemId#1230895, internalUUID#1230896, id#1230897, displayId#1230898, name#1230899, baseUnitOfMeasure#1230900, unitOfMeasures#1230901, unitOfMeasureConversions#1230902, productionAspect#1230903, salesAspect#1230904, procurementAspect#1230905, productGroup#1230906, filteredUnitOfMeasureConversions#1230907, quantityNumerator#1230908, quantityDenominator#1230909]
(1356) Project
Arguments: [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880, timezonecode#1230894, systemId#1230895, internalUUID#1230896, id#1230897, displayId#1230898, name#1230899, baseUnitOfMeasure#1230900, unitOfMeasures#1230901, unitOfMeasureConversions#1230902, productionAspect#1230903, salesAspect#1230904, procurementAspect#1230905, productGroup#1230906, filteredUnitOfMeasureConversions#1230907, quantityNumerator#1230908, quantityDenominator#1230909, (cast(quantityNumerator#1230908 as double) / cast(quantityDenominator#1230909 as double)) AS outboundUnit#1230910]
(1357) Project
Arguments: [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880, timezonecode#1230894, systemId#1230895, internalUUID#1230896, id#1230897, displayId#1230898, name#1230899, baseUnitOfMeasure#1230900, unitOfMeasures#1230901, unitOfMeasureConversions#1230902, productionAspect#1230903, salesAspect#1230904, procurementAspect#1230905, productGroup#1230906, filteredUnitOfMeasureConversions#1230907, quantityNumerator#1230908, quantityDenominator#1230909, CASE WHEN (isnull(outboundUnit#1230910) OR (outboundUnit#1230910 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1230910 END AS outboundUnit#1230911]
(1358) Project
Arguments: [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880, timezonecode#1230894, outboundUnit#1230911]
(1359) LogicalRelation
Arguments: parquet, [systemId#1230912, internalUUID#1230913, product#1230914, plant#1230915, calculationDateTime#1230916, stockQuantities#1230917], false
(1360) Repartition
Arguments: 37, true
(1361) LogicalRelation
Arguments: parquet, [marketUnit#1230918, description#1230919, articleHierarchy#1230920, defaultCurrency#1230921, responsibilities#1230922, replenishmentTypes#1230923, distributionCenters#1230924, assignedArticleHierarchyNodes#1230925, minOrderQtySetting#1230926, listingCheck#1230927, odsSelection#1230928, demandProfiles#1230929, constraintProfiles#1230930, optimizationProfiles#1230931, orderGroupSplitProfiles#1230932, supplierMinimumProfiles#1230933, multipleRestrictionProfiles#1230934, preferredUomSource#1230935, handlingOfUnfulfilledDemands#1230936, negligibleQuantitiesThreshold#1230937, eventtype#1230938, minOrderQtySettingInternal#1230939], false
(1362) Repartition
Arguments: 37, true
(1363) Filter
Arguments: (marketUnit#1230918 <=> AUTO_MUV2)
(1364) Project
Arguments: [marketUnit#1230918, description#1230919, articleHierarchy#1230920, defaultCurrency#1230921, responsibilities#1230922, replenishmentTypes#1230923, distributionCenters#1230924, assignedArticleHierarchyNodes#1230925, minOrderQtySetting#1230926, listingCheck#1230927, odsSelection#1230928, demandProfiles#1230929, constraintProfiles#1230930, optimizationProfiles#1230931, orderGroupSplitProfiles#1230932, supplierMinimumProfiles#1230933, multipleRestrictionProfiles#1230934, preferredUomSource#1230935, handlingOfUnfulfilledDemands#1230936, negligibleQuantitiesThreshold#1230937, eventtype#1230938, minOrderQtySettingInternal#1230939]
(1365) Project
Arguments: [distributionCenters#1230924]
(1366) Generate
Arguments: explode(distributionCenters#1230924), false, [distributionCenters#1230940]
(1367) Project
Arguments: [distributionCenters#1230940]
(1368) Generate
Arguments: explode(distributionCenters#1230940.storageLocations), false, [storageLocations#1230941]
(1369) Project
Arguments: [distributionCenters#1230940.id AS plantId#1230942, distributionCenters#1230940.internalRefUUID AS plantUuid#1230943, storageLocations#1230941]
(1370) Project
Arguments: [plantId#1230942, plantUuid#1230943, storageLocations#1230941.id AS storageLocId#1230944, storageLocations#1230941.internalRefUUID AS storageLocUuid#1230945]
(1371) LogicalRelation
Arguments: parquet, [product#1230946, plant#1230947, orderDateTime#1230948, planningStartDateTime#1230949], false
(1372) RepartitionByExpression
Arguments: [product#1230946, plant#1230947], 37
(1373) Project
Arguments: [product#1230946, plant#1230947, orderDateTime#1230948]
(1374) LogicalRelation
Arguments: parquet, [systemId#1230950, internalUUID#1230951, plant#1230952, product#1230953, blockedForReplenishmentStartingFrom#1230954, productionAspect#1230955, salesPlant#1230956, listing#1230957], false
(1375) Repartition
Arguments: 37, true
(1376) Project
Arguments: [systemId#1230950, internalUUID#1230951, plant#1230952, product#1230953, blockedForReplenishmentStartingFrom#1230954, productionAspect#1230955, salesPlant#1230956, listing#1230957, struct(systemId, systemId#1230950, internalUUID, internalUUID#1230951, plant, plant#1230952, product, product#1230953, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1230954, productionAspect, productionAspect#1230955, salesPlant, salesPlant#1230956, listing, listing#1230957) AS productPlant#1230958]
(1377) Project
Arguments: [productPlant#1230958]
(1378) Join
Arguments: LeftOuter, ((product#1230946 <=> productPlant#1230958.product.internalRefUUID) AND (plant#1230947 <=> productPlant#1230958.plant.internalRefUUID))
(1379) Project
Arguments: [product#1230946, plant#1230947, orderDateTime#1230948, productPlant#1230958]
(1380) SubqueryAlias
Arguments: wl
(1381) LogicalRelation
Arguments: parquet, [systemId#1230959, internalUUID#1230960, id#1230961, displayId#1230962, name#1230963, category#1230964, companyCode#1230965, address#1230966, mainDistributionChain#1230967, mainPurchasingOrganization#1230968, validPurchasingOrganizations#1230969, productGroup#1230970], false
(1382) Repartition
Arguments: 37, true
(1383) Project
Arguments: [internalUUID#1230960, address#1230966.timeZone.code AS timezonecode#1230971]
(1384) Join
Arguments: LeftOuter, (plant#1230947 <=> internalUUID#1230960)
(1385) Project
Arguments: [product#1230946, plant#1230947, orderDateTime#1230948, productPlant#1230958, internalUUID#1230960, CASE WHEN isnotnull(timezonecode#1230971) THEN timezonecode#1230971 ELSE UTC END AS timezonecode#1230972]
(1386) Project
Arguments: [product#1230946, plant#1230947, orderDateTime#1230948, productPlant#1230958, timezonecode#1230972]
(1387) LogicalRelation
Arguments: parquet, [systemId#1230973, internalUUID#1230974, id#1230975, displayId#1230976, name#1230977, baseUnitOfMeasure#1230978, unitOfMeasures#1230979, unitOfMeasureConversions#1230980, productionAspect#1230981, salesAspect#1230982, procurementAspect#1230983, productGroup#1230984], false
(1388) Repartition
Arguments: 37, true
(1389) Join
Arguments: LeftOuter, (product#1230946 = internalUUID#1230974)
(1390) Project
Arguments: [product#1230946, plant#1230947, orderDateTime#1230948, productPlant#1230958, timezonecode#1230972, systemId#1230973, internalUUID#1230974, id#1230975, displayId#1230976, name#1230977, baseUnitOfMeasure#1230978, unitOfMeasures#1230979, unitOfMeasureConversions#1230980, productionAspect#1230981, salesAspect#1230982, procurementAspect#1230983, productGroup#1230984, filter(unitOfMeasureConversions#1230980, lambdafunction((((lambda u#1225669.measurementUnit1.code = productPlant#1230958.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1225669.measurementUnit1.internalRefUUID = productPlant#1230958.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1230978.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1230978.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1230985]
(1391) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1230985.quantityNumerator), true, [quantityNumerator#1230986]
(1392) Project
Arguments: [product#1230946, plant#1230947, orderDateTime#1230948, productPlant#1230958, timezonecode#1230972, systemId#1230973, internalUUID#1230974, id#1230975, displayId#1230976, name#1230977, baseUnitOfMeasure#1230978, unitOfMeasures#1230979, unitOfMeasureConversions#1230980, productionAspect#1230981, salesAspect#1230982, procurementAspect#1230983, productGroup#1230984, filteredUnitOfMeasureConversions#1230985, quantityNumerator#1230986]
(1393) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1230985.quantityDenominator), true, [quantityDenominator#1230987]
(1394) Project
Arguments: [product#1230946, plant#1230947, orderDateTime#1230948, productPlant#1230958, timezonecode#1230972, systemId#1230973, internalUUID#1230974, id#1230975, displayId#1230976, name#1230977, baseUnitOfMeasure#1230978, unitOfMeasures#1230979, unitOfMeasureConversions#1230980, productionAspect#1230981, salesAspect#1230982, procurementAspect#1230983, productGroup#1230984, filteredUnitOfMeasureConversions#1230985, quantityNumerator#1230986, quantityDenominator#1230987]
(1395) Project
Arguments: [product#1230946, plant#1230947, orderDateTime#1230948, productPlant#1230958, timezonecode#1230972, systemId#1230973, internalUUID#1230974, id#1230975, displayId#1230976, name#1230977, baseUnitOfMeasure#1230978, unitOfMeasures#1230979, unitOfMeasureConversions#1230980, productionAspect#1230981, salesAspect#1230982, procurementAspect#1230983, productGroup#1230984, filteredUnitOfMeasureConversions#1230985, quantityNumerator#1230986, quantityDenominator#1230987, (cast(quantityNumerator#1230986 as double) / cast(quantityDenominator#1230987 as double)) AS outboundUnit#1230988]
(1396) Project
Arguments: [product#1230946, plant#1230947, orderDateTime#1230948, productPlant#1230958, timezonecode#1230972, systemId#1230973, internalUUID#1230974, id#1230975, displayId#1230976, name#1230977, baseUnitOfMeasure#1230978, unitOfMeasures#1230979, unitOfMeasureConversions#1230980, productionAspect#1230981, salesAspect#1230982, procurementAspect#1230983, productGroup#1230984, filteredUnitOfMeasureConversions#1230985, quantityNumerator#1230986, quantityDenominator#1230987, CASE WHEN (isnull(outboundUnit#1230988) OR (outboundUnit#1230988 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1230988 END AS outboundUnit#1230989]
(1397) Project
Arguments: [product#1230946, plant#1230947, orderDateTime#1230948, productPlant#1230958, timezonecode#1230972, outboundUnit#1230989]
(1398) Project
Arguments: [plant#1230947]
(1399) Deduplicate
Arguments: [plant#1230947]
(1400) Join
Arguments: Inner, (plantUuid#1230943 = plant#1230947)
(1401) Project
Arguments: [plantId#1230942, plantUuid#1230943, storageLocId#1230944, storageLocUuid#1230945]
(1402) Join
Arguments: Inner, (plant#1230915.internalRefUUID <=> plantUuid#1230943)
(1403) Generate
Arguments: explode(filter(stockQuantities#1230917, lambdafunction(((lambda x#1225727.storageLocation.internalRefUuid = storageLocUuid#1230945) AND (lambda x#1225727.storageLocation.Id = storageLocId#1230944)), lambda x#1225727, false))), false, [stockQuantity#1230990]
(1404) Project
Arguments: [systemId#1230912, internalUUID#1230913, product#1230914, plant#1230915, calculationDateTime#1230916, stockQuantities#1230917, plantId#1230942, plantUuid#1230943, storageLocId#1230944, storageLocUuid#1230945, stockQuantity#1230990]
(1405) Aggregate
Arguments: [plantUuid#1230943, internalUUID#1230913, plant#1230915, product#1230914, systemId#1230912], [plantUuid#1230943, internalUUID#1230913, plant#1230915, product#1230914, systemId#1230912, first(calculationDateTime#1230916, false) AS calculationDateTime#1230991, collect_list(stockQuantity#1230990, 0, 0) AS stockQuantities#1230992]
(1406) Project
Arguments: [systemId#1230912, internalUUID#1230913, product#1230914, plant#1230915, calculationDateTime#1230991, stockQuantities#1230992]
(1407) Generate
Arguments: explode(stockQuantities#1230992), false, [stockQuantity#1230993]
(1408) Project
Arguments: [systemId#1230912, internalUUID#1230913, product#1230914, plant#1230915, calculationDateTime#1230991, stockQuantities#1230992, stockQuantity#1230993]
(1409) Project
Arguments: [plant#1230915.id AS plant#1230994, plant#1230915.internalRefUUID AS plantUuid#1230995, product#1230914.id AS product#1230996, product#1230914.internalRefUUID AS productUuid#1230997, calculationDateTime#1230991, stockQuantity#1230993.storagelocation.id AS storageLocId#1230998, stockQuantity#1230993.storagelocation.internalRefUUID AS storageLocUuid#1230999, stockQuantity#1230993.quantity.measure AS quantity#1231000, stockQuantity#1230993.specialStockIndicator.code AS specialStockIndicator#1231001, stockQuantity#1230993.stockType.code AS stockType#1231002]
(1410) Filter
Arguments: ((specialStockIndicator#1231001 = ) AND (stockType#1231002 = 01))
(1411) LogicalRelation
Arguments: parquet, [product#1231003, plant#1231004, orderDateTime#1231005, planningStartDateTime#1231006], false
(1412) RepartitionByExpression
Arguments: [product#1231003, plant#1231004], 37
(1413) Project
Arguments: [product#1231003, plant#1231004, orderDateTime#1231005]
(1414) LogicalRelation
Arguments: parquet, [systemId#1231007, internalUUID#1231008, plant#1231009, product#1231010, blockedForReplenishmentStartingFrom#1231011, productionAspect#1231012, salesPlant#1231013, listing#1231014], false
(1415) Repartition
Arguments: 37, true
(1416) Project
Arguments: [systemId#1231007, internalUUID#1231008, plant#1231009, product#1231010, blockedForReplenishmentStartingFrom#1231011, productionAspect#1231012, salesPlant#1231013, listing#1231014, struct(systemId, systemId#1231007, internalUUID, internalUUID#1231008, plant, plant#1231009, product, product#1231010, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1231011, productionAspect, productionAspect#1231012, salesPlant, salesPlant#1231013, listing, listing#1231014) AS productPlant#1231015]
(1417) Project
Arguments: [productPlant#1231015]
(1418) Join
Arguments: LeftOuter, ((product#1231003 <=> productPlant#1231015.product.internalRefUUID) AND (plant#1231004 <=> productPlant#1231015.plant.internalRefUUID))
(1419) Project
Arguments: [product#1231003, plant#1231004, orderDateTime#1231005, productPlant#1231015]
(1420) SubqueryAlias
Arguments: wl
(1421) LogicalRelation
Arguments: parquet, [systemId#1231016, internalUUID#1231017, id#1231018, displayId#1231019, name#1231020, category#1231021, companyCode#1231022, address#1231023, mainDistributionChain#1231024, mainPurchasingOrganization#1231025, validPurchasingOrganizations#1231026, productGroup#1231027], false
(1422) Repartition
Arguments: 37, true
(1423) Project
Arguments: [internalUUID#1231017, address#1231023.timeZone.code AS timezonecode#1231028]
(1424) Join
Arguments: LeftOuter, (plant#1231004 <=> internalUUID#1231017)
(1425) Project
Arguments: [product#1231003, plant#1231004, orderDateTime#1231005, productPlant#1231015, internalUUID#1231017, CASE WHEN isnotnull(timezonecode#1231028) THEN timezonecode#1231028 ELSE UTC END AS timezonecode#1231029]
(1426) Project
Arguments: [product#1231003, plant#1231004, orderDateTime#1231005, productPlant#1231015, timezonecode#1231029]
(1427) LogicalRelation
Arguments: parquet, [systemId#1231030, internalUUID#1231031, id#1231032, displayId#1231033, name#1231034, baseUnitOfMeasure#1231035, unitOfMeasures#1231036, unitOfMeasureConversions#1231037, productionAspect#1231038, salesAspect#1231039, procurementAspect#1231040, productGroup#1231041], false
(1428) Repartition
Arguments: 37, true
(1429) Join
Arguments: LeftOuter, (product#1231003 = internalUUID#1231031)
(1430) Project
Arguments: [product#1231003, plant#1231004, orderDateTime#1231005, productPlant#1231015, timezonecode#1231029, systemId#1231030, internalUUID#1231031, id#1231032, displayId#1231033, name#1231034, baseUnitOfMeasure#1231035, unitOfMeasures#1231036, unitOfMeasureConversions#1231037, productionAspect#1231038, salesAspect#1231039, procurementAspect#1231040, productGroup#1231041, filter(unitOfMeasureConversions#1231037, lambdafunction((((lambda u#1225669.measurementUnit1.code = productPlant#1231015.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1225669.measurementUnit1.internalRefUUID = productPlant#1231015.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1231035.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1231035.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1231042]
(1431) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1231042.quantityNumerator), true, [quantityNumerator#1231043]
(1432) Project
Arguments: [product#1231003, plant#1231004, orderDateTime#1231005, productPlant#1231015, timezonecode#1231029, systemId#1231030, internalUUID#1231031, id#1231032, displayId#1231033, name#1231034, baseUnitOfMeasure#1231035, unitOfMeasures#1231036, unitOfMeasureConversions#1231037, productionAspect#1231038, salesAspect#1231039, procurementAspect#1231040, productGroup#1231041, filteredUnitOfMeasureConversions#1231042, quantityNumerator#1231043]
(1433) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1231042.quantityDenominator), true, [quantityDenominator#1231044]
(1434) Project
Arguments: [product#1231003, plant#1231004, orderDateTime#1231005, productPlant#1231015, timezonecode#1231029, systemId#1231030, internalUUID#1231031, id#1231032, displayId#1231033, name#1231034, baseUnitOfMeasure#1231035, unitOfMeasures#1231036, unitOfMeasureConversions#1231037, productionAspect#1231038, salesAspect#1231039, procurementAspect#1231040, productGroup#1231041, filteredUnitOfMeasureConversions#1231042, quantityNumerator#1231043, quantityDenominator#1231044]
(1435) Project
Arguments: [product#1231003, plant#1231004, orderDateTime#1231005, productPlant#1231015, timezonecode#1231029, systemId#1231030, internalUUID#1231031, id#1231032, displayId#1231033, name#1231034, baseUnitOfMeasure#1231035, unitOfMeasures#1231036, unitOfMeasureConversions#1231037, productionAspect#1231038, salesAspect#1231039, procurementAspect#1231040, productGroup#1231041, filteredUnitOfMeasureConversions#1231042, quantityNumerator#1231043, quantityDenominator#1231044, (cast(quantityNumerator#1231043 as double) / cast(quantityDenominator#1231044 as double)) AS outboundUnit#1231045]
(1436) Project
Arguments: [product#1231003, plant#1231004, orderDateTime#1231005, productPlant#1231015, timezonecode#1231029, systemId#1231030, internalUUID#1231031, id#1231032, displayId#1231033, name#1231034, baseUnitOfMeasure#1231035, unitOfMeasures#1231036, unitOfMeasureConversions#1231037, productionAspect#1231038, salesAspect#1231039, procurementAspect#1231040, productGroup#1231041, filteredUnitOfMeasureConversions#1231042, quantityNumerator#1231043, quantityDenominator#1231044, CASE WHEN (isnull(outboundUnit#1231045) OR (outboundUnit#1231045 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1231045 END AS outboundUnit#1231046]
(1437) Project
Arguments: [product#1231003, plant#1231004, orderDateTime#1231005, productPlant#1231015, timezonecode#1231029, outboundUnit#1231046]
(1438) Join
Arguments: Inner, ((plantUuid#1230995 = plant#1231004) AND (productUuid#1230997 = product#1231003))
(1439) Filter
Arguments: (calculationDateTime#1230991 <= orderDateTime#1231005)
(1440) Project
Arguments: [plantUuid#1230995 AS plant#1231047, productUuid#1230997 AS product#1231048, storageLocId#1230998, calculationDateTime#1230991, quantity#1231000]
(1441) LogicalRelation
Arguments: parquet, [systemId#1231049, internalUUID#1231050, product#1231051, plant#1231052, calculationDateTime#1231053, stockQuantities#1231054], false
(1442) Repartition
Arguments: 37, true
(1443) LogicalRelation
Arguments: parquet, [marketUnit#1231055, description#1231056, articleHierarchy#1231057, defaultCurrency#1231058, responsibilities#1231059, replenishmentTypes#1231060, distributionCenters#1231061, assignedArticleHierarchyNodes#1231062, minOrderQtySetting#1231063, listingCheck#1231064, odsSelection#1231065, demandProfiles#1231066, constraintProfiles#1231067, optimizationProfiles#1231068, orderGroupSplitProfiles#1231069, supplierMinimumProfiles#1231070, multipleRestrictionProfiles#1231071, preferredUomSource#1231072, handlingOfUnfulfilledDemands#1231073, negligibleQuantitiesThreshold#1231074, eventtype#1231075, minOrderQtySettingInternal#1231076], false
(1444) Repartition
Arguments: 37, true
(1445) Filter
Arguments: (marketUnit#1231055 <=> AUTO_MUV2)
(1446) Project
Arguments: [marketUnit#1231055, description#1231056, articleHierarchy#1231057, defaultCurrency#1231058, responsibilities#1231059, replenishmentTypes#1231060, distributionCenters#1231061, assignedArticleHierarchyNodes#1231062, minOrderQtySetting#1231063, listingCheck#1231064, odsSelection#1231065, demandProfiles#1231066, constraintProfiles#1231067, optimizationProfiles#1231068, orderGroupSplitProfiles#1231069, supplierMinimumProfiles#1231070, multipleRestrictionProfiles#1231071, preferredUomSource#1231072, handlingOfUnfulfilledDemands#1231073, negligibleQuantitiesThreshold#1231074, eventtype#1231075, minOrderQtySettingInternal#1231076]
(1447) Project
Arguments: [distributionCenters#1231061]
(1448) Generate
Arguments: explode(distributionCenters#1231061), false, [distributionCenters#1231077]
(1449) Project
Arguments: [distributionCenters#1231077]
(1450) Generate
Arguments: explode(distributionCenters#1231077.storageLocations), false, [storageLocations#1231078]
(1451) Project
Arguments: [distributionCenters#1231077.id AS plantId#1231079, distributionCenters#1231077.internalRefUUID AS plantUuid#1231080, storageLocations#1231078]
(1452) Project
Arguments: [plantId#1231079, plantUuid#1231080, storageLocations#1231078.id AS storageLocId#1231081, storageLocations#1231078.internalRefUUID AS storageLocUuid#1231082]
(1453) LogicalRelation
Arguments: parquet, [product#1231083, plant#1231084, orderDateTime#1231085, planningStartDateTime#1231086], false
(1454) RepartitionByExpression
Arguments: [product#1231083, plant#1231084], 37
(1455) Project
Arguments: [product#1231083, plant#1231084, orderDateTime#1231085]
(1456) LogicalRelation
Arguments: parquet, [systemId#1231087, internalUUID#1231088, plant#1231089, product#1231090, blockedForReplenishmentStartingFrom#1231091, productionAspect#1231092, salesPlant#1231093, listing#1231094], false
(1457) Repartition
Arguments: 37, true
(1458) Project
Arguments: [systemId#1231087, internalUUID#1231088, plant#1231089, product#1231090, blockedForReplenishmentStartingFrom#1231091, productionAspect#1231092, salesPlant#1231093, listing#1231094, struct(systemId, systemId#1231087, internalUUID, internalUUID#1231088, plant, plant#1231089, product, product#1231090, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1231091, productionAspect, productionAspect#1231092, salesPlant, salesPlant#1231093, listing, listing#1231094) AS productPlant#1231095]
(1459) Project
Arguments: [productPlant#1231095]
(1460) Join
Arguments: LeftOuter, ((product#1231083 <=> productPlant#1231095.product.internalRefUUID) AND (plant#1231084 <=> productPlant#1231095.plant.internalRefUUID))
(1461) Project
Arguments: [product#1231083, plant#1231084, orderDateTime#1231085, productPlant#1231095]
(1462) SubqueryAlias
Arguments: wl
(1463) LogicalRelation
Arguments: parquet, [systemId#1231096, internalUUID#1231097, id#1231098, displayId#1231099, name#1231100, category#1231101, companyCode#1231102, address#1231103, mainDistributionChain#1231104, mainPurchasingOrganization#1231105, validPurchasingOrganizations#1231106, productGroup#1231107], false
(1464) Repartition
Arguments: 37, true
(1465) Project
Arguments: [internalUUID#1231097, address#1231103.timeZone.code AS timezonecode#1231108]
(1466) Join
Arguments: LeftOuter, (plant#1231084 <=> internalUUID#1231097)
(1467) Project
Arguments: [product#1231083, plant#1231084, orderDateTime#1231085, productPlant#1231095, internalUUID#1231097, CASE WHEN isnotnull(timezonecode#1231108) THEN timezonecode#1231108 ELSE UTC END AS timezonecode#1231109]
(1468) Project
Arguments: [product#1231083, plant#1231084, orderDateTime#1231085, productPlant#1231095, timezonecode#1231109]
(1469) LogicalRelation
Arguments: parquet, [systemId#1231110, internalUUID#1231111, id#1231112, displayId#1231113, name#1231114, baseUnitOfMeasure#1231115, unitOfMeasures#1231116, unitOfMeasureConversions#1231117, productionAspect#1231118, salesAspect#1231119, procurementAspect#1231120, productGroup#1231121], false
(1470) Repartition
Arguments: 37, true
(1471) Join
Arguments: LeftOuter, (product#1231083 = internalUUID#1231111)
(1472) Project
Arguments: [product#1231083, plant#1231084, orderDateTime#1231085, productPlant#1231095, timezonecode#1231109, systemId#1231110, internalUUID#1231111, id#1231112, displayId#1231113, name#1231114, baseUnitOfMeasure#1231115, unitOfMeasures#1231116, unitOfMeasureConversions#1231117, productionAspect#1231118, salesAspect#1231119, procurementAspect#1231120, productGroup#1231121, filter(unitOfMeasureConversions#1231117, lambdafunction((((lambda u#1225669.measurementUnit1.code = productPlant#1231095.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1225669.measurementUnit1.internalRefUUID = productPlant#1231095.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1231115.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1231115.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1231122]
(1473) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1231122.quantityNumerator), true, [quantityNumerator#1231123]
(1474) Project
Arguments: [product#1231083, plant#1231084, orderDateTime#1231085, productPlant#1231095, timezonecode#1231109, systemId#1231110, internalUUID#1231111, id#1231112, displayId#1231113, name#1231114, baseUnitOfMeasure#1231115, unitOfMeasures#1231116, unitOfMeasureConversions#1231117, productionAspect#1231118, salesAspect#1231119, procurementAspect#1231120, productGroup#1231121, filteredUnitOfMeasureConversions#1231122, quantityNumerator#1231123]
(1475) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1231122.quantityDenominator), true, [quantityDenominator#1231124]
(1476) Project
Arguments: [product#1231083, plant#1231084, orderDateTime#1231085, productPlant#1231095, timezonecode#1231109, systemId#1231110, internalUUID#1231111, id#1231112, displayId#1231113, name#1231114, baseUnitOfMeasure#1231115, unitOfMeasures#1231116, unitOfMeasureConversions#1231117, productionAspect#1231118, salesAspect#1231119, procurementAspect#1231120, productGroup#1231121, filteredUnitOfMeasureConversions#1231122, quantityNumerator#1231123, quantityDenominator#1231124]
(1477) Project
Arguments: [product#1231083, plant#1231084, orderDateTime#1231085, productPlant#1231095, timezonecode#1231109, systemId#1231110, internalUUID#1231111, id#1231112, displayId#1231113, name#1231114, baseUnitOfMeasure#1231115, unitOfMeasures#1231116, unitOfMeasureConversions#1231117, productionAspect#1231118, salesAspect#1231119, procurementAspect#1231120, productGroup#1231121, filteredUnitOfMeasureConversions#1231122, quantityNumerator#1231123, quantityDenominator#1231124, (cast(quantityNumerator#1231123 as double) / cast(quantityDenominator#1231124 as double)) AS outboundUnit#1231125]
(1478) Project
Arguments: [product#1231083, plant#1231084, orderDateTime#1231085, productPlant#1231095, timezonecode#1231109, systemId#1231110, internalUUID#1231111, id#1231112, displayId#1231113, name#1231114, baseUnitOfMeasure#1231115, unitOfMeasures#1231116, unitOfMeasureConversions#1231117, productionAspect#1231118, salesAspect#1231119, procurementAspect#1231120, productGroup#1231121, filteredUnitOfMeasureConversions#1231122, quantityNumerator#1231123, quantityDenominator#1231124, CASE WHEN (isnull(outboundUnit#1231125) OR (outboundUnit#1231125 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1231125 END AS outboundUnit#1231126]
(1479) Project
Arguments: [product#1231083, plant#1231084, orderDateTime#1231085, productPlant#1231095, timezonecode#1231109, outboundUnit#1231126]
(1480) Project
Arguments: [plant#1231084]
(1481) Deduplicate
Arguments: [plant#1231084]
(1482) Join
Arguments: Inner, (plantUuid#1231080 = plant#1231084)
(1483) Project
Arguments: [plantId#1231079, plantUuid#1231080, storageLocId#1231081, storageLocUuid#1231082]
(1484) Join
Arguments: Inner, (plant#1231052.internalRefUUID <=> plantUuid#1231080)
(1485) Generate
Arguments: explode(filter(stockQuantities#1231054, lambdafunction(((lambda x#1225727.storageLocation.internalRefUuid = storageLocUuid#1231082) AND (lambda x#1225727.storageLocation.Id = storageLocId#1231081)), lambda x#1225727, false))), false, [stockQuantity#1231127]
(1486) Project
Arguments: [systemId#1231049, internalUUID#1231050, product#1231051, plant#1231052, calculationDateTime#1231053, stockQuantities#1231054, plantId#1231079, plantUuid#1231080, storageLocId#1231081, storageLocUuid#1231082, stockQuantity#1231127]
(1487) Aggregate
Arguments: [plantUuid#1231080, internalUUID#1231050, plant#1231052, product#1231051, systemId#1231049], [plantUuid#1231080, internalUUID#1231050, plant#1231052, product#1231051, systemId#1231049, first(calculationDateTime#1231053, false) AS calculationDateTime#1231128, collect_list(stockQuantity#1231127, 0, 0) AS stockQuantities#1231129]
(1488) Project
Arguments: [systemId#1231049, internalUUID#1231050, product#1231051, plant#1231052, calculationDateTime#1231128, stockQuantities#1231129]
(1489) Generate
Arguments: explode(stockQuantities#1231129), false, [stockQuantity#1231130]
(1490) Project
Arguments: [systemId#1231049, internalUUID#1231050, product#1231051, plant#1231052, calculationDateTime#1231128, stockQuantities#1231129, stockQuantity#1231130]
(1491) Project
Arguments: [plant#1231052.id AS plant#1231131, plant#1231052.internalRefUUID AS plantUuid#1231132, product#1231051.id AS product#1231133, product#1231051.internalRefUUID AS productUuid#1231134, calculationDateTime#1231128, stockQuantity#1231130.storagelocation.id AS storageLocId#1231135, stockQuantity#1231130.storagelocation.internalRefUUID AS storageLocUuid#1231136, stockQuantity#1231130.quantity.measure AS quantity#1231137, stockQuantity#1231130.specialStockIndicator.code AS specialStockIndicator#1231138, stockQuantity#1231130.stockType.code AS stockType#1231139]
(1492) Filter
Arguments: ((specialStockIndicator#1231138 = ) AND (stockType#1231139 = 01))
(1493) LogicalRelation
Arguments: parquet, [product#1231140, plant#1231141, orderDateTime#1231142, planningStartDateTime#1231143], false
(1494) RepartitionByExpression
Arguments: [product#1231140, plant#1231141], 37
(1495) Project
Arguments: [product#1231140, plant#1231141, orderDateTime#1231142]
(1496) LogicalRelation
Arguments: parquet, [systemId#1231144, internalUUID#1231145, plant#1231146, product#1231147, blockedForReplenishmentStartingFrom#1231148, productionAspect#1231149, salesPlant#1231150, listing#1231151], false
(1497) Repartition
Arguments: 37, true
(1498) Project
Arguments: [systemId#1231144, internalUUID#1231145, plant#1231146, product#1231147, blockedForReplenishmentStartingFrom#1231148, productionAspect#1231149, salesPlant#1231150, listing#1231151, struct(systemId, systemId#1231144, internalUUID, internalUUID#1231145, plant, plant#1231146, product, product#1231147, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1231148, productionAspect, productionAspect#1231149, salesPlant, salesPlant#1231150, listing, listing#1231151) AS productPlant#1231152]
(1499) Project
Arguments: [productPlant#1231152]
(1500) Join
Arguments: LeftOuter, ((product#1231140 <=> productPlant#1231152.product.internalRefUUID) AND (plant#1231141 <=> productPlant#1231152.plant.internalRefUUID))
(1501) Project
Arguments: [product#1231140, plant#1231141, orderDateTime#1231142, productPlant#1231152]
(1502) SubqueryAlias
Arguments: wl
(1503) LogicalRelation
Arguments: parquet, [systemId#1231153, internalUUID#1231154, id#1231155, displayId#1231156, name#1231157, category#1231158, companyCode#1231159, address#1231160, mainDistributionChain#1231161, mainPurchasingOrganization#1231162, validPurchasingOrganizations#1231163, productGroup#1231164], false
(1504) Repartition
Arguments: 37, true
(1505) Project
Arguments: [internalUUID#1231154, address#1231160.timeZone.code AS timezonecode#1231165]
(1506) Join
Arguments: LeftOuter, (plant#1231141 <=> internalUUID#1231154)
(1507) Project
Arguments: [product#1231140, plant#1231141, orderDateTime#1231142, productPlant#1231152, internalUUID#1231154, CASE WHEN isnotnull(timezonecode#1231165) THEN timezonecode#1231165 ELSE UTC END AS timezonecode#1231166]
(1508) Project
Arguments: [product#1231140, plant#1231141, orderDateTime#1231142, productPlant#1231152, timezonecode#1231166]
(1509) LogicalRelation
Arguments: parquet, [systemId#1231167, internalUUID#1231168, id#1231169, displayId#1231170, name#1231171, baseUnitOfMeasure#1231172, unitOfMeasures#1231173, unitOfMeasureConversions#1231174, productionAspect#1231175, salesAspect#1231176, procurementAspect#1231177, productGroup#1231178], false
(1510) Repartition
Arguments: 37, true
(1511) Join
Arguments: LeftOuter, (product#1231140 = internalUUID#1231168)
(1512) Project
Arguments: [product#1231140, plant#1231141, orderDateTime#1231142, productPlant#1231152, timezonecode#1231166, systemId#1231167, internalUUID#1231168, id#1231169, displayId#1231170, name#1231171, baseUnitOfMeasure#1231172, unitOfMeasures#1231173, unitOfMeasureConversions#1231174, productionAspect#1231175, salesAspect#1231176, procurementAspect#1231177, productGroup#1231178, filter(unitOfMeasureConversions#1231174, lambdafunction((((lambda u#1225669.measurementUnit1.code = productPlant#1231152.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1225669.measurementUnit1.internalRefUUID = productPlant#1231152.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1231172.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1231172.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1231179]
(1513) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1231179.quantityNumerator), true, [quantityNumerator#1231180]
(1514) Project
Arguments: [product#1231140, plant#1231141, orderDateTime#1231142, productPlant#1231152, timezonecode#1231166, systemId#1231167, internalUUID#1231168, id#1231169, displayId#1231170, name#1231171, baseUnitOfMeasure#1231172, unitOfMeasures#1231173, unitOfMeasureConversions#1231174, productionAspect#1231175, salesAspect#1231176, procurementAspect#1231177, productGroup#1231178, filteredUnitOfMeasureConversions#1231179, quantityNumerator#1231180]
(1515) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1231179.quantityDenominator), true, [quantityDenominator#1231181]
(1516) Project
Arguments: [product#1231140, plant#1231141, orderDateTime#1231142, productPlant#1231152, timezonecode#1231166, systemId#1231167, internalUUID#1231168, id#1231169, displayId#1231170, name#1231171, baseUnitOfMeasure#1231172, unitOfMeasures#1231173, unitOfMeasureConversions#1231174, productionAspect#1231175, salesAspect#1231176, procurementAspect#1231177, productGroup#1231178, filteredUnitOfMeasureConversions#1231179, quantityNumerator#1231180, quantityDenominator#1231181]
(1517) Project
Arguments: [product#1231140, plant#1231141, orderDateTime#1231142, productPlant#1231152, timezonecode#1231166, systemId#1231167, internalUUID#1231168, id#1231169, displayId#1231170, name#1231171, baseUnitOfMeasure#1231172, unitOfMeasures#1231173, unitOfMeasureConversions#1231174, productionAspect#1231175, salesAspect#1231176, procurementAspect#1231177, productGroup#1231178, filteredUnitOfMeasureConversions#1231179, quantityNumerator#1231180, quantityDenominator#1231181, (cast(quantityNumerator#1231180 as double) / cast(quantityDenominator#1231181 as double)) AS outboundUnit#1231182]
(1518) Project
Arguments: [product#1231140, plant#1231141, orderDateTime#1231142, productPlant#1231152, timezonecode#1231166, systemId#1231167, internalUUID#1231168, id#1231169, displayId#1231170, name#1231171, baseUnitOfMeasure#1231172, unitOfMeasures#1231173, unitOfMeasureConversions#1231174, productionAspect#1231175, salesAspect#1231176, procurementAspect#1231177, productGroup#1231178, filteredUnitOfMeasureConversions#1231179, quantityNumerator#1231180, quantityDenominator#1231181, CASE WHEN (isnull(outboundUnit#1231182) OR (outboundUnit#1231182 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1231182 END AS outboundUnit#1231183]
(1519) Project
Arguments: [product#1231140, plant#1231141, orderDateTime#1231142, productPlant#1231152, timezonecode#1231166, outboundUnit#1231183]
(1520) Join
Arguments: Inner, ((plantUuid#1231132 = plant#1231141) AND (productUuid#1231134 = product#1231140))
(1521) Filter
Arguments: (calculationDateTime#1231128 <= orderDateTime#1231142)
(1522) Project
Arguments: [plantUuid#1231132 AS plant#1231184, productUuid#1231134 AS product#1231185, storageLocId#1231135, calculationDateTime#1231128, quantity#1231137]
(1523) Aggregate
Arguments: [plant#1231184, product#1231185, storageLocId#1231135], [plant#1231184, product#1231185, storageLocId#1231135, max(calculationDateTime#1231128) AS max_calc_datetime#1231186]
(1524) Join
Arguments: Inner, ((((plant#1231047 <=> plant#1231184) AND (product#1231048 <=> product#1231185)) AND (storageLocId#1230998 <=> storageLocId#1231135)) AND (calculationDateTime#1230991 <=> max_calc_datetime#1231186))
(1525) Project
Arguments: [plant#1231047, product#1231048, storageLocId#1230998, calculationDateTime#1230991, quantity#1231000]
(1526) Aggregate
Arguments: [product#1231048, plant#1231047], [product#1231048, plant#1231047, sum(quantity#1231000) AS quantitySum#1231187, min(calculationDateTime#1230991) AS minCalculationDateTime#1231188]
(1527) Project
Arguments: [product#1231048, plant#1231047, quantitySum#1231187, minCalculationDateTime#1231188, round(quantitySum#1231187, 0) AS roundedQuantitySum#1231189]
(1528) Join
Arguments: LeftOuter, ((plant#1230869 = plant#1231047) AND (product#1230868 = product#1231048))
(1529) Project
Arguments: [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880, timezonecode#1230894, outboundUnit#1230911, roundedQuantitySum#1231189, minCalculationDateTime#1231188]
(1530) Project
Arguments: [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880, timezonecode#1230894, outboundUnit#1230911, roundedQuantitySum#1231189, minCalculationDateTime#1231188, CASE WHEN isnotnull(minCalculationDateTime#1231188) THEN minCalculationDateTime#1231188 ELSE orderDateTime#1230870 END AS stockDatetime#1231190]
(1531) Project
Arguments: [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880, timezonecode#1230894, outboundUnit#1230911, roundedQuantitySum#1231189, minCalculationDateTime#1231188, stockDatetime#1231190, CASE WHEN isnotnull(roundedQuantitySum#1231189) THEN array(roundedQuantitySum#1231189) ELSE array(0.0) END AS stockBatchQuantities#1231191]
(1532) Project
Arguments: [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880, timezonecode#1230894, outboundUnit#1230911, roundedQuantitySum#1231189, minCalculationDateTime#1231188, stockDatetime#1231190, stockBatchQuantities#1231191, array(2199-01-01 00:00:00) AS stockBatchShelfLifeEndDatetimes#1231192]
(1533) Project
Arguments: [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880, timezonecode#1230894, outboundUnit#1230911, roundedQuantitySum#1231189, stockDatetime#1231190, stockBatchQuantities#1231191, stockBatchShelfLifeEndDatetimes#1231192]
(1534) Project
Arguments: [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880, timezonecode#1230894, outboundUnit#1230911, stockDatetime#1231190, stockBatchQuantities#1231191, stockBatchShelfLifeEndDatetimes#1231192]
(1535) LogicalRelation
Arguments: parquet, [product#1231193, plant#1231194, orderDateTime#1231195, planningStartDateTime#1231196], false
(1536) RepartitionByExpression
Arguments: [product#1231193, plant#1231194], 37
(1537) Project
Arguments: [product#1231193, plant#1231194, orderDateTime#1231195]
(1538) LogicalRelation
Arguments: parquet, [systemId#1231197, internalUUID#1231198, plant#1231199, product#1231200, blockedForReplenishmentStartingFrom#1231201, productionAspect#1231202, salesPlant#1231203, listing#1231204], false
(1539) Repartition
Arguments: 37, true
(1540) Project
Arguments: [systemId#1231197, internalUUID#1231198, plant#1231199, product#1231200, blockedForReplenishmentStartingFrom#1231201, productionAspect#1231202, salesPlant#1231203, listing#1231204, struct(systemId, systemId#1231197, internalUUID, internalUUID#1231198, plant, plant#1231199, product, product#1231200, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1231201, productionAspect, productionAspect#1231202, salesPlant, salesPlant#1231203, listing, listing#1231204) AS productPlant#1231205]
(1541) Project
Arguments: [productPlant#1231205]
(1542) Join
Arguments: LeftOuter, ((product#1231193 <=> productPlant#1231205.product.internalRefUUID) AND (plant#1231194 <=> productPlant#1231205.plant.internalRefUUID))
(1543) Project
Arguments: [product#1231193, plant#1231194, orderDateTime#1231195, productPlant#1231205]
(1544) SubqueryAlias
Arguments: wl
(1545) LogicalRelation
Arguments: parquet, [systemId#1231206, internalUUID#1231207, id#1231208, displayId#1231209, name#1231210, category#1231211, companyCode#1231212, address#1231213, mainDistributionChain#1231214, mainPurchasingOrganization#1231215, validPurchasingOrganizations#1231216, productGroup#1231217], false
(1546) Repartition
Arguments: 37, true
(1547) Project
Arguments: [internalUUID#1231207, address#1231213.timeZone.code AS timezonecode#1231218]
(1548) Join
Arguments: LeftOuter, (plant#1231194 <=> internalUUID#1231207)
(1549) Project
Arguments: [product#1231193, plant#1231194, orderDateTime#1231195, productPlant#1231205, internalUUID#1231207, CASE WHEN isnotnull(timezonecode#1231218) THEN timezonecode#1231218 ELSE UTC END AS timezonecode#1231219]
(1550) Project
Arguments: [product#1231193, plant#1231194, orderDateTime#1231195, productPlant#1231205, timezonecode#1231219]
(1551) LogicalRelation
Arguments: parquet, [systemId#1231220, internalUUID#1231221, id#1231222, displayId#1231223, name#1231224, baseUnitOfMeasure#1231225, unitOfMeasures#1231226, unitOfMeasureConversions#1231227, productionAspect#1231228, salesAspect#1231229, procurementAspect#1231230, productGroup#1231231], false
(1552) Repartition
Arguments: 37, true
(1553) Join
Arguments: LeftOuter, (product#1231193 = internalUUID#1231221)
(1554) Project
Arguments: [product#1231193, plant#1231194, orderDateTime#1231195, productPlant#1231205, timezonecode#1231219, systemId#1231220, internalUUID#1231221, id#1231222, displayId#1231223, name#1231224, baseUnitOfMeasure#1231225, unitOfMeasures#1231226, unitOfMeasureConversions#1231227, productionAspect#1231228, salesAspect#1231229, procurementAspect#1231230, productGroup#1231231, filter(unitOfMeasureConversions#1231227, lambdafunction((((lambda u#1225669.measurementUnit1.code = productPlant#1231205.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1225669.measurementUnit1.internalRefUUID = productPlant#1231205.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1231225.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1231225.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1231232]
(1555) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1231232.quantityNumerator), true, [quantityNumerator#1231233]
(1556) Project
Arguments: [product#1231193, plant#1231194, orderDateTime#1231195, productPlant#1231205, timezonecode#1231219, systemId#1231220, internalUUID#1231221, id#1231222, displayId#1231223, name#1231224, baseUnitOfMeasure#1231225, unitOfMeasures#1231226, unitOfMeasureConversions#1231227, productionAspect#1231228, salesAspect#1231229, procurementAspect#1231230, productGroup#1231231, filteredUnitOfMeasureConversions#1231232, quantityNumerator#1231233]
(1557) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1231232.quantityDenominator), true, [quantityDenominator#1231234]
(1558) Project
Arguments: [product#1231193, plant#1231194, orderDateTime#1231195, productPlant#1231205, timezonecode#1231219, systemId#1231220, internalUUID#1231221, id#1231222, displayId#1231223, name#1231224, baseUnitOfMeasure#1231225, unitOfMeasures#1231226, unitOfMeasureConversions#1231227, productionAspect#1231228, salesAspect#1231229, procurementAspect#1231230, productGroup#1231231, filteredUnitOfMeasureConversions#1231232, quantityNumerator#1231233, quantityDenominator#1231234]
(1559) Project
Arguments: [product#1231193, plant#1231194, orderDateTime#1231195, productPlant#1231205, timezonecode#1231219, systemId#1231220, internalUUID#1231221, id#1231222, displayId#1231223, name#1231224, baseUnitOfMeasure#1231225, unitOfMeasures#1231226, unitOfMeasureConversions#1231227, productionAspect#1231228, salesAspect#1231229, procurementAspect#1231230, productGroup#1231231, filteredUnitOfMeasureConversions#1231232, quantityNumerator#1231233, quantityDenominator#1231234, (cast(quantityNumerator#1231233 as double) / cast(quantityDenominator#1231234 as double)) AS outboundUnit#1231235]
(1560) Project
Arguments: [product#1231193, plant#1231194, orderDateTime#1231195, productPlant#1231205, timezonecode#1231219, systemId#1231220, internalUUID#1231221, id#1231222, displayId#1231223, name#1231224, baseUnitOfMeasure#1231225, unitOfMeasures#1231226, unitOfMeasureConversions#1231227, productionAspect#1231228, salesAspect#1231229, procurementAspect#1231230, productGroup#1231231, filteredUnitOfMeasureConversions#1231232, quantityNumerator#1231233, quantityDenominator#1231234, CASE WHEN (isnull(outboundUnit#1231235) OR (outboundUnit#1231235 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1231235 END AS outboundUnit#1231236]
(1561) Project
Arguments: [product#1231193, plant#1231194, orderDateTime#1231195, productPlant#1231205, timezonecode#1231219, outboundUnit#1231236]
(1562) LogicalRelation
Arguments: parquet, [systemId#1231237, internalUUID#1231238, product#1231239, plant#1231240, calculationDateTime#1231241, stockQuantities#1231242], false
(1563) Repartition
Arguments: 37, true
(1564) LogicalRelation
Arguments: parquet, [marketUnit#1231243, description#1231244, articleHierarchy#1231245, defaultCurrency#1231246, responsibilities#1231247, replenishmentTypes#1231248, distributionCenters#1231249, assignedArticleHierarchyNodes#1231250, minOrderQtySetting#1231251, listingCheck#1231252, odsSelection#1231253, demandProfiles#1231254, constraintProfiles#1231255, optimizationProfiles#1231256, orderGroupSplitProfiles#1231257, supplierMinimumProfiles#1231258, multipleRestrictionProfiles#1231259, preferredUomSource#1231260, handlingOfUnfulfilledDemands#1231261, negligibleQuantitiesThreshold#1231262, eventtype#1231263, minOrderQtySettingInternal#1231264], false
(1565) Repartition
Arguments: 37, true
(1566) Filter
Arguments: (marketUnit#1231243 <=> AUTO_MUV2)
(1567) Project
Arguments: [marketUnit#1231243, description#1231244, articleHierarchy#1231245, defaultCurrency#1231246, responsibilities#1231247, replenishmentTypes#1231248, distributionCenters#1231249, assignedArticleHierarchyNodes#1231250, minOrderQtySetting#1231251, listingCheck#1231252, odsSelection#1231253, demandProfiles#1231254, constraintProfiles#1231255, optimizationProfiles#1231256, orderGroupSplitProfiles#1231257, supplierMinimumProfiles#1231258, multipleRestrictionProfiles#1231259, preferredUomSource#1231260, handlingOfUnfulfilledDemands#1231261, negligibleQuantitiesThreshold#1231262, eventtype#1231263, minOrderQtySettingInternal#1231264]
(1568) Project
Arguments: [distributionCenters#1231249]
(1569) Generate
Arguments: explode(distributionCenters#1231249), false, [distributionCenters#1231265]
(1570) Project
Arguments: [distributionCenters#1231265]
(1571) Generate
Arguments: explode(distributionCenters#1231265.storageLocations), false, [storageLocations#1231266]
(1572) Project
Arguments: [distributionCenters#1231265.id AS plantId#1231267, distributionCenters#1231265.internalRefUUID AS plantUuid#1231268, storageLocations#1231266]
(1573) Project
Arguments: [plantId#1231267, plantUuid#1231268, storageLocations#1231266.id AS storageLocId#1231269, storageLocations#1231266.internalRefUUID AS storageLocUuid#1231270]
(1574) LogicalRelation
Arguments: parquet, [product#1231271, plant#1231272, orderDateTime#1231273, planningStartDateTime#1231274], false
(1575) RepartitionByExpression
Arguments: [product#1231271, plant#1231272], 37
(1576) Project
Arguments: [product#1231271, plant#1231272, orderDateTime#1231273]
(1577) LogicalRelation
Arguments: parquet, [systemId#1231275, internalUUID#1231276, plant#1231277, product#1231278, blockedForReplenishmentStartingFrom#1231279, productionAspect#1231280, salesPlant#1231281, listing#1231282], false
(1578) Repartition
Arguments: 37, true
(1579) Project
Arguments: [systemId#1231275, internalUUID#1231276, plant#1231277, product#1231278, blockedForReplenishmentStartingFrom#1231279, productionAspect#1231280, salesPlant#1231281, listing#1231282, struct(systemId, systemId#1231275, internalUUID, internalUUID#1231276, plant, plant#1231277, product, product#1231278, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1231279, productionAspect, productionAspect#1231280, salesPlant, salesPlant#1231281, listing, listing#1231282) AS productPlant#1231283]
(1580) Project
Arguments: [productPlant#1231283]
(1581) Join
Arguments: LeftOuter, ((product#1231271 <=> productPlant#1231283.product.internalRefUUID) AND (plant#1231272 <=> productPlant#1231283.plant.internalRefUUID))
(1582) Project
Arguments: [product#1231271, plant#1231272, orderDateTime#1231273, productPlant#1231283]
(1583) SubqueryAlias
Arguments: wl
(1584) LogicalRelation
Arguments: parquet, [systemId#1231284, internalUUID#1231285, id#1231286, displayId#1231287, name#1231288, category#1231289, companyCode#1231290, address#1231291, mainDistributionChain#1231292, mainPurchasingOrganization#1231293, validPurchasingOrganizations#1231294, productGroup#1231295], false
(1585) Repartition
Arguments: 37, true
(1586) Project
Arguments: [internalUUID#1231285, address#1231291.timeZone.code AS timezonecode#1231296]
(1587) Join
Arguments: LeftOuter, (plant#1231272 <=> internalUUID#1231285)
(1588) Project
Arguments: [product#1231271, plant#1231272, orderDateTime#1231273, productPlant#1231283, internalUUID#1231285, CASE WHEN isnotnull(timezonecode#1231296) THEN timezonecode#1231296 ELSE UTC END AS timezonecode#1231297]
(1589) Project
Arguments: [product#1231271, plant#1231272, orderDateTime#1231273, productPlant#1231283, timezonecode#1231297]
(1590) LogicalRelation
Arguments: parquet, [systemId#1231298, internalUUID#1231299, id#1231300, displayId#1231301, name#1231302, baseUnitOfMeasure#1231303, unitOfMeasures#1231304, unitOfMeasureConversions#1231305, productionAspect#1231306, salesAspect#1231307, procurementAspect#1231308, productGroup#1231309], false
(1591) Repartition
Arguments: 37, true
(1592) Join
Arguments: LeftOuter, (product#1231271 = internalUUID#1231299)
(1593) Project
Arguments: [product#1231271, plant#1231272, orderDateTime#1231273, productPlant#1231283, timezonecode#1231297, systemId#1231298, internalUUID#1231299, id#1231300, displayId#1231301, name#1231302, baseUnitOfMeasure#1231303, unitOfMeasures#1231304, unitOfMeasureConversions#1231305, productionAspect#1231306, salesAspect#1231307, procurementAspect#1231308, productGroup#1231309, filter(unitOfMeasureConversions#1231305, lambdafunction((((lambda u#1225669.measurementUnit1.code = productPlant#1231283.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1225669.measurementUnit1.internalRefUUID = productPlant#1231283.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1231303.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1231303.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1231310]
(1594) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1231310.quantityNumerator), true, [quantityNumerator#1231311]
(1595) Project
Arguments: [product#1231271, plant#1231272, orderDateTime#1231273, productPlant#1231283, timezonecode#1231297, systemId#1231298, internalUUID#1231299, id#1231300, displayId#1231301, name#1231302, baseUnitOfMeasure#1231303, unitOfMeasures#1231304, unitOfMeasureConversions#1231305, productionAspect#1231306, salesAspect#1231307, procurementAspect#1231308, productGroup#1231309, filteredUnitOfMeasureConversions#1231310, quantityNumerator#1231311]
(1596) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1231310.quantityDenominator), true, [quantityDenominator#1231312]
(1597) Project
Arguments: [product#1231271, plant#1231272, orderDateTime#1231273, productPlant#1231283, timezonecode#1231297, systemId#1231298, internalUUID#1231299, id#1231300, displayId#1231301, name#1231302, baseUnitOfMeasure#1231303, unitOfMeasures#1231304, unitOfMeasureConversions#1231305, productionAspect#1231306, salesAspect#1231307, procurementAspect#1231308, productGroup#1231309, filteredUnitOfMeasureConversions#1231310, quantityNumerator#1231311, quantityDenominator#1231312]
(1598) Project
Arguments: [product#1231271, plant#1231272, orderDateTime#1231273, productPlant#1231283, timezonecode#1231297, systemId#1231298, internalUUID#1231299, id#1231300, displayId#1231301, name#1231302, baseUnitOfMeasure#1231303, unitOfMeasures#1231304, unitOfMeasureConversions#1231305, productionAspect#1231306, salesAspect#1231307, procurementAspect#1231308, productGroup#1231309, filteredUnitOfMeasureConversions#1231310, quantityNumerator#1231311, quantityDenominator#1231312, (cast(quantityNumerator#1231311 as double) / cast(quantityDenominator#1231312 as double)) AS outboundUnit#1231313]
(1599) Project
Arguments: [product#1231271, plant#1231272, orderDateTime#1231273, productPlant#1231283, timezonecode#1231297, systemId#1231298, internalUUID#1231299, id#1231300, displayId#1231301, name#1231302, baseUnitOfMeasure#1231303, unitOfMeasures#1231304, unitOfMeasureConversions#1231305, productionAspect#1231306, salesAspect#1231307, procurementAspect#1231308, productGroup#1231309, filteredUnitOfMeasureConversions#1231310, quantityNumerator#1231311, quantityDenominator#1231312, CASE WHEN (isnull(outboundUnit#1231313) OR (outboundUnit#1231313 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1231313 END AS outboundUnit#1231314]
(1600) Project
Arguments: [product#1231271, plant#1231272, orderDateTime#1231273, productPlant#1231283, timezonecode#1231297, outboundUnit#1231314]
(1601) Project
Arguments: [plant#1231272]
(1602) Deduplicate
Arguments: [plant#1231272]
(1603) Join
Arguments: Inner, (plantUuid#1231268 = plant#1231272)
(1604) Project
Arguments: [plantId#1231267, plantUuid#1231268, storageLocId#1231269, storageLocUuid#1231270]
(1605) Join
Arguments: Inner, (plant#1231240.internalRefUUID <=> plantUuid#1231268)
(1606) Generate
Arguments: explode(filter(stockQuantities#1231242, lambdafunction(((lambda x#1225727.storageLocation.internalRefUuid = storageLocUuid#1231270) AND (lambda x#1225727.storageLocation.Id = storageLocId#1231269)), lambda x#1225727, false))), false, [stockQuantity#1231315]
(1607) Project
Arguments: [systemId#1231237, internalUUID#1231238, product#1231239, plant#1231240, calculationDateTime#1231241, stockQuantities#1231242, plantId#1231267, plantUuid#1231268, storageLocId#1231269, storageLocUuid#1231270, stockQuantity#1231315]
(1608) Aggregate
Arguments: [plantUuid#1231268, internalUUID#1231238, plant#1231240, product#1231239, systemId#1231237], [plantUuid#1231268, internalUUID#1231238, plant#1231240, product#1231239, systemId#1231237, first(calculationDateTime#1231241, false) AS calculationDateTime#1231316, collect_list(stockQuantity#1231315, 0, 0) AS stockQuantities#1231317]
(1609) Project
Arguments: [systemId#1231237, internalUUID#1231238, product#1231239, plant#1231240, calculationDateTime#1231316, stockQuantities#1231317]
(1610) Generate
Arguments: explode(stockQuantities#1231317), false, [stockQuantity#1231318]
(1611) Project
Arguments: [systemId#1231237, internalUUID#1231238, product#1231239, plant#1231240, calculationDateTime#1231316, stockQuantities#1231317, stockQuantity#1231318]
(1612) Project
Arguments: [plant#1231240.id AS plant#1231319, plant#1231240.internalRefUUID AS plantUuid#1231320, product#1231239.id AS product#1231321, product#1231239.internalRefUUID AS productUuid#1231322, calculationDateTime#1231316, stockQuantity#1231318.storagelocation.id AS storageLocId#1231323, stockQuantity#1231318.storagelocation.internalRefUUID AS storageLocUuid#1231324, stockQuantity#1231318.quantity.measure AS quantity#1231325, stockQuantity#1231318.specialStockIndicator.code AS specialStockIndicator#1231326, stockQuantity#1231318.stockType.code AS stockType#1231327]
(1613) Filter
Arguments: ((specialStockIndicator#1231326 = ) AND (stockType#1231327 = 01))
(1614) LogicalRelation
Arguments: parquet, [product#1231328, plant#1231329, orderDateTime#1231330, planningStartDateTime#1231331], false
(1615) RepartitionByExpression
Arguments: [product#1231328, plant#1231329], 37
(1616) Project
Arguments: [product#1231328, plant#1231329, orderDateTime#1231330]
(1617) LogicalRelation
Arguments: parquet, [systemId#1231332, internalUUID#1231333, plant#1231334, product#1231335, blockedForReplenishmentStartingFrom#1231336, productionAspect#1231337, salesPlant#1231338, listing#1231339], false
(1618) Repartition
Arguments: 37, true
(1619) Project
Arguments: [systemId#1231332, internalUUID#1231333, plant#1231334, product#1231335, blockedForReplenishmentStartingFrom#1231336, productionAspect#1231337, salesPlant#1231338, listing#1231339, struct(systemId, systemId#1231332, internalUUID, internalUUID#1231333, plant, plant#1231334, product, product#1231335, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1231336, productionAspect, productionAspect#1231337, salesPlant, salesPlant#1231338, listing, listing#1231339) AS productPlant#1231340]
(1620) Project
Arguments: [productPlant#1231340]
(1621) Join
Arguments: LeftOuter, ((product#1231328 <=> productPlant#1231340.product.internalRefUUID) AND (plant#1231329 <=> productPlant#1231340.plant.internalRefUUID))
(1622) Project
Arguments: [product#1231328, plant#1231329, orderDateTime#1231330, productPlant#1231340]
(1623) SubqueryAlias
Arguments: wl
(1624) LogicalRelation
Arguments: parquet, [systemId#1231341, internalUUID#1231342, id#1231343, displayId#1231344, name#1231345, category#1231346, companyCode#1231347, address#1231348, mainDistributionChain#1231349, mainPurchasingOrganization#1231350, validPurchasingOrganizations#1231351, productGroup#1231352], false
(1625) Repartition
Arguments: 37, true
(1626) Project
Arguments: [internalUUID#1231342, address#1231348.timeZone.code AS timezonecode#1231353]
(1627) Join
Arguments: LeftOuter, (plant#1231329 <=> internalUUID#1231342)
(1628) Project
Arguments: [product#1231328, plant#1231329, orderDateTime#1231330, productPlant#1231340, internalUUID#1231342, CASE WHEN isnotnull(timezonecode#1231353) THEN timezonecode#1231353 ELSE UTC END AS timezonecode#1231354]
(1629) Project
Arguments: [product#1231328, plant#1231329, orderDateTime#1231330, productPlant#1231340, timezonecode#1231354]
(1630) LogicalRelation
Arguments: parquet, [systemId#1231355, internalUUID#1231356, id#1231357, displayId#1231358, name#1231359, baseUnitOfMeasure#1231360, unitOfMeasures#1231361, unitOfMeasureConversions#1231362, productionAspect#1231363, salesAspect#1231364, procurementAspect#1231365, productGroup#1231366], false
(1631) Repartition
Arguments: 37, true
(1632) Join
Arguments: LeftOuter, (product#1231328 = internalUUID#1231356)
(1633) Project
Arguments: [product#1231328, plant#1231329, orderDateTime#1231330, productPlant#1231340, timezonecode#1231354, systemId#1231355, internalUUID#1231356, id#1231357, displayId#1231358, name#1231359, baseUnitOfMeasure#1231360, unitOfMeasures#1231361, unitOfMeasureConversions#1231362, productionAspect#1231363, salesAspect#1231364, procurementAspect#1231365, productGroup#1231366, filter(unitOfMeasureConversions#1231362, lambdafunction((((lambda u#1225669.measurementUnit1.code = productPlant#1231340.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1225669.measurementUnit1.internalRefUUID = productPlant#1231340.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1231360.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1231360.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1231367]
(1634) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1231367.quantityNumerator), true, [quantityNumerator#1231368]
(1635) Project
Arguments: [product#1231328, plant#1231329, orderDateTime#1231330, productPlant#1231340, timezonecode#1231354, systemId#1231355, internalUUID#1231356, id#1231357, displayId#1231358, name#1231359, baseUnitOfMeasure#1231360, unitOfMeasures#1231361, unitOfMeasureConversions#1231362, productionAspect#1231363, salesAspect#1231364, procurementAspect#1231365, productGroup#1231366, filteredUnitOfMeasureConversions#1231367, quantityNumerator#1231368]
(1636) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1231367.quantityDenominator), true, [quantityDenominator#1231369]
(1637) Project
Arguments: [product#1231328, plant#1231329, orderDateTime#1231330, productPlant#1231340, timezonecode#1231354, systemId#1231355, internalUUID#1231356, id#1231357, displayId#1231358, name#1231359, baseUnitOfMeasure#1231360, unitOfMeasures#1231361, unitOfMeasureConversions#1231362, productionAspect#1231363, salesAspect#1231364, procurementAspect#1231365, productGroup#1231366, filteredUnitOfMeasureConversions#1231367, quantityNumerator#1231368, quantityDenominator#1231369]
(1638) Project
Arguments: [product#1231328, plant#1231329, orderDateTime#1231330, productPlant#1231340, timezonecode#1231354, systemId#1231355, internalUUID#1231356, id#1231357, displayId#1231358, name#1231359, baseUnitOfMeasure#1231360, unitOfMeasures#1231361, unitOfMeasureConversions#1231362, productionAspect#1231363, salesAspect#1231364, procurementAspect#1231365, productGroup#1231366, filteredUnitOfMeasureConversions#1231367, quantityNumerator#1231368, quantityDenominator#1231369, (cast(quantityNumerator#1231368 as double) / cast(quantityDenominator#1231369 as double)) AS outboundUnit#1231370]
(1639) Project
Arguments: [product#1231328, plant#1231329, orderDateTime#1231330, productPlant#1231340, timezonecode#1231354, systemId#1231355, internalUUID#1231356, id#1231357, displayId#1231358, name#1231359, baseUnitOfMeasure#1231360, unitOfMeasures#1231361, unitOfMeasureConversions#1231362, productionAspect#1231363, salesAspect#1231364, procurementAspect#1231365, productGroup#1231366, filteredUnitOfMeasureConversions#1231367, quantityNumerator#1231368, quantityDenominator#1231369, CASE WHEN (isnull(outboundUnit#1231370) OR (outboundUnit#1231370 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1231370 END AS outboundUnit#1231371]
(1640) Project
Arguments: [product#1231328, plant#1231329, orderDateTime#1231330, productPlant#1231340, timezonecode#1231354, outboundUnit#1231371]
(1641) Join
Arguments: Inner, ((plantUuid#1231320 = plant#1231329) AND (productUuid#1231322 = product#1231328))
(1642) Filter
Arguments: (calculationDateTime#1231316 <= orderDateTime#1231330)
(1643) Project
Arguments: [plantUuid#1231320 AS plant#1231372, productUuid#1231322 AS product#1231373, storageLocId#1231323, calculationDateTime#1231316, quantity#1231325]
(1644) LogicalRelation
Arguments: parquet, [systemId#1231374, internalUUID#1231375, product#1231376, plant#1231377, calculationDateTime#1231378, stockQuantities#1231379], false
(1645) Repartition
Arguments: 37, true
(1646) LogicalRelation
Arguments: parquet, [marketUnit#1231380, description#1231381, articleHierarchy#1231382, defaultCurrency#1231383, responsibilities#1231384, replenishmentTypes#1231385, distributionCenters#1231386, assignedArticleHierarchyNodes#1231387, minOrderQtySetting#1231388, listingCheck#1231389, odsSelection#1231390, demandProfiles#1231391, constraintProfiles#1231392, optimizationProfiles#1231393, orderGroupSplitProfiles#1231394, supplierMinimumProfiles#1231395, multipleRestrictionProfiles#1231396, preferredUomSource#1231397, handlingOfUnfulfilledDemands#1231398, negligibleQuantitiesThreshold#1231399, eventtype#1231400, minOrderQtySettingInternal#1231401], false
(1647) Repartition
Arguments: 37, true
(1648) Filter
Arguments: (marketUnit#1231380 <=> AUTO_MUV2)
(1649) Project
Arguments: [marketUnit#1231380, description#1231381, articleHierarchy#1231382, defaultCurrency#1231383, responsibilities#1231384, replenishmentTypes#1231385, distributionCenters#1231386, assignedArticleHierarchyNodes#1231387, minOrderQtySetting#1231388, listingCheck#1231389, odsSelection#1231390, demandProfiles#1231391, constraintProfiles#1231392, optimizationProfiles#1231393, orderGroupSplitProfiles#1231394, supplierMinimumProfiles#1231395, multipleRestrictionProfiles#1231396, preferredUomSource#1231397, handlingOfUnfulfilledDemands#1231398, negligibleQuantitiesThreshold#1231399, eventtype#1231400, minOrderQtySettingInternal#1231401]
(1650) Project
Arguments: [distributionCenters#1231386]
(1651) Generate
Arguments: explode(distributionCenters#1231386), false, [distributionCenters#1231402]
(1652) Project
Arguments: [distributionCenters#1231402]
(1653) Generate
Arguments: explode(distributionCenters#1231402.storageLocations), false, [storageLocations#1231403]
(1654) Project
Arguments: [distributionCenters#1231402.id AS plantId#1231404, distributionCenters#1231402.internalRefUUID AS plantUuid#1231405, storageLocations#1231403]
(1655) Project
Arguments: [plantId#1231404, plantUuid#1231405, storageLocations#1231403.id AS storageLocId#1231406, storageLocations#1231403.internalRefUUID AS storageLocUuid#1231407]
(1656) LogicalRelation
Arguments: parquet, [product#1231408, plant#1231409, orderDateTime#1231410, planningStartDateTime#1231411], false
(1657) RepartitionByExpression
Arguments: [product#1231408, plant#1231409], 37
(1658) Project
Arguments: [product#1231408, plant#1231409, orderDateTime#1231410]
(1659) LogicalRelation
Arguments: parquet, [systemId#1231412, internalUUID#1231413, plant#1231414, product#1231415, blockedForReplenishmentStartingFrom#1231416, productionAspect#1231417, salesPlant#1231418, listing#1231419], false
(1660) Repartition
Arguments: 37, true
(1661) Project
Arguments: [systemId#1231412, internalUUID#1231413, plant#1231414, product#1231415, blockedForReplenishmentStartingFrom#1231416, productionAspect#1231417, salesPlant#1231418, listing#1231419, struct(systemId, systemId#1231412, internalUUID, internalUUID#1231413, plant, plant#1231414, product, product#1231415, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1231416, productionAspect, productionAspect#1231417, salesPlant, salesPlant#1231418, listing, listing#1231419) AS productPlant#1231420]
(1662) Project
Arguments: [productPlant#1231420]
(1663) Join
Arguments: LeftOuter, ((product#1231408 <=> productPlant#1231420.product.internalRefUUID) AND (plant#1231409 <=> productPlant#1231420.plant.internalRefUUID))
(1664) Project
Arguments: [product#1231408, plant#1231409, orderDateTime#1231410, productPlant#1231420]
(1665) SubqueryAlias
Arguments: wl
(1666) LogicalRelation
Arguments: parquet, [systemId#1231421, internalUUID#1231422, id#1231423, displayId#1231424, name#1231425, category#1231426, companyCode#1231427, address#1231428, mainDistributionChain#1231429, mainPurchasingOrganization#1231430, validPurchasingOrganizations#1231431, productGroup#1231432], false
(1667) Repartition
Arguments: 37, true
(1668) Project
Arguments: [internalUUID#1231422, address#1231428.timeZone.code AS timezonecode#1231433]
(1669) Join
Arguments: LeftOuter, (plant#1231409 <=> internalUUID#1231422)
(1670) Project
Arguments: [product#1231408, plant#1231409, orderDateTime#1231410, productPlant#1231420, internalUUID#1231422, CASE WHEN isnotnull(timezonecode#1231433) THEN timezonecode#1231433 ELSE UTC END AS timezonecode#1231434]
(1671) Project
Arguments: [product#1231408, plant#1231409, orderDateTime#1231410, productPlant#1231420, timezonecode#1231434]
(1672) LogicalRelation
Arguments: parquet, [systemId#1231435, internalUUID#1231436, id#1231437, displayId#1231438, name#1231439, baseUnitOfMeasure#1231440, unitOfMeasures#1231441, unitOfMeasureConversions#1231442, productionAspect#1231443, salesAspect#1231444, procurementAspect#1231445, productGroup#1231446], false
(1673) Repartition
Arguments: 37, true
(1674) Join
Arguments: LeftOuter, (product#1231408 = internalUUID#1231436)
(1675) Project
Arguments: [product#1231408, plant#1231409, orderDateTime#1231410, productPlant#1231420, timezonecode#1231434, systemId#1231435, internalUUID#1231436, id#1231437, displayId#1231438, name#1231439, baseUnitOfMeasure#1231440, unitOfMeasures#1231441, unitOfMeasureConversions#1231442, productionAspect#1231443, salesAspect#1231444, procurementAspect#1231445, productGroup#1231446, filter(unitOfMeasureConversions#1231442, lambdafunction((((lambda u#1225669.measurementUnit1.code = productPlant#1231420.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1225669.measurementUnit1.internalRefUUID = productPlant#1231420.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1231440.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1231440.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1231447]
(1676) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1231447.quantityNumerator), true, [quantityNumerator#1231448]
(1677) Project
Arguments: [product#1231408, plant#1231409, orderDateTime#1231410, productPlant#1231420, timezonecode#1231434, systemId#1231435, internalUUID#1231436, id#1231437, displayId#1231438, name#1231439, baseUnitOfMeasure#1231440, unitOfMeasures#1231441, unitOfMeasureConversions#1231442, productionAspect#1231443, salesAspect#1231444, procurementAspect#1231445, productGroup#1231446, filteredUnitOfMeasureConversions#1231447, quantityNumerator#1231448]
(1678) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1231447.quantityDenominator), true, [quantityDenominator#1231449]
(1679) Project
Arguments: [product#1231408, plant#1231409, orderDateTime#1231410, productPlant#1231420, timezonecode#1231434, systemId#1231435, internalUUID#1231436, id#1231437, displayId#1231438, name#1231439, baseUnitOfMeasure#1231440, unitOfMeasures#1231441, unitOfMeasureConversions#1231442, productionAspect#1231443, salesAspect#1231444, procurementAspect#1231445, productGroup#1231446, filteredUnitOfMeasureConversions#1231447, quantityNumerator#1231448, quantityDenominator#1231449]
(1680) Project
Arguments: [product#1231408, plant#1231409, orderDateTime#1231410, productPlant#1231420, timezonecode#1231434, systemId#1231435, internalUUID#1231436, id#1231437, displayId#1231438, name#1231439, baseUnitOfMeasure#1231440, unitOfMeasures#1231441, unitOfMeasureConversions#1231442, productionAspect#1231443, salesAspect#1231444, procurementAspect#1231445, productGroup#1231446, filteredUnitOfMeasureConversions#1231447, quantityNumerator#1231448, quantityDenominator#1231449, (cast(quantityNumerator#1231448 as double) / cast(quantityDenominator#1231449 as double)) AS outboundUnit#1231450]
(1681) Project
Arguments: [product#1231408, plant#1231409, orderDateTime#1231410, productPlant#1231420, timezonecode#1231434, systemId#1231435, internalUUID#1231436, id#1231437, displayId#1231438, name#1231439, baseUnitOfMeasure#1231440, unitOfMeasures#1231441, unitOfMeasureConversions#1231442, productionAspect#1231443, salesAspect#1231444, procurementAspect#1231445, productGroup#1231446, filteredUnitOfMeasureConversions#1231447, quantityNumerator#1231448, quantityDenominator#1231449, CASE WHEN (isnull(outboundUnit#1231450) OR (outboundUnit#1231450 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1231450 END AS outboundUnit#1231451]
(1682) Project
Arguments: [product#1231408, plant#1231409, orderDateTime#1231410, productPlant#1231420, timezonecode#1231434, outboundUnit#1231451]
(1683) Project
Arguments: [plant#1231409]
(1684) Deduplicate
Arguments: [plant#1231409]
(1685) Join
Arguments: Inner, (plantUuid#1231405 = plant#1231409)
(1686) Project
Arguments: [plantId#1231404, plantUuid#1231405, storageLocId#1231406, storageLocUuid#1231407]
(1687) Join
Arguments: Inner, (plant#1231377.internalRefUUID <=> plantUuid#1231405)
(1688) Generate
Arguments: explode(filter(stockQuantities#1231379, lambdafunction(((lambda x#1225727.storageLocation.internalRefUuid = storageLocUuid#1231407) AND (lambda x#1225727.storageLocation.Id = storageLocId#1231406)), lambda x#1225727, false))), false, [stockQuantity#1231452]
(1689) Project
Arguments: [systemId#1231374, internalUUID#1231375, product#1231376, plant#1231377, calculationDateTime#1231378, stockQuantities#1231379, plantId#1231404, plantUuid#1231405, storageLocId#1231406, storageLocUuid#1231407, stockQuantity#1231452]
(1690) Aggregate
Arguments: [plantUuid#1231405, internalUUID#1231375, plant#1231377, product#1231376, systemId#1231374], [plantUuid#1231405, internalUUID#1231375, plant#1231377, product#1231376, systemId#1231374, first(calculationDateTime#1231378, false) AS calculationDateTime#1231453, collect_list(stockQuantity#1231452, 0, 0) AS stockQuantities#1231454]
(1691) Project
Arguments: [systemId#1231374, internalUUID#1231375, product#1231376, plant#1231377, calculationDateTime#1231453, stockQuantities#1231454]
(1692) Generate
Arguments: explode(stockQuantities#1231454), false, [stockQuantity#1231455]
(1693) Project
Arguments: [systemId#1231374, internalUUID#1231375, product#1231376, plant#1231377, calculationDateTime#1231453, stockQuantities#1231454, stockQuantity#1231455]
(1694) Project
Arguments: [plant#1231377.id AS plant#1231456, plant#1231377.internalRefUUID AS plantUuid#1231457, product#1231376.id AS product#1231458, product#1231376.internalRefUUID AS productUuid#1231459, calculationDateTime#1231453, stockQuantity#1231455.storagelocation.id AS storageLocId#1231460, stockQuantity#1231455.storagelocation.internalRefUUID AS storageLocUuid#1231461, stockQuantity#1231455.quantity.measure AS quantity#1231462, stockQuantity#1231455.specialStockIndicator.code AS specialStockIndicator#1231463, stockQuantity#1231455.stockType.code AS stockType#1231464]
(1695) Filter
Arguments: ((specialStockIndicator#1231463 = ) AND (stockType#1231464 = 01))
(1696) LogicalRelation
Arguments: parquet, [product#1231465, plant#1231466, orderDateTime#1231467, planningStartDateTime#1231468], false
(1697) RepartitionByExpression
Arguments: [product#1231465, plant#1231466], 37
(1698) Project
Arguments: [product#1231465, plant#1231466, orderDateTime#1231467]
(1699) LogicalRelation
Arguments: parquet, [systemId#1231469, internalUUID#1231470, plant#1231471, product#1231472, blockedForReplenishmentStartingFrom#1231473, productionAspect#1231474, salesPlant#1231475, listing#1231476], false
(1700) Repartition
Arguments: 37, true
(1701) Project
Arguments: [systemId#1231469, internalUUID#1231470, plant#1231471, product#1231472, blockedForReplenishmentStartingFrom#1231473, productionAspect#1231474, salesPlant#1231475, listing#1231476, struct(systemId, systemId#1231469, internalUUID, internalUUID#1231470, plant, plant#1231471, product, product#1231472, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1231473, productionAspect, productionAspect#1231474, salesPlant, salesPlant#1231475, listing, listing#1231476) AS productPlant#1231477]
(1702) Project
Arguments: [productPlant#1231477]
(1703) Join
Arguments: LeftOuter, ((product#1231465 <=> productPlant#1231477.product.internalRefUUID) AND (plant#1231466 <=> productPlant#1231477.plant.internalRefUUID))
(1704) Project
Arguments: [product#1231465, plant#1231466, orderDateTime#1231467, productPlant#1231477]
(1705) SubqueryAlias
Arguments: wl
(1706) LogicalRelation
Arguments: parquet, [systemId#1231478, internalUUID#1231479, id#1231480, displayId#1231481, name#1231482, category#1231483, companyCode#1231484, address#1231485, mainDistributionChain#1231486, mainPurchasingOrganization#1231487, validPurchasingOrganizations#1231488, productGroup#1231489], false
(1707) Repartition
Arguments: 37, true
(1708) Project
Arguments: [internalUUID#1231479, address#1231485.timeZone.code AS timezonecode#1231490]
(1709) Join
Arguments: LeftOuter, (plant#1231466 <=> internalUUID#1231479)
(1710) Project
Arguments: [product#1231465, plant#1231466, orderDateTime#1231467, productPlant#1231477, internalUUID#1231479, CASE WHEN isnotnull(timezonecode#1231490) THEN timezonecode#1231490 ELSE UTC END AS timezonecode#1231491]
(1711) Project
Arguments: [product#1231465, plant#1231466, orderDateTime#1231467, productPlant#1231477, timezonecode#1231491]
(1712) LogicalRelation
Arguments: parquet, [systemId#1231492, internalUUID#1231493, id#1231494, displayId#1231495, name#1231496, baseUnitOfMeasure#1231497, unitOfMeasures#1231498, unitOfMeasureConversions#1231499, productionAspect#1231500, salesAspect#1231501, procurementAspect#1231502, productGroup#1231503], false
(1713) Repartition
Arguments: 37, true
(1714) Join
Arguments: LeftOuter, (product#1231465 = internalUUID#1231493)
(1715) Project
Arguments: [product#1231465, plant#1231466, orderDateTime#1231467, productPlant#1231477, timezonecode#1231491, systemId#1231492, internalUUID#1231493, id#1231494, displayId#1231495, name#1231496, baseUnitOfMeasure#1231497, unitOfMeasures#1231498, unitOfMeasureConversions#1231499, productionAspect#1231500, salesAspect#1231501, procurementAspect#1231502, productGroup#1231503, filter(unitOfMeasureConversions#1231499, lambdafunction((((lambda u#1225669.measurementUnit1.code = productPlant#1231477.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1225669.measurementUnit1.internalRefUUID = productPlant#1231477.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1231497.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1231497.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1231504]
(1716) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1231504.quantityNumerator), true, [quantityNumerator#1231505]
(1717) Project
Arguments: [product#1231465, plant#1231466, orderDateTime#1231467, productPlant#1231477, timezonecode#1231491, systemId#1231492, internalUUID#1231493, id#1231494, displayId#1231495, name#1231496, baseUnitOfMeasure#1231497, unitOfMeasures#1231498, unitOfMeasureConversions#1231499, productionAspect#1231500, salesAspect#1231501, procurementAspect#1231502, productGroup#1231503, filteredUnitOfMeasureConversions#1231504, quantityNumerator#1231505]
(1718) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1231504.quantityDenominator), true, [quantityDenominator#1231506]
(1719) Project
Arguments: [product#1231465, plant#1231466, orderDateTime#1231467, productPlant#1231477, timezonecode#1231491, systemId#1231492, internalUUID#1231493, id#1231494, displayId#1231495, name#1231496, baseUnitOfMeasure#1231497, unitOfMeasures#1231498, unitOfMeasureConversions#1231499, productionAspect#1231500, salesAspect#1231501, procurementAspect#1231502, productGroup#1231503, filteredUnitOfMeasureConversions#1231504, quantityNumerator#1231505, quantityDenominator#1231506]
(1720) Project
Arguments: [product#1231465, plant#1231466, orderDateTime#1231467, productPlant#1231477, timezonecode#1231491, systemId#1231492, internalUUID#1231493, id#1231494, displayId#1231495, name#1231496, baseUnitOfMeasure#1231497, unitOfMeasures#1231498, unitOfMeasureConversions#1231499, productionAspect#1231500, salesAspect#1231501, procurementAspect#1231502, productGroup#1231503, filteredUnitOfMeasureConversions#1231504, quantityNumerator#1231505, quantityDenominator#1231506, (cast(quantityNumerator#1231505 as double) / cast(quantityDenominator#1231506 as double)) AS outboundUnit#1231507]
(1721) Project
Arguments: [product#1231465, plant#1231466, orderDateTime#1231467, productPlant#1231477, timezonecode#1231491, systemId#1231492, internalUUID#1231493, id#1231494, displayId#1231495, name#1231496, baseUnitOfMeasure#1231497, unitOfMeasures#1231498, unitOfMeasureConversions#1231499, productionAspect#1231500, salesAspect#1231501, procurementAspect#1231502, productGroup#1231503, filteredUnitOfMeasureConversions#1231504, quantityNumerator#1231505, quantityDenominator#1231506, CASE WHEN (isnull(outboundUnit#1231507) OR (outboundUnit#1231507 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1231507 END AS outboundUnit#1231508]
(1722) Project
Arguments: [product#1231465, plant#1231466, orderDateTime#1231467, productPlant#1231477, timezonecode#1231491, outboundUnit#1231508]
(1723) Join
Arguments: Inner, ((plantUuid#1231457 = plant#1231466) AND (productUuid#1231459 = product#1231465))
(1724) Filter
Arguments: (calculationDateTime#1231453 <= orderDateTime#1231467)
(1725) Project
Arguments: [plantUuid#1231457 AS plant#1231509, productUuid#1231459 AS product#1231510, storageLocId#1231460, calculationDateTime#1231453, quantity#1231462]
(1726) Aggregate
Arguments: [plant#1231509, product#1231510, storageLocId#1231460], [plant#1231509, product#1231510, storageLocId#1231460, max(calculationDateTime#1231453) AS max_calc_datetime#1231511]
(1727) Join
Arguments: Inner, ((((plant#1231372 <=> plant#1231509) AND (product#1231373 <=> product#1231510)) AND (storageLocId#1231323 <=> storageLocId#1231460)) AND (calculationDateTime#1231316 <=> max_calc_datetime#1231511))
(1728) Project
Arguments: [plant#1231372, product#1231373, storageLocId#1231323, calculationDateTime#1231316, quantity#1231325]
(1729) Aggregate
Arguments: [product#1231373, plant#1231372], [product#1231373, plant#1231372, sum(quantity#1231325) AS quantitySum#1231512, min(calculationDateTime#1231316) AS minCalculationDateTime#1231513]
(1730) Project
Arguments: [product#1231373, plant#1231372, quantitySum#1231512, minCalculationDateTime#1231513, round(quantitySum#1231512, 0) AS roundedQuantitySum#1231514]
(1731) Join
Arguments: LeftOuter, ((plant#1231194 = plant#1231372) AND (product#1231193 = product#1231373))
(1732) Project
Arguments: [product#1231193, plant#1231194, orderDateTime#1231195, productPlant#1231205, timezonecode#1231219, outboundUnit#1231236, roundedQuantitySum#1231514, minCalculationDateTime#1231513]
(1733) Project
Arguments: [product#1231193, plant#1231194, orderDateTime#1231195, productPlant#1231205, timezonecode#1231219, outboundUnit#1231236, roundedQuantitySum#1231514, minCalculationDateTime#1231513, CASE WHEN isnotnull(minCalculationDateTime#1231513) THEN minCalculationDateTime#1231513 ELSE orderDateTime#1231195 END AS stockDatetime#1231515]
(1734) Project
Arguments: [product#1231193, plant#1231194, orderDateTime#1231195, productPlant#1231205, timezonecode#1231219, outboundUnit#1231236, roundedQuantitySum#1231514, minCalculationDateTime#1231513, stockDatetime#1231515, CASE WHEN isnotnull(roundedQuantitySum#1231514) THEN array(roundedQuantitySum#1231514) ELSE array(0.0) END AS stockBatchQuantities#1231516]
(1735) Project
Arguments: [product#1231193, plant#1231194, orderDateTime#1231195, productPlant#1231205, timezonecode#1231219, outboundUnit#1231236, roundedQuantitySum#1231514, minCalculationDateTime#1231513, stockDatetime#1231515, stockBatchQuantities#1231516, array(2199-01-01 00:00:00) AS stockBatchShelfLifeEndDatetimes#1231517]
(1736) Project
Arguments: [product#1231193, plant#1231194, orderDateTime#1231195, productPlant#1231205, timezonecode#1231219, outboundUnit#1231236, roundedQuantitySum#1231514, stockDatetime#1231515, stockBatchQuantities#1231516, stockBatchShelfLifeEndDatetimes#1231517]
(1737) Project
Arguments: [product#1231193, plant#1231194, orderDateTime#1231195, productPlant#1231205, timezonecode#1231219, outboundUnit#1231236, stockDatetime#1231515, stockBatchQuantities#1231516, stockBatchShelfLifeEndDatetimes#1231517]
(1738) LogicalRelation
Arguments: parquet, [product#1231518, plant#1231519, demandChannel#1231520, demandStream#1231521, considerVariance#1231522, demandTimeBuckets#1231523, demandPointInTimeStart#1231524, demandPointInTimeEnd#1231525, demandPointInTime#1231526], false
(1739) Join
Arguments: LeftOuter, ((product#1231193 = product#1231518) AND (plant#1231194 = plant#1231519))
(1740) Project
Arguments: [product#1231193, plant#1231194, orderDateTime#1231195, productPlant#1231205, timezonecode#1231219, outboundUnit#1231236, stockDatetime#1231515, stockBatchQuantities#1231516, stockBatchShelfLifeEndDatetimes#1231517, demandChannel#1231520, demandStream#1231521, considerVariance#1231522, demandTimeBuckets#1231523, demandPointInTimeStart#1231524, demandPointInTimeEnd#1231525, demandPointInTime#1231526, product#1231518, plant#1231519]
(1741) Project
Arguments: [product#1231193, plant#1231194, orderDateTime#1231195, productPlant#1231205, timezonecode#1231219, outboundUnit#1231236, stockDatetime#1231515, stockBatchQuantities#1231516, stockBatchShelfLifeEndDatetimes#1231517, demandChannel#1231520, demandStream#1231521, considerVariance#1231522, demandTimeBuckets#1231523, demandPointInTimeStart#1231524, demandPointInTimeEnd#1231525, demandPointInTime#1231526, CASE WHEN isnotnull(product#1231518) THEN struct(demandChannel, demandChannel#1231520, demandStream, demandStream#1231521, considerVariance, considerVariance#1231522, demandTimeBuckets, demandTimeBuckets#1231523, demandPointInTimeStart, demandPointInTimeStart#1231524, demandPointInTimeEnd, demandPointInTimeEnd#1231525, demandPointInTime, demandPointInTime#1231526) 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#1231527]
(1742) Aggregate
Arguments: [product#1231193, plant#1231194, orderDateTime#1231195, productPlant#1231205, timezonecode#1231219, outboundUnit#1231236, stockDatetime#1231515, stockBatchQuantities#1231516, stockBatchShelfLifeEndDatetimes#1231517], [product#1231193, plant#1231194, orderDateTime#1231195, productPlant#1231205, timezonecode#1231219, outboundUnit#1231236, stockDatetime#1231515, stockBatchQuantities#1231516, stockBatchShelfLifeEndDatetimes#1231517, collect_list(rawDemands#1231527, 0, 0) AS rawDemands#1231528]
(1743) DeserializeToObject
Arguments: createexternalrow(invoke(product#1231193.toString()), invoke(plant#1231194.toString()), static_invoke(DateTimeUtils.toJavaTimestamp(orderDateTime#1231195)), if (isnull(productPlant#1231205)) null else createexternalrow(invoke(productPlant#1231205.systemId.toString()), invoke(productPlant#1231205.internalUUID.toString()), if (isnull(productPlant#1231205.plant)) null else createexternalrow(invoke(productPlant#1231205.plant.internalRefUUID.toString()), invoke(productPlant#1231205.plant.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), if (isnull(productPlant#1231205.product)) null else createexternalrow(invoke(productPlant#1231205.product.internalRefUUID.toString()), invoke(productPlant#1231205.product.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(DateTimeUtils.toJavaDate(productPlant#1231205.blockedForReplenishmentStartingFrom)), if (isnull(productPlant#1231205.productionAspect)) null else createexternalrow(if (isnull(productPlant#1231205.productionAspect.productMovementPlants)) null else createexternalrow(if (isnull(productPlant#1231205.productionAspect.productMovementPlants.unitOfIssue)) null else createexternalrow(invoke(productPlant#1231205.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID.toString()), invoke(productPlant#1231205.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#1231205.productionAspect.productPlanningPlants)) null else createexternalrow(if (isnull(productPlant#1231205.productionAspect.productPlanningPlants.mrpType)) null else createexternalrow(invoke(productPlant#1231205.productionAspect.productPlanningPlants.mrpType.internalRefUUID.toString()), invoke(productPlant#1231205.productionAspect.productPlanningPlants.mrpType.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1231205.productionAspect.productPlanningPlants.abcIndicator)) null else createexternalrow(invoke(productPlant#1231205.productionAspect.productPlanningPlants.abcIndicator.internalRefUUID.toString()), invoke(productPlant#1231205.productionAspect.productPlanningPlants.abcIndicator.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1231205.productionAspect.productPlanningPlants.mrpController)) null else createexternalrow(invoke(productPlant#1231205.productionAspect.productPlanningPlants.mrpController.internalRefUUID.toString()), invoke(productPlant#1231205.productionAspect.productPlanningPlants.mrpController.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(java.lang.Double.valueOf(productPlant#1231205.productionAspect.productPlanningPlants.minimumLotSize)), if (isnull(productPlant#1231205.productionAspect.productPlanningPlants.logisticalRoundingProfile)) null else createexternalrow(invoke(productPlant#1231205.productionAspect.productPlanningPlants.logisticalRoundingProfile.internalRefUUID.toString()), invoke(productPlant#1231205.productionAspect.productPlanningPlants.logisticalRoundingProfile.logisticalRoundingProfile.toString()), StructField(internalRefUUID,StringType,true), StructField(logisticalRoundingProfile,StringType,true)), if (isnull(productPlant#1231205.productionAspect.productPlanningPlants.sourceOfSupplyCategory)) null else createexternalrow(invoke(productPlant#1231205.productionAspect.productPlanningPlants.sourceOfSupplyCategory.internalRefUUID.toString()), invoke(productPlant#1231205.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#1231205.salesPlant)) null else createexternalrow(if (isnull(productPlant#1231205.salesPlant.loadingGroup)) null else createexternalrow(invoke(productPlant#1231205.salesPlant.loadingGroup.internalRefUUID.toString()), invoke(productPlant#1231205.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, 163428), if (isnull(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 163428))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 163428).validFrom)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 163428).validTo)), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 163428).isListed)), StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true)), productPlant#1231205.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#1231219.toString()), static_invoke(java.lang.Double.valueOf(outboundUnit#1231236)), static_invoke(DateTimeUtils.toJavaTimestamp(stockDatetime#1231515)), mapobjects(lambdavariable(MapObject, DoubleType, true, 163429), static_invoke(java.lang.Double.valueOf(cast(lambdavariable(MapObject, DoubleType, true, 163429) as double))), stockBatchQuantities#1231516, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, false, 163430), assertnotnull(static_invoke(DateTimeUtils.toJavaTimestamp(cast(lambdavariable(MapObject, TimestampType, false, 163430) as timestamp)))), stockBatchShelfLifeEndDatetimes#1231517, 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, 163431), 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, 163431))) 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, 163431).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, 163431).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, 163431).considerVariance)), mapobjects(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 163432), if (isnull(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 163432))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 163432).demandStartDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 163432).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 163432).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, 163431).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, 163431).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, 163431).demandPointInTimeEnd)), mapobjects(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 163433), if (isnull(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 163433))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 163433).demandDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 163433).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 163433).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, 163431).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#1231528, 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#1226090: org.apache.spark.sql.Row
(1744) MapElements
Arguments: com.sap.s4hana.eureka.business.crporderquantitykpiservice.core.business.datasnapshot.DemandTransformatorImpl$$Lambda/0x00000008023bc120@58fc6bc3, 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#1226095: 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#1231529, 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#1231530, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(2))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163418), assertnotnull(if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163418), 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, 163418), 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, 163418), 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, 163418), 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, 163418), 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, 163418), 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, 163418), 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, 163418), 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, 163418), 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, 163418), 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, 163419), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163419), DoubleType, ObjectType(class java.lang.Double)).doubleValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163418), 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, 163418), 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, 163418), 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, 163418), 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, 163420), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163420), DoubleType, ObjectType(class java.lang.Double)).doubleValue()), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163418), 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, 163418), 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, 163421), assertnotnull(static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163421), TimestampType, ObjectType(class java.sql.Timestamp))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163418), 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, 163418), 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, 163422), assertnotnull(static_invoke(UTF8String.fromString(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163422), StringType, ObjectType(class java.lang.String))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163418), 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, 163418), 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, 163418), 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, 163418), 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, 163423), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163423), IntegerType, ObjectType(class java.lang.Integer)).intValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163418), 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#1231531, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(3))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163424), assertnotnull(if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163424), 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, 163424), 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, 163424), 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, 163424), 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, 163424), 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, 163424), 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, 163424), 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, 163424), 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, 163425), assertnotnull(static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163425), TimestampType, ObjectType(class java.sql.Timestamp))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163424), 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, 163424), 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, 163424), 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, 163424), 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, 163426), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163426), DoubleType, ObjectType(class java.lang.Double)).doubleValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163424), 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, 163424), 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, 163424), 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, 163424), 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, 163427), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163427), DoubleType, ObjectType(class java.lang.Double)).doubleValue()), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163424), 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, 163424), 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, 163424), 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, 163424), 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, 163424), 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#1231532]
(1746) Join
Arguments: LeftOuter, ((plant#1231530 <=> plant#1230869) AND (product#1231529 <=> product#1230868))
(1747) Project
Arguments: [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880, timezonecode#1230894, outboundUnit#1230911, stockDatetime#1231190, stockBatchQuantities#1231191, stockBatchShelfLifeEndDatetimes#1231192, plant#1231530, dayBucketDemands#1231531, pointInTimeDemands#1231532]
(1748) Project
Arguments: [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880, timezonecode#1230894, outboundUnit#1230911, stockDatetime#1231190, stockBatchQuantities#1231191, stockBatchShelfLifeEndDatetimes#1231192, dayBucketDemands#1231531, pointInTimeDemands#1231532]
(1749) LogicalRelation
Arguments: parquet, [product#1231533, plant#1231534, orderDateTime#1231535, planningStartDateTime#1231536], false
(1750) RepartitionByExpression
Arguments: [product#1231533, plant#1231534], 37
(1751) Project
Arguments: [product#1231533, plant#1231534, orderDateTime#1231535]
(1752) LogicalRelation
Arguments: parquet, [systemId#1231537, internalUUID#1231538, plant#1231539, product#1231540, blockedForReplenishmentStartingFrom#1231541, productionAspect#1231542, salesPlant#1231543, listing#1231544], false
(1753) Repartition
Arguments: 37, true
(1754) Project
Arguments: [systemId#1231537, internalUUID#1231538, plant#1231539, product#1231540, blockedForReplenishmentStartingFrom#1231541, productionAspect#1231542, salesPlant#1231543, listing#1231544, struct(systemId, systemId#1231537, internalUUID, internalUUID#1231538, plant, plant#1231539, product, product#1231540, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1231541, productionAspect, productionAspect#1231542, salesPlant, salesPlant#1231543, listing, listing#1231544) AS productPlant#1231545]
(1755) Project
Arguments: [productPlant#1231545]
(1756) Join
Arguments: LeftOuter, ((product#1231533 <=> productPlant#1231545.product.internalRefUUID) AND (plant#1231534 <=> productPlant#1231545.plant.internalRefUUID))
(1757) Project
Arguments: [product#1231533, plant#1231534, orderDateTime#1231535, productPlant#1231545]
(1758) SubqueryAlias
Arguments: wl
(1759) LogicalRelation
Arguments: parquet, [systemId#1231546, internalUUID#1231547, id#1231548, displayId#1231549, name#1231550, category#1231551, companyCode#1231552, address#1231553, mainDistributionChain#1231554, mainPurchasingOrganization#1231555, validPurchasingOrganizations#1231556, productGroup#1231557], false
(1760) Repartition
Arguments: 37, true
(1761) Project
Arguments: [internalUUID#1231547, address#1231553.timeZone.code AS timezonecode#1231558]
(1762) Join
Arguments: LeftOuter, (plant#1231534 <=> internalUUID#1231547)
(1763) Project
Arguments: [product#1231533, plant#1231534, orderDateTime#1231535, productPlant#1231545, internalUUID#1231547, CASE WHEN isnotnull(timezonecode#1231558) THEN timezonecode#1231558 ELSE UTC END AS timezonecode#1231559]
(1764) Project
Arguments: [product#1231533, plant#1231534, orderDateTime#1231535, productPlant#1231545, timezonecode#1231559]
(1765) LogicalRelation
Arguments: parquet, [systemId#1231560, internalUUID#1231561, id#1231562, displayId#1231563, name#1231564, baseUnitOfMeasure#1231565, unitOfMeasures#1231566, unitOfMeasureConversions#1231567, productionAspect#1231568, salesAspect#1231569, procurementAspect#1231570, productGroup#1231571], false
(1766) Repartition
Arguments: 37, true
(1767) Join
Arguments: LeftOuter, (product#1231533 = internalUUID#1231561)
(1768) Project
Arguments: [product#1231533, plant#1231534, orderDateTime#1231535, productPlant#1231545, timezonecode#1231559, systemId#1231560, internalUUID#1231561, id#1231562, displayId#1231563, name#1231564, baseUnitOfMeasure#1231565, unitOfMeasures#1231566, unitOfMeasureConversions#1231567, productionAspect#1231568, salesAspect#1231569, procurementAspect#1231570, productGroup#1231571, filter(unitOfMeasureConversions#1231567, lambdafunction((((lambda u#1225669.measurementUnit1.code = productPlant#1231545.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1225669.measurementUnit1.internalRefUUID = productPlant#1231545.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1231565.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1231565.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1231572]
(1769) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1231572.quantityNumerator), true, [quantityNumerator#1231573]
(1770) Project
Arguments: [product#1231533, plant#1231534, orderDateTime#1231535, productPlant#1231545, timezonecode#1231559, systemId#1231560, internalUUID#1231561, id#1231562, displayId#1231563, name#1231564, baseUnitOfMeasure#1231565, unitOfMeasures#1231566, unitOfMeasureConversions#1231567, productionAspect#1231568, salesAspect#1231569, procurementAspect#1231570, productGroup#1231571, filteredUnitOfMeasureConversions#1231572, quantityNumerator#1231573]
(1771) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1231572.quantityDenominator), true, [quantityDenominator#1231574]
(1772) Project
Arguments: [product#1231533, plant#1231534, orderDateTime#1231535, productPlant#1231545, timezonecode#1231559, systemId#1231560, internalUUID#1231561, id#1231562, displayId#1231563, name#1231564, baseUnitOfMeasure#1231565, unitOfMeasures#1231566, unitOfMeasureConversions#1231567, productionAspect#1231568, salesAspect#1231569, procurementAspect#1231570, productGroup#1231571, filteredUnitOfMeasureConversions#1231572, quantityNumerator#1231573, quantityDenominator#1231574]
(1773) Project
Arguments: [product#1231533, plant#1231534, orderDateTime#1231535, productPlant#1231545, timezonecode#1231559, systemId#1231560, internalUUID#1231561, id#1231562, displayId#1231563, name#1231564, baseUnitOfMeasure#1231565, unitOfMeasures#1231566, unitOfMeasureConversions#1231567, productionAspect#1231568, salesAspect#1231569, procurementAspect#1231570, productGroup#1231571, filteredUnitOfMeasureConversions#1231572, quantityNumerator#1231573, quantityDenominator#1231574, (cast(quantityNumerator#1231573 as double) / cast(quantityDenominator#1231574 as double)) AS outboundUnit#1231575]
(1774) Project
Arguments: [product#1231533, plant#1231534, orderDateTime#1231535, productPlant#1231545, timezonecode#1231559, systemId#1231560, internalUUID#1231561, id#1231562, displayId#1231563, name#1231564, baseUnitOfMeasure#1231565, unitOfMeasures#1231566, unitOfMeasureConversions#1231567, productionAspect#1231568, salesAspect#1231569, procurementAspect#1231570, productGroup#1231571, filteredUnitOfMeasureConversions#1231572, quantityNumerator#1231573, quantityDenominator#1231574, CASE WHEN (isnull(outboundUnit#1231575) OR (outboundUnit#1231575 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1231575 END AS outboundUnit#1231576]
(1775) Project
Arguments: [product#1231533, plant#1231534, orderDateTime#1231535, productPlant#1231545, timezonecode#1231559, outboundUnit#1231576]
(1776) LogicalRelation
Arguments: parquet, [systemId#1231577, internalUUID#1231578, product#1231579, plant#1231580, calculationDateTime#1231581, stockQuantities#1231582], false
(1777) Repartition
Arguments: 37, true
(1778) LogicalRelation
Arguments: parquet, [marketUnit#1231583, description#1231584, articleHierarchy#1231585, defaultCurrency#1231586, responsibilities#1231587, replenishmentTypes#1231588, distributionCenters#1231589, assignedArticleHierarchyNodes#1231590, minOrderQtySetting#1231591, listingCheck#1231592, odsSelection#1231593, demandProfiles#1231594, constraintProfiles#1231595, optimizationProfiles#1231596, orderGroupSplitProfiles#1231597, supplierMinimumProfiles#1231598, multipleRestrictionProfiles#1231599, preferredUomSource#1231600, handlingOfUnfulfilledDemands#1231601, negligibleQuantitiesThreshold#1231602, eventtype#1231603, minOrderQtySettingInternal#1231604], false
(1779) Repartition
Arguments: 37, true
(1780) Filter
Arguments: (marketUnit#1231583 <=> AUTO_MUV2)
(1781) Project
Arguments: [marketUnit#1231583, description#1231584, articleHierarchy#1231585, defaultCurrency#1231586, responsibilities#1231587, replenishmentTypes#1231588, distributionCenters#1231589, assignedArticleHierarchyNodes#1231590, minOrderQtySetting#1231591, listingCheck#1231592, odsSelection#1231593, demandProfiles#1231594, constraintProfiles#1231595, optimizationProfiles#1231596, orderGroupSplitProfiles#1231597, supplierMinimumProfiles#1231598, multipleRestrictionProfiles#1231599, preferredUomSource#1231600, handlingOfUnfulfilledDemands#1231601, negligibleQuantitiesThreshold#1231602, eventtype#1231603, minOrderQtySettingInternal#1231604]
(1782) Project
Arguments: [distributionCenters#1231589]
(1783) Generate
Arguments: explode(distributionCenters#1231589), false, [distributionCenters#1231605]
(1784) Project
Arguments: [distributionCenters#1231605]
(1785) Generate
Arguments: explode(distributionCenters#1231605.storageLocations), false, [storageLocations#1231606]
(1786) Project
Arguments: [distributionCenters#1231605.id AS plantId#1231607, distributionCenters#1231605.internalRefUUID AS plantUuid#1231608, storageLocations#1231606]
(1787) Project
Arguments: [plantId#1231607, plantUuid#1231608, storageLocations#1231606.id AS storageLocId#1231609, storageLocations#1231606.internalRefUUID AS storageLocUuid#1231610]
(1788) LogicalRelation
Arguments: parquet, [product#1231611, plant#1231612, orderDateTime#1231613, planningStartDateTime#1231614], false
(1789) RepartitionByExpression
Arguments: [product#1231611, plant#1231612], 37
(1790) Project
Arguments: [product#1231611, plant#1231612, orderDateTime#1231613]
(1791) LogicalRelation
Arguments: parquet, [systemId#1231615, internalUUID#1231616, plant#1231617, product#1231618, blockedForReplenishmentStartingFrom#1231619, productionAspect#1231620, salesPlant#1231621, listing#1231622], false
(1792) Repartition
Arguments: 37, true
(1793) Project
Arguments: [systemId#1231615, internalUUID#1231616, plant#1231617, product#1231618, blockedForReplenishmentStartingFrom#1231619, productionAspect#1231620, salesPlant#1231621, listing#1231622, struct(systemId, systemId#1231615, internalUUID, internalUUID#1231616, plant, plant#1231617, product, product#1231618, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1231619, productionAspect, productionAspect#1231620, salesPlant, salesPlant#1231621, listing, listing#1231622) AS productPlant#1231623]
(1794) Project
Arguments: [productPlant#1231623]
(1795) Join
Arguments: LeftOuter, ((product#1231611 <=> productPlant#1231623.product.internalRefUUID) AND (plant#1231612 <=> productPlant#1231623.plant.internalRefUUID))
(1796) Project
Arguments: [product#1231611, plant#1231612, orderDateTime#1231613, productPlant#1231623]
(1797) SubqueryAlias
Arguments: wl
(1798) LogicalRelation
Arguments: parquet, [systemId#1231624, internalUUID#1231625, id#1231626, displayId#1231627, name#1231628, category#1231629, companyCode#1231630, address#1231631, mainDistributionChain#1231632, mainPurchasingOrganization#1231633, validPurchasingOrganizations#1231634, productGroup#1231635], false
(1799) Repartition
Arguments: 37, true
(1800) Project
Arguments: [internalUUID#1231625, address#1231631.timeZone.code AS timezonecode#1231636]
(1801) Join
Arguments: LeftOuter, (plant#1231612 <=> internalUUID#1231625)
(1802) Project
Arguments: [product#1231611, plant#1231612, orderDateTime#1231613, productPlant#1231623, internalUUID#1231625, CASE WHEN isnotnull(timezonecode#1231636) THEN timezonecode#1231636 ELSE UTC END AS timezonecode#1231637]
(1803) Project
Arguments: [product#1231611, plant#1231612, orderDateTime#1231613, productPlant#1231623, timezonecode#1231637]
(1804) LogicalRelation
Arguments: parquet, [systemId#1231638, internalUUID#1231639, id#1231640, displayId#1231641, name#1231642, baseUnitOfMeasure#1231643, unitOfMeasures#1231644, unitOfMeasureConversions#1231645, productionAspect#1231646, salesAspect#1231647, procurementAspect#1231648, productGroup#1231649], false
(1805) Repartition
Arguments: 37, true
(1806) Join
Arguments: LeftOuter, (product#1231611 = internalUUID#1231639)
(1807) Project
Arguments: [product#1231611, plant#1231612, orderDateTime#1231613, productPlant#1231623, timezonecode#1231637, systemId#1231638, internalUUID#1231639, id#1231640, displayId#1231641, name#1231642, baseUnitOfMeasure#1231643, unitOfMeasures#1231644, unitOfMeasureConversions#1231645, productionAspect#1231646, salesAspect#1231647, procurementAspect#1231648, productGroup#1231649, filter(unitOfMeasureConversions#1231645, lambdafunction((((lambda u#1225669.measurementUnit1.code = productPlant#1231623.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1225669.measurementUnit1.internalRefUUID = productPlant#1231623.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1231643.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1231643.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1231650]
(1808) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1231650.quantityNumerator), true, [quantityNumerator#1231651]
(1809) Project
Arguments: [product#1231611, plant#1231612, orderDateTime#1231613, productPlant#1231623, timezonecode#1231637, systemId#1231638, internalUUID#1231639, id#1231640, displayId#1231641, name#1231642, baseUnitOfMeasure#1231643, unitOfMeasures#1231644, unitOfMeasureConversions#1231645, productionAspect#1231646, salesAspect#1231647, procurementAspect#1231648, productGroup#1231649, filteredUnitOfMeasureConversions#1231650, quantityNumerator#1231651]
(1810) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1231650.quantityDenominator), true, [quantityDenominator#1231652]
(1811) Project
Arguments: [product#1231611, plant#1231612, orderDateTime#1231613, productPlant#1231623, timezonecode#1231637, systemId#1231638, internalUUID#1231639, id#1231640, displayId#1231641, name#1231642, baseUnitOfMeasure#1231643, unitOfMeasures#1231644, unitOfMeasureConversions#1231645, productionAspect#1231646, salesAspect#1231647, procurementAspect#1231648, productGroup#1231649, filteredUnitOfMeasureConversions#1231650, quantityNumerator#1231651, quantityDenominator#1231652]
(1812) Project
Arguments: [product#1231611, plant#1231612, orderDateTime#1231613, productPlant#1231623, timezonecode#1231637, systemId#1231638, internalUUID#1231639, id#1231640, displayId#1231641, name#1231642, baseUnitOfMeasure#1231643, unitOfMeasures#1231644, unitOfMeasureConversions#1231645, productionAspect#1231646, salesAspect#1231647, procurementAspect#1231648, productGroup#1231649, filteredUnitOfMeasureConversions#1231650, quantityNumerator#1231651, quantityDenominator#1231652, (cast(quantityNumerator#1231651 as double) / cast(quantityDenominator#1231652 as double)) AS outboundUnit#1231653]
(1813) Project
Arguments: [product#1231611, plant#1231612, orderDateTime#1231613, productPlant#1231623, timezonecode#1231637, systemId#1231638, internalUUID#1231639, id#1231640, displayId#1231641, name#1231642, baseUnitOfMeasure#1231643, unitOfMeasures#1231644, unitOfMeasureConversions#1231645, productionAspect#1231646, salesAspect#1231647, procurementAspect#1231648, productGroup#1231649, filteredUnitOfMeasureConversions#1231650, quantityNumerator#1231651, quantityDenominator#1231652, CASE WHEN (isnull(outboundUnit#1231653) OR (outboundUnit#1231653 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1231653 END AS outboundUnit#1231654]
(1814) Project
Arguments: [product#1231611, plant#1231612, orderDateTime#1231613, productPlant#1231623, timezonecode#1231637, outboundUnit#1231654]
(1815) Project
Arguments: [plant#1231612]
(1816) Deduplicate
Arguments: [plant#1231612]
(1817) Join
Arguments: Inner, (plantUuid#1231608 = plant#1231612)
(1818) Project
Arguments: [plantId#1231607, plantUuid#1231608, storageLocId#1231609, storageLocUuid#1231610]
(1819) Join
Arguments: Inner, (plant#1231580.internalRefUUID <=> plantUuid#1231608)
(1820) Generate
Arguments: explode(filter(stockQuantities#1231582, lambdafunction(((lambda x#1225727.storageLocation.internalRefUuid = storageLocUuid#1231610) AND (lambda x#1225727.storageLocation.Id = storageLocId#1231609)), lambda x#1225727, false))), false, [stockQuantity#1231655]
(1821) Project
Arguments: [systemId#1231577, internalUUID#1231578, product#1231579, plant#1231580, calculationDateTime#1231581, stockQuantities#1231582, plantId#1231607, plantUuid#1231608, storageLocId#1231609, storageLocUuid#1231610, stockQuantity#1231655]
(1822) Aggregate
Arguments: [plantUuid#1231608, internalUUID#1231578, plant#1231580, product#1231579, systemId#1231577], [plantUuid#1231608, internalUUID#1231578, plant#1231580, product#1231579, systemId#1231577, first(calculationDateTime#1231581, false) AS calculationDateTime#1231656, collect_list(stockQuantity#1231655, 0, 0) AS stockQuantities#1231657]
(1823) Project
Arguments: [systemId#1231577, internalUUID#1231578, product#1231579, plant#1231580, calculationDateTime#1231656, stockQuantities#1231657]
(1824) Generate
Arguments: explode(stockQuantities#1231657), false, [stockQuantity#1231658]
(1825) Project
Arguments: [systemId#1231577, internalUUID#1231578, product#1231579, plant#1231580, calculationDateTime#1231656, stockQuantities#1231657, stockQuantity#1231658]
(1826) Project
Arguments: [plant#1231580.id AS plant#1231659, plant#1231580.internalRefUUID AS plantUuid#1231660, product#1231579.id AS product#1231661, product#1231579.internalRefUUID AS productUuid#1231662, calculationDateTime#1231656, stockQuantity#1231658.storagelocation.id AS storageLocId#1231663, stockQuantity#1231658.storagelocation.internalRefUUID AS storageLocUuid#1231664, stockQuantity#1231658.quantity.measure AS quantity#1231665, stockQuantity#1231658.specialStockIndicator.code AS specialStockIndicator#1231666, stockQuantity#1231658.stockType.code AS stockType#1231667]
(1827) Filter
Arguments: ((specialStockIndicator#1231666 = ) AND (stockType#1231667 = 01))
(1828) LogicalRelation
Arguments: parquet, [product#1231668, plant#1231669, orderDateTime#1231670, planningStartDateTime#1231671], false
(1829) RepartitionByExpression
Arguments: [product#1231668, plant#1231669], 37
(1830) Project
Arguments: [product#1231668, plant#1231669, orderDateTime#1231670]
(1831) LogicalRelation
Arguments: parquet, [systemId#1231672, internalUUID#1231673, plant#1231674, product#1231675, blockedForReplenishmentStartingFrom#1231676, productionAspect#1231677, salesPlant#1231678, listing#1231679], false
(1832) Repartition
Arguments: 37, true
(1833) Project
Arguments: [systemId#1231672, internalUUID#1231673, plant#1231674, product#1231675, blockedForReplenishmentStartingFrom#1231676, productionAspect#1231677, salesPlant#1231678, listing#1231679, struct(systemId, systemId#1231672, internalUUID, internalUUID#1231673, plant, plant#1231674, product, product#1231675, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1231676, productionAspect, productionAspect#1231677, salesPlant, salesPlant#1231678, listing, listing#1231679) AS productPlant#1231680]
(1834) Project
Arguments: [productPlant#1231680]
(1835) Join
Arguments: LeftOuter, ((product#1231668 <=> productPlant#1231680.product.internalRefUUID) AND (plant#1231669 <=> productPlant#1231680.plant.internalRefUUID))
(1836) Project
Arguments: [product#1231668, plant#1231669, orderDateTime#1231670, productPlant#1231680]
(1837) SubqueryAlias
Arguments: wl
(1838) LogicalRelation
Arguments: parquet, [systemId#1231681, internalUUID#1231682, id#1231683, displayId#1231684, name#1231685, category#1231686, companyCode#1231687, address#1231688, mainDistributionChain#1231689, mainPurchasingOrganization#1231690, validPurchasingOrganizations#1231691, productGroup#1231692], false
(1839) Repartition
Arguments: 37, true
(1840) Project
Arguments: [internalUUID#1231682, address#1231688.timeZone.code AS timezonecode#1231693]
(1841) Join
Arguments: LeftOuter, (plant#1231669 <=> internalUUID#1231682)
(1842) Project
Arguments: [product#1231668, plant#1231669, orderDateTime#1231670, productPlant#1231680, internalUUID#1231682, CASE WHEN isnotnull(timezonecode#1231693) THEN timezonecode#1231693 ELSE UTC END AS timezonecode#1231694]
(1843) Project
Arguments: [product#1231668, plant#1231669, orderDateTime#1231670, productPlant#1231680, timezonecode#1231694]
(1844) LogicalRelation
Arguments: parquet, [systemId#1231695, internalUUID#1231696, id#1231697, displayId#1231698, name#1231699, baseUnitOfMeasure#1231700, unitOfMeasures#1231701, unitOfMeasureConversions#1231702, productionAspect#1231703, salesAspect#1231704, procurementAspect#1231705, productGroup#1231706], false
(1845) Repartition
Arguments: 37, true
(1846) Join
Arguments: LeftOuter, (product#1231668 = internalUUID#1231696)
(1847) Project
Arguments: [product#1231668, plant#1231669, orderDateTime#1231670, productPlant#1231680, timezonecode#1231694, systemId#1231695, internalUUID#1231696, id#1231697, displayId#1231698, name#1231699, baseUnitOfMeasure#1231700, unitOfMeasures#1231701, unitOfMeasureConversions#1231702, productionAspect#1231703, salesAspect#1231704, procurementAspect#1231705, productGroup#1231706, filter(unitOfMeasureConversions#1231702, lambdafunction((((lambda u#1225669.measurementUnit1.code = productPlant#1231680.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1225669.measurementUnit1.internalRefUUID = productPlant#1231680.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1231700.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1231700.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1231707]
(1848) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1231707.quantityNumerator), true, [quantityNumerator#1231708]
(1849) Project
Arguments: [product#1231668, plant#1231669, orderDateTime#1231670, productPlant#1231680, timezonecode#1231694, systemId#1231695, internalUUID#1231696, id#1231697, displayId#1231698, name#1231699, baseUnitOfMeasure#1231700, unitOfMeasures#1231701, unitOfMeasureConversions#1231702, productionAspect#1231703, salesAspect#1231704, procurementAspect#1231705, productGroup#1231706, filteredUnitOfMeasureConversions#1231707, quantityNumerator#1231708]
(1850) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1231707.quantityDenominator), true, [quantityDenominator#1231709]
(1851) Project
Arguments: [product#1231668, plant#1231669, orderDateTime#1231670, productPlant#1231680, timezonecode#1231694, systemId#1231695, internalUUID#1231696, id#1231697, displayId#1231698, name#1231699, baseUnitOfMeasure#1231700, unitOfMeasures#1231701, unitOfMeasureConversions#1231702, productionAspect#1231703, salesAspect#1231704, procurementAspect#1231705, productGroup#1231706, filteredUnitOfMeasureConversions#1231707, quantityNumerator#1231708, quantityDenominator#1231709]
(1852) Project
Arguments: [product#1231668, plant#1231669, orderDateTime#1231670, productPlant#1231680, timezonecode#1231694, systemId#1231695, internalUUID#1231696, id#1231697, displayId#1231698, name#1231699, baseUnitOfMeasure#1231700, unitOfMeasures#1231701, unitOfMeasureConversions#1231702, productionAspect#1231703, salesAspect#1231704, procurementAspect#1231705, productGroup#1231706, filteredUnitOfMeasureConversions#1231707, quantityNumerator#1231708, quantityDenominator#1231709, (cast(quantityNumerator#1231708 as double) / cast(quantityDenominator#1231709 as double)) AS outboundUnit#1231710]
(1853) Project
Arguments: [product#1231668, plant#1231669, orderDateTime#1231670, productPlant#1231680, timezonecode#1231694, systemId#1231695, internalUUID#1231696, id#1231697, displayId#1231698, name#1231699, baseUnitOfMeasure#1231700, unitOfMeasures#1231701, unitOfMeasureConversions#1231702, productionAspect#1231703, salesAspect#1231704, procurementAspect#1231705, productGroup#1231706, filteredUnitOfMeasureConversions#1231707, quantityNumerator#1231708, quantityDenominator#1231709, CASE WHEN (isnull(outboundUnit#1231710) OR (outboundUnit#1231710 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1231710 END AS outboundUnit#1231711]
(1854) Project
Arguments: [product#1231668, plant#1231669, orderDateTime#1231670, productPlant#1231680, timezonecode#1231694, outboundUnit#1231711]
(1855) Join
Arguments: Inner, ((plantUuid#1231660 = plant#1231669) AND (productUuid#1231662 = product#1231668))
(1856) Filter
Arguments: (calculationDateTime#1231656 <= orderDateTime#1231670)
(1857) Project
Arguments: [plantUuid#1231660 AS plant#1231712, productUuid#1231662 AS product#1231713, storageLocId#1231663, calculationDateTime#1231656, quantity#1231665]
(1858) LogicalRelation
Arguments: parquet, [systemId#1231714, internalUUID#1231715, product#1231716, plant#1231717, calculationDateTime#1231718, stockQuantities#1231719], false
(1859) Repartition
Arguments: 37, true
(1860) LogicalRelation
Arguments: parquet, [marketUnit#1231720, description#1231721, articleHierarchy#1231722, defaultCurrency#1231723, responsibilities#1231724, replenishmentTypes#1231725, distributionCenters#1231726, assignedArticleHierarchyNodes#1231727, minOrderQtySetting#1231728, listingCheck#1231729, odsSelection#1231730, demandProfiles#1231731, constraintProfiles#1231732, optimizationProfiles#1231733, orderGroupSplitProfiles#1231734, supplierMinimumProfiles#1231735, multipleRestrictionProfiles#1231736, preferredUomSource#1231737, handlingOfUnfulfilledDemands#1231738, negligibleQuantitiesThreshold#1231739, eventtype#1231740, minOrderQtySettingInternal#1231741], false
(1861) Repartition
Arguments: 37, true
(1862) Filter
Arguments: (marketUnit#1231720 <=> AUTO_MUV2)
(1863) Project
Arguments: [marketUnit#1231720, description#1231721, articleHierarchy#1231722, defaultCurrency#1231723, responsibilities#1231724, replenishmentTypes#1231725, distributionCenters#1231726, assignedArticleHierarchyNodes#1231727, minOrderQtySetting#1231728, listingCheck#1231729, odsSelection#1231730, demandProfiles#1231731, constraintProfiles#1231732, optimizationProfiles#1231733, orderGroupSplitProfiles#1231734, supplierMinimumProfiles#1231735, multipleRestrictionProfiles#1231736, preferredUomSource#1231737, handlingOfUnfulfilledDemands#1231738, negligibleQuantitiesThreshold#1231739, eventtype#1231740, minOrderQtySettingInternal#1231741]
(1864) Project
Arguments: [distributionCenters#1231726]
(1865) Generate
Arguments: explode(distributionCenters#1231726), false, [distributionCenters#1231742]
(1866) Project
Arguments: [distributionCenters#1231742]
(1867) Generate
Arguments: explode(distributionCenters#1231742.storageLocations), false, [storageLocations#1231743]
(1868) Project
Arguments: [distributionCenters#1231742.id AS plantId#1231744, distributionCenters#1231742.internalRefUUID AS plantUuid#1231745, storageLocations#1231743]
(1869) Project
Arguments: [plantId#1231744, plantUuid#1231745, storageLocations#1231743.id AS storageLocId#1231746, storageLocations#1231743.internalRefUUID AS storageLocUuid#1231747]
(1870) LogicalRelation
Arguments: parquet, [product#1231748, plant#1231749, orderDateTime#1231750, planningStartDateTime#1231751], false
(1871) RepartitionByExpression
Arguments: [product#1231748, plant#1231749], 37
(1872) Project
Arguments: [product#1231748, plant#1231749, orderDateTime#1231750]
(1873) LogicalRelation
Arguments: parquet, [systemId#1231752, internalUUID#1231753, plant#1231754, product#1231755, blockedForReplenishmentStartingFrom#1231756, productionAspect#1231757, salesPlant#1231758, listing#1231759], false
(1874) Repartition
Arguments: 37, true
(1875) Project
Arguments: [systemId#1231752, internalUUID#1231753, plant#1231754, product#1231755, blockedForReplenishmentStartingFrom#1231756, productionAspect#1231757, salesPlant#1231758, listing#1231759, struct(systemId, systemId#1231752, internalUUID, internalUUID#1231753, plant, plant#1231754, product, product#1231755, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1231756, productionAspect, productionAspect#1231757, salesPlant, salesPlant#1231758, listing, listing#1231759) AS productPlant#1231760]
(1876) Project
Arguments: [productPlant#1231760]
(1877) Join
Arguments: LeftOuter, ((product#1231748 <=> productPlant#1231760.product.internalRefUUID) AND (plant#1231749 <=> productPlant#1231760.plant.internalRefUUID))
(1878) Project
Arguments: [product#1231748, plant#1231749, orderDateTime#1231750, productPlant#1231760]
(1879) SubqueryAlias
Arguments: wl
(1880) LogicalRelation
Arguments: parquet, [systemId#1231761, internalUUID#1231762, id#1231763, displayId#1231764, name#1231765, category#1231766, companyCode#1231767, address#1231768, mainDistributionChain#1231769, mainPurchasingOrganization#1231770, validPurchasingOrganizations#1231771, productGroup#1231772], false
(1881) Repartition
Arguments: 37, true
(1882) Project
Arguments: [internalUUID#1231762, address#1231768.timeZone.code AS timezonecode#1231773]
(1883) Join
Arguments: LeftOuter, (plant#1231749 <=> internalUUID#1231762)
(1884) Project
Arguments: [product#1231748, plant#1231749, orderDateTime#1231750, productPlant#1231760, internalUUID#1231762, CASE WHEN isnotnull(timezonecode#1231773) THEN timezonecode#1231773 ELSE UTC END AS timezonecode#1231774]
(1885) Project
Arguments: [product#1231748, plant#1231749, orderDateTime#1231750, productPlant#1231760, timezonecode#1231774]
(1886) LogicalRelation
Arguments: parquet, [systemId#1231775, internalUUID#1231776, id#1231777, displayId#1231778, name#1231779, baseUnitOfMeasure#1231780, unitOfMeasures#1231781, unitOfMeasureConversions#1231782, productionAspect#1231783, salesAspect#1231784, procurementAspect#1231785, productGroup#1231786], false
(1887) Repartition
Arguments: 37, true
(1888) Join
Arguments: LeftOuter, (product#1231748 = internalUUID#1231776)
(1889) Project
Arguments: [product#1231748, plant#1231749, orderDateTime#1231750, productPlant#1231760, timezonecode#1231774, systemId#1231775, internalUUID#1231776, id#1231777, displayId#1231778, name#1231779, baseUnitOfMeasure#1231780, unitOfMeasures#1231781, unitOfMeasureConversions#1231782, productionAspect#1231783, salesAspect#1231784, procurementAspect#1231785, productGroup#1231786, filter(unitOfMeasureConversions#1231782, lambdafunction((((lambda u#1225669.measurementUnit1.code = productPlant#1231760.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1225669.measurementUnit1.internalRefUUID = productPlant#1231760.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1231780.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1231780.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1231787]
(1890) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1231787.quantityNumerator), true, [quantityNumerator#1231788]
(1891) Project
Arguments: [product#1231748, plant#1231749, orderDateTime#1231750, productPlant#1231760, timezonecode#1231774, systemId#1231775, internalUUID#1231776, id#1231777, displayId#1231778, name#1231779, baseUnitOfMeasure#1231780, unitOfMeasures#1231781, unitOfMeasureConversions#1231782, productionAspect#1231783, salesAspect#1231784, procurementAspect#1231785, productGroup#1231786, filteredUnitOfMeasureConversions#1231787, quantityNumerator#1231788]
(1892) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1231787.quantityDenominator), true, [quantityDenominator#1231789]
(1893) Project
Arguments: [product#1231748, plant#1231749, orderDateTime#1231750, productPlant#1231760, timezonecode#1231774, systemId#1231775, internalUUID#1231776, id#1231777, displayId#1231778, name#1231779, baseUnitOfMeasure#1231780, unitOfMeasures#1231781, unitOfMeasureConversions#1231782, productionAspect#1231783, salesAspect#1231784, procurementAspect#1231785, productGroup#1231786, filteredUnitOfMeasureConversions#1231787, quantityNumerator#1231788, quantityDenominator#1231789]
(1894) Project
Arguments: [product#1231748, plant#1231749, orderDateTime#1231750, productPlant#1231760, timezonecode#1231774, systemId#1231775, internalUUID#1231776, id#1231777, displayId#1231778, name#1231779, baseUnitOfMeasure#1231780, unitOfMeasures#1231781, unitOfMeasureConversions#1231782, productionAspect#1231783, salesAspect#1231784, procurementAspect#1231785, productGroup#1231786, filteredUnitOfMeasureConversions#1231787, quantityNumerator#1231788, quantityDenominator#1231789, (cast(quantityNumerator#1231788 as double) / cast(quantityDenominator#1231789 as double)) AS outboundUnit#1231790]
(1895) Project
Arguments: [product#1231748, plant#1231749, orderDateTime#1231750, productPlant#1231760, timezonecode#1231774, systemId#1231775, internalUUID#1231776, id#1231777, displayId#1231778, name#1231779, baseUnitOfMeasure#1231780, unitOfMeasures#1231781, unitOfMeasureConversions#1231782, productionAspect#1231783, salesAspect#1231784, procurementAspect#1231785, productGroup#1231786, filteredUnitOfMeasureConversions#1231787, quantityNumerator#1231788, quantityDenominator#1231789, CASE WHEN (isnull(outboundUnit#1231790) OR (outboundUnit#1231790 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1231790 END AS outboundUnit#1231791]
(1896) Project
Arguments: [product#1231748, plant#1231749, orderDateTime#1231750, productPlant#1231760, timezonecode#1231774, outboundUnit#1231791]
(1897) Project
Arguments: [plant#1231749]
(1898) Deduplicate
Arguments: [plant#1231749]
(1899) Join
Arguments: Inner, (plantUuid#1231745 = plant#1231749)
(1900) Project
Arguments: [plantId#1231744, plantUuid#1231745, storageLocId#1231746, storageLocUuid#1231747]
(1901) Join
Arguments: Inner, (plant#1231717.internalRefUUID <=> plantUuid#1231745)
(1902) Generate
Arguments: explode(filter(stockQuantities#1231719, lambdafunction(((lambda x#1225727.storageLocation.internalRefUuid = storageLocUuid#1231747) AND (lambda x#1225727.storageLocation.Id = storageLocId#1231746)), lambda x#1225727, false))), false, [stockQuantity#1231792]
(1903) Project
Arguments: [systemId#1231714, internalUUID#1231715, product#1231716, plant#1231717, calculationDateTime#1231718, stockQuantities#1231719, plantId#1231744, plantUuid#1231745, storageLocId#1231746, storageLocUuid#1231747, stockQuantity#1231792]
(1904) Aggregate
Arguments: [plantUuid#1231745, internalUUID#1231715, plant#1231717, product#1231716, systemId#1231714], [plantUuid#1231745, internalUUID#1231715, plant#1231717, product#1231716, systemId#1231714, first(calculationDateTime#1231718, false) AS calculationDateTime#1231793, collect_list(stockQuantity#1231792, 0, 0) AS stockQuantities#1231794]
(1905) Project
Arguments: [systemId#1231714, internalUUID#1231715, product#1231716, plant#1231717, calculationDateTime#1231793, stockQuantities#1231794]
(1906) Generate
Arguments: explode(stockQuantities#1231794), false, [stockQuantity#1231795]
(1907) Project
Arguments: [systemId#1231714, internalUUID#1231715, product#1231716, plant#1231717, calculationDateTime#1231793, stockQuantities#1231794, stockQuantity#1231795]
(1908) Project
Arguments: [plant#1231717.id AS plant#1231796, plant#1231717.internalRefUUID AS plantUuid#1231797, product#1231716.id AS product#1231798, product#1231716.internalRefUUID AS productUuid#1231799, calculationDateTime#1231793, stockQuantity#1231795.storagelocation.id AS storageLocId#1231800, stockQuantity#1231795.storagelocation.internalRefUUID AS storageLocUuid#1231801, stockQuantity#1231795.quantity.measure AS quantity#1231802, stockQuantity#1231795.specialStockIndicator.code AS specialStockIndicator#1231803, stockQuantity#1231795.stockType.code AS stockType#1231804]
(1909) Filter
Arguments: ((specialStockIndicator#1231803 = ) AND (stockType#1231804 = 01))
(1910) LogicalRelation
Arguments: parquet, [product#1231805, plant#1231806, orderDateTime#1231807, planningStartDateTime#1231808], false
(1911) RepartitionByExpression
Arguments: [product#1231805, plant#1231806], 37
(1912) Project
Arguments: [product#1231805, plant#1231806, orderDateTime#1231807]
(1913) LogicalRelation
Arguments: parquet, [systemId#1231809, internalUUID#1231810, plant#1231811, product#1231812, blockedForReplenishmentStartingFrom#1231813, productionAspect#1231814, salesPlant#1231815, listing#1231816], false
(1914) Repartition
Arguments: 37, true
(1915) Project
Arguments: [systemId#1231809, internalUUID#1231810, plant#1231811, product#1231812, blockedForReplenishmentStartingFrom#1231813, productionAspect#1231814, salesPlant#1231815, listing#1231816, struct(systemId, systemId#1231809, internalUUID, internalUUID#1231810, plant, plant#1231811, product, product#1231812, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1231813, productionAspect, productionAspect#1231814, salesPlant, salesPlant#1231815, listing, listing#1231816) AS productPlant#1231817]
(1916) Project
Arguments: [productPlant#1231817]
(1917) Join
Arguments: LeftOuter, ((product#1231805 <=> productPlant#1231817.product.internalRefUUID) AND (plant#1231806 <=> productPlant#1231817.plant.internalRefUUID))
(1918) Project
Arguments: [product#1231805, plant#1231806, orderDateTime#1231807, productPlant#1231817]
(1919) SubqueryAlias
Arguments: wl
(1920) LogicalRelation
Arguments: parquet, [systemId#1231818, internalUUID#1231819, id#1231820, displayId#1231821, name#1231822, category#1231823, companyCode#1231824, address#1231825, mainDistributionChain#1231826, mainPurchasingOrganization#1231827, validPurchasingOrganizations#1231828, productGroup#1231829], false
(1921) Repartition
Arguments: 37, true
(1922) Project
Arguments: [internalUUID#1231819, address#1231825.timeZone.code AS timezonecode#1231830]
(1923) Join
Arguments: LeftOuter, (plant#1231806 <=> internalUUID#1231819)
(1924) Project
Arguments: [product#1231805, plant#1231806, orderDateTime#1231807, productPlant#1231817, internalUUID#1231819, CASE WHEN isnotnull(timezonecode#1231830) THEN timezonecode#1231830 ELSE UTC END AS timezonecode#1231831]
(1925) Project
Arguments: [product#1231805, plant#1231806, orderDateTime#1231807, productPlant#1231817, timezonecode#1231831]
(1926) LogicalRelation
Arguments: parquet, [systemId#1231832, internalUUID#1231833, id#1231834, displayId#1231835, name#1231836, baseUnitOfMeasure#1231837, unitOfMeasures#1231838, unitOfMeasureConversions#1231839, productionAspect#1231840, salesAspect#1231841, procurementAspect#1231842, productGroup#1231843], false
(1927) Repartition
Arguments: 37, true
(1928) Join
Arguments: LeftOuter, (product#1231805 = internalUUID#1231833)
(1929) Project
Arguments: [product#1231805, plant#1231806, orderDateTime#1231807, productPlant#1231817, timezonecode#1231831, systemId#1231832, internalUUID#1231833, id#1231834, displayId#1231835, name#1231836, baseUnitOfMeasure#1231837, unitOfMeasures#1231838, unitOfMeasureConversions#1231839, productionAspect#1231840, salesAspect#1231841, procurementAspect#1231842, productGroup#1231843, filter(unitOfMeasureConversions#1231839, lambdafunction((((lambda u#1225669.measurementUnit1.code = productPlant#1231817.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1225669.measurementUnit1.internalRefUUID = productPlant#1231817.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1231837.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1231837.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1231844]
(1930) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1231844.quantityNumerator), true, [quantityNumerator#1231845]
(1931) Project
Arguments: [product#1231805, plant#1231806, orderDateTime#1231807, productPlant#1231817, timezonecode#1231831, systemId#1231832, internalUUID#1231833, id#1231834, displayId#1231835, name#1231836, baseUnitOfMeasure#1231837, unitOfMeasures#1231838, unitOfMeasureConversions#1231839, productionAspect#1231840, salesAspect#1231841, procurementAspect#1231842, productGroup#1231843, filteredUnitOfMeasureConversions#1231844, quantityNumerator#1231845]
(1932) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1231844.quantityDenominator), true, [quantityDenominator#1231846]
(1933) Project
Arguments: [product#1231805, plant#1231806, orderDateTime#1231807, productPlant#1231817, timezonecode#1231831, systemId#1231832, internalUUID#1231833, id#1231834, displayId#1231835, name#1231836, baseUnitOfMeasure#1231837, unitOfMeasures#1231838, unitOfMeasureConversions#1231839, productionAspect#1231840, salesAspect#1231841, procurementAspect#1231842, productGroup#1231843, filteredUnitOfMeasureConversions#1231844, quantityNumerator#1231845, quantityDenominator#1231846]
(1934) Project
Arguments: [product#1231805, plant#1231806, orderDateTime#1231807, productPlant#1231817, timezonecode#1231831, systemId#1231832, internalUUID#1231833, id#1231834, displayId#1231835, name#1231836, baseUnitOfMeasure#1231837, unitOfMeasures#1231838, unitOfMeasureConversions#1231839, productionAspect#1231840, salesAspect#1231841, procurementAspect#1231842, productGroup#1231843, filteredUnitOfMeasureConversions#1231844, quantityNumerator#1231845, quantityDenominator#1231846, (cast(quantityNumerator#1231845 as double) / cast(quantityDenominator#1231846 as double)) AS outboundUnit#1231847]
(1935) Project
Arguments: [product#1231805, plant#1231806, orderDateTime#1231807, productPlant#1231817, timezonecode#1231831, systemId#1231832, internalUUID#1231833, id#1231834, displayId#1231835, name#1231836, baseUnitOfMeasure#1231837, unitOfMeasures#1231838, unitOfMeasureConversions#1231839, productionAspect#1231840, salesAspect#1231841, procurementAspect#1231842, productGroup#1231843, filteredUnitOfMeasureConversions#1231844, quantityNumerator#1231845, quantityDenominator#1231846, CASE WHEN (isnull(outboundUnit#1231847) OR (outboundUnit#1231847 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1231847 END AS outboundUnit#1231848]
(1936) Project
Arguments: [product#1231805, plant#1231806, orderDateTime#1231807, productPlant#1231817, timezonecode#1231831, outboundUnit#1231848]
(1937) Join
Arguments: Inner, ((plantUuid#1231797 = plant#1231806) AND (productUuid#1231799 = product#1231805))
(1938) Filter
Arguments: (calculationDateTime#1231793 <= orderDateTime#1231807)
(1939) Project
Arguments: [plantUuid#1231797 AS plant#1231849, productUuid#1231799 AS product#1231850, storageLocId#1231800, calculationDateTime#1231793, quantity#1231802]
(1940) Aggregate
Arguments: [plant#1231849, product#1231850, storageLocId#1231800], [plant#1231849, product#1231850, storageLocId#1231800, max(calculationDateTime#1231793) AS max_calc_datetime#1231851]
(1941) Join
Arguments: Inner, ((((plant#1231712 <=> plant#1231849) AND (product#1231713 <=> product#1231850)) AND (storageLocId#1231663 <=> storageLocId#1231800)) AND (calculationDateTime#1231656 <=> max_calc_datetime#1231851))
(1942) Project
Arguments: [plant#1231712, product#1231713, storageLocId#1231663, calculationDateTime#1231656, quantity#1231665]
(1943) Aggregate
Arguments: [product#1231713, plant#1231712], [product#1231713, plant#1231712, sum(quantity#1231665) AS quantitySum#1231852, min(calculationDateTime#1231656) AS minCalculationDateTime#1231853]
(1944) Project
Arguments: [product#1231713, plant#1231712, quantitySum#1231852, minCalculationDateTime#1231853, round(quantitySum#1231852, 0) AS roundedQuantitySum#1231854]
(1945) Join
Arguments: LeftOuter, ((plant#1231534 = plant#1231712) AND (product#1231533 = product#1231713))
(1946) Project
Arguments: [product#1231533, plant#1231534, orderDateTime#1231535, productPlant#1231545, timezonecode#1231559, outboundUnit#1231576, roundedQuantitySum#1231854, minCalculationDateTime#1231853]
(1947) Project
Arguments: [product#1231533, plant#1231534, orderDateTime#1231535, productPlant#1231545, timezonecode#1231559, outboundUnit#1231576, roundedQuantitySum#1231854, minCalculationDateTime#1231853, CASE WHEN isnotnull(minCalculationDateTime#1231853) THEN minCalculationDateTime#1231853 ELSE orderDateTime#1231535 END AS stockDatetime#1231855]
(1948) Project
Arguments: [product#1231533, plant#1231534, orderDateTime#1231535, productPlant#1231545, timezonecode#1231559, outboundUnit#1231576, roundedQuantitySum#1231854, minCalculationDateTime#1231853, stockDatetime#1231855, CASE WHEN isnotnull(roundedQuantitySum#1231854) THEN array(roundedQuantitySum#1231854) ELSE array(0.0) END AS stockBatchQuantities#1231856]
(1949) Project
Arguments: [product#1231533, plant#1231534, orderDateTime#1231535, productPlant#1231545, timezonecode#1231559, outboundUnit#1231576, roundedQuantitySum#1231854, minCalculationDateTime#1231853, stockDatetime#1231855, stockBatchQuantities#1231856, array(2199-01-01 00:00:00) AS stockBatchShelfLifeEndDatetimes#1231857]
(1950) Project
Arguments: [product#1231533, plant#1231534, orderDateTime#1231535, productPlant#1231545, timezonecode#1231559, outboundUnit#1231576, roundedQuantitySum#1231854, stockDatetime#1231855, stockBatchQuantities#1231856, stockBatchShelfLifeEndDatetimes#1231857]
(1951) Project
Arguments: [product#1231533, plant#1231534, orderDateTime#1231535, productPlant#1231545, timezonecode#1231559, outboundUnit#1231576, stockDatetime#1231855, stockBatchQuantities#1231856, stockBatchShelfLifeEndDatetimes#1231857]
(1952) LogicalRelation
Arguments: parquet, [product#1231858, plant#1231859, orderDateTime#1231860, planningStartDateTime#1231861], false
(1953) RepartitionByExpression
Arguments: [product#1231858, plant#1231859], 37
(1954) Project
Arguments: [product#1231858, plant#1231859, orderDateTime#1231860]
(1955) LogicalRelation
Arguments: parquet, [systemId#1231862, internalUUID#1231863, plant#1231864, product#1231865, blockedForReplenishmentStartingFrom#1231866, productionAspect#1231867, salesPlant#1231868, listing#1231869], false
(1956) Repartition
Arguments: 37, true
(1957) Project
Arguments: [systemId#1231862, internalUUID#1231863, plant#1231864, product#1231865, blockedForReplenishmentStartingFrom#1231866, productionAspect#1231867, salesPlant#1231868, listing#1231869, struct(systemId, systemId#1231862, internalUUID, internalUUID#1231863, plant, plant#1231864, product, product#1231865, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1231866, productionAspect, productionAspect#1231867, salesPlant, salesPlant#1231868, listing, listing#1231869) AS productPlant#1231870]
(1958) Project
Arguments: [productPlant#1231870]
(1959) Join
Arguments: LeftOuter, ((product#1231858 <=> productPlant#1231870.product.internalRefUUID) AND (plant#1231859 <=> productPlant#1231870.plant.internalRefUUID))
(1960) Project
Arguments: [product#1231858, plant#1231859, orderDateTime#1231860, productPlant#1231870]
(1961) SubqueryAlias
Arguments: wl
(1962) LogicalRelation
Arguments: parquet, [systemId#1231871, internalUUID#1231872, id#1231873, displayId#1231874, name#1231875, category#1231876, companyCode#1231877, address#1231878, mainDistributionChain#1231879, mainPurchasingOrganization#1231880, validPurchasingOrganizations#1231881, productGroup#1231882], false
(1963) Repartition
Arguments: 37, true
(1964) Project
Arguments: [internalUUID#1231872, address#1231878.timeZone.code AS timezonecode#1231883]
(1965) Join
Arguments: LeftOuter, (plant#1231859 <=> internalUUID#1231872)
(1966) Project
Arguments: [product#1231858, plant#1231859, orderDateTime#1231860, productPlant#1231870, internalUUID#1231872, CASE WHEN isnotnull(timezonecode#1231883) THEN timezonecode#1231883 ELSE UTC END AS timezonecode#1231884]
(1967) Project
Arguments: [product#1231858, plant#1231859, orderDateTime#1231860, productPlant#1231870, timezonecode#1231884]
(1968) LogicalRelation
Arguments: parquet, [systemId#1231885, internalUUID#1231886, id#1231887, displayId#1231888, name#1231889, baseUnitOfMeasure#1231890, unitOfMeasures#1231891, unitOfMeasureConversions#1231892, productionAspect#1231893, salesAspect#1231894, procurementAspect#1231895, productGroup#1231896], false
(1969) Repartition
Arguments: 37, true
(1970) Join
Arguments: LeftOuter, (product#1231858 = internalUUID#1231886)
(1971) Project
Arguments: [product#1231858, plant#1231859, orderDateTime#1231860, productPlant#1231870, timezonecode#1231884, systemId#1231885, internalUUID#1231886, id#1231887, displayId#1231888, name#1231889, baseUnitOfMeasure#1231890, unitOfMeasures#1231891, unitOfMeasureConversions#1231892, productionAspect#1231893, salesAspect#1231894, procurementAspect#1231895, productGroup#1231896, filter(unitOfMeasureConversions#1231892, lambdafunction((((lambda u#1225669.measurementUnit1.code = productPlant#1231870.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1225669.measurementUnit1.internalRefUUID = productPlant#1231870.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1231890.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1231890.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1231897]
(1972) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1231897.quantityNumerator), true, [quantityNumerator#1231898]
(1973) Project
Arguments: [product#1231858, plant#1231859, orderDateTime#1231860, productPlant#1231870, timezonecode#1231884, systemId#1231885, internalUUID#1231886, id#1231887, displayId#1231888, name#1231889, baseUnitOfMeasure#1231890, unitOfMeasures#1231891, unitOfMeasureConversions#1231892, productionAspect#1231893, salesAspect#1231894, procurementAspect#1231895, productGroup#1231896, filteredUnitOfMeasureConversions#1231897, quantityNumerator#1231898]
(1974) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1231897.quantityDenominator), true, [quantityDenominator#1231899]
(1975) Project
Arguments: [product#1231858, plant#1231859, orderDateTime#1231860, productPlant#1231870, timezonecode#1231884, systemId#1231885, internalUUID#1231886, id#1231887, displayId#1231888, name#1231889, baseUnitOfMeasure#1231890, unitOfMeasures#1231891, unitOfMeasureConversions#1231892, productionAspect#1231893, salesAspect#1231894, procurementAspect#1231895, productGroup#1231896, filteredUnitOfMeasureConversions#1231897, quantityNumerator#1231898, quantityDenominator#1231899]
(1976) Project
Arguments: [product#1231858, plant#1231859, orderDateTime#1231860, productPlant#1231870, timezonecode#1231884, systemId#1231885, internalUUID#1231886, id#1231887, displayId#1231888, name#1231889, baseUnitOfMeasure#1231890, unitOfMeasures#1231891, unitOfMeasureConversions#1231892, productionAspect#1231893, salesAspect#1231894, procurementAspect#1231895, productGroup#1231896, filteredUnitOfMeasureConversions#1231897, quantityNumerator#1231898, quantityDenominator#1231899, (cast(quantityNumerator#1231898 as double) / cast(quantityDenominator#1231899 as double)) AS outboundUnit#1231900]
(1977) Project
Arguments: [product#1231858, plant#1231859, orderDateTime#1231860, productPlant#1231870, timezonecode#1231884, systemId#1231885, internalUUID#1231886, id#1231887, displayId#1231888, name#1231889, baseUnitOfMeasure#1231890, unitOfMeasures#1231891, unitOfMeasureConversions#1231892, productionAspect#1231893, salesAspect#1231894, procurementAspect#1231895, productGroup#1231896, filteredUnitOfMeasureConversions#1231897, quantityNumerator#1231898, quantityDenominator#1231899, CASE WHEN (isnull(outboundUnit#1231900) OR (outboundUnit#1231900 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1231900 END AS outboundUnit#1231901]
(1978) Project
Arguments: [product#1231858, plant#1231859, orderDateTime#1231860, productPlant#1231870, timezonecode#1231884, outboundUnit#1231901]
(1979) LogicalRelation
Arguments: parquet, [systemId#1231902, internalUUID#1231903, product#1231904, plant#1231905, calculationDateTime#1231906, stockQuantities#1231907], false
(1980) Repartition
Arguments: 37, true
(1981) LogicalRelation
Arguments: parquet, [marketUnit#1231908, description#1231909, articleHierarchy#1231910, defaultCurrency#1231911, responsibilities#1231912, replenishmentTypes#1231913, distributionCenters#1231914, assignedArticleHierarchyNodes#1231915, minOrderQtySetting#1231916, listingCheck#1231917, odsSelection#1231918, demandProfiles#1231919, constraintProfiles#1231920, optimizationProfiles#1231921, orderGroupSplitProfiles#1231922, supplierMinimumProfiles#1231923, multipleRestrictionProfiles#1231924, preferredUomSource#1231925, handlingOfUnfulfilledDemands#1231926, negligibleQuantitiesThreshold#1231927, eventtype#1231928, minOrderQtySettingInternal#1231929], false
(1982) Repartition
Arguments: 37, true
(1983) Filter
Arguments: (marketUnit#1231908 <=> AUTO_MUV2)
(1984) Project
Arguments: [marketUnit#1231908, description#1231909, articleHierarchy#1231910, defaultCurrency#1231911, responsibilities#1231912, replenishmentTypes#1231913, distributionCenters#1231914, assignedArticleHierarchyNodes#1231915, minOrderQtySetting#1231916, listingCheck#1231917, odsSelection#1231918, demandProfiles#1231919, constraintProfiles#1231920, optimizationProfiles#1231921, orderGroupSplitProfiles#1231922, supplierMinimumProfiles#1231923, multipleRestrictionProfiles#1231924, preferredUomSource#1231925, handlingOfUnfulfilledDemands#1231926, negligibleQuantitiesThreshold#1231927, eventtype#1231928, minOrderQtySettingInternal#1231929]
(1985) Project
Arguments: [distributionCenters#1231914]
(1986) Generate
Arguments: explode(distributionCenters#1231914), false, [distributionCenters#1231930]
(1987) Project
Arguments: [distributionCenters#1231930]
(1988) Generate
Arguments: explode(distributionCenters#1231930.storageLocations), false, [storageLocations#1231931]
(1989) Project
Arguments: [distributionCenters#1231930.id AS plantId#1231932, distributionCenters#1231930.internalRefUUID AS plantUuid#1231933, storageLocations#1231931]
(1990) Project
Arguments: [plantId#1231932, plantUuid#1231933, storageLocations#1231931.id AS storageLocId#1231934, storageLocations#1231931.internalRefUUID AS storageLocUuid#1231935]
(1991) LogicalRelation
Arguments: parquet, [product#1231936, plant#1231937, orderDateTime#1231938, planningStartDateTime#1231939], false
(1992) RepartitionByExpression
Arguments: [product#1231936, plant#1231937], 37
(1993) Project
Arguments: [product#1231936, plant#1231937, orderDateTime#1231938]
(1994) LogicalRelation
Arguments: parquet, [systemId#1231940, internalUUID#1231941, plant#1231942, product#1231943, blockedForReplenishmentStartingFrom#1231944, productionAspect#1231945, salesPlant#1231946, listing#1231947], false
(1995) Repartition
Arguments: 37, true
(1996) Project
Arguments: [systemId#1231940, internalUUID#1231941, plant#1231942, product#1231943, blockedForReplenishmentStartingFrom#1231944, productionAspect#1231945, salesPlant#1231946, listing#1231947, struct(systemId, systemId#1231940, internalUUID, internalUUID#1231941, plant, plant#1231942, product, product#1231943, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1231944, productionAspect, productionAspect#1231945, salesPlant, salesPlant#1231946, listing, listing#1231947) AS productPlant#1231948]
(1997) Project
Arguments: [productPlant#1231948]
(1998) Join
Arguments: LeftOuter, ((product#1231936 <=> productPlant#1231948.product.internalRefUUID) AND (plant#1231937 <=> productPlant#1231948.plant.internalRefUUID))
(1999) Project
Arguments: [product#1231936, plant#1231937, orderDateTime#1231938, productPlant#1231948]
(2000) SubqueryAlias
Arguments: wl
(2001) LogicalRelation
Arguments: parquet, [systemId#1231949, internalUUID#1231950, id#1231951, displayId#1231952, name#1231953, category#1231954, companyCode#1231955, address#1231956, mainDistributionChain#1231957, mainPurchasingOrganization#1231958, validPurchasingOrganizations#1231959, productGroup#1231960], false
(2002) Repartition
Arguments: 37, true
(2003) Project
Arguments: [internalUUID#1231950, address#1231956.timeZone.code AS timezonecode#1231961]
(2004) Join
Arguments: LeftOuter, (plant#1231937 <=> internalUUID#1231950)
(2005) Project
Arguments: [product#1231936, plant#1231937, orderDateTime#1231938, productPlant#1231948, internalUUID#1231950, CASE WHEN isnotnull(timezonecode#1231961) THEN timezonecode#1231961 ELSE UTC END AS timezonecode#1231962]
(2006) Project
Arguments: [product#1231936, plant#1231937, orderDateTime#1231938, productPlant#1231948, timezonecode#1231962]
(2007) LogicalRelation
Arguments: parquet, [systemId#1231963, internalUUID#1231964, id#1231965, displayId#1231966, name#1231967, baseUnitOfMeasure#1231968, unitOfMeasures#1231969, unitOfMeasureConversions#1231970, productionAspect#1231971, salesAspect#1231972, procurementAspect#1231973, productGroup#1231974], false
(2008) Repartition
Arguments: 37, true
(2009) Join
Arguments: LeftOuter, (product#1231936 = internalUUID#1231964)
(2010) Project
Arguments: [product#1231936, plant#1231937, orderDateTime#1231938, productPlant#1231948, timezonecode#1231962, systemId#1231963, internalUUID#1231964, id#1231965, displayId#1231966, name#1231967, baseUnitOfMeasure#1231968, unitOfMeasures#1231969, unitOfMeasureConversions#1231970, productionAspect#1231971, salesAspect#1231972, procurementAspect#1231973, productGroup#1231974, filter(unitOfMeasureConversions#1231970, lambdafunction((((lambda u#1225669.measurementUnit1.code = productPlant#1231948.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1225669.measurementUnit1.internalRefUUID = productPlant#1231948.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1231968.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1231968.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1231975]
(2011) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1231975.quantityNumerator), true, [quantityNumerator#1231976]
(2012) Project
Arguments: [product#1231936, plant#1231937, orderDateTime#1231938, productPlant#1231948, timezonecode#1231962, systemId#1231963, internalUUID#1231964, id#1231965, displayId#1231966, name#1231967, baseUnitOfMeasure#1231968, unitOfMeasures#1231969, unitOfMeasureConversions#1231970, productionAspect#1231971, salesAspect#1231972, procurementAspect#1231973, productGroup#1231974, filteredUnitOfMeasureConversions#1231975, quantityNumerator#1231976]
(2013) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1231975.quantityDenominator), true, [quantityDenominator#1231977]
(2014) Project
Arguments: [product#1231936, plant#1231937, orderDateTime#1231938, productPlant#1231948, timezonecode#1231962, systemId#1231963, internalUUID#1231964, id#1231965, displayId#1231966, name#1231967, baseUnitOfMeasure#1231968, unitOfMeasures#1231969, unitOfMeasureConversions#1231970, productionAspect#1231971, salesAspect#1231972, procurementAspect#1231973, productGroup#1231974, filteredUnitOfMeasureConversions#1231975, quantityNumerator#1231976, quantityDenominator#1231977]
(2015) Project
Arguments: [product#1231936, plant#1231937, orderDateTime#1231938, productPlant#1231948, timezonecode#1231962, systemId#1231963, internalUUID#1231964, id#1231965, displayId#1231966, name#1231967, baseUnitOfMeasure#1231968, unitOfMeasures#1231969, unitOfMeasureConversions#1231970, productionAspect#1231971, salesAspect#1231972, procurementAspect#1231973, productGroup#1231974, filteredUnitOfMeasureConversions#1231975, quantityNumerator#1231976, quantityDenominator#1231977, (cast(quantityNumerator#1231976 as double) / cast(quantityDenominator#1231977 as double)) AS outboundUnit#1231978]
(2016) Project
Arguments: [product#1231936, plant#1231937, orderDateTime#1231938, productPlant#1231948, timezonecode#1231962, systemId#1231963, internalUUID#1231964, id#1231965, displayId#1231966, name#1231967, baseUnitOfMeasure#1231968, unitOfMeasures#1231969, unitOfMeasureConversions#1231970, productionAspect#1231971, salesAspect#1231972, procurementAspect#1231973, productGroup#1231974, filteredUnitOfMeasureConversions#1231975, quantityNumerator#1231976, quantityDenominator#1231977, CASE WHEN (isnull(outboundUnit#1231978) OR (outboundUnit#1231978 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1231978 END AS outboundUnit#1231979]
(2017) Project
Arguments: [product#1231936, plant#1231937, orderDateTime#1231938, productPlant#1231948, timezonecode#1231962, outboundUnit#1231979]
(2018) Project
Arguments: [plant#1231937]
(2019) Deduplicate
Arguments: [plant#1231937]
(2020) Join
Arguments: Inner, (plantUuid#1231933 = plant#1231937)
(2021) Project
Arguments: [plantId#1231932, plantUuid#1231933, storageLocId#1231934, storageLocUuid#1231935]
(2022) Join
Arguments: Inner, (plant#1231905.internalRefUUID <=> plantUuid#1231933)
(2023) Generate
Arguments: explode(filter(stockQuantities#1231907, lambdafunction(((lambda x#1225727.storageLocation.internalRefUuid = storageLocUuid#1231935) AND (lambda x#1225727.storageLocation.Id = storageLocId#1231934)), lambda x#1225727, false))), false, [stockQuantity#1231980]
(2024) Project
Arguments: [systemId#1231902, internalUUID#1231903, product#1231904, plant#1231905, calculationDateTime#1231906, stockQuantities#1231907, plantId#1231932, plantUuid#1231933, storageLocId#1231934, storageLocUuid#1231935, stockQuantity#1231980]
(2025) Aggregate
Arguments: [plantUuid#1231933, internalUUID#1231903, plant#1231905, product#1231904, systemId#1231902], [plantUuid#1231933, internalUUID#1231903, plant#1231905, product#1231904, systemId#1231902, first(calculationDateTime#1231906, false) AS calculationDateTime#1231981, collect_list(stockQuantity#1231980, 0, 0) AS stockQuantities#1231982]
(2026) Project
Arguments: [systemId#1231902, internalUUID#1231903, product#1231904, plant#1231905, calculationDateTime#1231981, stockQuantities#1231982]
(2027) Generate
Arguments: explode(stockQuantities#1231982), false, [stockQuantity#1231983]
(2028) Project
Arguments: [systemId#1231902, internalUUID#1231903, product#1231904, plant#1231905, calculationDateTime#1231981, stockQuantities#1231982, stockQuantity#1231983]
(2029) Project
Arguments: [plant#1231905.id AS plant#1231984, plant#1231905.internalRefUUID AS plantUuid#1231985, product#1231904.id AS product#1231986, product#1231904.internalRefUUID AS productUuid#1231987, calculationDateTime#1231981, stockQuantity#1231983.storagelocation.id AS storageLocId#1231988, stockQuantity#1231983.storagelocation.internalRefUUID AS storageLocUuid#1231989, stockQuantity#1231983.quantity.measure AS quantity#1231990, stockQuantity#1231983.specialStockIndicator.code AS specialStockIndicator#1231991, stockQuantity#1231983.stockType.code AS stockType#1231992]
(2030) Filter
Arguments: ((specialStockIndicator#1231991 = ) AND (stockType#1231992 = 01))
(2031) LogicalRelation
Arguments: parquet, [product#1231993, plant#1231994, orderDateTime#1231995, planningStartDateTime#1231996], false
(2032) RepartitionByExpression
Arguments: [product#1231993, plant#1231994], 37
(2033) Project
Arguments: [product#1231993, plant#1231994, orderDateTime#1231995]
(2034) LogicalRelation
Arguments: parquet, [systemId#1231997, internalUUID#1231998, plant#1231999, product#1232000, blockedForReplenishmentStartingFrom#1232001, productionAspect#1232002, salesPlant#1232003, listing#1232004], false
(2035) Repartition
Arguments: 37, true
(2036) Project
Arguments: [systemId#1231997, internalUUID#1231998, plant#1231999, product#1232000, blockedForReplenishmentStartingFrom#1232001, productionAspect#1232002, salesPlant#1232003, listing#1232004, struct(systemId, systemId#1231997, internalUUID, internalUUID#1231998, plant, plant#1231999, product, product#1232000, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1232001, productionAspect, productionAspect#1232002, salesPlant, salesPlant#1232003, listing, listing#1232004) AS productPlant#1232005]
(2037) Project
Arguments: [productPlant#1232005]
(2038) Join
Arguments: LeftOuter, ((product#1231993 <=> productPlant#1232005.product.internalRefUUID) AND (plant#1231994 <=> productPlant#1232005.plant.internalRefUUID))
(2039) Project
Arguments: [product#1231993, plant#1231994, orderDateTime#1231995, productPlant#1232005]
(2040) SubqueryAlias
Arguments: wl
(2041) LogicalRelation
Arguments: parquet, [systemId#1232006, internalUUID#1232007, id#1232008, displayId#1232009, name#1232010, category#1232011, companyCode#1232012, address#1232013, mainDistributionChain#1232014, mainPurchasingOrganization#1232015, validPurchasingOrganizations#1232016, productGroup#1232017], false
(2042) Repartition
Arguments: 37, true
(2043) Project
Arguments: [internalUUID#1232007, address#1232013.timeZone.code AS timezonecode#1232018]
(2044) Join
Arguments: LeftOuter, (plant#1231994 <=> internalUUID#1232007)
(2045) Project
Arguments: [product#1231993, plant#1231994, orderDateTime#1231995, productPlant#1232005, internalUUID#1232007, CASE WHEN isnotnull(timezonecode#1232018) THEN timezonecode#1232018 ELSE UTC END AS timezonecode#1232019]
(2046) Project
Arguments: [product#1231993, plant#1231994, orderDateTime#1231995, productPlant#1232005, timezonecode#1232019]
(2047) LogicalRelation
Arguments: parquet, [systemId#1232020, internalUUID#1232021, id#1232022, displayId#1232023, name#1232024, baseUnitOfMeasure#1232025, unitOfMeasures#1232026, unitOfMeasureConversions#1232027, productionAspect#1232028, salesAspect#1232029, procurementAspect#1232030, productGroup#1232031], false
(2048) Repartition
Arguments: 37, true
(2049) Join
Arguments: LeftOuter, (product#1231993 = internalUUID#1232021)
(2050) Project
Arguments: [product#1231993, plant#1231994, orderDateTime#1231995, productPlant#1232005, timezonecode#1232019, systemId#1232020, internalUUID#1232021, id#1232022, displayId#1232023, name#1232024, baseUnitOfMeasure#1232025, unitOfMeasures#1232026, unitOfMeasureConversions#1232027, productionAspect#1232028, salesAspect#1232029, procurementAspect#1232030, productGroup#1232031, filter(unitOfMeasureConversions#1232027, lambdafunction((((lambda u#1225669.measurementUnit1.code = productPlant#1232005.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1225669.measurementUnit1.internalRefUUID = productPlant#1232005.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1232025.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1232025.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1232032]
(2051) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1232032.quantityNumerator), true, [quantityNumerator#1232033]
(2052) Project
Arguments: [product#1231993, plant#1231994, orderDateTime#1231995, productPlant#1232005, timezonecode#1232019, systemId#1232020, internalUUID#1232021, id#1232022, displayId#1232023, name#1232024, baseUnitOfMeasure#1232025, unitOfMeasures#1232026, unitOfMeasureConversions#1232027, productionAspect#1232028, salesAspect#1232029, procurementAspect#1232030, productGroup#1232031, filteredUnitOfMeasureConversions#1232032, quantityNumerator#1232033]
(2053) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1232032.quantityDenominator), true, [quantityDenominator#1232034]
(2054) Project
Arguments: [product#1231993, plant#1231994, orderDateTime#1231995, productPlant#1232005, timezonecode#1232019, systemId#1232020, internalUUID#1232021, id#1232022, displayId#1232023, name#1232024, baseUnitOfMeasure#1232025, unitOfMeasures#1232026, unitOfMeasureConversions#1232027, productionAspect#1232028, salesAspect#1232029, procurementAspect#1232030, productGroup#1232031, filteredUnitOfMeasureConversions#1232032, quantityNumerator#1232033, quantityDenominator#1232034]
(2055) Project
Arguments: [product#1231993, plant#1231994, orderDateTime#1231995, productPlant#1232005, timezonecode#1232019, systemId#1232020, internalUUID#1232021, id#1232022, displayId#1232023, name#1232024, baseUnitOfMeasure#1232025, unitOfMeasures#1232026, unitOfMeasureConversions#1232027, productionAspect#1232028, salesAspect#1232029, procurementAspect#1232030, productGroup#1232031, filteredUnitOfMeasureConversions#1232032, quantityNumerator#1232033, quantityDenominator#1232034, (cast(quantityNumerator#1232033 as double) / cast(quantityDenominator#1232034 as double)) AS outboundUnit#1232035]
(2056) Project
Arguments: [product#1231993, plant#1231994, orderDateTime#1231995, productPlant#1232005, timezonecode#1232019, systemId#1232020, internalUUID#1232021, id#1232022, displayId#1232023, name#1232024, baseUnitOfMeasure#1232025, unitOfMeasures#1232026, unitOfMeasureConversions#1232027, productionAspect#1232028, salesAspect#1232029, procurementAspect#1232030, productGroup#1232031, filteredUnitOfMeasureConversions#1232032, quantityNumerator#1232033, quantityDenominator#1232034, CASE WHEN (isnull(outboundUnit#1232035) OR (outboundUnit#1232035 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1232035 END AS outboundUnit#1232036]
(2057) Project
Arguments: [product#1231993, plant#1231994, orderDateTime#1231995, productPlant#1232005, timezonecode#1232019, outboundUnit#1232036]
(2058) Join
Arguments: Inner, ((plantUuid#1231985 = plant#1231994) AND (productUuid#1231987 = product#1231993))
(2059) Filter
Arguments: (calculationDateTime#1231981 <= orderDateTime#1231995)
(2060) Project
Arguments: [plantUuid#1231985 AS plant#1232037, productUuid#1231987 AS product#1232038, storageLocId#1231988, calculationDateTime#1231981, quantity#1231990]
(2061) LogicalRelation
Arguments: parquet, [systemId#1232039, internalUUID#1232040, product#1232041, plant#1232042, calculationDateTime#1232043, stockQuantities#1232044], false
(2062) Repartition
Arguments: 37, true
(2063) LogicalRelation
Arguments: parquet, [marketUnit#1232045, description#1232046, articleHierarchy#1232047, defaultCurrency#1232048, responsibilities#1232049, replenishmentTypes#1232050, distributionCenters#1232051, assignedArticleHierarchyNodes#1232052, minOrderQtySetting#1232053, listingCheck#1232054, odsSelection#1232055, demandProfiles#1232056, constraintProfiles#1232057, optimizationProfiles#1232058, orderGroupSplitProfiles#1232059, supplierMinimumProfiles#1232060, multipleRestrictionProfiles#1232061, preferredUomSource#1232062, handlingOfUnfulfilledDemands#1232063, negligibleQuantitiesThreshold#1232064, eventtype#1232065, minOrderQtySettingInternal#1232066], false
(2064) Repartition
Arguments: 37, true
(2065) Filter
Arguments: (marketUnit#1232045 <=> AUTO_MUV2)
(2066) Project
Arguments: [marketUnit#1232045, description#1232046, articleHierarchy#1232047, defaultCurrency#1232048, responsibilities#1232049, replenishmentTypes#1232050, distributionCenters#1232051, assignedArticleHierarchyNodes#1232052, minOrderQtySetting#1232053, listingCheck#1232054, odsSelection#1232055, demandProfiles#1232056, constraintProfiles#1232057, optimizationProfiles#1232058, orderGroupSplitProfiles#1232059, supplierMinimumProfiles#1232060, multipleRestrictionProfiles#1232061, preferredUomSource#1232062, handlingOfUnfulfilledDemands#1232063, negligibleQuantitiesThreshold#1232064, eventtype#1232065, minOrderQtySettingInternal#1232066]
(2067) Project
Arguments: [distributionCenters#1232051]
(2068) Generate
Arguments: explode(distributionCenters#1232051), false, [distributionCenters#1232067]
(2069) Project
Arguments: [distributionCenters#1232067]
(2070) Generate
Arguments: explode(distributionCenters#1232067.storageLocations), false, [storageLocations#1232068]
(2071) Project
Arguments: [distributionCenters#1232067.id AS plantId#1232069, distributionCenters#1232067.internalRefUUID AS plantUuid#1232070, storageLocations#1232068]
(2072) Project
Arguments: [plantId#1232069, plantUuid#1232070, storageLocations#1232068.id AS storageLocId#1232071, storageLocations#1232068.internalRefUUID AS storageLocUuid#1232072]
(2073) LogicalRelation
Arguments: parquet, [product#1232073, plant#1232074, orderDateTime#1232075, planningStartDateTime#1232076], false
(2074) RepartitionByExpression
Arguments: [product#1232073, plant#1232074], 37
(2075) Project
Arguments: [product#1232073, plant#1232074, orderDateTime#1232075]
(2076) LogicalRelation
Arguments: parquet, [systemId#1232077, internalUUID#1232078, plant#1232079, product#1232080, blockedForReplenishmentStartingFrom#1232081, productionAspect#1232082, salesPlant#1232083, listing#1232084], false
(2077) Repartition
Arguments: 37, true
(2078) Project
Arguments: [systemId#1232077, internalUUID#1232078, plant#1232079, product#1232080, blockedForReplenishmentStartingFrom#1232081, productionAspect#1232082, salesPlant#1232083, listing#1232084, struct(systemId, systemId#1232077, internalUUID, internalUUID#1232078, plant, plant#1232079, product, product#1232080, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1232081, productionAspect, productionAspect#1232082, salesPlant, salesPlant#1232083, listing, listing#1232084) AS productPlant#1232085]
(2079) Project
Arguments: [productPlant#1232085]
(2080) Join
Arguments: LeftOuter, ((product#1232073 <=> productPlant#1232085.product.internalRefUUID) AND (plant#1232074 <=> productPlant#1232085.plant.internalRefUUID))
(2081) Project
Arguments: [product#1232073, plant#1232074, orderDateTime#1232075, productPlant#1232085]
(2082) SubqueryAlias
Arguments: wl
(2083) LogicalRelation
Arguments: parquet, [systemId#1232086, internalUUID#1232087, id#1232088, displayId#1232089, name#1232090, category#1232091, companyCode#1232092, address#1232093, mainDistributionChain#1232094, mainPurchasingOrganization#1232095, validPurchasingOrganizations#1232096, productGroup#1232097], false
(2084) Repartition
Arguments: 37, true
(2085) Project
Arguments: [internalUUID#1232087, address#1232093.timeZone.code AS timezonecode#1232098]
(2086) Join
Arguments: LeftOuter, (plant#1232074 <=> internalUUID#1232087)
(2087) Project
Arguments: [product#1232073, plant#1232074, orderDateTime#1232075, productPlant#1232085, internalUUID#1232087, CASE WHEN isnotnull(timezonecode#1232098) THEN timezonecode#1232098 ELSE UTC END AS timezonecode#1232099]
(2088) Project
Arguments: [product#1232073, plant#1232074, orderDateTime#1232075, productPlant#1232085, timezonecode#1232099]
(2089) LogicalRelation
Arguments: parquet, [systemId#1232100, internalUUID#1232101, id#1232102, displayId#1232103, name#1232104, baseUnitOfMeasure#1232105, unitOfMeasures#1232106, unitOfMeasureConversions#1232107, productionAspect#1232108, salesAspect#1232109, procurementAspect#1232110, productGroup#1232111], false
(2090) Repartition
Arguments: 37, true
(2091) Join
Arguments: LeftOuter, (product#1232073 = internalUUID#1232101)
(2092) Project
Arguments: [product#1232073, plant#1232074, orderDateTime#1232075, productPlant#1232085, timezonecode#1232099, systemId#1232100, internalUUID#1232101, id#1232102, displayId#1232103, name#1232104, baseUnitOfMeasure#1232105, unitOfMeasures#1232106, unitOfMeasureConversions#1232107, productionAspect#1232108, salesAspect#1232109, procurementAspect#1232110, productGroup#1232111, filter(unitOfMeasureConversions#1232107, lambdafunction((((lambda u#1225669.measurementUnit1.code = productPlant#1232085.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1225669.measurementUnit1.internalRefUUID = productPlant#1232085.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1232105.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1232105.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1232112]
(2093) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1232112.quantityNumerator), true, [quantityNumerator#1232113]
(2094) Project
Arguments: [product#1232073, plant#1232074, orderDateTime#1232075, productPlant#1232085, timezonecode#1232099, systemId#1232100, internalUUID#1232101, id#1232102, displayId#1232103, name#1232104, baseUnitOfMeasure#1232105, unitOfMeasures#1232106, unitOfMeasureConversions#1232107, productionAspect#1232108, salesAspect#1232109, procurementAspect#1232110, productGroup#1232111, filteredUnitOfMeasureConversions#1232112, quantityNumerator#1232113]
(2095) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1232112.quantityDenominator), true, [quantityDenominator#1232114]
(2096) Project
Arguments: [product#1232073, plant#1232074, orderDateTime#1232075, productPlant#1232085, timezonecode#1232099, systemId#1232100, internalUUID#1232101, id#1232102, displayId#1232103, name#1232104, baseUnitOfMeasure#1232105, unitOfMeasures#1232106, unitOfMeasureConversions#1232107, productionAspect#1232108, salesAspect#1232109, procurementAspect#1232110, productGroup#1232111, filteredUnitOfMeasureConversions#1232112, quantityNumerator#1232113, quantityDenominator#1232114]
(2097) Project
Arguments: [product#1232073, plant#1232074, orderDateTime#1232075, productPlant#1232085, timezonecode#1232099, systemId#1232100, internalUUID#1232101, id#1232102, displayId#1232103, name#1232104, baseUnitOfMeasure#1232105, unitOfMeasures#1232106, unitOfMeasureConversions#1232107, productionAspect#1232108, salesAspect#1232109, procurementAspect#1232110, productGroup#1232111, filteredUnitOfMeasureConversions#1232112, quantityNumerator#1232113, quantityDenominator#1232114, (cast(quantityNumerator#1232113 as double) / cast(quantityDenominator#1232114 as double)) AS outboundUnit#1232115]
(2098) Project
Arguments: [product#1232073, plant#1232074, orderDateTime#1232075, productPlant#1232085, timezonecode#1232099, systemId#1232100, internalUUID#1232101, id#1232102, displayId#1232103, name#1232104, baseUnitOfMeasure#1232105, unitOfMeasures#1232106, unitOfMeasureConversions#1232107, productionAspect#1232108, salesAspect#1232109, procurementAspect#1232110, productGroup#1232111, filteredUnitOfMeasureConversions#1232112, quantityNumerator#1232113, quantityDenominator#1232114, CASE WHEN (isnull(outboundUnit#1232115) OR (outboundUnit#1232115 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1232115 END AS outboundUnit#1232116]
(2099) Project
Arguments: [product#1232073, plant#1232074, orderDateTime#1232075, productPlant#1232085, timezonecode#1232099, outboundUnit#1232116]
(2100) Project
Arguments: [plant#1232074]
(2101) Deduplicate
Arguments: [plant#1232074]
(2102) Join
Arguments: Inner, (plantUuid#1232070 = plant#1232074)
(2103) Project
Arguments: [plantId#1232069, plantUuid#1232070, storageLocId#1232071, storageLocUuid#1232072]
(2104) Join
Arguments: Inner, (plant#1232042.internalRefUUID <=> plantUuid#1232070)
(2105) Generate
Arguments: explode(filter(stockQuantities#1232044, lambdafunction(((lambda x#1225727.storageLocation.internalRefUuid = storageLocUuid#1232072) AND (lambda x#1225727.storageLocation.Id = storageLocId#1232071)), lambda x#1225727, false))), false, [stockQuantity#1232117]
(2106) Project
Arguments: [systemId#1232039, internalUUID#1232040, product#1232041, plant#1232042, calculationDateTime#1232043, stockQuantities#1232044, plantId#1232069, plantUuid#1232070, storageLocId#1232071, storageLocUuid#1232072, stockQuantity#1232117]
(2107) Aggregate
Arguments: [plantUuid#1232070, internalUUID#1232040, plant#1232042, product#1232041, systemId#1232039], [plantUuid#1232070, internalUUID#1232040, plant#1232042, product#1232041, systemId#1232039, first(calculationDateTime#1232043, false) AS calculationDateTime#1232118, collect_list(stockQuantity#1232117, 0, 0) AS stockQuantities#1232119]
(2108) Project
Arguments: [systemId#1232039, internalUUID#1232040, product#1232041, plant#1232042, calculationDateTime#1232118, stockQuantities#1232119]
(2109) Generate
Arguments: explode(stockQuantities#1232119), false, [stockQuantity#1232120]
(2110) Project
Arguments: [systemId#1232039, internalUUID#1232040, product#1232041, plant#1232042, calculationDateTime#1232118, stockQuantities#1232119, stockQuantity#1232120]
(2111) Project
Arguments: [plant#1232042.id AS plant#1232121, plant#1232042.internalRefUUID AS plantUuid#1232122, product#1232041.id AS product#1232123, product#1232041.internalRefUUID AS productUuid#1232124, calculationDateTime#1232118, stockQuantity#1232120.storagelocation.id AS storageLocId#1232125, stockQuantity#1232120.storagelocation.internalRefUUID AS storageLocUuid#1232126, stockQuantity#1232120.quantity.measure AS quantity#1232127, stockQuantity#1232120.specialStockIndicator.code AS specialStockIndicator#1232128, stockQuantity#1232120.stockType.code AS stockType#1232129]
(2112) Filter
Arguments: ((specialStockIndicator#1232128 = ) AND (stockType#1232129 = 01))
(2113) LogicalRelation
Arguments: parquet, [product#1232130, plant#1232131, orderDateTime#1232132, planningStartDateTime#1232133], false
(2114) RepartitionByExpression
Arguments: [product#1232130, plant#1232131], 37
(2115) Project
Arguments: [product#1232130, plant#1232131, orderDateTime#1232132]
(2116) LogicalRelation
Arguments: parquet, [systemId#1232134, internalUUID#1232135, plant#1232136, product#1232137, blockedForReplenishmentStartingFrom#1232138, productionAspect#1232139, salesPlant#1232140, listing#1232141], false
(2117) Repartition
Arguments: 37, true
(2118) Project
Arguments: [systemId#1232134, internalUUID#1232135, plant#1232136, product#1232137, blockedForReplenishmentStartingFrom#1232138, productionAspect#1232139, salesPlant#1232140, listing#1232141, struct(systemId, systemId#1232134, internalUUID, internalUUID#1232135, plant, plant#1232136, product, product#1232137, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1232138, productionAspect, productionAspect#1232139, salesPlant, salesPlant#1232140, listing, listing#1232141) AS productPlant#1232142]
(2119) Project
Arguments: [productPlant#1232142]
(2120) Join
Arguments: LeftOuter, ((product#1232130 <=> productPlant#1232142.product.internalRefUUID) AND (plant#1232131 <=> productPlant#1232142.plant.internalRefUUID))
(2121) Project
Arguments: [product#1232130, plant#1232131, orderDateTime#1232132, productPlant#1232142]
(2122) SubqueryAlias
Arguments: wl
(2123) LogicalRelation
Arguments: parquet, [systemId#1232143, internalUUID#1232144, id#1232145, displayId#1232146, name#1232147, category#1232148, companyCode#1232149, address#1232150, mainDistributionChain#1232151, mainPurchasingOrganization#1232152, validPurchasingOrganizations#1232153, productGroup#1232154], false
(2124) Repartition
Arguments: 37, true
(2125) Project
Arguments: [internalUUID#1232144, address#1232150.timeZone.code AS timezonecode#1232155]
(2126) Join
Arguments: LeftOuter, (plant#1232131 <=> internalUUID#1232144)
(2127) Project
Arguments: [product#1232130, plant#1232131, orderDateTime#1232132, productPlant#1232142, internalUUID#1232144, CASE WHEN isnotnull(timezonecode#1232155) THEN timezonecode#1232155 ELSE UTC END AS timezonecode#1232156]
(2128) Project
Arguments: [product#1232130, plant#1232131, orderDateTime#1232132, productPlant#1232142, timezonecode#1232156]
(2129) LogicalRelation
Arguments: parquet, [systemId#1232157, internalUUID#1232158, id#1232159, displayId#1232160, name#1232161, baseUnitOfMeasure#1232162, unitOfMeasures#1232163, unitOfMeasureConversions#1232164, productionAspect#1232165, salesAspect#1232166, procurementAspect#1232167, productGroup#1232168], false
(2130) Repartition
Arguments: 37, true
(2131) Join
Arguments: LeftOuter, (product#1232130 = internalUUID#1232158)
(2132) Project
Arguments: [product#1232130, plant#1232131, orderDateTime#1232132, productPlant#1232142, timezonecode#1232156, systemId#1232157, internalUUID#1232158, id#1232159, displayId#1232160, name#1232161, baseUnitOfMeasure#1232162, unitOfMeasures#1232163, unitOfMeasureConversions#1232164, productionAspect#1232165, salesAspect#1232166, procurementAspect#1232167, productGroup#1232168, filter(unitOfMeasureConversions#1232164, lambdafunction((((lambda u#1225669.measurementUnit1.code = productPlant#1232142.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1225669.measurementUnit1.internalRefUUID = productPlant#1232142.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1232162.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1232162.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1232169]
(2133) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1232169.quantityNumerator), true, [quantityNumerator#1232170]
(2134) Project
Arguments: [product#1232130, plant#1232131, orderDateTime#1232132, productPlant#1232142, timezonecode#1232156, systemId#1232157, internalUUID#1232158, id#1232159, displayId#1232160, name#1232161, baseUnitOfMeasure#1232162, unitOfMeasures#1232163, unitOfMeasureConversions#1232164, productionAspect#1232165, salesAspect#1232166, procurementAspect#1232167, productGroup#1232168, filteredUnitOfMeasureConversions#1232169, quantityNumerator#1232170]
(2135) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1232169.quantityDenominator), true, [quantityDenominator#1232171]
(2136) Project
Arguments: [product#1232130, plant#1232131, orderDateTime#1232132, productPlant#1232142, timezonecode#1232156, systemId#1232157, internalUUID#1232158, id#1232159, displayId#1232160, name#1232161, baseUnitOfMeasure#1232162, unitOfMeasures#1232163, unitOfMeasureConversions#1232164, productionAspect#1232165, salesAspect#1232166, procurementAspect#1232167, productGroup#1232168, filteredUnitOfMeasureConversions#1232169, quantityNumerator#1232170, quantityDenominator#1232171]
(2137) Project
Arguments: [product#1232130, plant#1232131, orderDateTime#1232132, productPlant#1232142, timezonecode#1232156, systemId#1232157, internalUUID#1232158, id#1232159, displayId#1232160, name#1232161, baseUnitOfMeasure#1232162, unitOfMeasures#1232163, unitOfMeasureConversions#1232164, productionAspect#1232165, salesAspect#1232166, procurementAspect#1232167, productGroup#1232168, filteredUnitOfMeasureConversions#1232169, quantityNumerator#1232170, quantityDenominator#1232171, (cast(quantityNumerator#1232170 as double) / cast(quantityDenominator#1232171 as double)) AS outboundUnit#1232172]
(2138) Project
Arguments: [product#1232130, plant#1232131, orderDateTime#1232132, productPlant#1232142, timezonecode#1232156, systemId#1232157, internalUUID#1232158, id#1232159, displayId#1232160, name#1232161, baseUnitOfMeasure#1232162, unitOfMeasures#1232163, unitOfMeasureConversions#1232164, productionAspect#1232165, salesAspect#1232166, procurementAspect#1232167, productGroup#1232168, filteredUnitOfMeasureConversions#1232169, quantityNumerator#1232170, quantityDenominator#1232171, CASE WHEN (isnull(outboundUnit#1232172) OR (outboundUnit#1232172 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1232172 END AS outboundUnit#1232173]
(2139) Project
Arguments: [product#1232130, plant#1232131, orderDateTime#1232132, productPlant#1232142, timezonecode#1232156, outboundUnit#1232173]
(2140) Join
Arguments: Inner, ((plantUuid#1232122 = plant#1232131) AND (productUuid#1232124 = product#1232130))
(2141) Filter
Arguments: (calculationDateTime#1232118 <= orderDateTime#1232132)
(2142) Project
Arguments: [plantUuid#1232122 AS plant#1232174, productUuid#1232124 AS product#1232175, storageLocId#1232125, calculationDateTime#1232118, quantity#1232127]
(2143) Aggregate
Arguments: [plant#1232174, product#1232175, storageLocId#1232125], [plant#1232174, product#1232175, storageLocId#1232125, max(calculationDateTime#1232118) AS max_calc_datetime#1232176]
(2144) Join
Arguments: Inner, ((((plant#1232037 <=> plant#1232174) AND (product#1232038 <=> product#1232175)) AND (storageLocId#1231988 <=> storageLocId#1232125)) AND (calculationDateTime#1231981 <=> max_calc_datetime#1232176))
(2145) Project
Arguments: [plant#1232037, product#1232038, storageLocId#1231988, calculationDateTime#1231981, quantity#1231990]
(2146) Aggregate
Arguments: [product#1232038, plant#1232037], [product#1232038, plant#1232037, sum(quantity#1231990) AS quantitySum#1232177, min(calculationDateTime#1231981) AS minCalculationDateTime#1232178]
(2147) Project
Arguments: [product#1232038, plant#1232037, quantitySum#1232177, minCalculationDateTime#1232178, round(quantitySum#1232177, 0) AS roundedQuantitySum#1232179]
(2148) Join
Arguments: LeftOuter, ((plant#1231859 = plant#1232037) AND (product#1231858 = product#1232038))
(2149) Project
Arguments: [product#1231858, plant#1231859, orderDateTime#1231860, productPlant#1231870, timezonecode#1231884, outboundUnit#1231901, roundedQuantitySum#1232179, minCalculationDateTime#1232178]
(2150) Project
Arguments: [product#1231858, plant#1231859, orderDateTime#1231860, productPlant#1231870, timezonecode#1231884, outboundUnit#1231901, roundedQuantitySum#1232179, minCalculationDateTime#1232178, CASE WHEN isnotnull(minCalculationDateTime#1232178) THEN minCalculationDateTime#1232178 ELSE orderDateTime#1231860 END AS stockDatetime#1232180]
(2151) Project
Arguments: [product#1231858, plant#1231859, orderDateTime#1231860, productPlant#1231870, timezonecode#1231884, outboundUnit#1231901, roundedQuantitySum#1232179, minCalculationDateTime#1232178, stockDatetime#1232180, CASE WHEN isnotnull(roundedQuantitySum#1232179) THEN array(roundedQuantitySum#1232179) ELSE array(0.0) END AS stockBatchQuantities#1232181]
(2152) Project
Arguments: [product#1231858, plant#1231859, orderDateTime#1231860, productPlant#1231870, timezonecode#1231884, outboundUnit#1231901, roundedQuantitySum#1232179, minCalculationDateTime#1232178, stockDatetime#1232180, stockBatchQuantities#1232181, array(2199-01-01 00:00:00) AS stockBatchShelfLifeEndDatetimes#1232182]
(2153) Project
Arguments: [product#1231858, plant#1231859, orderDateTime#1231860, productPlant#1231870, timezonecode#1231884, outboundUnit#1231901, roundedQuantitySum#1232179, stockDatetime#1232180, stockBatchQuantities#1232181, stockBatchShelfLifeEndDatetimes#1232182]
(2154) Project
Arguments: [product#1231858, plant#1231859, orderDateTime#1231860, productPlant#1231870, timezonecode#1231884, outboundUnit#1231901, stockDatetime#1232180, stockBatchQuantities#1232181, stockBatchShelfLifeEndDatetimes#1232182]
(2155) LogicalRelation
Arguments: parquet, [product#1232183, plant#1232184, demandChannel#1232185, demandStream#1232186, considerVariance#1232187, demandTimeBuckets#1232188, demandPointInTimeStart#1232189, demandPointInTimeEnd#1232190, demandPointInTime#1232191], false
(2156) Join
Arguments: LeftOuter, ((product#1231858 = product#1232183) AND (plant#1231859 = plant#1232184))
(2157) Project
Arguments: [product#1231858, plant#1231859, orderDateTime#1231860, productPlant#1231870, timezonecode#1231884, outboundUnit#1231901, stockDatetime#1232180, stockBatchQuantities#1232181, stockBatchShelfLifeEndDatetimes#1232182, demandChannel#1232185, demandStream#1232186, considerVariance#1232187, demandTimeBuckets#1232188, demandPointInTimeStart#1232189, demandPointInTimeEnd#1232190, demandPointInTime#1232191, product#1232183, plant#1232184]
(2158) Project
Arguments: [product#1231858, plant#1231859, orderDateTime#1231860, productPlant#1231870, timezonecode#1231884, outboundUnit#1231901, stockDatetime#1232180, stockBatchQuantities#1232181, stockBatchShelfLifeEndDatetimes#1232182, demandChannel#1232185, demandStream#1232186, considerVariance#1232187, demandTimeBuckets#1232188, demandPointInTimeStart#1232189, demandPointInTimeEnd#1232190, demandPointInTime#1232191, CASE WHEN isnotnull(product#1232183) THEN struct(demandChannel, demandChannel#1232185, demandStream, demandStream#1232186, considerVariance, considerVariance#1232187, demandTimeBuckets, demandTimeBuckets#1232188, demandPointInTimeStart, demandPointInTimeStart#1232189, demandPointInTimeEnd, demandPointInTimeEnd#1232190, demandPointInTime, demandPointInTime#1232191) 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#1232192]
(2159) Aggregate
Arguments: [product#1231858, plant#1231859, orderDateTime#1231860, productPlant#1231870, timezonecode#1231884, outboundUnit#1231901, stockDatetime#1232180, stockBatchQuantities#1232181, stockBatchShelfLifeEndDatetimes#1232182], [product#1231858, plant#1231859, orderDateTime#1231860, productPlant#1231870, timezonecode#1231884, outboundUnit#1231901, stockDatetime#1232180, stockBatchQuantities#1232181, stockBatchShelfLifeEndDatetimes#1232182, collect_list(rawDemands#1232192, 0, 0) AS rawDemands#1232193]
(2160) DeserializeToObject
Arguments: createexternalrow(invoke(product#1231858.toString()), invoke(plant#1231859.toString()), static_invoke(DateTimeUtils.toJavaTimestamp(orderDateTime#1231860)), if (isnull(productPlant#1231870)) null else createexternalrow(invoke(productPlant#1231870.systemId.toString()), invoke(productPlant#1231870.internalUUID.toString()), if (isnull(productPlant#1231870.plant)) null else createexternalrow(invoke(productPlant#1231870.plant.internalRefUUID.toString()), invoke(productPlant#1231870.plant.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), if (isnull(productPlant#1231870.product)) null else createexternalrow(invoke(productPlant#1231870.product.internalRefUUID.toString()), invoke(productPlant#1231870.product.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(DateTimeUtils.toJavaDate(productPlant#1231870.blockedForReplenishmentStartingFrom)), if (isnull(productPlant#1231870.productionAspect)) null else createexternalrow(if (isnull(productPlant#1231870.productionAspect.productMovementPlants)) null else createexternalrow(if (isnull(productPlant#1231870.productionAspect.productMovementPlants.unitOfIssue)) null else createexternalrow(invoke(productPlant#1231870.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID.toString()), invoke(productPlant#1231870.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#1231870.productionAspect.productPlanningPlants)) null else createexternalrow(if (isnull(productPlant#1231870.productionAspect.productPlanningPlants.mrpType)) null else createexternalrow(invoke(productPlant#1231870.productionAspect.productPlanningPlants.mrpType.internalRefUUID.toString()), invoke(productPlant#1231870.productionAspect.productPlanningPlants.mrpType.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1231870.productionAspect.productPlanningPlants.abcIndicator)) null else createexternalrow(invoke(productPlant#1231870.productionAspect.productPlanningPlants.abcIndicator.internalRefUUID.toString()), invoke(productPlant#1231870.productionAspect.productPlanningPlants.abcIndicator.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1231870.productionAspect.productPlanningPlants.mrpController)) null else createexternalrow(invoke(productPlant#1231870.productionAspect.productPlanningPlants.mrpController.internalRefUUID.toString()), invoke(productPlant#1231870.productionAspect.productPlanningPlants.mrpController.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(java.lang.Double.valueOf(productPlant#1231870.productionAspect.productPlanningPlants.minimumLotSize)), if (isnull(productPlant#1231870.productionAspect.productPlanningPlants.logisticalRoundingProfile)) null else createexternalrow(invoke(productPlant#1231870.productionAspect.productPlanningPlants.logisticalRoundingProfile.internalRefUUID.toString()), invoke(productPlant#1231870.productionAspect.productPlanningPlants.logisticalRoundingProfile.logisticalRoundingProfile.toString()), StructField(internalRefUUID,StringType,true), StructField(logisticalRoundingProfile,StringType,true)), if (isnull(productPlant#1231870.productionAspect.productPlanningPlants.sourceOfSupplyCategory)) null else createexternalrow(invoke(productPlant#1231870.productionAspect.productPlanningPlants.sourceOfSupplyCategory.internalRefUUID.toString()), invoke(productPlant#1231870.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#1231870.salesPlant)) null else createexternalrow(if (isnull(productPlant#1231870.salesPlant.loadingGroup)) null else createexternalrow(invoke(productPlant#1231870.salesPlant.loadingGroup.internalRefUUID.toString()), invoke(productPlant#1231870.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, 163428), if (isnull(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 163428))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 163428).validFrom)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 163428).validTo)), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 163428).isListed)), StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true)), productPlant#1231870.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#1231884.toString()), static_invoke(java.lang.Double.valueOf(outboundUnit#1231901)), static_invoke(DateTimeUtils.toJavaTimestamp(stockDatetime#1232180)), mapobjects(lambdavariable(MapObject, DoubleType, true, 163429), static_invoke(java.lang.Double.valueOf(cast(lambdavariable(MapObject, DoubleType, true, 163429) as double))), stockBatchQuantities#1232181, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, false, 163430), assertnotnull(static_invoke(DateTimeUtils.toJavaTimestamp(cast(lambdavariable(MapObject, TimestampType, false, 163430) as timestamp)))), stockBatchShelfLifeEndDatetimes#1232182, 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, 163431), 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, 163431))) 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, 163431).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, 163431).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, 163431).considerVariance)), mapobjects(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 163432), if (isnull(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 163432))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 163432).demandStartDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 163432).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 163432).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, 163431).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, 163431).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, 163431).demandPointInTimeEnd)), mapobjects(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 163433), if (isnull(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 163433))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 163433).demandDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 163433).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 163433).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, 163431).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#1232193, 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#1226090: org.apache.spark.sql.Row
(2161) MapElements
Arguments: com.sap.s4hana.eureka.business.crporderquantitykpiservice.core.business.datasnapshot.DemandTransformatorImpl$$Lambda/0x00000008023bc120@58fc6bc3, 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#1226095: 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#1232194, 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#1232195, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(2))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163418), assertnotnull(if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163418), 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, 163418), 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, 163418), 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, 163418), 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, 163418), 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, 163418), 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, 163418), 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, 163418), 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, 163418), 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, 163418), 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, 163419), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163419), DoubleType, ObjectType(class java.lang.Double)).doubleValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163418), 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, 163418), 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, 163418), 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, 163418), 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, 163420), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163420), DoubleType, ObjectType(class java.lang.Double)).doubleValue()), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163418), 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, 163418), 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, 163421), assertnotnull(static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163421), TimestampType, ObjectType(class java.sql.Timestamp))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163418), 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, 163418), 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, 163422), assertnotnull(static_invoke(UTF8String.fromString(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163422), StringType, ObjectType(class java.lang.String))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163418), 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, 163418), 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, 163418), 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, 163418), 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, 163423), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163423), IntegerType, ObjectType(class java.lang.Integer)).intValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163418), 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#1232196, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(3))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163424), assertnotnull(if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163424), 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, 163424), 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, 163424), 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, 163424), 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, 163424), 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, 163424), 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, 163424), 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, 163424), 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, 163425), assertnotnull(static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163425), TimestampType, ObjectType(class java.sql.Timestamp))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163424), 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, 163424), 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, 163424), 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, 163424), 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, 163426), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163426), DoubleType, ObjectType(class java.lang.Double)).doubleValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163424), 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, 163424), 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, 163424), 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, 163424), 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, 163427), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163427), DoubleType, ObjectType(class java.lang.Double)).doubleValue()), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163424), 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, 163424), 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, 163424), 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, 163424), 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, 163424), 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#1232197]
(2163) Join
Arguments: LeftOuter, ((plant#1232195 <=> plant#1231534) AND (product#1232194 <=> product#1231533))
(2164) Project
Arguments: [product#1231533, plant#1231534, orderDateTime#1231535, productPlant#1231545, timezonecode#1231559, outboundUnit#1231576, stockDatetime#1231855, stockBatchQuantities#1231856, stockBatchShelfLifeEndDatetimes#1231857, plant#1232195, dayBucketDemands#1232196, pointInTimeDemands#1232197]
(2165) Project
Arguments: [product#1231533, plant#1231534, orderDateTime#1231535, productPlant#1231545, timezonecode#1231559, outboundUnit#1231576, stockDatetime#1231855, stockBatchQuantities#1231856, stockBatchShelfLifeEndDatetimes#1231857, dayBucketDemands#1232196, pointInTimeDemands#1232197]
(2166) LogicalRelation
Arguments: parquet, [marketUnit#1232198, description#1232199, articleHierarchy#1232200, defaultCurrency#1232201, responsibilities#1232202, replenishmentTypes#1232203, distributionCenters#1232204, assignedArticleHierarchyNodes#1232205, minOrderQtySetting#1232206, listingCheck#1232207, odsSelection#1232208, demandProfiles#1232209, constraintProfiles#1232210, optimizationProfiles#1232211, orderGroupSplitProfiles#1232212, supplierMinimumProfiles#1232213, multipleRestrictionProfiles#1232214, preferredUomSource#1232215, handlingOfUnfulfilledDemands#1232216, negligibleQuantitiesThreshold#1232217, eventtype#1232218, minOrderQtySettingInternal#1232219], false
(2167) Repartition
Arguments: 37, true
(2168) Filter
Arguments: (marketUnit#1232198 <=> AUTO_MUV2)
(2169) Project
Arguments: [marketUnit#1232198, description#1232199, articleHierarchy#1232200, defaultCurrency#1232201, responsibilities#1232202, replenishmentTypes#1232203, distributionCenters#1232204, assignedArticleHierarchyNodes#1232205, minOrderQtySetting#1232206, listingCheck#1232207, odsSelection#1232208, demandProfiles#1232209, constraintProfiles#1232210, optimizationProfiles#1232211, orderGroupSplitProfiles#1232212, supplierMinimumProfiles#1232213, multipleRestrictionProfiles#1232214, preferredUomSource#1232215, handlingOfUnfulfilledDemands#1232216, negligibleQuantitiesThreshold#1232217, eventtype#1232218, minOrderQtySettingInternal#1232219]
(2170) Project
Arguments: [distributionCenters#1232204]
(2171) Generate
Arguments: explode(distributionCenters#1232204), false, [distributionCenters#1232220]
(2172) Project
Arguments: [distributionCenters#1232220]
(2173) Generate
Arguments: explode(distributionCenters#1232220.storageLocations), false, [storageLocations#1232221]
(2174) Project
Arguments: [distributionCenters#1232220.id AS plantId#1232222, distributionCenters#1232220.internalRefUUID AS plantUuid#1232223, storageLocations#1232221]
(2175) Project
Arguments: [plantId#1232222, plantUuid#1232223, storageLocations#1232221.id AS storageLocId#1232224, storageLocations#1232221.internalRefUUID AS storageLocUuid#1232225]
(2176) LogicalRelation
Arguments: parquet, [product#1232226, plant#1232227, orderDateTime#1232228, planningStartDateTime#1232229], false
(2177) RepartitionByExpression
Arguments: [product#1232226, plant#1232227], 37
(2178) Project
Arguments: [product#1232226, plant#1232227, orderDateTime#1232228]
(2179) LogicalRelation
Arguments: parquet, [systemId#1232230, internalUUID#1232231, plant#1232232, product#1232233, blockedForReplenishmentStartingFrom#1232234, productionAspect#1232235, salesPlant#1232236, listing#1232237], false
(2180) Repartition
Arguments: 37, true
(2181) Project
Arguments: [systemId#1232230, internalUUID#1232231, plant#1232232, product#1232233, blockedForReplenishmentStartingFrom#1232234, productionAspect#1232235, salesPlant#1232236, listing#1232237, struct(systemId, systemId#1232230, internalUUID, internalUUID#1232231, plant, plant#1232232, product, product#1232233, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1232234, productionAspect, productionAspect#1232235, salesPlant, salesPlant#1232236, listing, listing#1232237) AS productPlant#1232238]
(2182) Project
Arguments: [productPlant#1232238]
(2183) Join
Arguments: LeftOuter, ((product#1232226 <=> productPlant#1232238.product.internalRefUUID) AND (plant#1232227 <=> productPlant#1232238.plant.internalRefUUID))
(2184) Project
Arguments: [product#1232226, plant#1232227, orderDateTime#1232228, productPlant#1232238]
(2185) SubqueryAlias
Arguments: wl
(2186) LogicalRelation
Arguments: parquet, [systemId#1232239, internalUUID#1232240, id#1232241, displayId#1232242, name#1232243, category#1232244, companyCode#1232245, address#1232246, mainDistributionChain#1232247, mainPurchasingOrganization#1232248, validPurchasingOrganizations#1232249, productGroup#1232250], false
(2187) Repartition
Arguments: 37, true
(2188) Project
Arguments: [internalUUID#1232240, address#1232246.timeZone.code AS timezonecode#1232251]
(2189) Join
Arguments: LeftOuter, (plant#1232227 <=> internalUUID#1232240)
(2190) Project
Arguments: [product#1232226, plant#1232227, orderDateTime#1232228, productPlant#1232238, internalUUID#1232240, CASE WHEN isnotnull(timezonecode#1232251) THEN timezonecode#1232251 ELSE UTC END AS timezonecode#1232252]
(2191) Project
Arguments: [product#1232226, plant#1232227, orderDateTime#1232228, productPlant#1232238, timezonecode#1232252]
(2192) LogicalRelation
Arguments: parquet, [systemId#1232253, internalUUID#1232254, id#1232255, displayId#1232256, name#1232257, baseUnitOfMeasure#1232258, unitOfMeasures#1232259, unitOfMeasureConversions#1232260, productionAspect#1232261, salesAspect#1232262, procurementAspect#1232263, productGroup#1232264], false
(2193) Repartition
Arguments: 37, true
(2194) Join
Arguments: LeftOuter, (product#1232226 = internalUUID#1232254)
(2195) Project
Arguments: [product#1232226, plant#1232227, orderDateTime#1232228, productPlant#1232238, timezonecode#1232252, systemId#1232253, internalUUID#1232254, id#1232255, displayId#1232256, name#1232257, baseUnitOfMeasure#1232258, unitOfMeasures#1232259, unitOfMeasureConversions#1232260, productionAspect#1232261, salesAspect#1232262, procurementAspect#1232263, productGroup#1232264, filter(unitOfMeasureConversions#1232260, lambdafunction((((lambda u#1225669.measurementUnit1.code = productPlant#1232238.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1225669.measurementUnit1.internalRefUUID = productPlant#1232238.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1232258.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1232258.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1232265]
(2196) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1232265.quantityNumerator), true, [quantityNumerator#1232266]
(2197) Project
Arguments: [product#1232226, plant#1232227, orderDateTime#1232228, productPlant#1232238, timezonecode#1232252, systemId#1232253, internalUUID#1232254, id#1232255, displayId#1232256, name#1232257, baseUnitOfMeasure#1232258, unitOfMeasures#1232259, unitOfMeasureConversions#1232260, productionAspect#1232261, salesAspect#1232262, procurementAspect#1232263, productGroup#1232264, filteredUnitOfMeasureConversions#1232265, quantityNumerator#1232266]
(2198) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1232265.quantityDenominator), true, [quantityDenominator#1232267]
(2199) Project
Arguments: [product#1232226, plant#1232227, orderDateTime#1232228, productPlant#1232238, timezonecode#1232252, systemId#1232253, internalUUID#1232254, id#1232255, displayId#1232256, name#1232257, baseUnitOfMeasure#1232258, unitOfMeasures#1232259, unitOfMeasureConversions#1232260, productionAspect#1232261, salesAspect#1232262, procurementAspect#1232263, productGroup#1232264, filteredUnitOfMeasureConversions#1232265, quantityNumerator#1232266, quantityDenominator#1232267]
(2200) Project
Arguments: [product#1232226, plant#1232227, orderDateTime#1232228, productPlant#1232238, timezonecode#1232252, systemId#1232253, internalUUID#1232254, id#1232255, displayId#1232256, name#1232257, baseUnitOfMeasure#1232258, unitOfMeasures#1232259, unitOfMeasureConversions#1232260, productionAspect#1232261, salesAspect#1232262, procurementAspect#1232263, productGroup#1232264, filteredUnitOfMeasureConversions#1232265, quantityNumerator#1232266, quantityDenominator#1232267, (cast(quantityNumerator#1232266 as double) / cast(quantityDenominator#1232267 as double)) AS outboundUnit#1232268]
(2201) Project
Arguments: [product#1232226, plant#1232227, orderDateTime#1232228, productPlant#1232238, timezonecode#1232252, systemId#1232253, internalUUID#1232254, id#1232255, displayId#1232256, name#1232257, baseUnitOfMeasure#1232258, unitOfMeasures#1232259, unitOfMeasureConversions#1232260, productionAspect#1232261, salesAspect#1232262, procurementAspect#1232263, productGroup#1232264, filteredUnitOfMeasureConversions#1232265, quantityNumerator#1232266, quantityDenominator#1232267, CASE WHEN (isnull(outboundUnit#1232268) OR (outboundUnit#1232268 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1232268 END AS outboundUnit#1232269]
(2202) Project
Arguments: [product#1232226, plant#1232227, orderDateTime#1232228, productPlant#1232238, timezonecode#1232252, outboundUnit#1232269]
(2203) Project
Arguments: [plant#1232227]
(2204) Deduplicate
Arguments: [plant#1232227]
(2205) Join
Arguments: Inner, (plantUuid#1232223 = plant#1232227)
(2206) Project
Arguments: [plantId#1232222, plantUuid#1232223, storageLocId#1232224, storageLocUuid#1232225]
(2207) Project
Arguments: [plantId#1232222, plantUuid#1232223 AS plant#1232270, storageLocId#1232224, storageLocUuid#1232225]
(2208) Join
Arguments: Inner, (plant#1231534 = plant#1232270)
(2209) Project
Arguments: [plant#1231534, product#1231533, orderDateTime#1231535, productPlant#1231545, timezonecode#1231559, outboundUnit#1231576, stockDatetime#1231855, stockBatchQuantities#1231856, stockBatchShelfLifeEndDatetimes#1231857, dayBucketDemands#1232196, pointInTimeDemands#1232197, plantId#1232222, storageLocId#1232224, storageLocUuid#1232225, plant#1232270]
(2210) LogicalRelation
Arguments: parquet, [systemId#1232271, internalUUID#1232272, id#1232273, displayId#1232274, supplier#1232275, type#1232276, status#1232277, isMarkedForDeletion#1232278, items#1232279], false
(2211) Repartition
Arguments: 37, true
(2212) Generate
Arguments: explode(items#1232279), false, [item#1232280]
(2213) Project
Arguments: [id#1232273, internalUUID#1232272, isMarkedForDeletion#1232278, supplier#1232275.internalRefUUID AS supplierUuid#1232281, item#1232280]
(2214) Filter
Arguments: (((NOT isMarkedForDeletion#1232278 AND NOT item#1232280.deletionIndicator) AND NOT item#1232280.completeIndicator) AND NOT item#1232280.returnIndicator)
(2215) Project
Arguments: [id#1232273, internalUUID#1232272, supplierUuid#1232281, item#1232280.plant.internalRefUUID AS plant#1232282, item#1232280.product.internalRefUUID AS product#1232283, item#1232280.plant.id AS externalPlantId#1232284, item#1232280.product.id AS externalProductId#1232285, item#1232280.storageLocation.internalRefUUID AS storageLocUuid#1232286, item#1232280.quantityUnit.code AS quantityUom#1232287, item#1232280.quantityUnit.internalRefUUID AS quantityUomUuid#1232288, item#1232280.quantityNumerator AS quantityNumerator#1232289, item#1232280.quantityDenominator AS quantityDenominator#1232290, item#1232280.scheduleLines AS scheduleLines#1232291, item#1232280.confirmations AS confirmations#1232292]
(2216) Join
Arguments: Inner, (((product#1231533 = product#1232283) AND (plant#1231534 = plant#1232282)) AND (storageLocUuid#1232225 = storageLocUuid#1232286))
(2217) Project
Arguments: [product#1231533, plant#1231534, storageLocUuid#1232225, orderDateTime#1231535, productPlant#1231545, timezonecode#1231559, outboundUnit#1231576, stockDatetime#1231855, stockBatchQuantities#1231856, stockBatchShelfLifeEndDatetimes#1231857, dayBucketDemands#1232196, pointInTimeDemands#1232197, plantId#1232222, storageLocId#1232224, id#1232273, internalUUID#1232272, supplierUuid#1232281, externalPlantId#1232284, externalProductId#1232285, quantityUom#1232287, quantityUomUuid#1232288, quantityNumerator#1232289, quantityDenominator#1232290, scheduleLines#1232291, confirmations#1232292, ... 4 more fields]
(2218) Project
Arguments: [id#1232273, internalUUID#1232272, supplierUuid#1232281, plant#1232282, product#1232283, externalPlantId#1232284, externalProductId#1232285, storageLocUuid#1232286, quantityUom#1232287, quantityUomUuid#1232288, quantityNumerator#1232289, quantityDenominator#1232290, scheduleLines#1232291, confirmations#1232292, stockDatetime#1231855, timezonecode#1231559]
(2219) Project
Arguments: [id#1232273, internalUUID#1232272, supplierUuid#1232281, plant#1232282, product#1232283, externalPlantId#1232284, externalProductId#1232285, storageLocUuid#1232286, quantityUom#1232287, quantityUomUuid#1232288, quantityNumerator#1232289, quantityDenominator#1232290, scheduleLines#1232291, confirmations#1232292, stockDatetime#1231855, timezonecode#1231559, filter(confirmations#1232292, lambdafunction((((lambda x_149#1226571.deletionIndicator = false) AND (lambda x_149#1226571.isRelevantForConfirmation = true)) AND isnotnull(lambda x_149#1226571.confirmedDeliveryAt)), lambda x_149#1226571, false)) AS validConfirmations#1232293]
(2220) Project
Arguments: [id#1232273, internalUUID#1232272, supplierUuid#1232281, plant#1232282, product#1232283, externalPlantId#1232284, externalProductId#1232285, storageLocUuid#1232286, quantityUom#1232287, quantityUomUuid#1232288, quantityNumerator#1232289, quantityDenominator#1232290, scheduleLines#1232291, confirmations#1232292, stockDatetime#1231855, timezonecode#1231559, validConfirmations#1232293, array_size(validConfirmations#1232293) AS _w0#1232294]
(2221) Window
Arguments: [sum(_w0#1232294) windowspecdefinition(internalUUID#1232272, specifiedwindowframe(RowFrame, unboundedpreceding$(), unboundedfollowing$())) AS _we0#1232295L], [internalUUID#1232272]
(2222) Project
Arguments: [id#1232273, internalUUID#1232272, supplierUuid#1232281, plant#1232282, product#1232283, externalPlantId#1232284, externalProductId#1232285, storageLocUuid#1232286, quantityUom#1232287, quantityUomUuid#1232288, quantityNumerator#1232289, quantityDenominator#1232290, scheduleLines#1232291, confirmations#1232292, stockDatetime#1231855, timezonecode#1231559, validConfirmations#1232293, _w0#1232294, _we0#1232295L, filter(transform(CASE WHEN (_we0#1232295L > cast(0 as bigint)) THEN transform(validConfirmations#1232293, lambdafunction(struct(openQty, greatest((lambda x_151#1228781.confirmedQuantity - coalesce(lambda x_151#1228781.mrpRelevantQuantity, 0.0)), 0.0), availabilityDatetime, lambda x_151#1228781.confirmedDeliveryAt), lambda x_151#1228781, false)) ELSE transform(scheduleLines#1232291, lambdafunction(struct(openQty, greatest((lambda x_150#1228782.quantity - coalesce(lambda x_150#1228782.receivedQuantity, 0.0)), 0.0), availabilityDatetime, lambda x_150#1228782.deliveryAt), lambda x_150#1228782, false)) END, lambdafunction(struct(documentId, id#1232273, documentUuid, internalUUID#1232272, openQty, lambda x_152#1228783.openQty, openQtyInBaseUnit, ((lambda x_152#1228783.openQty * quantityNumerator#1232289) / quantityDenominator#1232290), qtyUom, quantityUom#1232287, qtyUomUuid, quantityUomUuid#1232288, availabilityDatetime, lambda x_152#1228783.availabilityDatetime, shelfLifeEndDatetime, 2199-01-01 00:00:00), lambda x_152#1228783, false)), lambdafunction(NOT (lambda x_153#1228784.openQty = 0.0), lambda x_153#1228784, false)) AS openGoodsMovements#1232296]
(2223) Project
Arguments: [id#1232273, internalUUID#1232272, supplierUuid#1232281, plant#1232282, product#1232283, externalPlantId#1232284, externalProductId#1232285, storageLocUuid#1232286, quantityUom#1232287, quantityUomUuid#1232288, quantityNumerator#1232289, quantityDenominator#1232290, scheduleLines#1232291, confirmations#1232292, stockDatetime#1231855, timezonecode#1231559, validConfirmations#1232293, openGoodsMovements#1232296]
(2224) Aggregate
Arguments: [product#1232283, plant#1232282], [product#1232283, plant#1232282, flatten(collect_list(openGoodsMovements#1232296, 0, 0)) AS openGoodsMovements#1232297]
(2225) Filter
Arguments: (array_size(openGoodsMovements#1232297) > 0)
(2226) LogicalRelation
Arguments: parquet, [product#1232298, plant#1232299, orderDateTime#1232300, planningStartDateTime#1232301], false
(2227) RepartitionByExpression
Arguments: [product#1232298, plant#1232299], 37
(2228) Project
Arguments: [product#1232298, plant#1232299, orderDateTime#1232300]
(2229) LogicalRelation
Arguments: parquet, [systemId#1232302, internalUUID#1232303, plant#1232304, product#1232305, blockedForReplenishmentStartingFrom#1232306, productionAspect#1232307, salesPlant#1232308, listing#1232309], false
(2230) Repartition
Arguments: 37, true
(2231) Project
Arguments: [systemId#1232302, internalUUID#1232303, plant#1232304, product#1232305, blockedForReplenishmentStartingFrom#1232306, productionAspect#1232307, salesPlant#1232308, listing#1232309, struct(systemId, systemId#1232302, internalUUID, internalUUID#1232303, plant, plant#1232304, product, product#1232305, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1232306, productionAspect, productionAspect#1232307, salesPlant, salesPlant#1232308, listing, listing#1232309) AS productPlant#1232310]
(2232) Project
Arguments: [productPlant#1232310]
(2233) Join
Arguments: LeftOuter, ((product#1232298 <=> productPlant#1232310.product.internalRefUUID) AND (plant#1232299 <=> productPlant#1232310.plant.internalRefUUID))
(2234) Project
Arguments: [product#1232298, plant#1232299, orderDateTime#1232300, productPlant#1232310]
(2235) SubqueryAlias
Arguments: wl
(2236) LogicalRelation
Arguments: parquet, [systemId#1232311, internalUUID#1232312, id#1232313, displayId#1232314, name#1232315, category#1232316, companyCode#1232317, address#1232318, mainDistributionChain#1232319, mainPurchasingOrganization#1232320, validPurchasingOrganizations#1232321, productGroup#1232322], false
(2237) Repartition
Arguments: 37, true
(2238) Project
Arguments: [internalUUID#1232312, address#1232318.timeZone.code AS timezonecode#1232323]
(2239) Join
Arguments: LeftOuter, (plant#1232299 <=> internalUUID#1232312)
(2240) Project
Arguments: [product#1232298, plant#1232299, orderDateTime#1232300, productPlant#1232310, internalUUID#1232312, CASE WHEN isnotnull(timezonecode#1232323) THEN timezonecode#1232323 ELSE UTC END AS timezonecode#1232324]
(2241) Project
Arguments: [product#1232298, plant#1232299, orderDateTime#1232300, productPlant#1232310, timezonecode#1232324]
(2242) LogicalRelation
Arguments: parquet, [systemId#1232325, internalUUID#1232326, id#1232327, displayId#1232328, name#1232329, baseUnitOfMeasure#1232330, unitOfMeasures#1232331, unitOfMeasureConversions#1232332, productionAspect#1232333, salesAspect#1232334, procurementAspect#1232335, productGroup#1232336], false
(2243) Repartition
Arguments: 37, true
(2244) Join
Arguments: LeftOuter, (product#1232298 = internalUUID#1232326)
(2245) Project
Arguments: [product#1232298, plant#1232299, orderDateTime#1232300, productPlant#1232310, timezonecode#1232324, systemId#1232325, internalUUID#1232326, id#1232327, displayId#1232328, name#1232329, baseUnitOfMeasure#1232330, unitOfMeasures#1232331, unitOfMeasureConversions#1232332, productionAspect#1232333, salesAspect#1232334, procurementAspect#1232335, productGroup#1232336, filter(unitOfMeasureConversions#1232332, lambdafunction((((lambda u#1225669.measurementUnit1.code = productPlant#1232310.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1225669.measurementUnit1.internalRefUUID = productPlant#1232310.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1232330.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1232330.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1232337]
(2246) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1232337.quantityNumerator), true, [quantityNumerator#1232338]
(2247) Project
Arguments: [product#1232298, plant#1232299, orderDateTime#1232300, productPlant#1232310, timezonecode#1232324, systemId#1232325, internalUUID#1232326, id#1232327, displayId#1232328, name#1232329, baseUnitOfMeasure#1232330, unitOfMeasures#1232331, unitOfMeasureConversions#1232332, productionAspect#1232333, salesAspect#1232334, procurementAspect#1232335, productGroup#1232336, filteredUnitOfMeasureConversions#1232337, quantityNumerator#1232338]
(2248) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1232337.quantityDenominator), true, [quantityDenominator#1232339]
(2249) Project
Arguments: [product#1232298, plant#1232299, orderDateTime#1232300, productPlant#1232310, timezonecode#1232324, systemId#1232325, internalUUID#1232326, id#1232327, displayId#1232328, name#1232329, baseUnitOfMeasure#1232330, unitOfMeasures#1232331, unitOfMeasureConversions#1232332, productionAspect#1232333, salesAspect#1232334, procurementAspect#1232335, productGroup#1232336, filteredUnitOfMeasureConversions#1232337, quantityNumerator#1232338, quantityDenominator#1232339]
(2250) Project
Arguments: [product#1232298, plant#1232299, orderDateTime#1232300, productPlant#1232310, timezonecode#1232324, systemId#1232325, internalUUID#1232326, id#1232327, displayId#1232328, name#1232329, baseUnitOfMeasure#1232330, unitOfMeasures#1232331, unitOfMeasureConversions#1232332, productionAspect#1232333, salesAspect#1232334, procurementAspect#1232335, productGroup#1232336, filteredUnitOfMeasureConversions#1232337, quantityNumerator#1232338, quantityDenominator#1232339, (cast(quantityNumerator#1232338 as double) / cast(quantityDenominator#1232339 as double)) AS outboundUnit#1232340]
(2251) Project
Arguments: [product#1232298, plant#1232299, orderDateTime#1232300, productPlant#1232310, timezonecode#1232324, systemId#1232325, internalUUID#1232326, id#1232327, displayId#1232328, name#1232329, baseUnitOfMeasure#1232330, unitOfMeasures#1232331, unitOfMeasureConversions#1232332, productionAspect#1232333, salesAspect#1232334, procurementAspect#1232335, productGroup#1232336, filteredUnitOfMeasureConversions#1232337, quantityNumerator#1232338, quantityDenominator#1232339, CASE WHEN (isnull(outboundUnit#1232340) OR (outboundUnit#1232340 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1232340 END AS outboundUnit#1232341]
(2252) Project
Arguments: [product#1232298, plant#1232299, orderDateTime#1232300, productPlant#1232310, timezonecode#1232324, outboundUnit#1232341]
(2253) LogicalRelation
Arguments: parquet, [systemId#1232342, internalUUID#1232343, product#1232344, plant#1232345, calculationDateTime#1232346, stockQuantities#1232347], false
(2254) Repartition
Arguments: 37, true
(2255) LogicalRelation
Arguments: parquet, [marketUnit#1232348, description#1232349, articleHierarchy#1232350, defaultCurrency#1232351, responsibilities#1232352, replenishmentTypes#1232353, distributionCenters#1232354, assignedArticleHierarchyNodes#1232355, minOrderQtySetting#1232356, listingCheck#1232357, odsSelection#1232358, demandProfiles#1232359, constraintProfiles#1232360, optimizationProfiles#1232361, orderGroupSplitProfiles#1232362, supplierMinimumProfiles#1232363, multipleRestrictionProfiles#1232364, preferredUomSource#1232365, handlingOfUnfulfilledDemands#1232366, negligibleQuantitiesThreshold#1232367, eventtype#1232368, minOrderQtySettingInternal#1232369], false
(2256) Repartition
Arguments: 37, true
(2257) Filter
Arguments: (marketUnit#1232348 <=> AUTO_MUV2)
(2258) Project
Arguments: [marketUnit#1232348, description#1232349, articleHierarchy#1232350, defaultCurrency#1232351, responsibilities#1232352, replenishmentTypes#1232353, distributionCenters#1232354, assignedArticleHierarchyNodes#1232355, minOrderQtySetting#1232356, listingCheck#1232357, odsSelection#1232358, demandProfiles#1232359, constraintProfiles#1232360, optimizationProfiles#1232361, orderGroupSplitProfiles#1232362, supplierMinimumProfiles#1232363, multipleRestrictionProfiles#1232364, preferredUomSource#1232365, handlingOfUnfulfilledDemands#1232366, negligibleQuantitiesThreshold#1232367, eventtype#1232368, minOrderQtySettingInternal#1232369]
(2259) Project
Arguments: [distributionCenters#1232354]
(2260) Generate
Arguments: explode(distributionCenters#1232354), false, [distributionCenters#1232370]
(2261) Project
Arguments: [distributionCenters#1232370]
(2262) Generate
Arguments: explode(distributionCenters#1232370.storageLocations), false, [storageLocations#1232371]
(2263) Project
Arguments: [distributionCenters#1232370.id AS plantId#1232372, distributionCenters#1232370.internalRefUUID AS plantUuid#1232373, storageLocations#1232371]
(2264) Project
Arguments: [plantId#1232372, plantUuid#1232373, storageLocations#1232371.id AS storageLocId#1232374, storageLocations#1232371.internalRefUUID AS storageLocUuid#1232375]
(2265) LogicalRelation
Arguments: parquet, [product#1232376, plant#1232377, orderDateTime#1232378, planningStartDateTime#1232379], false
(2266) RepartitionByExpression
Arguments: [product#1232376, plant#1232377], 37
(2267) Project
Arguments: [product#1232376, plant#1232377, orderDateTime#1232378]
(2268) LogicalRelation
Arguments: parquet, [systemId#1232380, internalUUID#1232381, plant#1232382, product#1232383, blockedForReplenishmentStartingFrom#1232384, productionAspect#1232385, salesPlant#1232386, listing#1232387], false
(2269) Repartition
Arguments: 37, true
(2270) Project
Arguments: [systemId#1232380, internalUUID#1232381, plant#1232382, product#1232383, blockedForReplenishmentStartingFrom#1232384, productionAspect#1232385, salesPlant#1232386, listing#1232387, struct(systemId, systemId#1232380, internalUUID, internalUUID#1232381, plant, plant#1232382, product, product#1232383, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1232384, productionAspect, productionAspect#1232385, salesPlant, salesPlant#1232386, listing, listing#1232387) AS productPlant#1232388]
(2271) Project
Arguments: [productPlant#1232388]
(2272) Join
Arguments: LeftOuter, ((product#1232376 <=> productPlant#1232388.product.internalRefUUID) AND (plant#1232377 <=> productPlant#1232388.plant.internalRefUUID))
(2273) Project
Arguments: [product#1232376, plant#1232377, orderDateTime#1232378, productPlant#1232388]
(2274) SubqueryAlias
Arguments: wl
(2275) LogicalRelation
Arguments: parquet, [systemId#1232389, internalUUID#1232390, id#1232391, displayId#1232392, name#1232393, category#1232394, companyCode#1232395, address#1232396, mainDistributionChain#1232397, mainPurchasingOrganization#1232398, validPurchasingOrganizations#1232399, productGroup#1232400], false
(2276) Repartition
Arguments: 37, true
(2277) Project
Arguments: [internalUUID#1232390, address#1232396.timeZone.code AS timezonecode#1232401]
(2278) Join
Arguments: LeftOuter, (plant#1232377 <=> internalUUID#1232390)
(2279) Project
Arguments: [product#1232376, plant#1232377, orderDateTime#1232378, productPlant#1232388, internalUUID#1232390, CASE WHEN isnotnull(timezonecode#1232401) THEN timezonecode#1232401 ELSE UTC END AS timezonecode#1232402]
(2280) Project
Arguments: [product#1232376, plant#1232377, orderDateTime#1232378, productPlant#1232388, timezonecode#1232402]
(2281) LogicalRelation
Arguments: parquet, [systemId#1232403, internalUUID#1232404, id#1232405, displayId#1232406, name#1232407, baseUnitOfMeasure#1232408, unitOfMeasures#1232409, unitOfMeasureConversions#1232410, productionAspect#1232411, salesAspect#1232412, procurementAspect#1232413, productGroup#1232414], false
(2282) Repartition
Arguments: 37, true
(2283) Join
Arguments: LeftOuter, (product#1232376 = internalUUID#1232404)
(2284) Project
Arguments: [product#1232376, plant#1232377, orderDateTime#1232378, productPlant#1232388, timezonecode#1232402, systemId#1232403, internalUUID#1232404, id#1232405, displayId#1232406, name#1232407, baseUnitOfMeasure#1232408, unitOfMeasures#1232409, unitOfMeasureConversions#1232410, productionAspect#1232411, salesAspect#1232412, procurementAspect#1232413, productGroup#1232414, filter(unitOfMeasureConversions#1232410, lambdafunction((((lambda u#1225669.measurementUnit1.code = productPlant#1232388.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1225669.measurementUnit1.internalRefUUID = productPlant#1232388.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1232408.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1232408.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1232415]
(2285) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1232415.quantityNumerator), true, [quantityNumerator#1232416]
(2286) Project
Arguments: [product#1232376, plant#1232377, orderDateTime#1232378, productPlant#1232388, timezonecode#1232402, systemId#1232403, internalUUID#1232404, id#1232405, displayId#1232406, name#1232407, baseUnitOfMeasure#1232408, unitOfMeasures#1232409, unitOfMeasureConversions#1232410, productionAspect#1232411, salesAspect#1232412, procurementAspect#1232413, productGroup#1232414, filteredUnitOfMeasureConversions#1232415, quantityNumerator#1232416]
(2287) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1232415.quantityDenominator), true, [quantityDenominator#1232417]
(2288) Project
Arguments: [product#1232376, plant#1232377, orderDateTime#1232378, productPlant#1232388, timezonecode#1232402, systemId#1232403, internalUUID#1232404, id#1232405, displayId#1232406, name#1232407, baseUnitOfMeasure#1232408, unitOfMeasures#1232409, unitOfMeasureConversions#1232410, productionAspect#1232411, salesAspect#1232412, procurementAspect#1232413, productGroup#1232414, filteredUnitOfMeasureConversions#1232415, quantityNumerator#1232416, quantityDenominator#1232417]
(2289) Project
Arguments: [product#1232376, plant#1232377, orderDateTime#1232378, productPlant#1232388, timezonecode#1232402, systemId#1232403, internalUUID#1232404, id#1232405, displayId#1232406, name#1232407, baseUnitOfMeasure#1232408, unitOfMeasures#1232409, unitOfMeasureConversions#1232410, productionAspect#1232411, salesAspect#1232412, procurementAspect#1232413, productGroup#1232414, filteredUnitOfMeasureConversions#1232415, quantityNumerator#1232416, quantityDenominator#1232417, (cast(quantityNumerator#1232416 as double) / cast(quantityDenominator#1232417 as double)) AS outboundUnit#1232418]
(2290) Project
Arguments: [product#1232376, plant#1232377, orderDateTime#1232378, productPlant#1232388, timezonecode#1232402, systemId#1232403, internalUUID#1232404, id#1232405, displayId#1232406, name#1232407, baseUnitOfMeasure#1232408, unitOfMeasures#1232409, unitOfMeasureConversions#1232410, productionAspect#1232411, salesAspect#1232412, procurementAspect#1232413, productGroup#1232414, filteredUnitOfMeasureConversions#1232415, quantityNumerator#1232416, quantityDenominator#1232417, CASE WHEN (isnull(outboundUnit#1232418) OR (outboundUnit#1232418 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1232418 END AS outboundUnit#1232419]
(2291) Project
Arguments: [product#1232376, plant#1232377, orderDateTime#1232378, productPlant#1232388, timezonecode#1232402, outboundUnit#1232419]
(2292) Project
Arguments: [plant#1232377]
(2293) Deduplicate
Arguments: [plant#1232377]
(2294) Join
Arguments: Inner, (plantUuid#1232373 = plant#1232377)
(2295) Project
Arguments: [plantId#1232372, plantUuid#1232373, storageLocId#1232374, storageLocUuid#1232375]
(2296) Join
Arguments: Inner, (plant#1232345.internalRefUUID <=> plantUuid#1232373)
(2297) Generate
Arguments: explode(filter(stockQuantities#1232347, lambdafunction(((lambda x#1225727.storageLocation.internalRefUuid = storageLocUuid#1232375) AND (lambda x#1225727.storageLocation.Id = storageLocId#1232374)), lambda x#1225727, false))), false, [stockQuantity#1232420]
(2298) Project
Arguments: [systemId#1232342, internalUUID#1232343, product#1232344, plant#1232345, calculationDateTime#1232346, stockQuantities#1232347, plantId#1232372, plantUuid#1232373, storageLocId#1232374, storageLocUuid#1232375, stockQuantity#1232420]
(2299) Aggregate
Arguments: [plantUuid#1232373, internalUUID#1232343, plant#1232345, product#1232344, systemId#1232342], [plantUuid#1232373, internalUUID#1232343, plant#1232345, product#1232344, systemId#1232342, first(calculationDateTime#1232346, false) AS calculationDateTime#1232421, collect_list(stockQuantity#1232420, 0, 0) AS stockQuantities#1232422]
(2300) Project
Arguments: [systemId#1232342, internalUUID#1232343, product#1232344, plant#1232345, calculationDateTime#1232421, stockQuantities#1232422]
(2301) Generate
Arguments: explode(stockQuantities#1232422), false, [stockQuantity#1232423]
(2302) Project
Arguments: [systemId#1232342, internalUUID#1232343, product#1232344, plant#1232345, calculationDateTime#1232421, stockQuantities#1232422, stockQuantity#1232423]
(2303) Project
Arguments: [plant#1232345.id AS plant#1232424, plant#1232345.internalRefUUID AS plantUuid#1232425, product#1232344.id AS product#1232426, product#1232344.internalRefUUID AS productUuid#1232427, calculationDateTime#1232421, stockQuantity#1232423.storagelocation.id AS storageLocId#1232428, stockQuantity#1232423.storagelocation.internalRefUUID AS storageLocUuid#1232429, stockQuantity#1232423.quantity.measure AS quantity#1232430, stockQuantity#1232423.specialStockIndicator.code AS specialStockIndicator#1232431, stockQuantity#1232423.stockType.code AS stockType#1232432]
(2304) Filter
Arguments: ((specialStockIndicator#1232431 = ) AND (stockType#1232432 = 01))
(2305) LogicalRelation
Arguments: parquet, [product#1232433, plant#1232434, orderDateTime#1232435, planningStartDateTime#1232436], false
(2306) RepartitionByExpression
Arguments: [product#1232433, plant#1232434], 37
(2307) Project
Arguments: [product#1232433, plant#1232434, orderDateTime#1232435]
(2308) LogicalRelation
Arguments: parquet, [systemId#1232437, internalUUID#1232438, plant#1232439, product#1232440, blockedForReplenishmentStartingFrom#1232441, productionAspect#1232442, salesPlant#1232443, listing#1232444], false
(2309) Repartition
Arguments: 37, true
(2310) Project
Arguments: [systemId#1232437, internalUUID#1232438, plant#1232439, product#1232440, blockedForReplenishmentStartingFrom#1232441, productionAspect#1232442, salesPlant#1232443, listing#1232444, struct(systemId, systemId#1232437, internalUUID, internalUUID#1232438, plant, plant#1232439, product, product#1232440, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1232441, productionAspect, productionAspect#1232442, salesPlant, salesPlant#1232443, listing, listing#1232444) AS productPlant#1232445]
(2311) Project
Arguments: [productPlant#1232445]
(2312) Join
Arguments: LeftOuter, ((product#1232433 <=> productPlant#1232445.product.internalRefUUID) AND (plant#1232434 <=> productPlant#1232445.plant.internalRefUUID))
(2313) Project
Arguments: [product#1232433, plant#1232434, orderDateTime#1232435, productPlant#1232445]
(2314) SubqueryAlias
Arguments: wl
(2315) LogicalRelation
Arguments: parquet, [systemId#1232446, internalUUID#1232447, id#1232448, displayId#1232449, name#1232450, category#1232451, companyCode#1232452, address#1232453, mainDistributionChain#1232454, mainPurchasingOrganization#1232455, validPurchasingOrganizations#1232456, productGroup#1232457], false
(2316) Repartition
Arguments: 37, true
(2317) Project
Arguments: [internalUUID#1232447, address#1232453.timeZone.code AS timezonecode#1232458]
(2318) Join
Arguments: LeftOuter, (plant#1232434 <=> internalUUID#1232447)
(2319) Project
Arguments: [product#1232433, plant#1232434, orderDateTime#1232435, productPlant#1232445, internalUUID#1232447, CASE WHEN isnotnull(timezonecode#1232458) THEN timezonecode#1232458 ELSE UTC END AS timezonecode#1232459]
(2320) Project
Arguments: [product#1232433, plant#1232434, orderDateTime#1232435, productPlant#1232445, timezonecode#1232459]
(2321) LogicalRelation
Arguments: parquet, [systemId#1232460, internalUUID#1232461, id#1232462, displayId#1232463, name#1232464, baseUnitOfMeasure#1232465, unitOfMeasures#1232466, unitOfMeasureConversions#1232467, productionAspect#1232468, salesAspect#1232469, procurementAspect#1232470, productGroup#1232471], false
(2322) Repartition
Arguments: 37, true
(2323) Join
Arguments: LeftOuter, (product#1232433 = internalUUID#1232461)
(2324) Project
Arguments: [product#1232433, plant#1232434, orderDateTime#1232435, productPlant#1232445, timezonecode#1232459, systemId#1232460, internalUUID#1232461, id#1232462, displayId#1232463, name#1232464, baseUnitOfMeasure#1232465, unitOfMeasures#1232466, unitOfMeasureConversions#1232467, productionAspect#1232468, salesAspect#1232469, procurementAspect#1232470, productGroup#1232471, filter(unitOfMeasureConversions#1232467, lambdafunction((((lambda u#1225669.measurementUnit1.code = productPlant#1232445.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1225669.measurementUnit1.internalRefUUID = productPlant#1232445.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1232465.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1232465.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1232472]
(2325) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1232472.quantityNumerator), true, [quantityNumerator#1232473]
(2326) Project
Arguments: [product#1232433, plant#1232434, orderDateTime#1232435, productPlant#1232445, timezonecode#1232459, systemId#1232460, internalUUID#1232461, id#1232462, displayId#1232463, name#1232464, baseUnitOfMeasure#1232465, unitOfMeasures#1232466, unitOfMeasureConversions#1232467, productionAspect#1232468, salesAspect#1232469, procurementAspect#1232470, productGroup#1232471, filteredUnitOfMeasureConversions#1232472, quantityNumerator#1232473]
(2327) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1232472.quantityDenominator), true, [quantityDenominator#1232474]
(2328) Project
Arguments: [product#1232433, plant#1232434, orderDateTime#1232435, productPlant#1232445, timezonecode#1232459, systemId#1232460, internalUUID#1232461, id#1232462, displayId#1232463, name#1232464, baseUnitOfMeasure#1232465, unitOfMeasures#1232466, unitOfMeasureConversions#1232467, productionAspect#1232468, salesAspect#1232469, procurementAspect#1232470, productGroup#1232471, filteredUnitOfMeasureConversions#1232472, quantityNumerator#1232473, quantityDenominator#1232474]
(2329) Project
Arguments: [product#1232433, plant#1232434, orderDateTime#1232435, productPlant#1232445, timezonecode#1232459, systemId#1232460, internalUUID#1232461, id#1232462, displayId#1232463, name#1232464, baseUnitOfMeasure#1232465, unitOfMeasures#1232466, unitOfMeasureConversions#1232467, productionAspect#1232468, salesAspect#1232469, procurementAspect#1232470, productGroup#1232471, filteredUnitOfMeasureConversions#1232472, quantityNumerator#1232473, quantityDenominator#1232474, (cast(quantityNumerator#1232473 as double) / cast(quantityDenominator#1232474 as double)) AS outboundUnit#1232475]
(2330) Project
Arguments: [product#1232433, plant#1232434, orderDateTime#1232435, productPlant#1232445, timezonecode#1232459, systemId#1232460, internalUUID#1232461, id#1232462, displayId#1232463, name#1232464, baseUnitOfMeasure#1232465, unitOfMeasures#1232466, unitOfMeasureConversions#1232467, productionAspect#1232468, salesAspect#1232469, procurementAspect#1232470, productGroup#1232471, filteredUnitOfMeasureConversions#1232472, quantityNumerator#1232473, quantityDenominator#1232474, CASE WHEN (isnull(outboundUnit#1232475) OR (outboundUnit#1232475 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1232475 END AS outboundUnit#1232476]
(2331) Project
Arguments: [product#1232433, plant#1232434, orderDateTime#1232435, productPlant#1232445, timezonecode#1232459, outboundUnit#1232476]
(2332) Join
Arguments: Inner, ((plantUuid#1232425 = plant#1232434) AND (productUuid#1232427 = product#1232433))
(2333) Filter
Arguments: (calculationDateTime#1232421 <= orderDateTime#1232435)
(2334) Project
Arguments: [plantUuid#1232425 AS plant#1232477, productUuid#1232427 AS product#1232478, storageLocId#1232428, calculationDateTime#1232421, quantity#1232430]
(2335) LogicalRelation
Arguments: parquet, [systemId#1232479, internalUUID#1232480, product#1232481, plant#1232482, calculationDateTime#1232483, stockQuantities#1232484], false
(2336) Repartition
Arguments: 37, true
(2337) LogicalRelation
Arguments: parquet, [marketUnit#1232485, description#1232486, articleHierarchy#1232487, defaultCurrency#1232488, responsibilities#1232489, replenishmentTypes#1232490, distributionCenters#1232491, assignedArticleHierarchyNodes#1232492, minOrderQtySetting#1232493, listingCheck#1232494, odsSelection#1232495, demandProfiles#1232496, constraintProfiles#1232497, optimizationProfiles#1232498, orderGroupSplitProfiles#1232499, supplierMinimumProfiles#1232500, multipleRestrictionProfiles#1232501, preferredUomSource#1232502, handlingOfUnfulfilledDemands#1232503, negligibleQuantitiesThreshold#1232504, eventtype#1232505, minOrderQtySettingInternal#1232506], false
(2338) Repartition
Arguments: 37, true
(2339) Filter
Arguments: (marketUnit#1232485 <=> AUTO_MUV2)
(2340) Project
Arguments: [marketUnit#1232485, description#1232486, articleHierarchy#1232487, defaultCurrency#1232488, responsibilities#1232489, replenishmentTypes#1232490, distributionCenters#1232491, assignedArticleHierarchyNodes#1232492, minOrderQtySetting#1232493, listingCheck#1232494, odsSelection#1232495, demandProfiles#1232496, constraintProfiles#1232497, optimizationProfiles#1232498, orderGroupSplitProfiles#1232499, supplierMinimumProfiles#1232500, multipleRestrictionProfiles#1232501, preferredUomSource#1232502, handlingOfUnfulfilledDemands#1232503, negligibleQuantitiesThreshold#1232504, eventtype#1232505, minOrderQtySettingInternal#1232506]
(2341) Project
Arguments: [distributionCenters#1232491]
(2342) Generate
Arguments: explode(distributionCenters#1232491), false, [distributionCenters#1232507]
(2343) Project
Arguments: [distributionCenters#1232507]
(2344) Generate
Arguments: explode(distributionCenters#1232507.storageLocations), false, [storageLocations#1232508]
(2345) Project
Arguments: [distributionCenters#1232507.id AS plantId#1232509, distributionCenters#1232507.internalRefUUID AS plantUuid#1232510, storageLocations#1232508]
(2346) Project
Arguments: [plantId#1232509, plantUuid#1232510, storageLocations#1232508.id AS storageLocId#1232511, storageLocations#1232508.internalRefUUID AS storageLocUuid#1232512]
(2347) LogicalRelation
Arguments: parquet, [product#1232513, plant#1232514, orderDateTime#1232515, planningStartDateTime#1232516], false
(2348) RepartitionByExpression
Arguments: [product#1232513, plant#1232514], 37
(2349) Project
Arguments: [product#1232513, plant#1232514, orderDateTime#1232515]
(2350) LogicalRelation
Arguments: parquet, [systemId#1232517, internalUUID#1232518, plant#1232519, product#1232520, blockedForReplenishmentStartingFrom#1232521, productionAspect#1232522, salesPlant#1232523, listing#1232524], false
(2351) Repartition
Arguments: 37, true
(2352) Project
Arguments: [systemId#1232517, internalUUID#1232518, plant#1232519, product#1232520, blockedForReplenishmentStartingFrom#1232521, productionAspect#1232522, salesPlant#1232523, listing#1232524, struct(systemId, systemId#1232517, internalUUID, internalUUID#1232518, plant, plant#1232519, product, product#1232520, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1232521, productionAspect, productionAspect#1232522, salesPlant, salesPlant#1232523, listing, listing#1232524) AS productPlant#1232525]
(2353) Project
Arguments: [productPlant#1232525]
(2354) Join
Arguments: LeftOuter, ((product#1232513 <=> productPlant#1232525.product.internalRefUUID) AND (plant#1232514 <=> productPlant#1232525.plant.internalRefUUID))
(2355) Project
Arguments: [product#1232513, plant#1232514, orderDateTime#1232515, productPlant#1232525]
(2356) SubqueryAlias
Arguments: wl
(2357) LogicalRelation
Arguments: parquet, [systemId#1232526, internalUUID#1232527, id#1232528, displayId#1232529, name#1232530, category#1232531, companyCode#1232532, address#1232533, mainDistributionChain#1232534, mainPurchasingOrganization#1232535, validPurchasingOrganizations#1232536, productGroup#1232537], false
(2358) Repartition
Arguments: 37, true
(2359) Project
Arguments: [internalUUID#1232527, address#1232533.timeZone.code AS timezonecode#1232538]
(2360) Join
Arguments: LeftOuter, (plant#1232514 <=> internalUUID#1232527)
(2361) Project
Arguments: [product#1232513, plant#1232514, orderDateTime#1232515, productPlant#1232525, internalUUID#1232527, CASE WHEN isnotnull(timezonecode#1232538) THEN timezonecode#1232538 ELSE UTC END AS timezonecode#1232539]
(2362) Project
Arguments: [product#1232513, plant#1232514, orderDateTime#1232515, productPlant#1232525, timezonecode#1232539]
(2363) LogicalRelation
Arguments: parquet, [systemId#1232540, internalUUID#1232541, id#1232542, displayId#1232543, name#1232544, baseUnitOfMeasure#1232545, unitOfMeasures#1232546, unitOfMeasureConversions#1232547, productionAspect#1232548, salesAspect#1232549, procurementAspect#1232550, productGroup#1232551], false
(2364) Repartition
Arguments: 37, true
(2365) Join
Arguments: LeftOuter, (product#1232513 = internalUUID#1232541)
(2366) Project
Arguments: [product#1232513, plant#1232514, orderDateTime#1232515, productPlant#1232525, timezonecode#1232539, systemId#1232540, internalUUID#1232541, id#1232542, displayId#1232543, name#1232544, baseUnitOfMeasure#1232545, unitOfMeasures#1232546, unitOfMeasureConversions#1232547, productionAspect#1232548, salesAspect#1232549, procurementAspect#1232550, productGroup#1232551, filter(unitOfMeasureConversions#1232547, lambdafunction((((lambda u#1225669.measurementUnit1.code = productPlant#1232525.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1225669.measurementUnit1.internalRefUUID = productPlant#1232525.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1232545.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1232545.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1232552]
(2367) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1232552.quantityNumerator), true, [quantityNumerator#1232553]
(2368) Project
Arguments: [product#1232513, plant#1232514, orderDateTime#1232515, productPlant#1232525, timezonecode#1232539, systemId#1232540, internalUUID#1232541, id#1232542, displayId#1232543, name#1232544, baseUnitOfMeasure#1232545, unitOfMeasures#1232546, unitOfMeasureConversions#1232547, productionAspect#1232548, salesAspect#1232549, procurementAspect#1232550, productGroup#1232551, filteredUnitOfMeasureConversions#1232552, quantityNumerator#1232553]
(2369) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1232552.quantityDenominator), true, [quantityDenominator#1232554]
(2370) Project
Arguments: [product#1232513, plant#1232514, orderDateTime#1232515, productPlant#1232525, timezonecode#1232539, systemId#1232540, internalUUID#1232541, id#1232542, displayId#1232543, name#1232544, baseUnitOfMeasure#1232545, unitOfMeasures#1232546, unitOfMeasureConversions#1232547, productionAspect#1232548, salesAspect#1232549, procurementAspect#1232550, productGroup#1232551, filteredUnitOfMeasureConversions#1232552, quantityNumerator#1232553, quantityDenominator#1232554]
(2371) Project
Arguments: [product#1232513, plant#1232514, orderDateTime#1232515, productPlant#1232525, timezonecode#1232539, systemId#1232540, internalUUID#1232541, id#1232542, displayId#1232543, name#1232544, baseUnitOfMeasure#1232545, unitOfMeasures#1232546, unitOfMeasureConversions#1232547, productionAspect#1232548, salesAspect#1232549, procurementAspect#1232550, productGroup#1232551, filteredUnitOfMeasureConversions#1232552, quantityNumerator#1232553, quantityDenominator#1232554, (cast(quantityNumerator#1232553 as double) / cast(quantityDenominator#1232554 as double)) AS outboundUnit#1232555]
(2372) Project
Arguments: [product#1232513, plant#1232514, orderDateTime#1232515, productPlant#1232525, timezonecode#1232539, systemId#1232540, internalUUID#1232541, id#1232542, displayId#1232543, name#1232544, baseUnitOfMeasure#1232545, unitOfMeasures#1232546, unitOfMeasureConversions#1232547, productionAspect#1232548, salesAspect#1232549, procurementAspect#1232550, productGroup#1232551, filteredUnitOfMeasureConversions#1232552, quantityNumerator#1232553, quantityDenominator#1232554, CASE WHEN (isnull(outboundUnit#1232555) OR (outboundUnit#1232555 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1232555 END AS outboundUnit#1232556]
(2373) Project
Arguments: [product#1232513, plant#1232514, orderDateTime#1232515, productPlant#1232525, timezonecode#1232539, outboundUnit#1232556]
(2374) Project
Arguments: [plant#1232514]
(2375) Deduplicate
Arguments: [plant#1232514]
(2376) Join
Arguments: Inner, (plantUuid#1232510 = plant#1232514)
(2377) Project
Arguments: [plantId#1232509, plantUuid#1232510, storageLocId#1232511, storageLocUuid#1232512]
(2378) Join
Arguments: Inner, (plant#1232482.internalRefUUID <=> plantUuid#1232510)
(2379) Generate
Arguments: explode(filter(stockQuantities#1232484, lambdafunction(((lambda x#1225727.storageLocation.internalRefUuid = storageLocUuid#1232512) AND (lambda x#1225727.storageLocation.Id = storageLocId#1232511)), lambda x#1225727, false))), false, [stockQuantity#1232557]
(2380) Project
Arguments: [systemId#1232479, internalUUID#1232480, product#1232481, plant#1232482, calculationDateTime#1232483, stockQuantities#1232484, plantId#1232509, plantUuid#1232510, storageLocId#1232511, storageLocUuid#1232512, stockQuantity#1232557]
(2381) Aggregate
Arguments: [plantUuid#1232510, internalUUID#1232480, plant#1232482, product#1232481, systemId#1232479], [plantUuid#1232510, internalUUID#1232480, plant#1232482, product#1232481, systemId#1232479, first(calculationDateTime#1232483, false) AS calculationDateTime#1232558, collect_list(stockQuantity#1232557, 0, 0) AS stockQuantities#1232559]
(2382) Project
Arguments: [systemId#1232479, internalUUID#1232480, product#1232481, plant#1232482, calculationDateTime#1232558, stockQuantities#1232559]
(2383) Generate
Arguments: explode(stockQuantities#1232559), false, [stockQuantity#1232560]
(2384) Project
Arguments: [systemId#1232479, internalUUID#1232480, product#1232481, plant#1232482, calculationDateTime#1232558, stockQuantities#1232559, stockQuantity#1232560]
(2385) Project
Arguments: [plant#1232482.id AS plant#1232561, plant#1232482.internalRefUUID AS plantUuid#1232562, product#1232481.id AS product#1232563, product#1232481.internalRefUUID AS productUuid#1232564, calculationDateTime#1232558, stockQuantity#1232560.storagelocation.id AS storageLocId#1232565, stockQuantity#1232560.storagelocation.internalRefUUID AS storageLocUuid#1232566, stockQuantity#1232560.quantity.measure AS quantity#1232567, stockQuantity#1232560.specialStockIndicator.code AS specialStockIndicator#1232568, stockQuantity#1232560.stockType.code AS stockType#1232569]
(2386) Filter
Arguments: ((specialStockIndicator#1232568 = ) AND (stockType#1232569 = 01))
(2387) LogicalRelation
Arguments: parquet, [product#1232570, plant#1232571, orderDateTime#1232572, planningStartDateTime#1232573], false
(2388) RepartitionByExpression
Arguments: [product#1232570, plant#1232571], 37
(2389) Project
Arguments: [product#1232570, plant#1232571, orderDateTime#1232572]
(2390) LogicalRelation
Arguments: parquet, [systemId#1232574, internalUUID#1232575, plant#1232576, product#1232577, blockedForReplenishmentStartingFrom#1232578, productionAspect#1232579, salesPlant#1232580, listing#1232581], false
(2391) Repartition
Arguments: 37, true
(2392) Project
Arguments: [systemId#1232574, internalUUID#1232575, plant#1232576, product#1232577, blockedForReplenishmentStartingFrom#1232578, productionAspect#1232579, salesPlant#1232580, listing#1232581, struct(systemId, systemId#1232574, internalUUID, internalUUID#1232575, plant, plant#1232576, product, product#1232577, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1232578, productionAspect, productionAspect#1232579, salesPlant, salesPlant#1232580, listing, listing#1232581) AS productPlant#1232582]
(2393) Project
Arguments: [productPlant#1232582]
(2394) Join
Arguments: LeftOuter, ((product#1232570 <=> productPlant#1232582.product.internalRefUUID) AND (plant#1232571 <=> productPlant#1232582.plant.internalRefUUID))
(2395) Project
Arguments: [product#1232570, plant#1232571, orderDateTime#1232572, productPlant#1232582]
(2396) SubqueryAlias
Arguments: wl
(2397) LogicalRelation
Arguments: parquet, [systemId#1232583, internalUUID#1232584, id#1232585, displayId#1232586, name#1232587, category#1232588, companyCode#1232589, address#1232590, mainDistributionChain#1232591, mainPurchasingOrganization#1232592, validPurchasingOrganizations#1232593, productGroup#1232594], false
(2398) Repartition
Arguments: 37, true
(2399) Project
Arguments: [internalUUID#1232584, address#1232590.timeZone.code AS timezonecode#1232595]
(2400) Join
Arguments: LeftOuter, (plant#1232571 <=> internalUUID#1232584)
(2401) Project
Arguments: [product#1232570, plant#1232571, orderDateTime#1232572, productPlant#1232582, internalUUID#1232584, CASE WHEN isnotnull(timezonecode#1232595) THEN timezonecode#1232595 ELSE UTC END AS timezonecode#1232596]
(2402) Project
Arguments: [product#1232570, plant#1232571, orderDateTime#1232572, productPlant#1232582, timezonecode#1232596]
(2403) LogicalRelation
Arguments: parquet, [systemId#1232597, internalUUID#1232598, id#1232599, displayId#1232600, name#1232601, baseUnitOfMeasure#1232602, unitOfMeasures#1232603, unitOfMeasureConversions#1232604, productionAspect#1232605, salesAspect#1232606, procurementAspect#1232607, productGroup#1232608], false
(2404) Repartition
Arguments: 37, true
(2405) Join
Arguments: LeftOuter, (product#1232570 = internalUUID#1232598)
(2406) Project
Arguments: [product#1232570, plant#1232571, orderDateTime#1232572, productPlant#1232582, timezonecode#1232596, systemId#1232597, internalUUID#1232598, id#1232599, displayId#1232600, name#1232601, baseUnitOfMeasure#1232602, unitOfMeasures#1232603, unitOfMeasureConversions#1232604, productionAspect#1232605, salesAspect#1232606, procurementAspect#1232607, productGroup#1232608, filter(unitOfMeasureConversions#1232604, lambdafunction((((lambda u#1225669.measurementUnit1.code = productPlant#1232582.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1225669.measurementUnit1.internalRefUUID = productPlant#1232582.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1232602.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1232602.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1232609]
(2407) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1232609.quantityNumerator), true, [quantityNumerator#1232610]
(2408) Project
Arguments: [product#1232570, plant#1232571, orderDateTime#1232572, productPlant#1232582, timezonecode#1232596, systemId#1232597, internalUUID#1232598, id#1232599, displayId#1232600, name#1232601, baseUnitOfMeasure#1232602, unitOfMeasures#1232603, unitOfMeasureConversions#1232604, productionAspect#1232605, salesAspect#1232606, procurementAspect#1232607, productGroup#1232608, filteredUnitOfMeasureConversions#1232609, quantityNumerator#1232610]
(2409) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1232609.quantityDenominator), true, [quantityDenominator#1232611]
(2410) Project
Arguments: [product#1232570, plant#1232571, orderDateTime#1232572, productPlant#1232582, timezonecode#1232596, systemId#1232597, internalUUID#1232598, id#1232599, displayId#1232600, name#1232601, baseUnitOfMeasure#1232602, unitOfMeasures#1232603, unitOfMeasureConversions#1232604, productionAspect#1232605, salesAspect#1232606, procurementAspect#1232607, productGroup#1232608, filteredUnitOfMeasureConversions#1232609, quantityNumerator#1232610, quantityDenominator#1232611]
(2411) Project
Arguments: [product#1232570, plant#1232571, orderDateTime#1232572, productPlant#1232582, timezonecode#1232596, systemId#1232597, internalUUID#1232598, id#1232599, displayId#1232600, name#1232601, baseUnitOfMeasure#1232602, unitOfMeasures#1232603, unitOfMeasureConversions#1232604, productionAspect#1232605, salesAspect#1232606, procurementAspect#1232607, productGroup#1232608, filteredUnitOfMeasureConversions#1232609, quantityNumerator#1232610, quantityDenominator#1232611, (cast(quantityNumerator#1232610 as double) / cast(quantityDenominator#1232611 as double)) AS outboundUnit#1232612]
(2412) Project
Arguments: [product#1232570, plant#1232571, orderDateTime#1232572, productPlant#1232582, timezonecode#1232596, systemId#1232597, internalUUID#1232598, id#1232599, displayId#1232600, name#1232601, baseUnitOfMeasure#1232602, unitOfMeasures#1232603, unitOfMeasureConversions#1232604, productionAspect#1232605, salesAspect#1232606, procurementAspect#1232607, productGroup#1232608, filteredUnitOfMeasureConversions#1232609, quantityNumerator#1232610, quantityDenominator#1232611, CASE WHEN (isnull(outboundUnit#1232612) OR (outboundUnit#1232612 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1232612 END AS outboundUnit#1232613]
(2413) Project
Arguments: [product#1232570, plant#1232571, orderDateTime#1232572, productPlant#1232582, timezonecode#1232596, outboundUnit#1232613]
(2414) Join
Arguments: Inner, ((plantUuid#1232562 = plant#1232571) AND (productUuid#1232564 = product#1232570))
(2415) Filter
Arguments: (calculationDateTime#1232558 <= orderDateTime#1232572)
(2416) Project
Arguments: [plantUuid#1232562 AS plant#1232614, productUuid#1232564 AS product#1232615, storageLocId#1232565, calculationDateTime#1232558, quantity#1232567]
(2417) Aggregate
Arguments: [plant#1232614, product#1232615, storageLocId#1232565], [plant#1232614, product#1232615, storageLocId#1232565, max(calculationDateTime#1232558) AS max_calc_datetime#1232616]
(2418) Join
Arguments: Inner, ((((plant#1232477 <=> plant#1232614) AND (product#1232478 <=> product#1232615)) AND (storageLocId#1232428 <=> storageLocId#1232565)) AND (calculationDateTime#1232421 <=> max_calc_datetime#1232616))
(2419) Project
Arguments: [plant#1232477, product#1232478, storageLocId#1232428, calculationDateTime#1232421, quantity#1232430]
(2420) Aggregate
Arguments: [product#1232478, plant#1232477], [product#1232478, plant#1232477, sum(quantity#1232430) AS quantitySum#1232617, min(calculationDateTime#1232421) AS minCalculationDateTime#1232618]
(2421) Project
Arguments: [product#1232478, plant#1232477, quantitySum#1232617, minCalculationDateTime#1232618, round(quantitySum#1232617, 0) AS roundedQuantitySum#1232619]
(2422) Join
Arguments: LeftOuter, ((plant#1232299 = plant#1232477) AND (product#1232298 = product#1232478))
(2423) Project
Arguments: [product#1232298, plant#1232299, orderDateTime#1232300, productPlant#1232310, timezonecode#1232324, outboundUnit#1232341, roundedQuantitySum#1232619, minCalculationDateTime#1232618]
(2424) Project
Arguments: [product#1232298, plant#1232299, orderDateTime#1232300, productPlant#1232310, timezonecode#1232324, outboundUnit#1232341, roundedQuantitySum#1232619, minCalculationDateTime#1232618, CASE WHEN isnotnull(minCalculationDateTime#1232618) THEN minCalculationDateTime#1232618 ELSE orderDateTime#1232300 END AS stockDatetime#1232620]
(2425) Project
Arguments: [product#1232298, plant#1232299, orderDateTime#1232300, productPlant#1232310, timezonecode#1232324, outboundUnit#1232341, roundedQuantitySum#1232619, minCalculationDateTime#1232618, stockDatetime#1232620, CASE WHEN isnotnull(roundedQuantitySum#1232619) THEN array(roundedQuantitySum#1232619) ELSE array(0.0) END AS stockBatchQuantities#1232621]
(2426) Project
Arguments: [product#1232298, plant#1232299, orderDateTime#1232300, productPlant#1232310, timezonecode#1232324, outboundUnit#1232341, roundedQuantitySum#1232619, minCalculationDateTime#1232618, stockDatetime#1232620, stockBatchQuantities#1232621, array(2199-01-01 00:00:00) AS stockBatchShelfLifeEndDatetimes#1232622]
(2427) Project
Arguments: [product#1232298, plant#1232299, orderDateTime#1232300, productPlant#1232310, timezonecode#1232324, outboundUnit#1232341, roundedQuantitySum#1232619, stockDatetime#1232620, stockBatchQuantities#1232621, stockBatchShelfLifeEndDatetimes#1232622]
(2428) Project
Arguments: [product#1232298, plant#1232299, orderDateTime#1232300, productPlant#1232310, timezonecode#1232324, outboundUnit#1232341, stockDatetime#1232620, stockBatchQuantities#1232621, stockBatchShelfLifeEndDatetimes#1232622]
(2429) LogicalRelation
Arguments: parquet, [product#1232623, plant#1232624, orderDateTime#1232625, planningStartDateTime#1232626], false
(2430) RepartitionByExpression
Arguments: [product#1232623, plant#1232624], 37
(2431) Project
Arguments: [product#1232623, plant#1232624, orderDateTime#1232625]
(2432) LogicalRelation
Arguments: parquet, [systemId#1232627, internalUUID#1232628, plant#1232629, product#1232630, blockedForReplenishmentStartingFrom#1232631, productionAspect#1232632, salesPlant#1232633, listing#1232634], false
(2433) Repartition
Arguments: 37, true
(2434) Project
Arguments: [systemId#1232627, internalUUID#1232628, plant#1232629, product#1232630, blockedForReplenishmentStartingFrom#1232631, productionAspect#1232632, salesPlant#1232633, listing#1232634, struct(systemId, systemId#1232627, internalUUID, internalUUID#1232628, plant, plant#1232629, product, product#1232630, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1232631, productionAspect, productionAspect#1232632, salesPlant, salesPlant#1232633, listing, listing#1232634) AS productPlant#1232635]
(2435) Project
Arguments: [productPlant#1232635]
(2436) Join
Arguments: LeftOuter, ((product#1232623 <=> productPlant#1232635.product.internalRefUUID) AND (plant#1232624 <=> productPlant#1232635.plant.internalRefUUID))
(2437) Project
Arguments: [product#1232623, plant#1232624, orderDateTime#1232625, productPlant#1232635]
(2438) SubqueryAlias
Arguments: wl
(2439) LogicalRelation
Arguments: parquet, [systemId#1232636, internalUUID#1232637, id#1232638, displayId#1232639, name#1232640, category#1232641, companyCode#1232642, address#1232643, mainDistributionChain#1232644, mainPurchasingOrganization#1232645, validPurchasingOrganizations#1232646, productGroup#1232647], false
(2440) Repartition
Arguments: 37, true
(2441) Project
Arguments: [internalUUID#1232637, address#1232643.timeZone.code AS timezonecode#1232648]
(2442) Join
Arguments: LeftOuter, (plant#1232624 <=> internalUUID#1232637)
(2443) Project
Arguments: [product#1232623, plant#1232624, orderDateTime#1232625, productPlant#1232635, internalUUID#1232637, CASE WHEN isnotnull(timezonecode#1232648) THEN timezonecode#1232648 ELSE UTC END AS timezonecode#1232649]
(2444) Project
Arguments: [product#1232623, plant#1232624, orderDateTime#1232625, productPlant#1232635, timezonecode#1232649]
(2445) LogicalRelation
Arguments: parquet, [systemId#1232650, internalUUID#1232651, id#1232652, displayId#1232653, name#1232654, baseUnitOfMeasure#1232655, unitOfMeasures#1232656, unitOfMeasureConversions#1232657, productionAspect#1232658, salesAspect#1232659, procurementAspect#1232660, productGroup#1232661], false
(2446) Repartition
Arguments: 37, true
(2447) Join
Arguments: LeftOuter, (product#1232623 = internalUUID#1232651)
(2448) Project
Arguments: [product#1232623, plant#1232624, orderDateTime#1232625, productPlant#1232635, timezonecode#1232649, systemId#1232650, internalUUID#1232651, id#1232652, displayId#1232653, name#1232654, baseUnitOfMeasure#1232655, unitOfMeasures#1232656, unitOfMeasureConversions#1232657, productionAspect#1232658, salesAspect#1232659, procurementAspect#1232660, productGroup#1232661, filter(unitOfMeasureConversions#1232657, lambdafunction((((lambda u#1225669.measurementUnit1.code = productPlant#1232635.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1225669.measurementUnit1.internalRefUUID = productPlant#1232635.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1232655.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1232655.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1232662]
(2449) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1232662.quantityNumerator), true, [quantityNumerator#1232663]
(2450) Project
Arguments: [product#1232623, plant#1232624, orderDateTime#1232625, productPlant#1232635, timezonecode#1232649, systemId#1232650, internalUUID#1232651, id#1232652, displayId#1232653, name#1232654, baseUnitOfMeasure#1232655, unitOfMeasures#1232656, unitOfMeasureConversions#1232657, productionAspect#1232658, salesAspect#1232659, procurementAspect#1232660, productGroup#1232661, filteredUnitOfMeasureConversions#1232662, quantityNumerator#1232663]
(2451) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1232662.quantityDenominator), true, [quantityDenominator#1232664]
(2452) Project
Arguments: [product#1232623, plant#1232624, orderDateTime#1232625, productPlant#1232635, timezonecode#1232649, systemId#1232650, internalUUID#1232651, id#1232652, displayId#1232653, name#1232654, baseUnitOfMeasure#1232655, unitOfMeasures#1232656, unitOfMeasureConversions#1232657, productionAspect#1232658, salesAspect#1232659, procurementAspect#1232660, productGroup#1232661, filteredUnitOfMeasureConversions#1232662, quantityNumerator#1232663, quantityDenominator#1232664]
(2453) Project
Arguments: [product#1232623, plant#1232624, orderDateTime#1232625, productPlant#1232635, timezonecode#1232649, systemId#1232650, internalUUID#1232651, id#1232652, displayId#1232653, name#1232654, baseUnitOfMeasure#1232655, unitOfMeasures#1232656, unitOfMeasureConversions#1232657, productionAspect#1232658, salesAspect#1232659, procurementAspect#1232660, productGroup#1232661, filteredUnitOfMeasureConversions#1232662, quantityNumerator#1232663, quantityDenominator#1232664, (cast(quantityNumerator#1232663 as double) / cast(quantityDenominator#1232664 as double)) AS outboundUnit#1232665]
(2454) Project
Arguments: [product#1232623, plant#1232624, orderDateTime#1232625, productPlant#1232635, timezonecode#1232649, systemId#1232650, internalUUID#1232651, id#1232652, displayId#1232653, name#1232654, baseUnitOfMeasure#1232655, unitOfMeasures#1232656, unitOfMeasureConversions#1232657, productionAspect#1232658, salesAspect#1232659, procurementAspect#1232660, productGroup#1232661, filteredUnitOfMeasureConversions#1232662, quantityNumerator#1232663, quantityDenominator#1232664, CASE WHEN (isnull(outboundUnit#1232665) OR (outboundUnit#1232665 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1232665 END AS outboundUnit#1232666]
(2455) Project
Arguments: [product#1232623, plant#1232624, orderDateTime#1232625, productPlant#1232635, timezonecode#1232649, outboundUnit#1232666]
(2456) LogicalRelation
Arguments: parquet, [systemId#1232667, internalUUID#1232668, product#1232669, plant#1232670, calculationDateTime#1232671, stockQuantities#1232672], false
(2457) Repartition
Arguments: 37, true
(2458) LogicalRelation
Arguments: parquet, [marketUnit#1232673, description#1232674, articleHierarchy#1232675, defaultCurrency#1232676, responsibilities#1232677, replenishmentTypes#1232678, distributionCenters#1232679, assignedArticleHierarchyNodes#1232680, minOrderQtySetting#1232681, listingCheck#1232682, odsSelection#1232683, demandProfiles#1232684, constraintProfiles#1232685, optimizationProfiles#1232686, orderGroupSplitProfiles#1232687, supplierMinimumProfiles#1232688, multipleRestrictionProfiles#1232689, preferredUomSource#1232690, handlingOfUnfulfilledDemands#1232691, negligibleQuantitiesThreshold#1232692, eventtype#1232693, minOrderQtySettingInternal#1232694], false
(2459) Repartition
Arguments: 37, true
(2460) Filter
Arguments: (marketUnit#1232673 <=> AUTO_MUV2)
(2461) Project
Arguments: [marketUnit#1232673, description#1232674, articleHierarchy#1232675, defaultCurrency#1232676, responsibilities#1232677, replenishmentTypes#1232678, distributionCenters#1232679, assignedArticleHierarchyNodes#1232680, minOrderQtySetting#1232681, listingCheck#1232682, odsSelection#1232683, demandProfiles#1232684, constraintProfiles#1232685, optimizationProfiles#1232686, orderGroupSplitProfiles#1232687, supplierMinimumProfiles#1232688, multipleRestrictionProfiles#1232689, preferredUomSource#1232690, handlingOfUnfulfilledDemands#1232691, negligibleQuantitiesThreshold#1232692, eventtype#1232693, minOrderQtySettingInternal#1232694]
(2462) Project
Arguments: [distributionCenters#1232679]
(2463) Generate
Arguments: explode(distributionCenters#1232679), false, [distributionCenters#1232695]
(2464) Project
Arguments: [distributionCenters#1232695]
(2465) Generate
Arguments: explode(distributionCenters#1232695.storageLocations), false, [storageLocations#1232696]
(2466) Project
Arguments: [distributionCenters#1232695.id AS plantId#1232697, distributionCenters#1232695.internalRefUUID AS plantUuid#1232698, storageLocations#1232696]
(2467) Project
Arguments: [plantId#1232697, plantUuid#1232698, storageLocations#1232696.id AS storageLocId#1232699, storageLocations#1232696.internalRefUUID AS storageLocUuid#1232700]
(2468) LogicalRelation
Arguments: parquet, [product#1232701, plant#1232702, orderDateTime#1232703, planningStartDateTime#1232704], false
(2469) RepartitionByExpression
Arguments: [product#1232701, plant#1232702], 37
(2470) Project
Arguments: [product#1232701, plant#1232702, orderDateTime#1232703]
(2471) LogicalRelation
Arguments: parquet, [systemId#1232705, internalUUID#1232706, plant#1232707, product#1232708, blockedForReplenishmentStartingFrom#1232709, productionAspect#1232710, salesPlant#1232711, listing#1232712], false
(2472) Repartition
Arguments: 37, true
(2473) Project
Arguments: [systemId#1232705, internalUUID#1232706, plant#1232707, product#1232708, blockedForReplenishmentStartingFrom#1232709, productionAspect#1232710, salesPlant#1232711, listing#1232712, struct(systemId, systemId#1232705, internalUUID, internalUUID#1232706, plant, plant#1232707, product, product#1232708, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1232709, productionAspect, productionAspect#1232710, salesPlant, salesPlant#1232711, listing, listing#1232712) AS productPlant#1232713]
(2474) Project
Arguments: [productPlant#1232713]
(2475) Join
Arguments: LeftOuter, ((product#1232701 <=> productPlant#1232713.product.internalRefUUID) AND (plant#1232702 <=> productPlant#1232713.plant.internalRefUUID))
(2476) Project
Arguments: [product#1232701, plant#1232702, orderDateTime#1232703, productPlant#1232713]
(2477) SubqueryAlias
Arguments: wl
(2478) LogicalRelation
Arguments: parquet, [systemId#1232714, internalUUID#1232715, id#1232716, displayId#1232717, name#1232718, category#1232719, companyCode#1232720, address#1232721, mainDistributionChain#1232722, mainPurchasingOrganization#1232723, validPurchasingOrganizations#1232724, productGroup#1232725], false
(2479) Repartition
Arguments: 37, true
(2480) Project
Arguments: [internalUUID#1232715, address#1232721.timeZone.code AS timezonecode#1232726]
(2481) Join
Arguments: LeftOuter, (plant#1232702 <=> internalUUID#1232715)
(2482) Project
Arguments: [product#1232701, plant#1232702, orderDateTime#1232703, productPlant#1232713, internalUUID#1232715, CASE WHEN isnotnull(timezonecode#1232726) THEN timezonecode#1232726 ELSE UTC END AS timezonecode#1232727]
(2483) Project
Arguments: [product#1232701, plant#1232702, orderDateTime#1232703, productPlant#1232713, timezonecode#1232727]
(2484) LogicalRelation
Arguments: parquet, [systemId#1232728, internalUUID#1232729, id#1232730, displayId#1232731, name#1232732, baseUnitOfMeasure#1232733, unitOfMeasures#1232734, unitOfMeasureConversions#1232735, productionAspect#1232736, salesAspect#1232737, procurementAspect#1232738, productGroup#1232739], false
(2485) Repartition
Arguments: 37, true
(2486) Join
Arguments: LeftOuter, (product#1232701 = internalUUID#1232729)
(2487) Project
Arguments: [product#1232701, plant#1232702, orderDateTime#1232703, productPlant#1232713, timezonecode#1232727, systemId#1232728, internalUUID#1232729, id#1232730, displayId#1232731, name#1232732, baseUnitOfMeasure#1232733, unitOfMeasures#1232734, unitOfMeasureConversions#1232735, productionAspect#1232736, salesAspect#1232737, procurementAspect#1232738, productGroup#1232739, filter(unitOfMeasureConversions#1232735, lambdafunction((((lambda u#1225669.measurementUnit1.code = productPlant#1232713.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1225669.measurementUnit1.internalRefUUID = productPlant#1232713.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1232733.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1232733.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1232740]
(2488) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1232740.quantityNumerator), true, [quantityNumerator#1232741]
(2489) Project
Arguments: [product#1232701, plant#1232702, orderDateTime#1232703, productPlant#1232713, timezonecode#1232727, systemId#1232728, internalUUID#1232729, id#1232730, displayId#1232731, name#1232732, baseUnitOfMeasure#1232733, unitOfMeasures#1232734, unitOfMeasureConversions#1232735, productionAspect#1232736, salesAspect#1232737, procurementAspect#1232738, productGroup#1232739, filteredUnitOfMeasureConversions#1232740, quantityNumerator#1232741]
(2490) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1232740.quantityDenominator), true, [quantityDenominator#1232742]
(2491) Project
Arguments: [product#1232701, plant#1232702, orderDateTime#1232703, productPlant#1232713, timezonecode#1232727, systemId#1232728, internalUUID#1232729, id#1232730, displayId#1232731, name#1232732, baseUnitOfMeasure#1232733, unitOfMeasures#1232734, unitOfMeasureConversions#1232735, productionAspect#1232736, salesAspect#1232737, procurementAspect#1232738, productGroup#1232739, filteredUnitOfMeasureConversions#1232740, quantityNumerator#1232741, quantityDenominator#1232742]
(2492) Project
Arguments: [product#1232701, plant#1232702, orderDateTime#1232703, productPlant#1232713, timezonecode#1232727, systemId#1232728, internalUUID#1232729, id#1232730, displayId#1232731, name#1232732, baseUnitOfMeasure#1232733, unitOfMeasures#1232734, unitOfMeasureConversions#1232735, productionAspect#1232736, salesAspect#1232737, procurementAspect#1232738, productGroup#1232739, filteredUnitOfMeasureConversions#1232740, quantityNumerator#1232741, quantityDenominator#1232742, (cast(quantityNumerator#1232741 as double) / cast(quantityDenominator#1232742 as double)) AS outboundUnit#1232743]
(2493) Project
Arguments: [product#1232701, plant#1232702, orderDateTime#1232703, productPlant#1232713, timezonecode#1232727, systemId#1232728, internalUUID#1232729, id#1232730, displayId#1232731, name#1232732, baseUnitOfMeasure#1232733, unitOfMeasures#1232734, unitOfMeasureConversions#1232735, productionAspect#1232736, salesAspect#1232737, procurementAspect#1232738, productGroup#1232739, filteredUnitOfMeasureConversions#1232740, quantityNumerator#1232741, quantityDenominator#1232742, CASE WHEN (isnull(outboundUnit#1232743) OR (outboundUnit#1232743 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1232743 END AS outboundUnit#1232744]
(2494) Project
Arguments: [product#1232701, plant#1232702, orderDateTime#1232703, productPlant#1232713, timezonecode#1232727, outboundUnit#1232744]
(2495) Project
Arguments: [plant#1232702]
(2496) Deduplicate
Arguments: [plant#1232702]
(2497) Join
Arguments: Inner, (plantUuid#1232698 = plant#1232702)
(2498) Project
Arguments: [plantId#1232697, plantUuid#1232698, storageLocId#1232699, storageLocUuid#1232700]
(2499) Join
Arguments: Inner, (plant#1232670.internalRefUUID <=> plantUuid#1232698)
(2500) Generate
Arguments: explode(filter(stockQuantities#1232672, lambdafunction(((lambda x#1225727.storageLocation.internalRefUuid = storageLocUuid#1232700) AND (lambda x#1225727.storageLocation.Id = storageLocId#1232699)), lambda x#1225727, false))), false, [stockQuantity#1232745]
(2501) Project
Arguments: [systemId#1232667, internalUUID#1232668, product#1232669, plant#1232670, calculationDateTime#1232671, stockQuantities#1232672, plantId#1232697, plantUuid#1232698, storageLocId#1232699, storageLocUuid#1232700, stockQuantity#1232745]
(2502) Aggregate
Arguments: [plantUuid#1232698, internalUUID#1232668, plant#1232670, product#1232669, systemId#1232667], [plantUuid#1232698, internalUUID#1232668, plant#1232670, product#1232669, systemId#1232667, first(calculationDateTime#1232671, false) AS calculationDateTime#1232746, collect_list(stockQuantity#1232745, 0, 0) AS stockQuantities#1232747]
(2503) Project
Arguments: [systemId#1232667, internalUUID#1232668, product#1232669, plant#1232670, calculationDateTime#1232746, stockQuantities#1232747]
(2504) Generate
Arguments: explode(stockQuantities#1232747), false, [stockQuantity#1232748]
(2505) Project
Arguments: [systemId#1232667, internalUUID#1232668, product#1232669, plant#1232670, calculationDateTime#1232746, stockQuantities#1232747, stockQuantity#1232748]
(2506) Project
Arguments: [plant#1232670.id AS plant#1232749, plant#1232670.internalRefUUID AS plantUuid#1232750, product#1232669.id AS product#1232751, product#1232669.internalRefUUID AS productUuid#1232752, calculationDateTime#1232746, stockQuantity#1232748.storagelocation.id AS storageLocId#1232753, stockQuantity#1232748.storagelocation.internalRefUUID AS storageLocUuid#1232754, stockQuantity#1232748.quantity.measure AS quantity#1232755, stockQuantity#1232748.specialStockIndicator.code AS specialStockIndicator#1232756, stockQuantity#1232748.stockType.code AS stockType#1232757]
(2507) Filter
Arguments: ((specialStockIndicator#1232756 = ) AND (stockType#1232757 = 01))
(2508) LogicalRelation
Arguments: parquet, [product#1232758, plant#1232759, orderDateTime#1232760, planningStartDateTime#1232761], false
(2509) RepartitionByExpression
Arguments: [product#1232758, plant#1232759], 37
(2510) Project
Arguments: [product#1232758, plant#1232759, orderDateTime#1232760]
(2511) LogicalRelation
Arguments: parquet, [systemId#1232762, internalUUID#1232763, plant#1232764, product#1232765, blockedForReplenishmentStartingFrom#1232766, productionAspect#1232767, salesPlant#1232768, listing#1232769], false
(2512) Repartition
Arguments: 37, true
(2513) Project
Arguments: [systemId#1232762, internalUUID#1232763, plant#1232764, product#1232765, blockedForReplenishmentStartingFrom#1232766, productionAspect#1232767, salesPlant#1232768, listing#1232769, struct(systemId, systemId#1232762, internalUUID, internalUUID#1232763, plant, plant#1232764, product, product#1232765, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1232766, productionAspect, productionAspect#1232767, salesPlant, salesPlant#1232768, listing, listing#1232769) AS productPlant#1232770]
(2514) Project
Arguments: [productPlant#1232770]
(2515) Join
Arguments: LeftOuter, ((product#1232758 <=> productPlant#1232770.product.internalRefUUID) AND (plant#1232759 <=> productPlant#1232770.plant.internalRefUUID))
(2516) Project
Arguments: [product#1232758, plant#1232759, orderDateTime#1232760, productPlant#1232770]
(2517) SubqueryAlias
Arguments: wl
(2518) LogicalRelation
Arguments: parquet, [systemId#1232771, internalUUID#1232772, id#1232773, displayId#1232774, name#1232775, category#1232776, companyCode#1232777, address#1232778, mainDistributionChain#1232779, mainPurchasingOrganization#1232780, validPurchasingOrganizations#1232781, productGroup#1232782], false
(2519) Repartition
Arguments: 37, true
(2520) Project
Arguments: [internalUUID#1232772, address#1232778.timeZone.code AS timezonecode#1232783]
(2521) Join
Arguments: LeftOuter, (plant#1232759 <=> internalUUID#1232772)
(2522) Project
Arguments: [product#1232758, plant#1232759, orderDateTime#1232760, productPlant#1232770, internalUUID#1232772, CASE WHEN isnotnull(timezonecode#1232783) THEN timezonecode#1232783 ELSE UTC END AS timezonecode#1232784]
(2523) Project
Arguments: [product#1232758, plant#1232759, orderDateTime#1232760, productPlant#1232770, timezonecode#1232784]
(2524) LogicalRelation
Arguments: parquet, [systemId#1232785, internalUUID#1232786, id#1232787, displayId#1232788, name#1232789, baseUnitOfMeasure#1232790, unitOfMeasures#1232791, unitOfMeasureConversions#1232792, productionAspect#1232793, salesAspect#1232794, procurementAspect#1232795, productGroup#1232796], false
(2525) Repartition
Arguments: 37, true
(2526) Join
Arguments: LeftOuter, (product#1232758 = internalUUID#1232786)
(2527) Project
Arguments: [product#1232758, plant#1232759, orderDateTime#1232760, productPlant#1232770, timezonecode#1232784, systemId#1232785, internalUUID#1232786, id#1232787, displayId#1232788, name#1232789, baseUnitOfMeasure#1232790, unitOfMeasures#1232791, unitOfMeasureConversions#1232792, productionAspect#1232793, salesAspect#1232794, procurementAspect#1232795, productGroup#1232796, filter(unitOfMeasureConversions#1232792, lambdafunction((((lambda u#1225669.measurementUnit1.code = productPlant#1232770.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1225669.measurementUnit1.internalRefUUID = productPlant#1232770.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1232790.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1232790.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1232797]
(2528) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1232797.quantityNumerator), true, [quantityNumerator#1232798]
(2529) Project
Arguments: [product#1232758, plant#1232759, orderDateTime#1232760, productPlant#1232770, timezonecode#1232784, systemId#1232785, internalUUID#1232786, id#1232787, displayId#1232788, name#1232789, baseUnitOfMeasure#1232790, unitOfMeasures#1232791, unitOfMeasureConversions#1232792, productionAspect#1232793, salesAspect#1232794, procurementAspect#1232795, productGroup#1232796, filteredUnitOfMeasureConversions#1232797, quantityNumerator#1232798]
(2530) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1232797.quantityDenominator), true, [quantityDenominator#1232799]
(2531) Project
Arguments: [product#1232758, plant#1232759, orderDateTime#1232760, productPlant#1232770, timezonecode#1232784, systemId#1232785, internalUUID#1232786, id#1232787, displayId#1232788, name#1232789, baseUnitOfMeasure#1232790, unitOfMeasures#1232791, unitOfMeasureConversions#1232792, productionAspect#1232793, salesAspect#1232794, procurementAspect#1232795, productGroup#1232796, filteredUnitOfMeasureConversions#1232797, quantityNumerator#1232798, quantityDenominator#1232799]
(2532) Project
Arguments: [product#1232758, plant#1232759, orderDateTime#1232760, productPlant#1232770, timezonecode#1232784, systemId#1232785, internalUUID#1232786, id#1232787, displayId#1232788, name#1232789, baseUnitOfMeasure#1232790, unitOfMeasures#1232791, unitOfMeasureConversions#1232792, productionAspect#1232793, salesAspect#1232794, procurementAspect#1232795, productGroup#1232796, filteredUnitOfMeasureConversions#1232797, quantityNumerator#1232798, quantityDenominator#1232799, (cast(quantityNumerator#1232798 as double) / cast(quantityDenominator#1232799 as double)) AS outboundUnit#1232800]
(2533) Project
Arguments: [product#1232758, plant#1232759, orderDateTime#1232760, productPlant#1232770, timezonecode#1232784, systemId#1232785, internalUUID#1232786, id#1232787, displayId#1232788, name#1232789, baseUnitOfMeasure#1232790, unitOfMeasures#1232791, unitOfMeasureConversions#1232792, productionAspect#1232793, salesAspect#1232794, procurementAspect#1232795, productGroup#1232796, filteredUnitOfMeasureConversions#1232797, quantityNumerator#1232798, quantityDenominator#1232799, CASE WHEN (isnull(outboundUnit#1232800) OR (outboundUnit#1232800 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1232800 END AS outboundUnit#1232801]
(2534) Project
Arguments: [product#1232758, plant#1232759, orderDateTime#1232760, productPlant#1232770, timezonecode#1232784, outboundUnit#1232801]
(2535) Join
Arguments: Inner, ((plantUuid#1232750 = plant#1232759) AND (productUuid#1232752 = product#1232758))
(2536) Filter
Arguments: (calculationDateTime#1232746 <= orderDateTime#1232760)
(2537) Project
Arguments: [plantUuid#1232750 AS plant#1232802, productUuid#1232752 AS product#1232803, storageLocId#1232753, calculationDateTime#1232746, quantity#1232755]
(2538) LogicalRelation
Arguments: parquet, [systemId#1232804, internalUUID#1232805, product#1232806, plant#1232807, calculationDateTime#1232808, stockQuantities#1232809], false
(2539) Repartition
Arguments: 37, true
(2540) LogicalRelation
Arguments: parquet, [marketUnit#1232810, description#1232811, articleHierarchy#1232812, defaultCurrency#1232813, responsibilities#1232814, replenishmentTypes#1232815, distributionCenters#1232816, assignedArticleHierarchyNodes#1232817, minOrderQtySetting#1232818, listingCheck#1232819, odsSelection#1232820, demandProfiles#1232821, constraintProfiles#1232822, optimizationProfiles#1232823, orderGroupSplitProfiles#1232824, supplierMinimumProfiles#1232825, multipleRestrictionProfiles#1232826, preferredUomSource#1232827, handlingOfUnfulfilledDemands#1232828, negligibleQuantitiesThreshold#1232829, eventtype#1232830, minOrderQtySettingInternal#1232831], false
(2541) Repartition
Arguments: 37, true
(2542) Filter
Arguments: (marketUnit#1232810 <=> AUTO_MUV2)
(2543) Project
Arguments: [marketUnit#1232810, description#1232811, articleHierarchy#1232812, defaultCurrency#1232813, responsibilities#1232814, replenishmentTypes#1232815, distributionCenters#1232816, assignedArticleHierarchyNodes#1232817, minOrderQtySetting#1232818, listingCheck#1232819, odsSelection#1232820, demandProfiles#1232821, constraintProfiles#1232822, optimizationProfiles#1232823, orderGroupSplitProfiles#1232824, supplierMinimumProfiles#1232825, multipleRestrictionProfiles#1232826, preferredUomSource#1232827, handlingOfUnfulfilledDemands#1232828, negligibleQuantitiesThreshold#1232829, eventtype#1232830, minOrderQtySettingInternal#1232831]
(2544) Project
Arguments: [distributionCenters#1232816]
(2545) Generate
Arguments: explode(distributionCenters#1232816), false, [distributionCenters#1232832]
(2546) Project
Arguments: [distributionCenters#1232832]
(2547) Generate
Arguments: explode(distributionCenters#1232832.storageLocations), false, [storageLocations#1232833]
(2548) Project
Arguments: [distributionCenters#1232832.id AS plantId#1232834, distributionCenters#1232832.internalRefUUID AS plantUuid#1232835, storageLocations#1232833]
(2549) Project
Arguments: [plantId#1232834, plantUuid#1232835, storageLocations#1232833.id AS storageLocId#1232836, storageLocations#1232833.internalRefUUID AS storageLocUuid#1232837]
(2550) LogicalRelation
Arguments: parquet, [product#1232838, plant#1232839, orderDateTime#1232840, planningStartDateTime#1232841], false
(2551) RepartitionByExpression
Arguments: [product#1232838, plant#1232839], 37
(2552) Project
Arguments: [product#1232838, plant#1232839, orderDateTime#1232840]
(2553) LogicalRelation
Arguments: parquet, [systemId#1232842, internalUUID#1232843, plant#1232844, product#1232845, blockedForReplenishmentStartingFrom#1232846, productionAspect#1232847, salesPlant#1232848, listing#1232849], false
(2554) Repartition
Arguments: 37, true
(2555) Project
Arguments: [systemId#1232842, internalUUID#1232843, plant#1232844, product#1232845, blockedForReplenishmentStartingFrom#1232846, productionAspect#1232847, salesPlant#1232848, listing#1232849, struct(systemId, systemId#1232842, internalUUID, internalUUID#1232843, plant, plant#1232844, product, product#1232845, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1232846, productionAspect, productionAspect#1232847, salesPlant, salesPlant#1232848, listing, listing#1232849) AS productPlant#1232850]
(2556) Project
Arguments: [productPlant#1232850]
(2557) Join
Arguments: LeftOuter, ((product#1232838 <=> productPlant#1232850.product.internalRefUUID) AND (plant#1232839 <=> productPlant#1232850.plant.internalRefUUID))
(2558) Project
Arguments: [product#1232838, plant#1232839, orderDateTime#1232840, productPlant#1232850]
(2559) SubqueryAlias
Arguments: wl
(2560) LogicalRelation
Arguments: parquet, [systemId#1232851, internalUUID#1232852, id#1232853, displayId#1232854, name#1232855, category#1232856, companyCode#1232857, address#1232858, mainDistributionChain#1232859, mainPurchasingOrganization#1232860, validPurchasingOrganizations#1232861, productGroup#1232862], false
(2561) Repartition
Arguments: 37, true
(2562) Project
Arguments: [internalUUID#1232852, address#1232858.timeZone.code AS timezonecode#1232863]
(2563) Join
Arguments: LeftOuter, (plant#1232839 <=> internalUUID#1232852)
(2564) Project
Arguments: [product#1232838, plant#1232839, orderDateTime#1232840, productPlant#1232850, internalUUID#1232852, CASE WHEN isnotnull(timezonecode#1232863) THEN timezonecode#1232863 ELSE UTC END AS timezonecode#1232864]
(2565) Project
Arguments: [product#1232838, plant#1232839, orderDateTime#1232840, productPlant#1232850, timezonecode#1232864]
(2566) LogicalRelation
Arguments: parquet, [systemId#1232865, internalUUID#1232866, id#1232867, displayId#1232868, name#1232869, baseUnitOfMeasure#1232870, unitOfMeasures#1232871, unitOfMeasureConversions#1232872, productionAspect#1232873, salesAspect#1232874, procurementAspect#1232875, productGroup#1232876], false
(2567) Repartition
Arguments: 37, true
(2568) Join
Arguments: LeftOuter, (product#1232838 = internalUUID#1232866)
(2569) Project
Arguments: [product#1232838, plant#1232839, orderDateTime#1232840, productPlant#1232850, timezonecode#1232864, systemId#1232865, internalUUID#1232866, id#1232867, displayId#1232868, name#1232869, baseUnitOfMeasure#1232870, unitOfMeasures#1232871, unitOfMeasureConversions#1232872, productionAspect#1232873, salesAspect#1232874, procurementAspect#1232875, productGroup#1232876, filter(unitOfMeasureConversions#1232872, lambdafunction((((lambda u#1225669.measurementUnit1.code = productPlant#1232850.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1225669.measurementUnit1.internalRefUUID = productPlant#1232850.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1232870.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1232870.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1232877]
(2570) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1232877.quantityNumerator), true, [quantityNumerator#1232878]
(2571) Project
Arguments: [product#1232838, plant#1232839, orderDateTime#1232840, productPlant#1232850, timezonecode#1232864, systemId#1232865, internalUUID#1232866, id#1232867, displayId#1232868, name#1232869, baseUnitOfMeasure#1232870, unitOfMeasures#1232871, unitOfMeasureConversions#1232872, productionAspect#1232873, salesAspect#1232874, procurementAspect#1232875, productGroup#1232876, filteredUnitOfMeasureConversions#1232877, quantityNumerator#1232878]
(2572) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1232877.quantityDenominator), true, [quantityDenominator#1232879]
(2573) Project
Arguments: [product#1232838, plant#1232839, orderDateTime#1232840, productPlant#1232850, timezonecode#1232864, systemId#1232865, internalUUID#1232866, id#1232867, displayId#1232868, name#1232869, baseUnitOfMeasure#1232870, unitOfMeasures#1232871, unitOfMeasureConversions#1232872, productionAspect#1232873, salesAspect#1232874, procurementAspect#1232875, productGroup#1232876, filteredUnitOfMeasureConversions#1232877, quantityNumerator#1232878, quantityDenominator#1232879]
(2574) Project
Arguments: [product#1232838, plant#1232839, orderDateTime#1232840, productPlant#1232850, timezonecode#1232864, systemId#1232865, internalUUID#1232866, id#1232867, displayId#1232868, name#1232869, baseUnitOfMeasure#1232870, unitOfMeasures#1232871, unitOfMeasureConversions#1232872, productionAspect#1232873, salesAspect#1232874, procurementAspect#1232875, productGroup#1232876, filteredUnitOfMeasureConversions#1232877, quantityNumerator#1232878, quantityDenominator#1232879, (cast(quantityNumerator#1232878 as double) / cast(quantityDenominator#1232879 as double)) AS outboundUnit#1232880]
(2575) Project
Arguments: [product#1232838, plant#1232839, orderDateTime#1232840, productPlant#1232850, timezonecode#1232864, systemId#1232865, internalUUID#1232866, id#1232867, displayId#1232868, name#1232869, baseUnitOfMeasure#1232870, unitOfMeasures#1232871, unitOfMeasureConversions#1232872, productionAspect#1232873, salesAspect#1232874, procurementAspect#1232875, productGroup#1232876, filteredUnitOfMeasureConversions#1232877, quantityNumerator#1232878, quantityDenominator#1232879, CASE WHEN (isnull(outboundUnit#1232880) OR (outboundUnit#1232880 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1232880 END AS outboundUnit#1232881]
(2576) Project
Arguments: [product#1232838, plant#1232839, orderDateTime#1232840, productPlant#1232850, timezonecode#1232864, outboundUnit#1232881]
(2577) Project
Arguments: [plant#1232839]
(2578) Deduplicate
Arguments: [plant#1232839]
(2579) Join
Arguments: Inner, (plantUuid#1232835 = plant#1232839)
(2580) Project
Arguments: [plantId#1232834, plantUuid#1232835, storageLocId#1232836, storageLocUuid#1232837]
(2581) Join
Arguments: Inner, (plant#1232807.internalRefUUID <=> plantUuid#1232835)
(2582) Generate
Arguments: explode(filter(stockQuantities#1232809, lambdafunction(((lambda x#1225727.storageLocation.internalRefUuid = storageLocUuid#1232837) AND (lambda x#1225727.storageLocation.Id = storageLocId#1232836)), lambda x#1225727, false))), false, [stockQuantity#1232882]
(2583) Project
Arguments: [systemId#1232804, internalUUID#1232805, product#1232806, plant#1232807, calculationDateTime#1232808, stockQuantities#1232809, plantId#1232834, plantUuid#1232835, storageLocId#1232836, storageLocUuid#1232837, stockQuantity#1232882]
(2584) Aggregate
Arguments: [plantUuid#1232835, internalUUID#1232805, plant#1232807, product#1232806, systemId#1232804], [plantUuid#1232835, internalUUID#1232805, plant#1232807, product#1232806, systemId#1232804, first(calculationDateTime#1232808, false) AS calculationDateTime#1232883, collect_list(stockQuantity#1232882, 0, 0) AS stockQuantities#1232884]
(2585) Project
Arguments: [systemId#1232804, internalUUID#1232805, product#1232806, plant#1232807, calculationDateTime#1232883, stockQuantities#1232884]
(2586) Generate
Arguments: explode(stockQuantities#1232884), false, [stockQuantity#1232885]
(2587) Project
Arguments: [systemId#1232804, internalUUID#1232805, product#1232806, plant#1232807, calculationDateTime#1232883, stockQuantities#1232884, stockQuantity#1232885]
(2588) Project
Arguments: [plant#1232807.id AS plant#1232886, plant#1232807.internalRefUUID AS plantUuid#1232887, product#1232806.id AS product#1232888, product#1232806.internalRefUUID AS productUuid#1232889, calculationDateTime#1232883, stockQuantity#1232885.storagelocation.id AS storageLocId#1232890, stockQuantity#1232885.storagelocation.internalRefUUID AS storageLocUuid#1232891, stockQuantity#1232885.quantity.measure AS quantity#1232892, stockQuantity#1232885.specialStockIndicator.code AS specialStockIndicator#1232893, stockQuantity#1232885.stockType.code AS stockType#1232894]
(2589) Filter
Arguments: ((specialStockIndicator#1232893 = ) AND (stockType#1232894 = 01))
(2590) LogicalRelation
Arguments: parquet, [product#1232895, plant#1232896, orderDateTime#1232897, planningStartDateTime#1232898], false
(2591) RepartitionByExpression
Arguments: [product#1232895, plant#1232896], 37
(2592) Project
Arguments: [product#1232895, plant#1232896, orderDateTime#1232897]
(2593) LogicalRelation
Arguments: parquet, [systemId#1232899, internalUUID#1232900, plant#1232901, product#1232902, blockedForReplenishmentStartingFrom#1232903, productionAspect#1232904, salesPlant#1232905, listing#1232906], false
(2594) Repartition
Arguments: 37, true
(2595) Project
Arguments: [systemId#1232899, internalUUID#1232900, plant#1232901, product#1232902, blockedForReplenishmentStartingFrom#1232903, productionAspect#1232904, salesPlant#1232905, listing#1232906, struct(systemId, systemId#1232899, internalUUID, internalUUID#1232900, plant, plant#1232901, product, product#1232902, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1232903, productionAspect, productionAspect#1232904, salesPlant, salesPlant#1232905, listing, listing#1232906) AS productPlant#1232907]
(2596) Project
Arguments: [productPlant#1232907]
(2597) Join
Arguments: LeftOuter, ((product#1232895 <=> productPlant#1232907.product.internalRefUUID) AND (plant#1232896 <=> productPlant#1232907.plant.internalRefUUID))
(2598) Project
Arguments: [product#1232895, plant#1232896, orderDateTime#1232897, productPlant#1232907]
(2599) SubqueryAlias
Arguments: wl
(2600) LogicalRelation
Arguments: parquet, [systemId#1232908, internalUUID#1232909, id#1232910, displayId#1232911, name#1232912, category#1232913, companyCode#1232914, address#1232915, mainDistributionChain#1232916, mainPurchasingOrganization#1232917, validPurchasingOrganizations#1232918, productGroup#1232919], false
(2601) Repartition
Arguments: 37, true
(2602) Project
Arguments: [internalUUID#1232909, address#1232915.timeZone.code AS timezonecode#1232920]
(2603) Join
Arguments: LeftOuter, (plant#1232896 <=> internalUUID#1232909)
(2604) Project
Arguments: [product#1232895, plant#1232896, orderDateTime#1232897, productPlant#1232907, internalUUID#1232909, CASE WHEN isnotnull(timezonecode#1232920) THEN timezonecode#1232920 ELSE UTC END AS timezonecode#1232921]
(2605) Project
Arguments: [product#1232895, plant#1232896, orderDateTime#1232897, productPlant#1232907, timezonecode#1232921]
(2606) LogicalRelation
Arguments: parquet, [systemId#1232922, internalUUID#1232923, id#1232924, displayId#1232925, name#1232926, baseUnitOfMeasure#1232927, unitOfMeasures#1232928, unitOfMeasureConversions#1232929, productionAspect#1232930, salesAspect#1232931, procurementAspect#1232932, productGroup#1232933], false
(2607) Repartition
Arguments: 37, true
(2608) Join
Arguments: LeftOuter, (product#1232895 = internalUUID#1232923)
(2609) Project
Arguments: [product#1232895, plant#1232896, orderDateTime#1232897, productPlant#1232907, timezonecode#1232921, systemId#1232922, internalUUID#1232923, id#1232924, displayId#1232925, name#1232926, baseUnitOfMeasure#1232927, unitOfMeasures#1232928, unitOfMeasureConversions#1232929, productionAspect#1232930, salesAspect#1232931, procurementAspect#1232932, productGroup#1232933, filter(unitOfMeasureConversions#1232929, lambdafunction((((lambda u#1225669.measurementUnit1.code = productPlant#1232907.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1225669.measurementUnit1.internalRefUUID = productPlant#1232907.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1232927.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1232927.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1232934]
(2610) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1232934.quantityNumerator), true, [quantityNumerator#1232935]
(2611) Project
Arguments: [product#1232895, plant#1232896, orderDateTime#1232897, productPlant#1232907, timezonecode#1232921, systemId#1232922, internalUUID#1232923, id#1232924, displayId#1232925, name#1232926, baseUnitOfMeasure#1232927, unitOfMeasures#1232928, unitOfMeasureConversions#1232929, productionAspect#1232930, salesAspect#1232931, procurementAspect#1232932, productGroup#1232933, filteredUnitOfMeasureConversions#1232934, quantityNumerator#1232935]
(2612) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1232934.quantityDenominator), true, [quantityDenominator#1232936]
(2613) Project
Arguments: [product#1232895, plant#1232896, orderDateTime#1232897, productPlant#1232907, timezonecode#1232921, systemId#1232922, internalUUID#1232923, id#1232924, displayId#1232925, name#1232926, baseUnitOfMeasure#1232927, unitOfMeasures#1232928, unitOfMeasureConversions#1232929, productionAspect#1232930, salesAspect#1232931, procurementAspect#1232932, productGroup#1232933, filteredUnitOfMeasureConversions#1232934, quantityNumerator#1232935, quantityDenominator#1232936]
(2614) Project
Arguments: [product#1232895, plant#1232896, orderDateTime#1232897, productPlant#1232907, timezonecode#1232921, systemId#1232922, internalUUID#1232923, id#1232924, displayId#1232925, name#1232926, baseUnitOfMeasure#1232927, unitOfMeasures#1232928, unitOfMeasureConversions#1232929, productionAspect#1232930, salesAspect#1232931, procurementAspect#1232932, productGroup#1232933, filteredUnitOfMeasureConversions#1232934, quantityNumerator#1232935, quantityDenominator#1232936, (cast(quantityNumerator#1232935 as double) / cast(quantityDenominator#1232936 as double)) AS outboundUnit#1232937]
(2615) Project
Arguments: [product#1232895, plant#1232896, orderDateTime#1232897, productPlant#1232907, timezonecode#1232921, systemId#1232922, internalUUID#1232923, id#1232924, displayId#1232925, name#1232926, baseUnitOfMeasure#1232927, unitOfMeasures#1232928, unitOfMeasureConversions#1232929, productionAspect#1232930, salesAspect#1232931, procurementAspect#1232932, productGroup#1232933, filteredUnitOfMeasureConversions#1232934, quantityNumerator#1232935, quantityDenominator#1232936, CASE WHEN (isnull(outboundUnit#1232937) OR (outboundUnit#1232937 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1232937 END AS outboundUnit#1232938]
(2616) Project
Arguments: [product#1232895, plant#1232896, orderDateTime#1232897, productPlant#1232907, timezonecode#1232921, outboundUnit#1232938]
(2617) Join
Arguments: Inner, ((plantUuid#1232887 = plant#1232896) AND (productUuid#1232889 = product#1232895))
(2618) Filter
Arguments: (calculationDateTime#1232883 <= orderDateTime#1232897)
(2619) Project
Arguments: [plantUuid#1232887 AS plant#1232939, productUuid#1232889 AS product#1232940, storageLocId#1232890, calculationDateTime#1232883, quantity#1232892]
(2620) Aggregate
Arguments: [plant#1232939, product#1232940, storageLocId#1232890], [plant#1232939, product#1232940, storageLocId#1232890, max(calculationDateTime#1232883) AS max_calc_datetime#1232941]
(2621) Join
Arguments: Inner, ((((plant#1232802 <=> plant#1232939) AND (product#1232803 <=> product#1232940)) AND (storageLocId#1232753 <=> storageLocId#1232890)) AND (calculationDateTime#1232746 <=> max_calc_datetime#1232941))
(2622) Project
Arguments: [plant#1232802, product#1232803, storageLocId#1232753, calculationDateTime#1232746, quantity#1232755]
(2623) Aggregate
Arguments: [product#1232803, plant#1232802], [product#1232803, plant#1232802, sum(quantity#1232755) AS quantitySum#1232942, min(calculationDateTime#1232746) AS minCalculationDateTime#1232943]
(2624) Project
Arguments: [product#1232803, plant#1232802, quantitySum#1232942, minCalculationDateTime#1232943, round(quantitySum#1232942, 0) AS roundedQuantitySum#1232944]
(2625) Join
Arguments: LeftOuter, ((plant#1232624 = plant#1232802) AND (product#1232623 = product#1232803))
(2626) Project
Arguments: [product#1232623, plant#1232624, orderDateTime#1232625, productPlant#1232635, timezonecode#1232649, outboundUnit#1232666, roundedQuantitySum#1232944, minCalculationDateTime#1232943]
(2627) Project
Arguments: [product#1232623, plant#1232624, orderDateTime#1232625, productPlant#1232635, timezonecode#1232649, outboundUnit#1232666, roundedQuantitySum#1232944, minCalculationDateTime#1232943, CASE WHEN isnotnull(minCalculationDateTime#1232943) THEN minCalculationDateTime#1232943 ELSE orderDateTime#1232625 END AS stockDatetime#1232945]
(2628) Project
Arguments: [product#1232623, plant#1232624, orderDateTime#1232625, productPlant#1232635, timezonecode#1232649, outboundUnit#1232666, roundedQuantitySum#1232944, minCalculationDateTime#1232943, stockDatetime#1232945, CASE WHEN isnotnull(roundedQuantitySum#1232944) THEN array(roundedQuantitySum#1232944) ELSE array(0.0) END AS stockBatchQuantities#1232946]
(2629) Project
Arguments: [product#1232623, plant#1232624, orderDateTime#1232625, productPlant#1232635, timezonecode#1232649, outboundUnit#1232666, roundedQuantitySum#1232944, minCalculationDateTime#1232943, stockDatetime#1232945, stockBatchQuantities#1232946, array(2199-01-01 00:00:00) AS stockBatchShelfLifeEndDatetimes#1232947]
(2630) Project
Arguments: [product#1232623, plant#1232624, orderDateTime#1232625, productPlant#1232635, timezonecode#1232649, outboundUnit#1232666, roundedQuantitySum#1232944, stockDatetime#1232945, stockBatchQuantities#1232946, stockBatchShelfLifeEndDatetimes#1232947]
(2631) Project
Arguments: [product#1232623, plant#1232624, orderDateTime#1232625, productPlant#1232635, timezonecode#1232649, outboundUnit#1232666, stockDatetime#1232945, stockBatchQuantities#1232946, stockBatchShelfLifeEndDatetimes#1232947]
(2632) LogicalRelation
Arguments: parquet, [product#1232948, plant#1232949, demandChannel#1232950, demandStream#1232951, considerVariance#1232952, demandTimeBuckets#1232953, demandPointInTimeStart#1232954, demandPointInTimeEnd#1232955, demandPointInTime#1232956], false
(2633) Join
Arguments: LeftOuter, ((product#1232623 = product#1232948) AND (plant#1232624 = plant#1232949))
(2634) Project
Arguments: [product#1232623, plant#1232624, orderDateTime#1232625, productPlant#1232635, timezonecode#1232649, outboundUnit#1232666, stockDatetime#1232945, stockBatchQuantities#1232946, stockBatchShelfLifeEndDatetimes#1232947, demandChannel#1232950, demandStream#1232951, considerVariance#1232952, demandTimeBuckets#1232953, demandPointInTimeStart#1232954, demandPointInTimeEnd#1232955, demandPointInTime#1232956, product#1232948, plant#1232949]
(2635) Project
Arguments: [product#1232623, plant#1232624, orderDateTime#1232625, productPlant#1232635, timezonecode#1232649, outboundUnit#1232666, stockDatetime#1232945, stockBatchQuantities#1232946, stockBatchShelfLifeEndDatetimes#1232947, demandChannel#1232950, demandStream#1232951, considerVariance#1232952, demandTimeBuckets#1232953, demandPointInTimeStart#1232954, demandPointInTimeEnd#1232955, demandPointInTime#1232956, CASE WHEN isnotnull(product#1232948) THEN struct(demandChannel, demandChannel#1232950, demandStream, demandStream#1232951, considerVariance, considerVariance#1232952, demandTimeBuckets, demandTimeBuckets#1232953, demandPointInTimeStart, demandPointInTimeStart#1232954, demandPointInTimeEnd, demandPointInTimeEnd#1232955, demandPointInTime, demandPointInTime#1232956) 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#1232957]
(2636) Aggregate
Arguments: [product#1232623, plant#1232624, orderDateTime#1232625, productPlant#1232635, timezonecode#1232649, outboundUnit#1232666, stockDatetime#1232945, stockBatchQuantities#1232946, stockBatchShelfLifeEndDatetimes#1232947], [product#1232623, plant#1232624, orderDateTime#1232625, productPlant#1232635, timezonecode#1232649, outboundUnit#1232666, stockDatetime#1232945, stockBatchQuantities#1232946, stockBatchShelfLifeEndDatetimes#1232947, collect_list(rawDemands#1232957, 0, 0) AS rawDemands#1232958]
(2637) DeserializeToObject
Arguments: createexternalrow(invoke(product#1232623.toString()), invoke(plant#1232624.toString()), static_invoke(DateTimeUtils.toJavaTimestamp(orderDateTime#1232625)), if (isnull(productPlant#1232635)) null else createexternalrow(invoke(productPlant#1232635.systemId.toString()), invoke(productPlant#1232635.internalUUID.toString()), if (isnull(productPlant#1232635.plant)) null else createexternalrow(invoke(productPlant#1232635.plant.internalRefUUID.toString()), invoke(productPlant#1232635.plant.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), if (isnull(productPlant#1232635.product)) null else createexternalrow(invoke(productPlant#1232635.product.internalRefUUID.toString()), invoke(productPlant#1232635.product.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(DateTimeUtils.toJavaDate(productPlant#1232635.blockedForReplenishmentStartingFrom)), if (isnull(productPlant#1232635.productionAspect)) null else createexternalrow(if (isnull(productPlant#1232635.productionAspect.productMovementPlants)) null else createexternalrow(if (isnull(productPlant#1232635.productionAspect.productMovementPlants.unitOfIssue)) null else createexternalrow(invoke(productPlant#1232635.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID.toString()), invoke(productPlant#1232635.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#1232635.productionAspect.productPlanningPlants)) null else createexternalrow(if (isnull(productPlant#1232635.productionAspect.productPlanningPlants.mrpType)) null else createexternalrow(invoke(productPlant#1232635.productionAspect.productPlanningPlants.mrpType.internalRefUUID.toString()), invoke(productPlant#1232635.productionAspect.productPlanningPlants.mrpType.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1232635.productionAspect.productPlanningPlants.abcIndicator)) null else createexternalrow(invoke(productPlant#1232635.productionAspect.productPlanningPlants.abcIndicator.internalRefUUID.toString()), invoke(productPlant#1232635.productionAspect.productPlanningPlants.abcIndicator.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1232635.productionAspect.productPlanningPlants.mrpController)) null else createexternalrow(invoke(productPlant#1232635.productionAspect.productPlanningPlants.mrpController.internalRefUUID.toString()), invoke(productPlant#1232635.productionAspect.productPlanningPlants.mrpController.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(java.lang.Double.valueOf(productPlant#1232635.productionAspect.productPlanningPlants.minimumLotSize)), if (isnull(productPlant#1232635.productionAspect.productPlanningPlants.logisticalRoundingProfile)) null else createexternalrow(invoke(productPlant#1232635.productionAspect.productPlanningPlants.logisticalRoundingProfile.internalRefUUID.toString()), invoke(productPlant#1232635.productionAspect.productPlanningPlants.logisticalRoundingProfile.logisticalRoundingProfile.toString()), StructField(internalRefUUID,StringType,true), StructField(logisticalRoundingProfile,StringType,true)), if (isnull(productPlant#1232635.productionAspect.productPlanningPlants.sourceOfSupplyCategory)) null else createexternalrow(invoke(productPlant#1232635.productionAspect.productPlanningPlants.sourceOfSupplyCategory.internalRefUUID.toString()), invoke(productPlant#1232635.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#1232635.salesPlant)) null else createexternalrow(if (isnull(productPlant#1232635.salesPlant.loadingGroup)) null else createexternalrow(invoke(productPlant#1232635.salesPlant.loadingGroup.internalRefUUID.toString()), invoke(productPlant#1232635.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, 163428), if (isnull(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 163428))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 163428).validFrom)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 163428).validTo)), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 163428).isListed)), StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true)), productPlant#1232635.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#1232649.toString()), static_invoke(java.lang.Double.valueOf(outboundUnit#1232666)), static_invoke(DateTimeUtils.toJavaTimestamp(stockDatetime#1232945)), mapobjects(lambdavariable(MapObject, DoubleType, true, 163429), static_invoke(java.lang.Double.valueOf(cast(lambdavariable(MapObject, DoubleType, true, 163429) as double))), stockBatchQuantities#1232946, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, false, 163430), assertnotnull(static_invoke(DateTimeUtils.toJavaTimestamp(cast(lambdavariable(MapObject, TimestampType, false, 163430) as timestamp)))), stockBatchShelfLifeEndDatetimes#1232947, 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, 163431), 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, 163431))) 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, 163431).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, 163431).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, 163431).considerVariance)), mapobjects(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 163432), if (isnull(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 163432))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 163432).demandStartDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 163432).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 163432).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, 163431).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, 163431).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, 163431).demandPointInTimeEnd)), mapobjects(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 163433), if (isnull(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 163433))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 163433).demandDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 163433).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 163433).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, 163431).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#1232958, 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#1226090: org.apache.spark.sql.Row
(2638) MapElements
Arguments: com.sap.s4hana.eureka.business.crporderquantitykpiservice.core.business.datasnapshot.DemandTransformatorImpl$$Lambda/0x00000008023bc120@58fc6bc3, 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#1226095: 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#1232959, 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#1232960, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(2))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163418), assertnotnull(if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163418), 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, 163418), 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, 163418), 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, 163418), 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, 163418), 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, 163418), 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, 163418), 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, 163418), 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, 163418), 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, 163418), 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, 163419), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163419), DoubleType, ObjectType(class java.lang.Double)).doubleValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163418), 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, 163418), 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, 163418), 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, 163418), 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, 163420), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163420), DoubleType, ObjectType(class java.lang.Double)).doubleValue()), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163418), 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, 163418), 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, 163421), assertnotnull(static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163421), TimestampType, ObjectType(class java.sql.Timestamp))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163418), 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, 163418), 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, 163422), assertnotnull(static_invoke(UTF8String.fromString(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163422), StringType, ObjectType(class java.lang.String))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163418), 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, 163418), 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, 163418), 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, 163418), 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, 163423), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163423), IntegerType, ObjectType(class java.lang.Integer)).intValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163418), 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#1232961, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(3))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163424), assertnotnull(if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163424), 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, 163424), 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, 163424), 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, 163424), 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, 163424), 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, 163424), 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, 163424), 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, 163424), 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, 163425), assertnotnull(static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163425), TimestampType, ObjectType(class java.sql.Timestamp))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163424), 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, 163424), 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, 163424), 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, 163424), 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, 163426), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163426), DoubleType, ObjectType(class java.lang.Double)).doubleValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163424), 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, 163424), 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, 163424), 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, 163424), 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, 163427), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163427), DoubleType, ObjectType(class java.lang.Double)).doubleValue()), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 163424), 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, 163424), 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, 163424), 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, 163424), 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, 163424), 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#1232962]
(2640) Join
Arguments: LeftOuter, ((plant#1232960 <=> plant#1232299) AND (product#1232959 <=> product#1232298))
(2641) Project
Arguments: [product#1232298, plant#1232299, orderDateTime#1232300, productPlant#1232310, timezonecode#1232324, outboundUnit#1232341, stockDatetime#1232620, stockBatchQuantities#1232621, stockBatchShelfLifeEndDatetimes#1232622, plant#1232960, dayBucketDemands#1232961, pointInTimeDemands#1232962]
(2642) Project
Arguments: [product#1232298, plant#1232299, orderDateTime#1232300, productPlant#1232310, timezonecode#1232324, outboundUnit#1232341, stockDatetime#1232620, stockBatchQuantities#1232621, stockBatchShelfLifeEndDatetimes#1232622, dayBucketDemands#1232961, pointInTimeDemands#1232962]
(2643) LogicalRelation
Arguments: parquet, [systemId#1232963, internalUUID#1232964, id#1232965, displayId#1232966, supplier#1232967, type#1232968, status#1232969, isMarkedForDeletion#1232970, items#1232971], false
(2644) Repartition
Arguments: 37, true
(2645) Generate
Arguments: explode(items#1232971), false, [item#1232972]
(2646) Project
Arguments: [id#1232965, internalUUID#1232964, isMarkedForDeletion#1232970, supplier#1232967.internalRefUUID AS supplierUuid#1232973, item#1232972]
(2647) Filter
Arguments: (((NOT isMarkedForDeletion#1232970 AND NOT item#1232972.deletionIndicator) AND NOT item#1232972.completeIndicator) AND NOT item#1232972.returnIndicator)
(2648) Project
Arguments: [id#1232965, internalUUID#1232964, supplierUuid#1232973, item#1232972.plant.internalRefUUID AS plant#1232974, item#1232972.product.internalRefUUID AS product#1232975, item#1232972.plant.id AS externalPlantId#1232976, item#1232972.product.id AS externalProductId#1232977, item#1232972.storageLocation.internalRefUUID AS storageLocUuid#1232978, item#1232972.quantityUnit.code AS quantityUom#1232979, item#1232972.quantityUnit.internalRefUUID AS quantityUomUuid#1232980, item#1232972.quantityNumerator AS quantityNumerator#1232981, item#1232972.quantityDenominator AS quantityDenominator#1232982, item#1232972.scheduleLines AS scheduleLines#1232983, item#1232972.confirmations AS confirmations#1232984]
(2649) Join
Arguments: Inner, ((product#1232298 <=> product#1232975) AND (plant#1232299 <=> supplierUuid#1232973))
(2650) Project
Arguments: [id#1232965, internalUUID#1232964, supplierUuid#1232973, plant#1232974, product#1232975, externalPlantId#1232976, externalProductId#1232977, storageLocUuid#1232978, quantityUom#1232979, quantityUomUuid#1232980, quantityNumerator#1232981, quantityDenominator#1232982, scheduleLines#1232983, confirmations#1232984, stockDatetime#1232620, plant#1232299]
(2651) Project
Arguments: [id#1232965, internalUUID#1232964, supplierUuid#1232973, product#1232975, externalPlantId#1232976, externalProductId#1232977, storageLocUuid#1232978, quantityUom#1232979, quantityUomUuid#1232980, quantityNumerator#1232981, quantityDenominator#1232982, scheduleLines#1232983, confirmations#1232984, stockDatetime#1232620, plant#1232299]
(2652) Project
Arguments: [id#1232965, internalUUID#1232964, supplierUuid#1232973, product#1232975, externalPlantId#1232976, externalProductId#1232977, storageLocUuid#1232978, quantityUom#1232979, quantityUomUuid#1232980, quantityNumerator#1232981, quantityDenominator#1232982, scheduleLines#1232983, confirmations#1232984, stockDatetime#1232620, plant#1232299, filter(transform(filter(transform(scheduleLines#1232983, lambdafunction(struct(openQty, (greatest((lambda x_154#1229088.quantity - coalesce(lambda x_154#1229088.deliveredQuantity, 0.0)), 0.0) * -1.0), availabilityDatetime, coalesce(lambda x_154#1229088.productAvailabilityDateTime, lambda x_154#1229088.deliveryAt)), lambda x_154#1229088, false)), lambdafunction((lambda x_155#1229089.availabilityDatetime < stockDatetime#1232620), lambda x_155#1229089, false)), lambdafunction(struct(documentId, id#1232965, documentUuid, internalUUID#1232964, openQty, lambda x_156#1229090.openQty, openQtyInBaseUnit, ((lambda x_156#1229090.openQty * quantityNumerator#1232981) / quantityDenominator#1232982), qtyUom, quantityUom#1232979, qtyUomUuid, quantityUomUuid#1232980, availabilityDatetime, lambda x_156#1229090.availabilityDatetime, shelfLifeEndDatetime, 2199-01-01 00:00:00), lambda x_156#1229090, false)), lambdafunction(NOT (lambda x_157#1229091.openQty = 0.0), lambda x_157#1229091, false)) AS openGoodsMovements#1232985]
(2653) Aggregate
Arguments: [product#1232975, plant#1232299], [product#1232975, plant#1232299, flatten(collect_list(openGoodsMovements#1232985, 0, 0)) AS openGoodsMovements#1232986]
(2654) Filter
Arguments: (array_size(openGoodsMovements#1232986) > 0)
(2655) Union
Arguments: false, false
(2656) Aggregate
Arguments: [product#1232283, plant#1232282], [product#1232283, plant#1232282, flatten(collect_list(openGoodsMovements#1232297, 0, 0)) AS openGoodsMovements#1232987]
(2657) Join
Arguments: LeftOuter, ((product#1230868 = product#1232283) AND (plant#1230869 = plant#1232282))
(2658) Project
Arguments: [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880, timezonecode#1230894, outboundUnit#1230911, stockDatetime#1231190, stockBatchQuantities#1231191, stockBatchShelfLifeEndDatetimes#1231192, dayBucketDemands#1231531, pointInTimeDemands#1231532, openGoodsMovements#1232987]
(2659) Project
Arguments: [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880, timezonecode#1230894, outboundUnit#1230911, stockDatetime#1231190, stockBatchQuantities#1231191, stockBatchShelfLifeEndDatetimes#1231192, dayBucketDemands#1231531, pointInTimeDemands#1231532, coalesce(openGoodsMovements#1232987.openQtyInBaseUnit, cast(array() as array<double>)) AS openGoodsMovementQuantities#1232988, coalesce(openGoodsMovements#1232987.availabilityDatetime, cast(array() as array<timestamp>)) AS openGoodsMovementAvailabilityDatetimes#1232989, coalesce(openGoodsMovements#1232987.shelfLifeEndDatetime, cast(array() as array<timestamp>)) AS openGoodsMovementShelfLifeEndDatetimes#1232990]
(2660) Project
Arguments: [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880, timezonecode#1230894, outboundUnit#1230911, stockDatetime#1231190, stockBatchQuantities#1231191, stockBatchShelfLifeEndDatetimes#1231192, dayBucketDemands#1231531, pointInTimeDemands#1231532, openGoodsMovementQuantities#1232988, openGoodsMovementAvailabilityDatetimes#1232989, openGoodsMovementShelfLifeEndDatetimes#1232990, 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#1232991]
(2661) Project
Arguments: [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880, timezonecode#1230894, outboundUnit#1230911, stockDatetime#1231190, stockBatchQuantities#1231191, stockBatchShelfLifeEndDatetimes#1231192, dayBucketDemands#1231531, pointInTimeDemands#1231532, openGoodsMovementQuantities#1232988, openGoodsMovementAvailabilityDatetimes#1232989, openGoodsMovementShelfLifeEndDatetimes#1232990, configuration#1232991, productPlant#1230880.listing AS listing#1230808]
(2662) Project
Arguments: [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880, timezonecode#1230894, outboundUnit#1230911, stockDatetime#1231190, stockBatchQuantities#1231191, stockBatchShelfLifeEndDatetimes#1231192, dayBucketDemands#1231531, pointInTimeDemands#1231532, openGoodsMovementQuantities#1232988, openGoodsMovementAvailabilityDatetimes#1232989, openGoodsMovementShelfLifeEndDatetimes#1232990, configuration#1232991, CASE WHEN isnotnull(listing#1230808) THEN listing#1230808 ELSE cast(array() as array<struct<validFrom:timestamp,validTo:timestamp,isListed:boolean>>) END AS listing#1230810]
(2663) Project
Arguments: [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880, timezonecode#1230894, outboundUnit#1230911, stockDatetime#1231190, stockBatchQuantities#1231191, stockBatchShelfLifeEndDatetimes#1231192, dayBucketDemands#1231531, pointInTimeDemands#1231532, openGoodsMovementQuantities#1232988, openGoodsMovementAvailabilityDatetimes#1232989, openGoodsMovementShelfLifeEndDatetimes#1232990, configuration#1232991, filter(listing#1230810, lambdafunction((lambda listing#1230812.isListed = true), lambda listing#1230812, false)) AS listing#1230811]
(2664) Project
Arguments: [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880, timezonecode#1230894, outboundUnit#1230911, stockDatetime#1231190, stockBatchQuantities#1231191, stockBatchShelfLifeEndDatetimes#1231192, dayBucketDemands#1231531, pointInTimeDemands#1231532, openGoodsMovementQuantities#1232988, openGoodsMovementAvailabilityDatetimes#1232989, openGoodsMovementShelfLifeEndDatetimes#1232990, configuration#1232991, array_sort(listing#1230811, lambdafunction(if ((isnull(lambda left#1230814) AND isnull(lambda right#1230815))) 0 else if (isnull(lambda left#1230814)) 1 else if (isnull(lambda right#1230815)) -1 else if ((lambda left#1230814 < lambda right#1230815)) -1 else if ((lambda left#1230814 > lambda right#1230815)) 1 else 0, lambda left#1230814, lambda right#1230815, false), false) AS listing#1230813]
(2665) DeserializeToObject
Arguments: createexternalrow(invoke(product#1230868.toString()), invoke(plant#1230869.toString()), static_invoke(DateTimeUtils.toJavaTimestamp(orderDateTime#1230870)), if (isnull(productPlant#1230880)) null else createexternalrow(invoke(productPlant#1230880.systemId.toString()), invoke(productPlant#1230880.internalUUID.toString()), if (isnull(productPlant#1230880.plant)) null else createexternalrow(invoke(productPlant#1230880.plant.internalRefUUID.toString()), invoke(productPlant#1230880.plant.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), if (isnull(productPlant#1230880.product)) null else createexternalrow(invoke(productPlant#1230880.product.internalRefUUID.toString()), invoke(productPlant#1230880.product.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(DateTimeUtils.toJavaDate(productPlant#1230880.blockedForReplenishmentStartingFrom)), if (isnull(productPlant#1230880.productionAspect)) null else createexternalrow(if (isnull(productPlant#1230880.productionAspect.productMovementPlants)) null else createexternalrow(if (isnull(productPlant#1230880.productionAspect.productMovementPlants.unitOfIssue)) null else createexternalrow(invoke(productPlant#1230880.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID.toString()), invoke(productPlant#1230880.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#1230880.productionAspect.productPlanningPlants)) null else createexternalrow(if (isnull(productPlant#1230880.productionAspect.productPlanningPlants.mrpType)) null else createexternalrow(invoke(productPlant#1230880.productionAspect.productPlanningPlants.mrpType.internalRefUUID.toString()), invoke(productPlant#1230880.productionAspect.productPlanningPlants.mrpType.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1230880.productionAspect.productPlanningPlants.abcIndicator)) null else createexternalrow(invoke(productPlant#1230880.productionAspect.productPlanningPlants.abcIndicator.internalRefUUID.toString()), invoke(productPlant#1230880.productionAspect.productPlanningPlants.abcIndicator.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1230880.productionAspect.productPlanningPlants.mrpController)) null else createexternalrow(invoke(productPlant#1230880.productionAspect.productPlanningPlants.mrpController.internalRefUUID.toString()), invoke(productPlant#1230880.productionAspect.productPlanningPlants.mrpController.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(java.lang.Double.valueOf(productPlant#1230880.productionAspect.productPlanningPlants.minimumLotSize)), if (isnull(productPlant#1230880.productionAspect.productPlanningPlants.logisticalRoundingProfile)) null else createexternalrow(invoke(productPlant#1230880.productionAspect.productPlanningPlants.logisticalRoundingProfile.internalRefUUID.toString()), invoke(productPlant#1230880.productionAspect.productPlanningPlants.logisticalRoundingProfile.logisticalRoundingProfile.toString()), StructField(internalRefUUID,StringType,true), StructField(logisticalRoundingProfile,StringType,true)), if (isnull(productPlant#1230880.productionAspect.productPlanningPlants.sourceOfSupplyCategory)) null else createexternalrow(invoke(productPlant#1230880.productionAspect.productPlanningPlants.sourceOfSupplyCategory.internalRefUUID.toString()), invoke(productPlant#1230880.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#1230880.salesPlant)) null else createexternalrow(if (isnull(productPlant#1230880.salesPlant.loadingGroup)) null else createexternalrow(invoke(productPlant#1230880.salesPlant.loadingGroup.internalRefUUID.toString()), invoke(productPlant#1230880.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, 164394), if (isnull(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 164394))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 164394).validFrom)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 164394).validTo)), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 164394).isListed)), StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true)), productPlant#1230880.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#1230894.toString()), static_invoke(java.lang.Double.valueOf(outboundUnit#1230911)), static_invoke(DateTimeUtils.toJavaTimestamp(stockDatetime#1231190)), mapobjects(lambdavariable(MapObject, DoubleType, true, 164395), static_invoke(java.lang.Double.valueOf(cast(lambdavariable(MapObject, DoubleType, true, 164395) as double))), stockBatchQuantities#1231191, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, false, 164396), assertnotnull(static_invoke(DateTimeUtils.toJavaTimestamp(cast(lambdavariable(MapObject, TimestampType, false, 164396) as timestamp)))), stockBatchShelfLifeEndDatetimes#1231192, 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, 164397), 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, 164397))) 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, 164397).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, 164397).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, 164397).considerVariance)), mapobjects(lambdavariable(MapObject, DoubleType, false, 164398), assertnotnull(static_invoke(java.lang.Double.valueOf(cast(lambdavariable(MapObject, DoubleType, false, 164398) 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, 164397).demandValues, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, DoubleType, true, 164399), static_invoke(java.lang.Double.valueOf(cast(lambdavariable(MapObject, DoubleType, true, 164399) 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, 164397).demandVariances, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, false, 164400), assertnotnull(static_invoke(DateTimeUtils.toJavaTimestamp(cast(lambdavariable(MapObject, TimestampType, false, 164400) 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, 164397).anchorDatetimes, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, StringType, false, 164401), assertnotnull(invoke(cast(lambdavariable(MapObject, StringType, false, 164401) 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, 164397).anchorWeekdays, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, IntegerType, false, 164402), assertnotnull(static_invoke(java.lang.Integer.valueOf(cast(lambdavariable(MapObject, IntegerType, false, 164402) 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, 164397).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#1231531, 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, 164403), 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, 164403))) 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, 164403).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, 164403).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, 164403).considerVariance)), mapobjects(lambdavariable(MapObject, TimestampType, false, 164404), assertnotnull(static_invoke(DateTimeUtils.toJavaTimestamp(cast(lambdavariable(MapObject, TimestampType, false, 164404) 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, 164403).demandDatetimes, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, DoubleType, false, 164405), assertnotnull(static_invoke(java.lang.Double.valueOf(cast(lambdavariable(MapObject, DoubleType, false, 164405) 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, 164403).demandValues, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, DoubleType, true, 164406), static_invoke(java.lang.Double.valueOf(cast(lambdavariable(MapObject, DoubleType, true, 164406) 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, 164403).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, 164403).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, 164403).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#1231532, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, DoubleType, true, 164407), static_invoke(java.lang.Double.valueOf(cast(lambdavariable(MapObject, DoubleType, true, 164407) as double))), openGoodsMovementQuantities#1232988, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, true, 164408), static_invoke(DateTimeUtils.toJavaTimestamp(cast(lambdavariable(MapObject, TimestampType, true, 164408) as timestamp))), openGoodsMovementAvailabilityDatetimes#1232989, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, false, 164409), assertnotnull(static_invoke(DateTimeUtils.toJavaTimestamp(cast(lambdavariable(MapObject, TimestampType, false, 164409) as timestamp)))), openGoodsMovementShelfLifeEndDatetimes#1232990, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, StructField(configurationValidityDatetime,TimestampType,false), StructField(configurationName,StringType,false), StructField(configurationValue,StringType,false), false, 164410), assertnotnull(if (isnull(lambdavariable(MapObject, StructField(configurationValidityDatetime,TimestampType,false), StructField(configurationName,StringType,false), StructField(configurationValue,StringType,false), false, 164410))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(configurationValidityDatetime,TimestampType,false), StructField(configurationName,StringType,false), StructField(configurationValue,StringType,false), false, 164410).configurationValidityDatetime)), invoke(lambdavariable(MapObject, StructField(configurationValidityDatetime,TimestampType,false), StructField(configurationName,StringType,false), StructField(configurationValue,StringType,false), false, 164410).configurationName.toString()), invoke(lambdavariable(MapObject, StructField(configurationValidityDatetime,TimestampType,false), StructField(configurationName,StringType,false), StructField(configurationValue,StringType,false), false, 164410).configurationValue.toString()), StructField(configurationValidityDatetime,TimestampType,false), StructField(configurationName,StringType,false), StructField(configurationValue,StringType,false))), configuration#1232991, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 164411), if (isnull(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 164411))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 164411).validFrom)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 164411).validTo)), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 164411).isListed)), StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true)), listing#1230813, 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#1230848: 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#1230855: 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#1230862, 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#1230863, assertnotnull(mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 164390), static_invoke(UTF8String.fromString(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 164390), 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#1230864, assertnotnull(mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 164391), static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 164391), 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#1230865, assertnotnull(mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 164392), static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 164392), 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#1230866, 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, 164393), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 164393), 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#1230867]
(2668) Join
Arguments: LeftOuter, ((product#1225622 = product#1230862) AND (plant#1225623 = plant#1230863))
(2669) Project
Arguments: [product#1225622, plant#1225623, orderDateTime#1225624, productPlant#1225636, timezonecode#1225654, outboundUnit#1225681, stockDatetime#1226026, stockBatchQuantities#1226027, stockBatchShelfLifeEndDatetimes#1226028, dayBucketDemands#1226102, pointInTimeDemands#1226103, openGoodsMovementQuantities#1230566, openGoodsMovementAvailabilityDatetimes#1230567, openGoodsMovementShelfLifeEndDatetimes#1230568, configuration#1230669, timeDependentSettingsName#1230864, timeDependentSettingsStartDatetime#1230865, timeDependentSettingsEndDatetime#1230866, timeDependentSettingsValue#1230867]
(2670) Project
Arguments: [product#1225622, plant#1225623, orderDateTime#1225624, productPlant#1225636, timezonecode#1225654, outboundUnit#1225681, stockDatetime#1226026, stockBatchQuantities#1226027, stockBatchShelfLifeEndDatetimes#1226028, dayBucketDemands#1226102, pointInTimeDemands#1226103, openGoodsMovementQuantities#1230566, openGoodsMovementAvailabilityDatetimes#1230567, openGoodsMovementShelfLifeEndDatetimes#1230568, configuration#1230669, CASE WHEN isnotnull(timeDependentSettingsName#1230864) THEN timeDependentSettingsName#1230864 ELSE cast(array() as array<string>) END AS timeDependentSettingsName#1233146, timeDependentSettingsStartDatetime#1230865, timeDependentSettingsEndDatetime#1230866, timeDependentSettingsValue#1230867]
(2671) Project
Arguments: [product#1225622, plant#1225623, orderDateTime#1225624, productPlant#1225636, timezonecode#1225654, outboundUnit#1225681, stockDatetime#1226026, stockBatchQuantities#1226027, stockBatchShelfLifeEndDatetimes#1226028, dayBucketDemands#1226102, pointInTimeDemands#1226103, openGoodsMovementQuantities#1230566, openGoodsMovementAvailabilityDatetimes#1230567, openGoodsMovementShelfLifeEndDatetimes#1230568, configuration#1230669, timeDependentSettingsName#1233146, CASE WHEN isnotnull(timeDependentSettingsStartDatetime#1230865) THEN timeDependentSettingsStartDatetime#1230865 ELSE cast(array() as array<timestamp>) END AS timeDependentSettingsStartDatetime#1233147, timeDependentSettingsEndDatetime#1230866, timeDependentSettingsValue#1230867]
(2672) Project
Arguments: [product#1225622, plant#1225623, orderDateTime#1225624, productPlant#1225636, timezonecode#1225654, outboundUnit#1225681, stockDatetime#1226026, stockBatchQuantities#1226027, stockBatchShelfLifeEndDatetimes#1226028, dayBucketDemands#1226102, pointInTimeDemands#1226103, openGoodsMovementQuantities#1230566, openGoodsMovementAvailabilityDatetimes#1230567, openGoodsMovementShelfLifeEndDatetimes#1230568, configuration#1230669, timeDependentSettingsName#1233146, timeDependentSettingsStartDatetime#1233147, CASE WHEN isnotnull(timeDependentSettingsEndDatetime#1230866) THEN timeDependentSettingsEndDatetime#1230866 ELSE cast(array() as array<timestamp>) END AS timeDependentSettingsEndDatetime#1233148, timeDependentSettingsValue#1230867]
(2673) Project
Arguments: [product#1225622, plant#1225623, orderDateTime#1225624, productPlant#1225636, timezonecode#1225654, outboundUnit#1225681, stockDatetime#1226026, stockBatchQuantities#1226027, stockBatchShelfLifeEndDatetimes#1226028, dayBucketDemands#1226102, pointInTimeDemands#1226103, openGoodsMovementQuantities#1230566, openGoodsMovementAvailabilityDatetimes#1230567, openGoodsMovementShelfLifeEndDatetimes#1230568, configuration#1230669, timeDependentSettingsName#1233146, timeDependentSettingsStartDatetime#1233147, timeDependentSettingsEndDatetime#1233148, CASE WHEN isnotnull(timeDependentSettingsValue#1230867) THEN timeDependentSettingsValue#1230867 ELSE cast(array() as array<double>) END AS timeDependentSettingsValue#1233149]
(2674) Project
Arguments: [product#1225622, plant#1225623, orderDateTime#1225624, timezonecode#1225654, outboundUnit#1225681, stockDatetime#1226026, stockBatchQuantities#1226027, stockBatchShelfLifeEndDatetimes#1226028, dayBucketDemands#1226102, pointInTimeDemands#1226103, openGoodsMovementQuantities#1230566, openGoodsMovementAvailabilityDatetimes#1230567, openGoodsMovementShelfLifeEndDatetimes#1230568, configuration#1230669, timeDependentSettingsName#1233146, timeDependentSettingsStartDatetime#1233147, timeDependentSettingsEndDatetime#1233148, timeDependentSettingsValue#1233149]
(2675) Project
Arguments: [product#1225622, plant#1225623, orderDateTime#1225624, outboundUnit#1225681, stockDatetime#1226026, stockBatchQuantities#1226027, stockBatchShelfLifeEndDatetimes#1226028, dayBucketDemands#1226102, pointInTimeDemands#1226103, openGoodsMovementQuantities#1230566, openGoodsMovementAvailabilityDatetimes#1230567, openGoodsMovementShelfLifeEndDatetimes#1230568, configuration#1230669, timeDependentSettingsName#1233146, timeDependentSettingsStartDatetime#1233147, timeDependentSettingsEndDatetime#1233148, timeDependentSettingsValue#1233149]
(2676) Project
Arguments: [product#1225622, plant#1225623, outboundUnit#1225681, stockDatetime#1226026, stockBatchQuantities#1226027, stockBatchShelfLifeEndDatetimes#1226028, dayBucketDemands#1226102, pointInTimeDemands#1226103, openGoodsMovementQuantities#1230566, openGoodsMovementAvailabilityDatetimes#1230567, openGoodsMovementShelfLifeEndDatetimes#1230568, configuration#1230669, timeDependentSettingsName#1233146, timeDependentSettingsStartDatetime#1233147, timeDependentSettingsEndDatetime#1233148, timeDependentSettingsValue#1233149]