== Physical Plan ==
Execute SaveIntoDataSourceCommand (1)
+- SaveIntoDataSourceCommand (2)
+- Project (2271)
+- Project (2270)
+- Project (2269)
+- Project (2268)
+- Project (2267)
+- Project (2266)
+- Project (2265)
+- Join (2264)
:- Project (1129)
: +- Project (1128)
: +- Project (1127)
: +- Join (1126)
: :- Project (355)
: : +- Project (354)
: : +- Join (353)
: : :- Project (170)
: : : +- Project (169)
: : : +- Project (168)
: : : +- Project (167)
: : : +- Project (166)
: : : +- Project (165)
: : : +- Join (164)
: : : :- Project (22)
: : : : +- Project (21)
: : : : +- Project (20)
: : : : +- Project (19)
: : : : +- Generate (18)
: : : : +- Project (17)
: : : : +- Generate (16)
: : : : +- Project (15)
: : : : +- Join (14)
: : : : :- Project (11)
: : : : : +- Join (10)
: : : : : :- Project (5)
: : : : : : +- RepartitionByExpression (4)
: : : : : : +- LogicalRelation (3)
: : : : : +- Project (9)
: : : : : +- Project (8)
: : : : : +- Repartition (7)
: : : : : +- LogicalRelation (6)
: : : : +- Repartition (13)
: : : : +- LogicalRelation (12)
: : : +- Project (163)
: : : +- Aggregate (162)
: : : +- Project (161)
: : : +- Join (160)
: : : :- Project (90)
: : : : +- Filter (89)
: : : : +- Join (88)
: : : : :- Filter (67)
: : : : : +- Project (66)
: : : : : +- Project (65)
: : : : : +- Generate (64)
: : : : : +- Project (63)
: : : : : +- Aggregate (62)
: : : : : +- Project (61)
: : : : : +- Generate (60)
: : : : : +- Join (59)
: : : : : :- Repartition (24)
: : : : : : +- LogicalRelation (23)
: : : : : +- Project (58)
: : : : : +- Join (57)
: : : : : :- Project (34)
: : : : : : +- Project (33)
: : : : : : +- Generate (32)
: : : : : : +- Project (31)
: : : : : : +- Generate (30)
: : : : : : +- Project (29)
: : : : : : +- Project (28)
: : : : : : +- Filter (27)
: : : : : : +- Repartition (26)
: : : : : : +- LogicalRelation (25)
: : : : : +- Deduplicate (56)
: : : : : +- Project (55)
: : : : : +- Project (54)
: : : : : +- Project (53)
: : : : : +- Project (52)
: : : : : +- Project (51)
: : : : : +- Generate (50)
: : : : : +- Project (49)
: : : : : +- Generate (48)
: : : : : +- Project (47)
: : : : : +- Join (46)
: : : : : :- Project (43)
: : : : : : +- Join (42)
: : : : : : :- Project (37)
: : : : : : : +- RepartitionByExpression (36)
: : : : : : : +- LogicalRelation (35)
: : : : : : +- Project (41)
: : : : : : +- Project (40)
: : : : : : +- Repartition (39)
: : : : : : +- LogicalRelation (38)
: : : : : +- Repartition (45)
: : : : : +- LogicalRelation (44)
: : : : +- Project (87)
: : : : +- Project (86)
: : : : +- Project (85)
: : : : +- Project (84)
: : : : +- Generate (83)
: : : : +- Project (82)
: : : : +- Generate (81)
: : : : +- Project (80)
: : : : +- Join (79)
: : : : :- Project (76)
: : : : : +- Join (75)
: : : : : :- Project (70)
: : : : : : +- RepartitionByExpression (69)
: : : : : : +- LogicalRelation (68)
: : : : : +- Project (74)
: : : : : +- Project (73)
: : : : : +- Repartition (72)
: : : : : +- LogicalRelation (71)
: : : : +- Repartition (78)
: : : : +- LogicalRelation (77)
: : : +- Aggregate (159)
: : : +- Project (158)
: : : +- Filter (157)
: : : +- Join (156)
: : : :- Filter (135)
: : : : +- Project (134)
: : : : +- Project (133)
: : : : +- Generate (132)
: : : : +- Project (131)
: : : : +- Aggregate (130)
: : : : +- Project (129)
: : : : +- Generate (128)
: : : : +- Join (127)
: : : : :- Repartition (92)
: : : : : +- LogicalRelation (91)
: : : : +- Project (126)
: : : : +- Join (125)
: : : : :- Project (102)
: : : : : +- Project (101)
: : : : : +- Generate (100)
: : : : : +- Project (99)
: : : : : +- Generate (98)
: : : : : +- Project (97)
: : : : : +- Project (96)
: : : : : +- Filter (95)
: : : : : +- Repartition (94)
: : : : : +- LogicalRelation (93)
: : : : +- Deduplicate (124)
: : : : +- Project (123)
: : : : +- Project (122)
: : : : +- Project (121)
: : : : +- Project (120)
: : : : +- Project (119)
: : : : +- Generate (118)
: : : : +- Project (117)
: : : : +- Generate (116)
: : : : +- Project (115)
: : : : +- Join (114)
: : : : :- Project (111)
: : : : : +- Join (110)
: : : : : :- Project (105)
: : : : : : +- RepartitionByExpression (104)
: : : : : : +- LogicalRelation (103)
: : : : : +- Project (109)
: : : : : +- Project (108)
: : : : : +- Repartition (107)
: : : : : +- LogicalRelation (106)
: : : : +- Repartition (113)
: : : : +- LogicalRelation (112)
: : : +- Project (155)
: : : +- Project (154)
: : : +- Project (153)
: : : +- Project (152)
: : : +- Generate (151)
: : : +- Project (150)
: : : +- Generate (149)
: : : +- Project (148)
: : : +- Join (147)
: : : :- Project (144)
: : : : +- Join (143)
: : : : :- Project (138)
: : : : : +- RepartitionByExpression (137)
: : : : : +- LogicalRelation (136)
: : : : +- Project (142)
: : : : +- Project (141)
: : : : +- Repartition (140)
: : : : +- LogicalRelation (139)
: : : +- Repartition (146)
: : : +- LogicalRelation (145)
: : +- SerializeFromObject (352)
: : +- MapElements (351)
: : +- DeserializeToObject (350)
: : +- Project (349)
: : +- Project (348)
: : +- Join (347)
: : :- SubqueryAlias (343)
: : : +- Aggregate (342)
: : : +- Project (341)
: : : +- Join (340)
: : : :- Project (338)
: : : : +- Project (337)
: : : : +- Project (336)
: : : : +- Project (335)
: : : : +- Project (334)
: : : : +- Project (333)
: : : : +- Join (332)
: : : : :- Project (190)
: : : : : +- Project (189)
: : : : : +- Project (188)
: : : : : +- Project (187)
: : : : : +- Generate (186)
: : : : : +- Project (185)
: : : : : +- Generate (184)
: : : : : +- Project (183)
: : : : : +- Join (182)
: : : : : :- Project (179)
: : : : : : +- Join (178)
: : : : : : :- Project (173)
: : : : : : : +- RepartitionByExpression (172)
: : : : : : : +- LogicalRelation (171)
: : : : : : +- Project (177)
: : : : : : +- Project (176)
: : : : : : +- Repartition (175)
: : : : : : +- LogicalRelation (174)
: : : : : +- Repartition (181)
: : : : : +- LogicalRelation (180)
: : : : +- Project (331)
: : : : +- Aggregate (330)
: : : : +- Project (329)
: : : : +- Join (328)
: : : : :- Project (258)
: : : : : +- Filter (257)
: : : : : +- Join (256)
: : : : : :- Filter (235)
: : : : : : +- Project (234)
: : : : : : +- Project (233)
: : : : : : +- Generate (232)
: : : : : : +- Project (231)
: : : : : : +- Aggregate (230)
: : : : : : +- Project (229)
: : : : : : +- Generate (228)
: : : : : : +- Join (227)
: : : : : : :- Repartition (192)
: : : : : : : +- LogicalRelation (191)
: : : : : : +- Project (226)
: : : : : : +- Join (225)
: : : : : : :- Project (202)
: : : : : : : +- Project (201)
: : : : : : : +- Generate (200)
: : : : : : : +- Project (199)
: : : : : : : +- Generate (198)
: : : : : : : +- Project (197)
: : : : : : : +- Project (196)
: : : : : : : +- Filter (195)
: : : : : : : +- Repartition (194)
: : : : : : : +- LogicalRelation (193)
: : : : : : +- Deduplicate (224)
: : : : : : +- Project (223)
: : : : : : +- Project (222)
: : : : : : +- Project (221)
: : : : : : +- Project (220)
: : : : : : +- Project (219)
: : : : : : +- Generate (218)
: : : : : : +- Project (217)
: : : : : : +- Generate (216)
: : : : : : +- Project (215)
: : : : : : +- Join (214)
: : : : : : :- Project (211)
: : : : : : : +- Join (210)
: : : : : : : :- Project (205)
: : : : : : : : +- RepartitionByExpression (204)
: : : : : : : : +- LogicalRelation (203)
: : : : : : : +- Project (209)
: : : : : : : +- Project (208)
: : : : : : : +- Repartition (207)
: : : : : : : +- LogicalRelation (206)
: : : : : : +- Repartition (213)
: : : : : : +- LogicalRelation (212)
: : : : : +- Project (255)
: : : : : +- Project (254)
: : : : : +- Project (253)
: : : : : +- Project (252)
: : : : : +- Generate (251)
: : : : : +- Project (250)
: : : : : +- Generate (249)
: : : : : +- Project (248)
: : : : : +- Join (247)
: : : : : :- Project (244)
: : : : : : +- Join (243)
: : : : : : :- Project (238)
: : : : : : : +- RepartitionByExpression (237)
: : : : : : : +- LogicalRelation (236)
: : : : : : +- Project (242)
: : : : : : +- Project (241)
: : : : : : +- Repartition (240)
: : : : : : +- LogicalRelation (239)
: : : : : +- Repartition (246)
: : : : : +- LogicalRelation (245)
: : : : +- Aggregate (327)
: : : : +- Project (326)
: : : : +- Filter (325)
: : : : +- Join (324)
: : : : :- Filter (303)
: : : : : +- Project (302)
: : : : : +- Project (301)
: : : : : +- Generate (300)
: : : : : +- Project (299)
: : : : : +- Aggregate (298)
: : : : : +- Project (297)
: : : : : +- Generate (296)
: : : : : +- Join (295)
: : : : : :- Repartition (260)
: : : : : : +- LogicalRelation (259)
: : : : : +- Project (294)
: : : : : +- Join (293)
: : : : : :- Project (270)
: : : : : : +- Project (269)
: : : : : : +- Generate (268)
: : : : : : +- Project (267)
: : : : : : +- Generate (266)
: : : : : : +- Project (265)
: : : : : : +- Project (264)
: : : : : : +- Filter (263)
: : : : : : +- Repartition (262)
: : : : : : +- LogicalRelation (261)
: : : : : +- Deduplicate (292)
: : : : : +- Project (291)
: : : : : +- Project (290)
: : : : : +- Project (289)
: : : : : +- Project (288)
: : : : : +- Project (287)
: : : : : +- Generate (286)
: : : : : +- Project (285)
: : : : : +- Generate (284)
: : : : : +- Project (283)
: : : : : +- Join (282)
: : : : : :- Project (279)
: : : : : : +- Join (278)
: : : : : : :- Project (273)
: : : : : : : +- RepartitionByExpression (272)
: : : : : : : +- LogicalRelation (271)
: : : : : : +- Project (277)
: : : : : : +- Project (276)
: : : : : : +- Repartition (275)
: : : : : : +- LogicalRelation (274)
: : : : : +- Repartition (281)
: : : : : +- LogicalRelation (280)
: : : : +- Project (323)
: : : : +- Project (322)
: : : : +- Project (321)
: : : : +- Project (320)
: : : : +- Generate (319)
: : : : +- Project (318)
: : : : +- Generate (317)
: : : : +- Project (316)
: : : : +- Join (315)
: : : : :- Project (312)
: : : : : +- Join (311)
: : : : : :- Project (306)
: : : : : : +- RepartitionByExpression (305)
: : : : : : +- LogicalRelation (304)
: : : : : +- Project (310)
: : : : : +- Project (309)
: : : : : +- Repartition (308)
: : : : : +- LogicalRelation (307)
: : : : +- Repartition (314)
: : : : +- LogicalRelation (313)
: : : +- LogicalRelation (339)
: : +- Project (346)
: : +- Repartition (345)
: : +- LogicalRelation (344)
: +- Aggregate (1125)
: +- Union (1124)
: :- Filter (759)
: : +- Aggregate (758)
: : +- Project (757)
: : +- Project (756)
: : +- Window (755)
: : +- Project (754)
: : +- Project (753)
: : +- Project (752)
: : +- Join (751)
: : :- Project (745)
: : : +- Join (744)
: : : :- Project (708)
: : : : +- Project (707)
: : : : +- Join (706)
: : : : :- Project (523)
: : : : : +- Project (522)
: : : : : +- Project (521)
: : : : : +- Project (520)
: : : : : +- Project (519)
: : : : : +- Project (518)
: : : : : +- Join (517)
: : : : : :- Project (375)
: : : : : : +- Project (374)
: : : : : : +- Project (373)
: : : : : : +- Project (372)
: : : : : : +- Generate (371)
: : : : : : +- Project (370)
: : : : : : +- Generate (369)
: : : : : : +- Project (368)
: : : : : : +- Join (367)
: : : : : : :- Project (364)
: : : : : : : +- Join (363)
: : : : : : : :- Project (358)
: : : : : : : : +- RepartitionByExpression (357)
: : : : : : : : +- LogicalRelation (356)
: : : : : : : +- Project (362)
: : : : : : : +- Project (361)
: : : : : : : +- Repartition (360)
: : : : : : : +- LogicalRelation (359)
: : : : : : +- Repartition (366)
: : : : : : +- LogicalRelation (365)
: : : : : +- Project (516)
: : : : : +- Aggregate (515)
: : : : : +- Project (514)
: : : : : +- Join (513)
: : : : : :- Project (443)
: : : : : : +- Filter (442)
: : : : : : +- Join (441)
: : : : : : :- Filter (420)
: : : : : : : +- Project (419)
: : : : : : : +- Project (418)
: : : : : : : +- Generate (417)
: : : : : : : +- Project (416)
: : : : : : : +- Aggregate (415)
: : : : : : : +- Project (414)
: : : : : : : +- Generate (413)
: : : : : : : +- Join (412)
: : : : : : : :- Repartition (377)
: : : : : : : : +- LogicalRelation (376)
: : : : : : : +- Project (411)
: : : : : : : +- Join (410)
: : : : : : : :- Project (387)
: : : : : : : : +- Project (386)
: : : : : : : : +- Generate (385)
: : : : : : : : +- Project (384)
: : : : : : : : +- Generate (383)
: : : : : : : : +- Project (382)
: : : : : : : : +- Project (381)
: : : : : : : : +- Filter (380)
: : : : : : : : +- Repartition (379)
: : : : : : : : +- LogicalRelation (378)
: : : : : : : +- Deduplicate (409)
: : : : : : : +- Project (408)
: : : : : : : +- Project (407)
: : : : : : : +- Project (406)
: : : : : : : +- Project (405)
: : : : : : : +- Project (404)
: : : : : : : +- Generate (403)
: : : : : : : +- Project (402)
: : : : : : : +- Generate (401)
: : : : : : : +- Project (400)
: : : : : : : +- Join (399)
: : : : : : : :- Project (396)
: : : : : : : : +- Join (395)
: : : : : : : : :- Project (390)
: : : : : : : : : +- RepartitionByExpression (389)
: : : : : : : : : +- LogicalRelation (388)
: : : : : : : : +- Project (394)
: : : : : : : : +- Project (393)
: : : : : : : : +- Repartition (392)
: : : : : : : : +- LogicalRelation (391)
: : : : : : : +- Repartition (398)
: : : : : : : +- LogicalRelation (397)
: : : : : : +- Project (440)
: : : : : : +- Project (439)
: : : : : : +- Project (438)
: : : : : : +- Project (437)
: : : : : : +- Generate (436)
: : : : : : +- Project (435)
: : : : : : +- Generate (434)
: : : : : : +- Project (433)
: : : : : : +- Join (432)
: : : : : : :- Project (429)
: : : : : : : +- Join (428)
: : : : : : : :- Project (423)
: : : : : : : : +- RepartitionByExpression (422)
: : : : : : : : +- LogicalRelation (421)
: : : : : : : +- Project (427)
: : : : : : : +- Project (426)
: : : : : : : +- Repartition (425)
: : : : : : : +- LogicalRelation (424)
: : : : : : +- Repartition (431)
: : : : : : +- LogicalRelation (430)
: : : : : +- Aggregate (512)
: : : : : +- Project (511)
: : : : : +- Filter (510)
: : : : : +- Join (509)
: : : : : :- Filter (488)
: : : : : : +- Project (487)
: : : : : : +- Project (486)
: : : : : : +- Generate (485)
: : : : : : +- Project (484)
: : : : : : +- Aggregate (483)
: : : : : : +- Project (482)
: : : : : : +- Generate (481)
: : : : : : +- Join (480)
: : : : : : :- Repartition (445)
: : : : : : : +- LogicalRelation (444)
: : : : : : +- Project (479)
: : : : : : +- Join (478)
: : : : : : :- Project (455)
: : : : : : : +- Project (454)
: : : : : : : +- Generate (453)
: : : : : : : +- Project (452)
: : : : : : : +- Generate (451)
: : : : : : : +- Project (450)
: : : : : : : +- Project (449)
: : : : : : : +- Filter (448)
: : : : : : : +- Repartition (447)
: : : : : : : +- LogicalRelation (446)
: : : : : : +- Deduplicate (477)
: : : : : : +- Project (476)
: : : : : : +- Project (475)
: : : : : : +- Project (474)
: : : : : : +- Project (473)
: : : : : : +- Project (472)
: : : : : : +- Generate (471)
: : : : : : +- Project (470)
: : : : : : +- Generate (469)
: : : : : : +- Project (468)
: : : : : : +- Join (467)
: : : : : : :- Project (464)
: : : : : : : +- Join (463)
: : : : : : : :- Project (458)
: : : : : : : : +- RepartitionByExpression (457)
: : : : : : : : +- LogicalRelation (456)
: : : : : : : +- Project (462)
: : : : : : : +- Project (461)
: : : : : : : +- Repartition (460)
: : : : : : : +- LogicalRelation (459)
: : : : : : +- Repartition (466)
: : : : : : +- LogicalRelation (465)
: : : : : +- Project (508)
: : : : : +- Project (507)
: : : : : +- Project (506)
: : : : : +- Project (505)
: : : : : +- Generate (504)
: : : : : +- Project (503)
: : : : : +- Generate (502)
: : : : : +- Project (501)
: : : : : +- Join (500)
: : : : : :- Project (497)
: : : : : : +- Join (496)
: : : : : : :- Project (491)
: : : : : : : +- RepartitionByExpression (490)
: : : : : : : +- LogicalRelation (489)
: : : : : : +- Project (495)
: : : : : : +- Project (494)
: : : : : : +- Repartition (493)
: : : : : : +- LogicalRelation (492)
: : : : : +- Repartition (499)
: : : : : +- LogicalRelation (498)
: : : : +- SerializeFromObject (705)
: : : : +- MapElements (704)
: : : : +- DeserializeToObject (703)
: : : : +- Project (702)
: : : : +- Project (701)
: : : : +- Join (700)
: : : : :- SubqueryAlias (696)
: : : : : +- Aggregate (695)
: : : : : +- Project (694)
: : : : : +- Join (693)
: : : : : :- Project (691)
: : : : : : +- Project (690)
: : : : : : +- Project (689)
: : : : : : +- Project (688)
: : : : : : +- Project (687)
: : : : : : +- Project (686)
: : : : : : +- Join (685)
: : : : : : :- Project (543)
: : : : : : : +- Project (542)
: : : : : : : +- Project (541)
: : : : : : : +- Project (540)
: : : : : : : +- Generate (539)
: : : : : : : +- Project (538)
: : : : : : : +- Generate (537)
: : : : : : : +- Project (536)
: : : : : : : +- Join (535)
: : : : : : : :- Project (532)
: : : : : : : : +- Join (531)
: : : : : : : : :- Project (526)
: : : : : : : : : +- RepartitionByExpression (525)
: : : : : : : : : +- LogicalRelation (524)
: : : : : : : : +- Project (530)
: : : : : : : : +- Project (529)
: : : : : : : : +- Repartition (528)
: : : : : : : : +- LogicalRelation (527)
: : : : : : : +- Repartition (534)
: : : : : : : +- LogicalRelation (533)
: : : : : : +- Project (684)
: : : : : : +- Aggregate (683)
: : : : : : +- Project (682)
: : : : : : +- Join (681)
: : : : : : :- Project (611)
: : : : : : : +- Filter (610)
: : : : : : : +- Join (609)
: : : : : : : :- Filter (588)
: : : : : : : : +- Project (587)
: : : : : : : : +- Project (586)
: : : : : : : : +- Generate (585)
: : : : : : : : +- Project (584)
: : : : : : : : +- Aggregate (583)
: : : : : : : : +- Project (582)
: : : : : : : : +- Generate (581)
: : : : : : : : +- Join (580)
: : : : : : : : :- Repartition (545)
: : : : : : : : : +- LogicalRelation (544)
: : : : : : : : +- Project (579)
: : : : : : : : +- Join (578)
: : : : : : : : :- Project (555)
: : : : : : : : : +- Project (554)
: : : : : : : : : +- Generate (553)
: : : : : : : : : +- Project (552)
: : : : : : : : : +- Generate (551)
: : : : : : : : : +- Project (550)
: : : : : : : : : +- Project (549)
: : : : : : : : : +- Filter (548)
: : : : : : : : : +- Repartition (547)
: : : : : : : : : +- LogicalRelation (546)
: : : : : : : : +- Deduplicate (577)
: : : : : : : : +- Project (576)
: : : : : : : : +- Project (575)
: : : : : : : : +- Project (574)
: : : : : : : : +- Project (573)
: : : : : : : : +- Project (572)
: : : : : : : : +- Generate (571)
: : : : : : : : +- Project (570)
: : : : : : : : +- Generate (569)
: : : : : : : : +- Project (568)
: : : : : : : : +- Join (567)
: : : : : : : : :- Project (564)
: : : : : : : : : +- Join (563)
: : : : : : : : : :- Project (558)
: : : : : : : : : : +- RepartitionByExpression (557)
: : : : : : : : : : +- LogicalRelation (556)
: : : : : : : : : +- Project (562)
: : : : : : : : : +- Project (561)
: : : : : : : : : +- Repartition (560)
: : : : : : : : : +- LogicalRelation (559)
: : : : : : : : +- Repartition (566)
: : : : : : : : +- LogicalRelation (565)
: : : : : : : +- Project (608)
: : : : : : : +- Project (607)
: : : : : : : +- Project (606)
: : : : : : : +- Project (605)
: : : : : : : +- Generate (604)
: : : : : : : +- Project (603)
: : : : : : : +- Generate (602)
: : : : : : : +- Project (601)
: : : : : : : +- Join (600)
: : : : : : : :- Project (597)
: : : : : : : : +- Join (596)
: : : : : : : : :- Project (591)
: : : : : : : : : +- RepartitionByExpression (590)
: : : : : : : : : +- LogicalRelation (589)
: : : : : : : : +- Project (595)
: : : : : : : : +- Project (594)
: : : : : : : : +- Repartition (593)
: : : : : : : : +- LogicalRelation (592)
: : : : : : : +- Repartition (599)
: : : : : : : +- LogicalRelation (598)
: : : : : : +- Aggregate (680)
: : : : : : +- Project (679)
: : : : : : +- Filter (678)
: : : : : : +- Join (677)
: : : : : : :- Filter (656)
: : : : : : : +- Project (655)
: : : : : : : +- Project (654)
: : : : : : : +- Generate (653)
: : : : : : : +- Project (652)
: : : : : : : +- Aggregate (651)
: : : : : : : +- Project (650)
: : : : : : : +- Generate (649)
: : : : : : : +- Join (648)
: : : : : : : :- Repartition (613)
: : : : : : : : +- LogicalRelation (612)
: : : : : : : +- Project (647)
: : : : : : : +- Join (646)
: : : : : : : :- Project (623)
: : : : : : : : +- Project (622)
: : : : : : : : +- Generate (621)
: : : : : : : : +- Project (620)
: : : : : : : : +- Generate (619)
: : : : : : : : +- Project (618)
: : : : : : : : +- Project (617)
: : : : : : : : +- Filter (616)
: : : : : : : : +- Repartition (615)
: : : : : : : : +- LogicalRelation (614)
: : : : : : : +- Deduplicate (645)
: : : : : : : +- Project (644)
: : : : : : : +- Project (643)
: : : : : : : +- Project (642)
: : : : : : : +- Project (641)
: : : : : : : +- Project (640)
: : : : : : : +- Generate (639)
: : : : : : : +- Project (638)
: : : : : : : +- Generate (637)
: : : : : : : +- Project (636)
: : : : : : : +- Join (635)
: : : : : : : :- Project (632)
: : : : : : : : +- Join (631)
: : : : : : : : :- Project (626)
: : : : : : : : : +- RepartitionByExpression (625)
: : : : : : : : : +- LogicalRelation (624)
: : : : : : : : +- Project (630)
: : : : : : : : +- Project (629)
: : : : : : : : +- Repartition (628)
: : : : : : : : +- LogicalRelation (627)
: : : : : : : +- Repartition (634)
: : : : : : : +- LogicalRelation (633)
: : : : : : +- Project (676)
: : : : : : +- Project (675)
: : : : : : +- Project (674)
: : : : : : +- Project (673)
: : : : : : +- Generate (672)
: : : : : : +- Project (671)
: : : : : : +- Generate (670)
: : : : : : +- Project (669)
: : : : : : +- Join (668)
: : : : : : :- Project (665)
: : : : : : : +- Join (664)
: : : : : : : :- Project (659)
: : : : : : : : +- RepartitionByExpression (658)
: : : : : : : : +- LogicalRelation (657)
: : : : : : : +- Project (663)
: : : : : : : +- Project (662)
: : : : : : : +- Repartition (661)
: : : : : : : +- LogicalRelation (660)
: : : : : : +- Repartition (667)
: : : : : : +- LogicalRelation (666)
: : : : : +- LogicalRelation (692)
: : : : +- Project (699)
: : : : +- Repartition (698)
: : : : +- LogicalRelation (697)
: : : +- Project (743)
: : : +- Project (742)
: : : +- Join (741)
: : : :- Project (718)
: : : : +- Project (717)
: : : : +- Generate (716)
: : : : +- Project (715)
: : : : +- Generate (714)
: : : : +- Project (713)
: : : : +- Project (712)
: : : : +- Filter (711)
: : : : +- Repartition (710)
: : : : +- LogicalRelation (709)
: : : +- Deduplicate (740)
: : : +- Project (739)
: : : +- Project (738)
: : : +- Project (737)
: : : +- Project (736)
: : : +- Project (735)
: : : +- Generate (734)
: : : +- Project (733)
: : : +- Generate (732)
: : : +- Project (731)
: : : +- Join (730)
: : : :- Project (727)
: : : : +- Join (726)
: : : : :- Project (721)
: : : : : +- RepartitionByExpression (720)
: : : : : +- LogicalRelation (719)
: : : : +- Project (725)
: : : : +- Project (724)
: : : : +- Repartition (723)
: : : : +- LogicalRelation (722)
: : : +- Repartition (729)
: : : +- LogicalRelation (728)
: : +- Project (750)
: : +- Filter (749)
: : +- Project (748)
: : +- Generate (747)
: : +- LocalRelation (746)
: +- Filter (1123)
: +- Aggregate (1122)
: +- Project (1121)
: +- Project (1120)
: +- Project (1119)
: +- Join (1118)
: :- Project (1112)
: : +- Project (1111)
: : +- Join (1110)
: : :- Project (927)
: : : +- Project (926)
: : : +- Project (925)
: : : +- Project (924)
: : : +- Project (923)
: : : +- Project (922)
: : : +- Join (921)
: : : :- Project (779)
: : : : +- Project (778)
: : : : +- Project (777)
: : : : +- Project (776)
: : : : +- Generate (775)
: : : : +- Project (774)
: : : : +- Generate (773)
: : : : +- Project (772)
: : : : +- Join (771)
: : : : :- Project (768)
: : : : : +- Join (767)
: : : : : :- Project (762)
: : : : : : +- RepartitionByExpression (761)
: : : : : : +- LogicalRelation (760)
: : : : : +- Project (766)
: : : : : +- Project (765)
: : : : : +- Repartition (764)
: : : : : +- LogicalRelation (763)
: : : : +- Repartition (770)
: : : : +- LogicalRelation (769)
: : : +- Project (920)
: : : +- Aggregate (919)
: : : +- Project (918)
: : : +- Join (917)
: : : :- Project (847)
: : : : +- Filter (846)
: : : : +- Join (845)
: : : : :- Filter (824)
: : : : : +- Project (823)
: : : : : +- Project (822)
: : : : : +- Generate (821)
: : : : : +- Project (820)
: : : : : +- Aggregate (819)
: : : : : +- Project (818)
: : : : : +- Generate (817)
: : : : : +- Join (816)
: : : : : :- Repartition (781)
: : : : : : +- LogicalRelation (780)
: : : : : +- Project (815)
: : : : : +- Join (814)
: : : : : :- Project (791)
: : : : : : +- Project (790)
: : : : : : +- Generate (789)
: : : : : : +- Project (788)
: : : : : : +- Generate (787)
: : : : : : +- Project (786)
: : : : : : +- Project (785)
: : : : : : +- Filter (784)
: : : : : : +- Repartition (783)
: : : : : : +- LogicalRelation (782)
: : : : : +- Deduplicate (813)
: : : : : +- Project (812)
: : : : : +- Project (811)
: : : : : +- Project (810)
: : : : : +- Project (809)
: : : : : +- Project (808)
: : : : : +- Generate (807)
: : : : : +- Project (806)
: : : : : +- Generate (805)
: : : : : +- Project (804)
: : : : : +- Join (803)
: : : : : :- Project (800)
: : : : : : +- Join (799)
: : : : : : :- Project (794)
: : : : : : : +- RepartitionByExpression (793)
: : : : : : : +- LogicalRelation (792)
: : : : : : +- Project (798)
: : : : : : +- Project (797)
: : : : : : +- Repartition (796)
: : : : : : +- LogicalRelation (795)
: : : : : +- Repartition (802)
: : : : : +- LogicalRelation (801)
: : : : +- Project (844)
: : : : +- Project (843)
: : : : +- Project (842)
: : : : +- Project (841)
: : : : +- Generate (840)
: : : : +- Project (839)
: : : : +- Generate (838)
: : : : +- Project (837)
: : : : +- Join (836)
: : : : :- Project (833)
: : : : : +- Join (832)
: : : : : :- Project (827)
: : : : : : +- RepartitionByExpression (826)
: : : : : : +- LogicalRelation (825)
: : : : : +- Project (831)
: : : : : +- Project (830)
: : : : : +- Repartition (829)
: : : : : +- LogicalRelation (828)
: : : : +- Repartition (835)
: : : : +- LogicalRelation (834)
: : : +- Aggregate (916)
: : : +- Project (915)
: : : +- Filter (914)
: : : +- Join (913)
: : : :- Filter (892)
: : : : +- Project (891)
: : : : +- Project (890)
: : : : +- Generate (889)
: : : : +- Project (888)
: : : : +- Aggregate (887)
: : : : +- Project (886)
: : : : +- Generate (885)
: : : : +- Join (884)
: : : : :- Repartition (849)
: : : : : +- LogicalRelation (848)
: : : : +- Project (883)
: : : : +- Join (882)
: : : : :- Project (859)
: : : : : +- Project (858)
: : : : : +- Generate (857)
: : : : : +- Project (856)
: : : : : +- Generate (855)
: : : : : +- Project (854)
: : : : : +- Project (853)
: : : : : +- Filter (852)
: : : : : +- Repartition (851)
: : : : : +- LogicalRelation (850)
: : : : +- Deduplicate (881)
: : : : +- Project (880)
: : : : +- Project (879)
: : : : +- Project (878)
: : : : +- Project (877)
: : : : +- Project (876)
: : : : +- Generate (875)
: : : : +- Project (874)
: : : : +- Generate (873)
: : : : +- Project (872)
: : : : +- Join (871)
: : : : :- Project (868)
: : : : : +- Join (867)
: : : : : :- Project (862)
: : : : : : +- RepartitionByExpression (861)
: : : : : : +- LogicalRelation (860)
: : : : : +- Project (866)
: : : : : +- Project (865)
: : : : : +- Repartition (864)
: : : : : +- LogicalRelation (863)
: : : : +- Repartition (870)
: : : : +- LogicalRelation (869)
: : : +- Project (912)
: : : +- Project (911)
: : : +- Project (910)
: : : +- Project (909)
: : : +- Generate (908)
: : : +- Project (907)
: : : +- Generate (906)
: : : +- Project (905)
: : : +- Join (904)
: : : :- Project (901)
: : : : +- Join (900)
: : : : :- Project (895)
: : : : : +- RepartitionByExpression (894)
: : : : : +- LogicalRelation (893)
: : : : +- Project (899)
: : : : +- Project (898)
: : : : +- Repartition (897)
: : : : +- LogicalRelation (896)
: : : +- Repartition (903)
: : : +- LogicalRelation (902)
: : +- SerializeFromObject (1109)
: : +- MapElements (1108)
: : +- DeserializeToObject (1107)
: : +- Project (1106)
: : +- Project (1105)
: : +- Join (1104)
: : :- SubqueryAlias (1100)
: : : +- Aggregate (1099)
: : : +- Project (1098)
: : : +- Join (1097)
: : : :- Project (1095)
: : : : +- Project (1094)
: : : : +- Project (1093)
: : : : +- Project (1092)
: : : : +- Project (1091)
: : : : +- Project (1090)
: : : : +- Join (1089)
: : : : :- Project (947)
: : : : : +- Project (946)
: : : : : +- Project (945)
: : : : : +- Project (944)
: : : : : +- Generate (943)
: : : : : +- Project (942)
: : : : : +- Generate (941)
: : : : : +- Project (940)
: : : : : +- Join (939)
: : : : : :- Project (936)
: : : : : : +- Join (935)
: : : : : : :- Project (930)
: : : : : : : +- RepartitionByExpression (929)
: : : : : : : +- LogicalRelation (928)
: : : : : : +- Project (934)
: : : : : : +- Project (933)
: : : : : : +- Repartition (932)
: : : : : : +- LogicalRelation (931)
: : : : : +- Repartition (938)
: : : : : +- LogicalRelation (937)
: : : : +- Project (1088)
: : : : +- Aggregate (1087)
: : : : +- Project (1086)
: : : : +- Join (1085)
: : : : :- Project (1015)
: : : : : +- Filter (1014)
: : : : : +- Join (1013)
: : : : : :- Filter (992)
: : : : : : +- Project (991)
: : : : : : +- Project (990)
: : : : : : +- Generate (989)
: : : : : : +- Project (988)
: : : : : : +- Aggregate (987)
: : : : : : +- Project (986)
: : : : : : +- Generate (985)
: : : : : : +- Join (984)
: : : : : : :- Repartition (949)
: : : : : : : +- LogicalRelation (948)
: : : : : : +- Project (983)
: : : : : : +- Join (982)
: : : : : : :- Project (959)
: : : : : : : +- Project (958)
: : : : : : : +- Generate (957)
: : : : : : : +- Project (956)
: : : : : : : +- Generate (955)
: : : : : : : +- Project (954)
: : : : : : : +- Project (953)
: : : : : : : +- Filter (952)
: : : : : : : +- Repartition (951)
: : : : : : : +- LogicalRelation (950)
: : : : : : +- Deduplicate (981)
: : : : : : +- Project (980)
: : : : : : +- Project (979)
: : : : : : +- Project (978)
: : : : : : +- Project (977)
: : : : : : +- Project (976)
: : : : : : +- Generate (975)
: : : : : : +- Project (974)
: : : : : : +- Generate (973)
: : : : : : +- Project (972)
: : : : : : +- Join (971)
: : : : : : :- Project (968)
: : : : : : : +- Join (967)
: : : : : : : :- Project (962)
: : : : : : : : +- RepartitionByExpression (961)
: : : : : : : : +- LogicalRelation (960)
: : : : : : : +- Project (966)
: : : : : : : +- Project (965)
: : : : : : : +- Repartition (964)
: : : : : : : +- LogicalRelation (963)
: : : : : : +- Repartition (970)
: : : : : : +- LogicalRelation (969)
: : : : : +- Project (1012)
: : : : : +- Project (1011)
: : : : : +- Project (1010)
: : : : : +- Project (1009)
: : : : : +- Generate (1008)
: : : : : +- Project (1007)
: : : : : +- Generate (1006)
: : : : : +- Project (1005)
: : : : : +- Join (1004)
: : : : : :- Project (1001)
: : : : : : +- Join (1000)
: : : : : : :- Project (995)
: : : : : : : +- RepartitionByExpression (994)
: : : : : : : +- LogicalRelation (993)
: : : : : : +- Project (999)
: : : : : : +- Project (998)
: : : : : : +- Repartition (997)
: : : : : : +- LogicalRelation (996)
: : : : : +- Repartition (1003)
: : : : : +- LogicalRelation (1002)
: : : : +- Aggregate (1084)
: : : : +- Project (1083)
: : : : +- Filter (1082)
: : : : +- Join (1081)
: : : : :- Filter (1060)
: : : : : +- Project (1059)
: : : : : +- Project (1058)
: : : : : +- Generate (1057)
: : : : : +- Project (1056)
: : : : : +- Aggregate (1055)
: : : : : +- Project (1054)
: : : : : +- Generate (1053)
: : : : : +- Join (1052)
: : : : : :- Repartition (1017)
: : : : : : +- LogicalRelation (1016)
: : : : : +- Project (1051)
: : : : : +- Join (1050)
: : : : : :- Project (1027)
: : : : : : +- Project (1026)
: : : : : : +- Generate (1025)
: : : : : : +- Project (1024)
: : : : : : +- Generate (1023)
: : : : : : +- Project (1022)
: : : : : : +- Project (1021)
: : : : : : +- Filter (1020)
: : : : : : +- Repartition (1019)
: : : : : : +- LogicalRelation (1018)
: : : : : +- Deduplicate (1049)
: : : : : +- Project (1048)
: : : : : +- Project (1047)
: : : : : +- Project (1046)
: : : : : +- Project (1045)
: : : : : +- Project (1044)
: : : : : +- Generate (1043)
: : : : : +- Project (1042)
: : : : : +- Generate (1041)
: : : : : +- Project (1040)
: : : : : +- Join (1039)
: : : : : :- Project (1036)
: : : : : : +- Join (1035)
: : : : : : :- Project (1030)
: : : : : : : +- RepartitionByExpression (1029)
: : : : : : : +- LogicalRelation (1028)
: : : : : : +- Project (1034)
: : : : : : +- Project (1033)
: : : : : : +- Repartition (1032)
: : : : : : +- LogicalRelation (1031)
: : : : : +- Repartition (1038)
: : : : : +- LogicalRelation (1037)
: : : : +- Project (1080)
: : : : +- Project (1079)
: : : : +- Project (1078)
: : : : +- Project (1077)
: : : : +- Generate (1076)
: : : : +- Project (1075)
: : : : +- Generate (1074)
: : : : +- Project (1073)
: : : : +- Join (1072)
: : : : :- Project (1069)
: : : : : +- Join (1068)
: : : : : :- Project (1063)
: : : : : : +- RepartitionByExpression (1062)
: : : : : : +- LogicalRelation (1061)
: : : : : +- Project (1067)
: : : : : +- Project (1066)
: : : : : +- Repartition (1065)
: : : : : +- LogicalRelation (1064)
: : : : +- Repartition (1071)
: : : : +- LogicalRelation (1070)
: : : +- LogicalRelation (1096)
: : +- Project (1103)
: : +- Repartition (1102)
: : +- LogicalRelation (1101)
: +- Project (1117)
: +- Filter (1116)
: +- Project (1115)
: +- Generate (1114)
: +- LocalRelation (1113)
+- SerializeFromObject (2263)
+- MapElements (2262)
+- DeserializeToObject (2261)
+- Project (2260)
+- Project (2259)
+- Project (2258)
+- Project (2257)
+- Project (2256)
+- Project (2255)
+- Project (2254)
+- Join (2253)
:- Project (1482)
: +- Project (1481)
: +- Join (1480)
: :- Project (1297)
: : +- Project (1296)
: : +- Project (1295)
: : +- Project (1294)
: : +- Project (1293)
: : +- Project (1292)
: : +- Join (1291)
: : :- Project (1149)
: : : +- Project (1148)
: : : +- Project (1147)
: : : +- Project (1146)
: : : +- Generate (1145)
: : : +- Project (1144)
: : : +- Generate (1143)
: : : +- Project (1142)
: : : +- Join (1141)
: : : :- Project (1138)
: : : : +- Join (1137)
: : : : :- Project (1132)
: : : : : +- RepartitionByExpression (1131)
: : : : : +- LogicalRelation (1130)
: : : : +- Project (1136)
: : : : +- Project (1135)
: : : : +- Repartition (1134)
: : : : +- LogicalRelation (1133)
: : : +- Repartition (1140)
: : : +- LogicalRelation (1139)
: : +- Project (1290)
: : +- Aggregate (1289)
: : +- Project (1288)
: : +- Join (1287)
: : :- Project (1217)
: : : +- Filter (1216)
: : : +- Join (1215)
: : : :- Filter (1194)
: : : : +- Project (1193)
: : : : +- Project (1192)
: : : : +- Generate (1191)
: : : : +- Project (1190)
: : : : +- Aggregate (1189)
: : : : +- Project (1188)
: : : : +- Generate (1187)
: : : : +- Join (1186)
: : : : :- Repartition (1151)
: : : : : +- LogicalRelation (1150)
: : : : +- Project (1185)
: : : : +- Join (1184)
: : : : :- Project (1161)
: : : : : +- Project (1160)
: : : : : +- Generate (1159)
: : : : : +- Project (1158)
: : : : : +- Generate (1157)
: : : : : +- Project (1156)
: : : : : +- Project (1155)
: : : : : +- Filter (1154)
: : : : : +- Repartition (1153)
: : : : : +- LogicalRelation (1152)
: : : : +- Deduplicate (1183)
: : : : +- Project (1182)
: : : : +- Project (1181)
: : : : +- Project (1180)
: : : : +- Project (1179)
: : : : +- Project (1178)
: : : : +- Generate (1177)
: : : : +- Project (1176)
: : : : +- Generate (1175)
: : : : +- Project (1174)
: : : : +- Join (1173)
: : : : :- Project (1170)
: : : : : +- Join (1169)
: : : : : :- Project (1164)
: : : : : : +- RepartitionByExpression (1163)
: : : : : : +- LogicalRelation (1162)
: : : : : +- Project (1168)
: : : : : +- Project (1167)
: : : : : +- Repartition (1166)
: : : : : +- LogicalRelation (1165)
: : : : +- Repartition (1172)
: : : : +- LogicalRelation (1171)
: : : +- Project (1214)
: : : +- Project (1213)
: : : +- Project (1212)
: : : +- Project (1211)
: : : +- Generate (1210)
: : : +- Project (1209)
: : : +- Generate (1208)
: : : +- Project (1207)
: : : +- Join (1206)
: : : :- Project (1203)
: : : : +- Join (1202)
: : : : :- Project (1197)
: : : : : +- RepartitionByExpression (1196)
: : : : : +- LogicalRelation (1195)
: : : : +- Project (1201)
: : : : +- Project (1200)
: : : : +- Repartition (1199)
: : : : +- LogicalRelation (1198)
: : : +- Repartition (1205)
: : : +- LogicalRelation (1204)
: : +- Aggregate (1286)
: : +- Project (1285)
: : +- Filter (1284)
: : +- Join (1283)
: : :- Filter (1262)
: : : +- Project (1261)
: : : +- Project (1260)
: : : +- Generate (1259)
: : : +- Project (1258)
: : : +- Aggregate (1257)
: : : +- Project (1256)
: : : +- Generate (1255)
: : : +- Join (1254)
: : : :- Repartition (1219)
: : : : +- LogicalRelation (1218)
: : : +- Project (1253)
: : : +- Join (1252)
: : : :- Project (1229)
: : : : +- Project (1228)
: : : : +- Generate (1227)
: : : : +- Project (1226)
: : : : +- Generate (1225)
: : : : +- Project (1224)
: : : : +- Project (1223)
: : : : +- Filter (1222)
: : : : +- Repartition (1221)
: : : : +- LogicalRelation (1220)
: : : +- Deduplicate (1251)
: : : +- Project (1250)
: : : +- Project (1249)
: : : +- Project (1248)
: : : +- Project (1247)
: : : +- Project (1246)
: : : +- Generate (1245)
: : : +- Project (1244)
: : : +- Generate (1243)
: : : +- Project (1242)
: : : +- Join (1241)
: : : :- Project (1238)
: : : : +- Join (1237)
: : : : :- Project (1232)
: : : : : +- RepartitionByExpression (1231)
: : : : : +- LogicalRelation (1230)
: : : : +- Project (1236)
: : : : +- Project (1235)
: : : : +- Repartition (1234)
: : : : +- LogicalRelation (1233)
: : : +- Repartition (1240)
: : : +- LogicalRelation (1239)
: : +- Project (1282)
: : +- Project (1281)
: : +- Project (1280)
: : +- Project (1279)
: : +- Generate (1278)
: : +- Project (1277)
: : +- Generate (1276)
: : +- Project (1275)
: : +- Join (1274)
: : :- Project (1271)
: : : +- Join (1270)
: : : :- Project (1265)
: : : : +- RepartitionByExpression (1264)
: : : : +- LogicalRelation (1263)
: : : +- Project (1269)
: : : +- Project (1268)
: : : +- Repartition (1267)
: : : +- LogicalRelation (1266)
: : +- Repartition (1273)
: : +- LogicalRelation (1272)
: +- SerializeFromObject (1479)
: +- MapElements (1478)
: +- DeserializeToObject (1477)
: +- Project (1476)
: +- Project (1475)
: +- Join (1474)
: :- SubqueryAlias (1470)
: : +- Aggregate (1469)
: : +- Project (1468)
: : +- Join (1467)
: : :- Project (1465)
: : : +- Project (1464)
: : : +- Project (1463)
: : : +- Project (1462)
: : : +- Project (1461)
: : : +- Project (1460)
: : : +- Join (1459)
: : : :- Project (1317)
: : : : +- Project (1316)
: : : : +- Project (1315)
: : : : +- Project (1314)
: : : : +- Generate (1313)
: : : : +- Project (1312)
: : : : +- Generate (1311)
: : : : +- Project (1310)
: : : : +- Join (1309)
: : : : :- Project (1306)
: : : : : +- Join (1305)
: : : : : :- Project (1300)
: : : : : : +- RepartitionByExpression (1299)
: : : : : : +- LogicalRelation (1298)
: : : : : +- Project (1304)
: : : : : +- Project (1303)
: : : : : +- Repartition (1302)
: : : : : +- LogicalRelation (1301)
: : : : +- Repartition (1308)
: : : : +- LogicalRelation (1307)
: : : +- Project (1458)
: : : +- Aggregate (1457)
: : : +- Project (1456)
: : : +- Join (1455)
: : : :- Project (1385)
: : : : +- Filter (1384)
: : : : +- Join (1383)
: : : : :- Filter (1362)
: : : : : +- Project (1361)
: : : : : +- Project (1360)
: : : : : +- Generate (1359)
: : : : : +- Project (1358)
: : : : : +- Aggregate (1357)
: : : : : +- Project (1356)
: : : : : +- Generate (1355)
: : : : : +- Join (1354)
: : : : : :- Repartition (1319)
: : : : : : +- LogicalRelation (1318)
: : : : : +- Project (1353)
: : : : : +- Join (1352)
: : : : : :- Project (1329)
: : : : : : +- Project (1328)
: : : : : : +- Generate (1327)
: : : : : : +- Project (1326)
: : : : : : +- Generate (1325)
: : : : : : +- Project (1324)
: : : : : : +- Project (1323)
: : : : : : +- Filter (1322)
: : : : : : +- Repartition (1321)
: : : : : : +- LogicalRelation (1320)
: : : : : +- Deduplicate (1351)
: : : : : +- Project (1350)
: : : : : +- Project (1349)
: : : : : +- Project (1348)
: : : : : +- Project (1347)
: : : : : +- Project (1346)
: : : : : +- Generate (1345)
: : : : : +- Project (1344)
: : : : : +- Generate (1343)
: : : : : +- Project (1342)
: : : : : +- Join (1341)
: : : : : :- Project (1338)
: : : : : : +- Join (1337)
: : : : : : :- Project (1332)
: : : : : : : +- RepartitionByExpression (1331)
: : : : : : : +- LogicalRelation (1330)
: : : : : : +- Project (1336)
: : : : : : +- Project (1335)
: : : : : : +- Repartition (1334)
: : : : : : +- LogicalRelation (1333)
: : : : : +- Repartition (1340)
: : : : : +- LogicalRelation (1339)
: : : : +- Project (1382)
: : : : +- Project (1381)
: : : : +- Project (1380)
: : : : +- Project (1379)
: : : : +- Generate (1378)
: : : : +- Project (1377)
: : : : +- Generate (1376)
: : : : +- Project (1375)
: : : : +- Join (1374)
: : : : :- Project (1371)
: : : : : +- Join (1370)
: : : : : :- Project (1365)
: : : : : : +- RepartitionByExpression (1364)
: : : : : : +- LogicalRelation (1363)
: : : : : +- Project (1369)
: : : : : +- Project (1368)
: : : : : +- Repartition (1367)
: : : : : +- LogicalRelation (1366)
: : : : +- Repartition (1373)
: : : : +- LogicalRelation (1372)
: : : +- Aggregate (1454)
: : : +- Project (1453)
: : : +- Filter (1452)
: : : +- Join (1451)
: : : :- Filter (1430)
: : : : +- Project (1429)
: : : : +- Project (1428)
: : : : +- Generate (1427)
: : : : +- Project (1426)
: : : : +- Aggregate (1425)
: : : : +- Project (1424)
: : : : +- Generate (1423)
: : : : +- Join (1422)
: : : : :- Repartition (1387)
: : : : : +- LogicalRelation (1386)
: : : : +- Project (1421)
: : : : +- Join (1420)
: : : : :- Project (1397)
: : : : : +- Project (1396)
: : : : : +- Generate (1395)
: : : : : +- Project (1394)
: : : : : +- Generate (1393)
: : : : : +- Project (1392)
: : : : : +- Project (1391)
: : : : : +- Filter (1390)
: : : : : +- Repartition (1389)
: : : : : +- LogicalRelation (1388)
: : : : +- Deduplicate (1419)
: : : : +- Project (1418)
: : : : +- Project (1417)
: : : : +- Project (1416)
: : : : +- Project (1415)
: : : : +- Project (1414)
: : : : +- Generate (1413)
: : : : +- Project (1412)
: : : : +- Generate (1411)
: : : : +- Project (1410)
: : : : +- Join (1409)
: : : : :- Project (1406)
: : : : : +- Join (1405)
: : : : : :- Project (1400)
: : : : : : +- RepartitionByExpression (1399)
: : : : : : +- LogicalRelation (1398)
: : : : : +- Project (1404)
: : : : : +- Project (1403)
: : : : : +- Repartition (1402)
: : : : : +- LogicalRelation (1401)
: : : : +- Repartition (1408)
: : : : +- LogicalRelation (1407)
: : : +- Project (1450)
: : : +- Project (1449)
: : : +- Project (1448)
: : : +- Project (1447)
: : : +- Generate (1446)
: : : +- Project (1445)
: : : +- Generate (1444)
: : : +- Project (1443)
: : : +- Join (1442)
: : : :- Project (1439)
: : : : +- Join (1438)
: : : : :- Project (1433)
: : : : : +- RepartitionByExpression (1432)
: : : : : +- LogicalRelation (1431)
: : : : +- Project (1437)
: : : : +- Project (1436)
: : : : +- Repartition (1435)
: : : : +- LogicalRelation (1434)
: : : +- Repartition (1441)
: : : +- LogicalRelation (1440)
: : +- LogicalRelation (1466)
: +- Project (1473)
: +- Repartition (1472)
: +- LogicalRelation (1471)
+- Aggregate (2252)
+- Union (2251)
:- Filter (1886)
: +- Aggregate (1885)
: +- Project (1884)
: +- Project (1883)
: +- Window (1882)
: +- Project (1881)
: +- Project (1880)
: +- Project (1879)
: +- Join (1878)
: :- Project (1872)
: : +- Join (1871)
: : :- Project (1835)
: : : +- Project (1834)
: : : +- Join (1833)
: : : :- Project (1650)
: : : : +- Project (1649)
: : : : +- Project (1648)
: : : : +- Project (1647)
: : : : +- Project (1646)
: : : : +- Project (1645)
: : : : +- Join (1644)
: : : : :- Project (1502)
: : : : : +- Project (1501)
: : : : : +- Project (1500)
: : : : : +- Project (1499)
: : : : : +- Generate (1498)
: : : : : +- Project (1497)
: : : : : +- Generate (1496)
: : : : : +- Project (1495)
: : : : : +- Join (1494)
: : : : : :- Project (1491)
: : : : : : +- Join (1490)
: : : : : : :- Project (1485)
: : : : : : : +- RepartitionByExpression (1484)
: : : : : : : +- LogicalRelation (1483)
: : : : : : +- Project (1489)
: : : : : : +- Project (1488)
: : : : : : +- Repartition (1487)
: : : : : : +- LogicalRelation (1486)
: : : : : +- Repartition (1493)
: : : : : +- LogicalRelation (1492)
: : : : +- Project (1643)
: : : : +- Aggregate (1642)
: : : : +- Project (1641)
: : : : +- Join (1640)
: : : : :- Project (1570)
: : : : : +- Filter (1569)
: : : : : +- Join (1568)
: : : : : :- Filter (1547)
: : : : : : +- Project (1546)
: : : : : : +- Project (1545)
: : : : : : +- Generate (1544)
: : : : : : +- Project (1543)
: : : : : : +- Aggregate (1542)
: : : : : : +- Project (1541)
: : : : : : +- Generate (1540)
: : : : : : +- Join (1539)
: : : : : : :- Repartition (1504)
: : : : : : : +- LogicalRelation (1503)
: : : : : : +- Project (1538)
: : : : : : +- Join (1537)
: : : : : : :- Project (1514)
: : : : : : : +- Project (1513)
: : : : : : : +- Generate (1512)
: : : : : : : +- Project (1511)
: : : : : : : +- Generate (1510)
: : : : : : : +- Project (1509)
: : : : : : : +- Project (1508)
: : : : : : : +- Filter (1507)
: : : : : : : +- Repartition (1506)
: : : : : : : +- LogicalRelation (1505)
: : : : : : +- Deduplicate (1536)
: : : : : : +- Project (1535)
: : : : : : +- Project (1534)
: : : : : : +- Project (1533)
: : : : : : +- Project (1532)
: : : : : : +- Project (1531)
: : : : : : +- Generate (1530)
: : : : : : +- Project (1529)
: : : : : : +- Generate (1528)
: : : : : : +- Project (1527)
: : : : : : +- Join (1526)
: : : : : : :- Project (1523)
: : : : : : : +- Join (1522)
: : : : : : : :- Project (1517)
: : : : : : : : +- RepartitionByExpression (1516)
: : : : : : : : +- LogicalRelation (1515)
: : : : : : : +- Project (1521)
: : : : : : : +- Project (1520)
: : : : : : : +- Repartition (1519)
: : : : : : : +- LogicalRelation (1518)
: : : : : : +- Repartition (1525)
: : : : : : +- LogicalRelation (1524)
: : : : : +- Project (1567)
: : : : : +- Project (1566)
: : : : : +- Project (1565)
: : : : : +- Project (1564)
: : : : : +- Generate (1563)
: : : : : +- Project (1562)
: : : : : +- Generate (1561)
: : : : : +- Project (1560)
: : : : : +- Join (1559)
: : : : : :- Project (1556)
: : : : : : +- Join (1555)
: : : : : : :- Project (1550)
: : : : : : : +- RepartitionByExpression (1549)
: : : : : : : +- LogicalRelation (1548)
: : : : : : +- Project (1554)
: : : : : : +- Project (1553)
: : : : : : +- Repartition (1552)
: : : : : : +- LogicalRelation (1551)
: : : : : +- Repartition (1558)
: : : : : +- LogicalRelation (1557)
: : : : +- Aggregate (1639)
: : : : +- Project (1638)
: : : : +- Filter (1637)
: : : : +- Join (1636)
: : : : :- Filter (1615)
: : : : : +- Project (1614)
: : : : : +- Project (1613)
: : : : : +- Generate (1612)
: : : : : +- Project (1611)
: : : : : +- Aggregate (1610)
: : : : : +- Project (1609)
: : : : : +- Generate (1608)
: : : : : +- Join (1607)
: : : : : :- Repartition (1572)
: : : : : : +- LogicalRelation (1571)
: : : : : +- Project (1606)
: : : : : +- Join (1605)
: : : : : :- Project (1582)
: : : : : : +- Project (1581)
: : : : : : +- Generate (1580)
: : : : : : +- Project (1579)
: : : : : : +- Generate (1578)
: : : : : : +- Project (1577)
: : : : : : +- Project (1576)
: : : : : : +- Filter (1575)
: : : : : : +- Repartition (1574)
: : : : : : +- LogicalRelation (1573)
: : : : : +- Deduplicate (1604)
: : : : : +- Project (1603)
: : : : : +- Project (1602)
: : : : : +- Project (1601)
: : : : : +- Project (1600)
: : : : : +- Project (1599)
: : : : : +- Generate (1598)
: : : : : +- Project (1597)
: : : : : +- Generate (1596)
: : : : : +- Project (1595)
: : : : : +- Join (1594)
: : : : : :- Project (1591)
: : : : : : +- Join (1590)
: : : : : : :- Project (1585)
: : : : : : : +- RepartitionByExpression (1584)
: : : : : : : +- LogicalRelation (1583)
: : : : : : +- Project (1589)
: : : : : : +- Project (1588)
: : : : : : +- Repartition (1587)
: : : : : : +- LogicalRelation (1586)
: : : : : +- Repartition (1593)
: : : : : +- LogicalRelation (1592)
: : : : +- Project (1635)
: : : : +- Project (1634)
: : : : +- Project (1633)
: : : : +- Project (1632)
: : : : +- Generate (1631)
: : : : +- Project (1630)
: : : : +- Generate (1629)
: : : : +- Project (1628)
: : : : +- Join (1627)
: : : : :- Project (1624)
: : : : : +- Join (1623)
: : : : : :- Project (1618)
: : : : : : +- RepartitionByExpression (1617)
: : : : : : +- LogicalRelation (1616)
: : : : : +- Project (1622)
: : : : : +- Project (1621)
: : : : : +- Repartition (1620)
: : : : : +- LogicalRelation (1619)
: : : : +- Repartition (1626)
: : : : +- LogicalRelation (1625)
: : : +- SerializeFromObject (1832)
: : : +- MapElements (1831)
: : : +- DeserializeToObject (1830)
: : : +- Project (1829)
: : : +- Project (1828)
: : : +- Join (1827)
: : : :- SubqueryAlias (1823)
: : : : +- Aggregate (1822)
: : : : +- Project (1821)
: : : : +- Join (1820)
: : : : :- Project (1818)
: : : : : +- Project (1817)
: : : : : +- Project (1816)
: : : : : +- Project (1815)
: : : : : +- Project (1814)
: : : : : +- Project (1813)
: : : : : +- Join (1812)
: : : : : :- Project (1670)
: : : : : : +- Project (1669)
: : : : : : +- Project (1668)
: : : : : : +- Project (1667)
: : : : : : +- Generate (1666)
: : : : : : +- Project (1665)
: : : : : : +- Generate (1664)
: : : : : : +- Project (1663)
: : : : : : +- Join (1662)
: : : : : : :- Project (1659)
: : : : : : : +- Join (1658)
: : : : : : : :- Project (1653)
: : : : : : : : +- RepartitionByExpression (1652)
: : : : : : : : +- LogicalRelation (1651)
: : : : : : : +- Project (1657)
: : : : : : : +- Project (1656)
: : : : : : : +- Repartition (1655)
: : : : : : : +- LogicalRelation (1654)
: : : : : : +- Repartition (1661)
: : : : : : +- LogicalRelation (1660)
: : : : : +- Project (1811)
: : : : : +- Aggregate (1810)
: : : : : +- Project (1809)
: : : : : +- Join (1808)
: : : : : :- Project (1738)
: : : : : : +- Filter (1737)
: : : : : : +- Join (1736)
: : : : : : :- Filter (1715)
: : : : : : : +- Project (1714)
: : : : : : : +- Project (1713)
: : : : : : : +- Generate (1712)
: : : : : : : +- Project (1711)
: : : : : : : +- Aggregate (1710)
: : : : : : : +- Project (1709)
: : : : : : : +- Generate (1708)
: : : : : : : +- Join (1707)
: : : : : : : :- Repartition (1672)
: : : : : : : : +- LogicalRelation (1671)
: : : : : : : +- Project (1706)
: : : : : : : +- Join (1705)
: : : : : : : :- Project (1682)
: : : : : : : : +- Project (1681)
: : : : : : : : +- Generate (1680)
: : : : : : : : +- Project (1679)
: : : : : : : : +- Generate (1678)
: : : : : : : : +- Project (1677)
: : : : : : : : +- Project (1676)
: : : : : : : : +- Filter (1675)
: : : : : : : : +- Repartition (1674)
: : : : : : : : +- LogicalRelation (1673)
: : : : : : : +- Deduplicate (1704)
: : : : : : : +- Project (1703)
: : : : : : : +- Project (1702)
: : : : : : : +- Project (1701)
: : : : : : : +- Project (1700)
: : : : : : : +- Project (1699)
: : : : : : : +- Generate (1698)
: : : : : : : +- Project (1697)
: : : : : : : +- Generate (1696)
: : : : : : : +- Project (1695)
: : : : : : : +- Join (1694)
: : : : : : : :- Project (1691)
: : : : : : : : +- Join (1690)
: : : : : : : : :- Project (1685)
: : : : : : : : : +- RepartitionByExpression (1684)
: : : : : : : : : +- LogicalRelation (1683)
: : : : : : : : +- Project (1689)
: : : : : : : : +- Project (1688)
: : : : : : : : +- Repartition (1687)
: : : : : : : : +- LogicalRelation (1686)
: : : : : : : +- Repartition (1693)
: : : : : : : +- LogicalRelation (1692)
: : : : : : +- Project (1735)
: : : : : : +- Project (1734)
: : : : : : +- Project (1733)
: : : : : : +- Project (1732)
: : : : : : +- Generate (1731)
: : : : : : +- Project (1730)
: : : : : : +- Generate (1729)
: : : : : : +- Project (1728)
: : : : : : +- Join (1727)
: : : : : : :- Project (1724)
: : : : : : : +- Join (1723)
: : : : : : : :- Project (1718)
: : : : : : : : +- RepartitionByExpression (1717)
: : : : : : : : +- LogicalRelation (1716)
: : : : : : : +- Project (1722)
: : : : : : : +- Project (1721)
: : : : : : : +- Repartition (1720)
: : : : : : : +- LogicalRelation (1719)
: : : : : : +- Repartition (1726)
: : : : : : +- LogicalRelation (1725)
: : : : : +- Aggregate (1807)
: : : : : +- Project (1806)
: : : : : +- Filter (1805)
: : : : : +- Join (1804)
: : : : : :- Filter (1783)
: : : : : : +- Project (1782)
: : : : : : +- Project (1781)
: : : : : : +- Generate (1780)
: : : : : : +- Project (1779)
: : : : : : +- Aggregate (1778)
: : : : : : +- Project (1777)
: : : : : : +- Generate (1776)
: : : : : : +- Join (1775)
: : : : : : :- Repartition (1740)
: : : : : : : +- LogicalRelation (1739)
: : : : : : +- Project (1774)
: : : : : : +- Join (1773)
: : : : : : :- Project (1750)
: : : : : : : +- Project (1749)
: : : : : : : +- Generate (1748)
: : : : : : : +- Project (1747)
: : : : : : : +- Generate (1746)
: : : : : : : +- Project (1745)
: : : : : : : +- Project (1744)
: : : : : : : +- Filter (1743)
: : : : : : : +- Repartition (1742)
: : : : : : : +- LogicalRelation (1741)
: : : : : : +- Deduplicate (1772)
: : : : : : +- Project (1771)
: : : : : : +- Project (1770)
: : : : : : +- Project (1769)
: : : : : : +- Project (1768)
: : : : : : +- Project (1767)
: : : : : : +- Generate (1766)
: : : : : : +- Project (1765)
: : : : : : +- Generate (1764)
: : : : : : +- Project (1763)
: : : : : : +- Join (1762)
: : : : : : :- Project (1759)
: : : : : : : +- Join (1758)
: : : : : : : :- Project (1753)
: : : : : : : : +- RepartitionByExpression (1752)
: : : : : : : : +- LogicalRelation (1751)
: : : : : : : +- Project (1757)
: : : : : : : +- Project (1756)
: : : : : : : +- Repartition (1755)
: : : : : : : +- LogicalRelation (1754)
: : : : : : +- Repartition (1761)
: : : : : : +- LogicalRelation (1760)
: : : : : +- Project (1803)
: : : : : +- Project (1802)
: : : : : +- Project (1801)
: : : : : +- Project (1800)
: : : : : +- Generate (1799)
: : : : : +- Project (1798)
: : : : : +- Generate (1797)
: : : : : +- Project (1796)
: : : : : +- Join (1795)
: : : : : :- Project (1792)
: : : : : : +- Join (1791)
: : : : : : :- Project (1786)
: : : : : : : +- RepartitionByExpression (1785)
: : : : : : : +- LogicalRelation (1784)
: : : : : : +- Project (1790)
: : : : : : +- Project (1789)
: : : : : : +- Repartition (1788)
: : : : : : +- LogicalRelation (1787)
: : : : : +- Repartition (1794)
: : : : : +- LogicalRelation (1793)
: : : : +- LogicalRelation (1819)
: : : +- Project (1826)
: : : +- Repartition (1825)
: : : +- LogicalRelation (1824)
: : +- Project (1870)
: : +- Project (1869)
: : +- Join (1868)
: : :- Project (1845)
: : : +- Project (1844)
: : : +- Generate (1843)
: : : +- Project (1842)
: : : +- Generate (1841)
: : : +- Project (1840)
: : : +- Project (1839)
: : : +- Filter (1838)
: : : +- Repartition (1837)
: : : +- LogicalRelation (1836)
: : +- Deduplicate (1867)
: : +- Project (1866)
: : +- Project (1865)
: : +- Project (1864)
: : +- Project (1863)
: : +- Project (1862)
: : +- Generate (1861)
: : +- Project (1860)
: : +- Generate (1859)
: : +- Project (1858)
: : +- Join (1857)
: : :- Project (1854)
: : : +- Join (1853)
: : : :- Project (1848)
: : : : +- RepartitionByExpression (1847)
: : : : +- LogicalRelation (1846)
: : : +- Project (1852)
: : : +- Project (1851)
: : : +- Repartition (1850)
: : : +- LogicalRelation (1849)
: : +- Repartition (1856)
: : +- LogicalRelation (1855)
: +- Project (1877)
: +- Filter (1876)
: +- Project (1875)
: +- Generate (1874)
: +- LocalRelation (1873)
+- Filter (2250)
+- Aggregate (2249)
+- Project (2248)
+- Project (2247)
+- Project (2246)
+- Join (2245)
:- Project (2239)
: +- Project (2238)
: +- Join (2237)
: :- Project (2054)
: : +- Project (2053)
: : +- Project (2052)
: : +- Project (2051)
: : +- Project (2050)
: : +- Project (2049)
: : +- Join (2048)
: : :- Project (1906)
: : : +- Project (1905)
: : : +- Project (1904)
: : : +- Project (1903)
: : : +- Generate (1902)
: : : +- Project (1901)
: : : +- Generate (1900)
: : : +- Project (1899)
: : : +- Join (1898)
: : : :- Project (1895)
: : : : +- Join (1894)
: : : : :- Project (1889)
: : : : : +- RepartitionByExpression (1888)
: : : : : +- LogicalRelation (1887)
: : : : +- Project (1893)
: : : : +- Project (1892)
: : : : +- Repartition (1891)
: : : : +- LogicalRelation (1890)
: : : +- Repartition (1897)
: : : +- LogicalRelation (1896)
: : +- Project (2047)
: : +- Aggregate (2046)
: : +- Project (2045)
: : +- Join (2044)
: : :- Project (1974)
: : : +- Filter (1973)
: : : +- Join (1972)
: : : :- Filter (1951)
: : : : +- Project (1950)
: : : : +- Project (1949)
: : : : +- Generate (1948)
: : : : +- Project (1947)
: : : : +- Aggregate (1946)
: : : : +- Project (1945)
: : : : +- Generate (1944)
: : : : +- Join (1943)
: : : : :- Repartition (1908)
: : : : : +- LogicalRelation (1907)
: : : : +- Project (1942)
: : : : +- Join (1941)
: : : : :- Project (1918)
: : : : : +- Project (1917)
: : : : : +- Generate (1916)
: : : : : +- Project (1915)
: : : : : +- Generate (1914)
: : : : : +- Project (1913)
: : : : : +- Project (1912)
: : : : : +- Filter (1911)
: : : : : +- Repartition (1910)
: : : : : +- LogicalRelation (1909)
: : : : +- Deduplicate (1940)
: : : : +- Project (1939)
: : : : +- Project (1938)
: : : : +- Project (1937)
: : : : +- Project (1936)
: : : : +- Project (1935)
: : : : +- Generate (1934)
: : : : +- Project (1933)
: : : : +- Generate (1932)
: : : : +- Project (1931)
: : : : +- Join (1930)
: : : : :- Project (1927)
: : : : : +- Join (1926)
: : : : : :- Project (1921)
: : : : : : +- RepartitionByExpression (1920)
: : : : : : +- LogicalRelation (1919)
: : : : : +- Project (1925)
: : : : : +- Project (1924)
: : : : : +- Repartition (1923)
: : : : : +- LogicalRelation (1922)
: : : : +- Repartition (1929)
: : : : +- LogicalRelation (1928)
: : : +- Project (1971)
: : : +- Project (1970)
: : : +- Project (1969)
: : : +- Project (1968)
: : : +- Generate (1967)
: : : +- Project (1966)
: : : +- Generate (1965)
: : : +- Project (1964)
: : : +- Join (1963)
: : : :- Project (1960)
: : : : +- Join (1959)
: : : : :- Project (1954)
: : : : : +- RepartitionByExpression (1953)
: : : : : +- LogicalRelation (1952)
: : : : +- Project (1958)
: : : : +- Project (1957)
: : : : +- Repartition (1956)
: : : : +- LogicalRelation (1955)
: : : +- Repartition (1962)
: : : +- LogicalRelation (1961)
: : +- Aggregate (2043)
: : +- Project (2042)
: : +- Filter (2041)
: : +- Join (2040)
: : :- Filter (2019)
: : : +- Project (2018)
: : : +- Project (2017)
: : : +- Generate (2016)
: : : +- Project (2015)
: : : +- Aggregate (2014)
: : : +- Project (2013)
: : : +- Generate (2012)
: : : +- Join (2011)
: : : :- Repartition (1976)
: : : : +- LogicalRelation (1975)
: : : +- Project (2010)
: : : +- Join (2009)
: : : :- Project (1986)
: : : : +- Project (1985)
: : : : +- Generate (1984)
: : : : +- Project (1983)
: : : : +- Generate (1982)
: : : : +- Project (1981)
: : : : +- Project (1980)
: : : : +- Filter (1979)
: : : : +- Repartition (1978)
: : : : +- LogicalRelation (1977)
: : : +- Deduplicate (2008)
: : : +- Project (2007)
: : : +- Project (2006)
: : : +- Project (2005)
: : : +- Project (2004)
: : : +- Project (2003)
: : : +- Generate (2002)
: : : +- Project (2001)
: : : +- Generate (2000)
: : : +- Project (1999)
: : : +- Join (1998)
: : : :- Project (1995)
: : : : +- Join (1994)
: : : : :- Project (1989)
: : : : : +- RepartitionByExpression (1988)
: : : : : +- LogicalRelation (1987)
: : : : +- Project (1993)
: : : : +- Project (1992)
: : : : +- Repartition (1991)
: : : : +- LogicalRelation (1990)
: : : +- Repartition (1997)
: : : +- LogicalRelation (1996)
: : +- Project (2039)
: : +- Project (2038)
: : +- Project (2037)
: : +- Project (2036)
: : +- Generate (2035)
: : +- Project (2034)
: : +- Generate (2033)
: : +- Project (2032)
: : +- Join (2031)
: : :- Project (2028)
: : : +- Join (2027)
: : : :- Project (2022)
: : : : +- RepartitionByExpression (2021)
: : : : +- LogicalRelation (2020)
: : : +- Project (2026)
: : : +- Project (2025)
: : : +- Repartition (2024)
: : : +- LogicalRelation (2023)
: : +- Repartition (2030)
: : +- LogicalRelation (2029)
: +- SerializeFromObject (2236)
: +- MapElements (2235)
: +- DeserializeToObject (2234)
: +- Project (2233)
: +- Project (2232)
: +- Join (2231)
: :- SubqueryAlias (2227)
: : +- Aggregate (2226)
: : +- Project (2225)
: : +- Join (2224)
: : :- Project (2222)
: : : +- Project (2221)
: : : +- Project (2220)
: : : +- Project (2219)
: : : +- Project (2218)
: : : +- Project (2217)
: : : +- Join (2216)
: : : :- Project (2074)
: : : : +- Project (2073)
: : : : +- Project (2072)
: : : : +- Project (2071)
: : : : +- Generate (2070)
: : : : +- Project (2069)
: : : : +- Generate (2068)
: : : : +- Project (2067)
: : : : +- Join (2066)
: : : : :- Project (2063)
: : : : : +- Join (2062)
: : : : : :- Project (2057)
: : : : : : +- RepartitionByExpression (2056)
: : : : : : +- LogicalRelation (2055)
: : : : : +- Project (2061)
: : : : : +- Project (2060)
: : : : : +- Repartition (2059)
: : : : : +- LogicalRelation (2058)
: : : : +- Repartition (2065)
: : : : +- LogicalRelation (2064)
: : : +- Project (2215)
: : : +- Aggregate (2214)
: : : +- Project (2213)
: : : +- Join (2212)
: : : :- Project (2142)
: : : : +- Filter (2141)
: : : : +- Join (2140)
: : : : :- Filter (2119)
: : : : : +- Project (2118)
: : : : : +- Project (2117)
: : : : : +- Generate (2116)
: : : : : +- Project (2115)
: : : : : +- Aggregate (2114)
: : : : : +- Project (2113)
: : : : : +- Generate (2112)
: : : : : +- Join (2111)
: : : : : :- Repartition (2076)
: : : : : : +- LogicalRelation (2075)
: : : : : +- Project (2110)
: : : : : +- Join (2109)
: : : : : :- Project (2086)
: : : : : : +- Project (2085)
: : : : : : +- Generate (2084)
: : : : : : +- Project (2083)
: : : : : : +- Generate (2082)
: : : : : : +- Project (2081)
: : : : : : +- Project (2080)
: : : : : : +- Filter (2079)
: : : : : : +- Repartition (2078)
: : : : : : +- LogicalRelation (2077)
: : : : : +- Deduplicate (2108)
: : : : : +- Project (2107)
: : : : : +- Project (2106)
: : : : : +- Project (2105)
: : : : : +- Project (2104)
: : : : : +- Project (2103)
: : : : : +- Generate (2102)
: : : : : +- Project (2101)
: : : : : +- Generate (2100)
: : : : : +- Project (2099)
: : : : : +- Join (2098)
: : : : : :- Project (2095)
: : : : : : +- Join (2094)
: : : : : : :- Project (2089)
: : : : : : : +- RepartitionByExpression (2088)
: : : : : : : +- LogicalRelation (2087)
: : : : : : +- Project (2093)
: : : : : : +- Project (2092)
: : : : : : +- Repartition (2091)
: : : : : : +- LogicalRelation (2090)
: : : : : +- Repartition (2097)
: : : : : +- LogicalRelation (2096)
: : : : +- Project (2139)
: : : : +- Project (2138)
: : : : +- Project (2137)
: : : : +- Project (2136)
: : : : +- Generate (2135)
: : : : +- Project (2134)
: : : : +- Generate (2133)
: : : : +- Project (2132)
: : : : +- Join (2131)
: : : : :- Project (2128)
: : : : : +- Join (2127)
: : : : : :- Project (2122)
: : : : : : +- RepartitionByExpression (2121)
: : : : : : +- LogicalRelation (2120)
: : : : : +- Project (2126)
: : : : : +- Project (2125)
: : : : : +- Repartition (2124)
: : : : : +- LogicalRelation (2123)
: : : : +- Repartition (2130)
: : : : +- LogicalRelation (2129)
: : : +- Aggregate (2211)
: : : +- Project (2210)
: : : +- Filter (2209)
: : : +- Join (2208)
: : : :- Filter (2187)
: : : : +- Project (2186)
: : : : +- Project (2185)
: : : : +- Generate (2184)
: : : : +- Project (2183)
: : : : +- Aggregate (2182)
: : : : +- Project (2181)
: : : : +- Generate (2180)
: : : : +- Join (2179)
: : : : :- Repartition (2144)
: : : : : +- LogicalRelation (2143)
: : : : +- Project (2178)
: : : : +- Join (2177)
: : : : :- Project (2154)
: : : : : +- Project (2153)
: : : : : +- Generate (2152)
: : : : : +- Project (2151)
: : : : : +- Generate (2150)
: : : : : +- Project (2149)
: : : : : +- Project (2148)
: : : : : +- Filter (2147)
: : : : : +- Repartition (2146)
: : : : : +- LogicalRelation (2145)
: : : : +- Deduplicate (2176)
: : : : +- Project (2175)
: : : : +- Project (2174)
: : : : +- Project (2173)
: : : : +- Project (2172)
: : : : +- Project (2171)
: : : : +- Generate (2170)
: : : : +- Project (2169)
: : : : +- Generate (2168)
: : : : +- Project (2167)
: : : : +- Join (2166)
: : : : :- Project (2163)
: : : : : +- Join (2162)
: : : : : :- Project (2157)
: : : : : : +- RepartitionByExpression (2156)
: : : : : : +- LogicalRelation (2155)
: : : : : +- Project (2161)
: : : : : +- Project (2160)
: : : : : +- Repartition (2159)
: : : : : +- LogicalRelation (2158)
: : : : +- Repartition (2165)
: : : : +- LogicalRelation (2164)
: : : +- Project (2207)
: : : +- Project (2206)
: : : +- Project (2205)
: : : +- Project (2204)
: : : +- Generate (2203)
: : : +- Project (2202)
: : : +- Generate (2201)
: : : +- Project (2200)
: : : +- Join (2199)
: : : :- Project (2196)
: : : : +- Join (2195)
: : : : :- Project (2190)
: : : : : +- RepartitionByExpression (2189)
: : : : : +- LogicalRelation (2188)
: : : : +- Project (2194)
: : : : +- Project (2193)
: : : : +- Repartition (2192)
: : : : +- LogicalRelation (2191)
: : : +- Repartition (2198)
: : : +- LogicalRelation (2197)
: : +- LogicalRelation (2223)
: +- Project (2230)
: +- Repartition (2229)
: +- LogicalRelation (2228)
+- Project (2244)
+- Filter (2243)
+- Project (2242)
+- Generate (2241)
+- LocalRelation (2240)
(1) Execute SaveIntoDataSourceCommand
Output: []
(2) SaveIntoDataSourceCommand
Arguments: org.apache.spark.sql.delta.sources.DeltaDataSource@6346b282, [path=hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-quantity-kpi-service/internal/data-snapshot/10000000349/0_1_10000000349], Overwrite
(3) LogicalRelation
Arguments: parquet, [product#1012489, plant#1012490, orderDateTime#1012491, planningStartDateTime#1012492], false
(4) RepartitionByExpression
Arguments: [product#1012489, plant#1012490], 37
(5) Project
Arguments: [product#1012489, plant#1012490, orderDateTime#1012491]
(6) LogicalRelation
Arguments: parquet, [systemId#1012516, internalUUID#1012517, plant#1012518, product#1012519, blockedForReplenishmentStartingFrom#1012520, productionAspect#1012521, salesPlant#1012522, listing#1012523, sourceOfSupplyCategory#1012524], false
(7) Repartition
Arguments: 37, true
(8) Project
Arguments: [systemId#1012516, internalUUID#1012517, plant#1012518, product#1012519, blockedForReplenishmentStartingFrom#1012520, productionAspect#1012521, salesPlant#1012522, listing#1012523, sourceOfSupplyCategory#1012524, struct(systemId, systemId#1012516, internalUUID, internalUUID#1012517, plant, plant#1012518, product, product#1012519, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1012520, productionAspect, productionAspect#1012521, salesPlant, salesPlant#1012522, listing, listing#1012523, sourceOfSupplyCategory, sourceOfSupplyCategory#1012524) AS productPlant#1012526]
(9) Project
Arguments: [productPlant#1012526]
(10) Join
Arguments: LeftOuter, ((product#1012489 <=> productPlant#1012526.product.internalRefUUID) AND (plant#1012490 <=> productPlant#1012526.plant.internalRefUUID))
(11) Project
Arguments: [product#1012489, plant#1012490, orderDateTime#1012491, productPlant#1012526]
(12) LogicalRelation
Arguments: parquet, [systemId#1012551, internalUUID#1012552, id#1012553, displayId#1012554, name#1012555, baseUnitOfMeasure#1012556, unitOfMeasures#1012557, unitOfMeasureConversions#1012558, productionAspect#1012559, salesAspect#1012560, procurementAspect#1012561, productGroup#1012562], false
(13) Repartition
Arguments: 37, true
(14) Join
Arguments: LeftOuter, (product#1012489 = internalUUID#1012552)
(15) Project
Arguments: [product#1012489, plant#1012490, orderDateTime#1012491, productPlant#1012526, systemId#1012551, internalUUID#1012552, id#1012553, displayId#1012554, name#1012555, baseUnitOfMeasure#1012556, unitOfMeasures#1012557, unitOfMeasureConversions#1012558, productionAspect#1012559, salesAspect#1012560, procurementAspect#1012561, productGroup#1012562, filter(unitOfMeasureConversions#1012558, lambdafunction((((lambda u#1012565.measurementUnit1.code = productPlant#1012526.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1012565.measurementUnit1.internalRefUUID = productPlant#1012526.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1012565.measurementUnit2.code = baseUnitOfMeasure#1012556.code) AND (lambda u#1012565.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1012556.internalRefUUID))), lambda u#1012565, false)) AS filteredUnitOfMeasureConversions#1012564]
(16) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1012564.quantityNumerator), true, [quantityNumerator#1012572]
(17) Project
Arguments: [product#1012489, plant#1012490, orderDateTime#1012491, productPlant#1012526, systemId#1012551, internalUUID#1012552, id#1012553, displayId#1012554, name#1012555, baseUnitOfMeasure#1012556, unitOfMeasures#1012557, unitOfMeasureConversions#1012558, productionAspect#1012559, salesAspect#1012560, procurementAspect#1012561, productGroup#1012562, filteredUnitOfMeasureConversions#1012564, quantityNumerator#1012572]
(18) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1012564.quantityDenominator), true, [quantityDenominator#1012575]
(19) Project
Arguments: [product#1012489, plant#1012490, orderDateTime#1012491, productPlant#1012526, systemId#1012551, internalUUID#1012552, id#1012553, displayId#1012554, name#1012555, baseUnitOfMeasure#1012556, unitOfMeasures#1012557, unitOfMeasureConversions#1012558, productionAspect#1012559, salesAspect#1012560, procurementAspect#1012561, productGroup#1012562, filteredUnitOfMeasureConversions#1012564, quantityNumerator#1012572, quantityDenominator#1012575]
(20) Project
Arguments: [product#1012489, plant#1012490, orderDateTime#1012491, productPlant#1012526, systemId#1012551, internalUUID#1012552, id#1012553, displayId#1012554, name#1012555, baseUnitOfMeasure#1012556, unitOfMeasures#1012557, unitOfMeasureConversions#1012558, productionAspect#1012559, salesAspect#1012560, procurementAspect#1012561, productGroup#1012562, filteredUnitOfMeasureConversions#1012564, quantityNumerator#1012572, quantityDenominator#1012575, (cast(quantityNumerator#1012572 as double) / cast(quantityDenominator#1012575 as double)) AS outboundUnit#1012576]
(21) Project
Arguments: [product#1012489, plant#1012490, orderDateTime#1012491, productPlant#1012526, systemId#1012551, internalUUID#1012552, id#1012553, displayId#1012554, name#1012555, baseUnitOfMeasure#1012556, unitOfMeasures#1012557, unitOfMeasureConversions#1012558, productionAspect#1012559, salesAspect#1012560, procurementAspect#1012561, productGroup#1012562, filteredUnitOfMeasureConversions#1012564, quantityNumerator#1012572, quantityDenominator#1012575, CASE WHEN (isnull(outboundUnit#1012576) OR (outboundUnit#1012576 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1012576 END AS outboundUnit#1012577]
(22) Project
Arguments: [product#1012489, plant#1012490, orderDateTime#1012491, productPlant#1012526, outboundUnit#1012577]
(23) LogicalRelation
Arguments: parquet, [systemId#1012686, internalUUID#1012687, product#1012688, plant#1012689, calculationDateTime#1012690, stockQuantities#1012691], false
(24) Repartition
Arguments: 37, true
(25) LogicalRelation
Arguments: parquet, [marketUnit#1012629, description#1012630, articleHierarchy#1012631, defaultCurrency#1012632, responsibilities#1012633, replenishmentTypes#1012634, distributionCenters#1012635, assignedArticleHierarchyNodes#1012636, minOrderQtySetting#1012637, listingCheck#1012638, odsSelection#1012639, demandProfiles#1012640, constraintProfiles#1012641, optimizationProfiles#1012642, orderGroupSplitProfiles#1012643, supplierMinimumProfiles#1012644, multipleRestrictionProfiles#1012645, preferredUomSource#1012646, handlingOfUnfulfilledDemands#1012647, negligibleQuantitiesThreshold#1012648, eventtype#1012649], false
(26) Repartition
Arguments: 37, true
(27) Filter
Arguments: (marketUnit#1012629 <=> STEPHI_MU)
(28) Project
Arguments: [marketUnit#1012629, description#1012630, articleHierarchy#1012631, defaultCurrency#1012632, responsibilities#1012633, replenishmentTypes#1012634, distributionCenters#1012635, assignedArticleHierarchyNodes#1012636, minOrderQtySetting#1012637, listingCheck#1012638, odsSelection#1012639, demandProfiles#1012640, constraintProfiles#1012641, optimizationProfiles#1012642, orderGroupSplitProfiles#1012643, supplierMinimumProfiles#1012644, multipleRestrictionProfiles#1012645, preferredUomSource#1012646, handlingOfUnfulfilledDemands#1012647, negligibleQuantitiesThreshold#1012648, eventtype#1012649]
(29) Project
Arguments: [distributionCenters#1012635]
(30) Generate
Arguments: explode(distributionCenters#1012635), false, [distributionCenters#1012652]
(31) Project
Arguments: [distributionCenters#1012652]
(32) Generate
Arguments: explode(distributionCenters#1012652.storageLocations), false, [storageLocations#1012659]
(33) Project
Arguments: [distributionCenters#1012652.id AS plantId#1012653, distributionCenters#1012652.internalRefUUID AS plantUuid#1012654, storageLocations#1012659]
(34) Project
Arguments: [plantId#1012653, plantUuid#1012654, storageLocations#1012659.id AS storageLocId#1012660, storageLocations#1012659.internalRefUUID AS storageLocUuid#1012661]
(35) LogicalRelation
Arguments: parquet, [product#1012903, plant#1012904, orderDateTime#1012905, planningStartDateTime#1012906], false
(36) RepartitionByExpression
Arguments: [product#1012903, plant#1012904], 37
(37) Project
Arguments: [product#1012903, plant#1012904, orderDateTime#1012905]
(38) LogicalRelation
Arguments: parquet, [systemId#1012907, internalUUID#1012908, plant#1012909, product#1012910, blockedForReplenishmentStartingFrom#1012911, productionAspect#1012912, salesPlant#1012913, listing#1012914, sourceOfSupplyCategory#1012915], false
(39) Repartition
Arguments: 37, true
(40) Project
Arguments: [systemId#1012907, internalUUID#1012908, plant#1012909, product#1012910, blockedForReplenishmentStartingFrom#1012911, productionAspect#1012912, salesPlant#1012913, listing#1012914, sourceOfSupplyCategory#1012915, struct(systemId, systemId#1012907, internalUUID, internalUUID#1012908, plant, plant#1012909, product, product#1012910, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1012911, productionAspect, productionAspect#1012912, salesPlant, salesPlant#1012913, listing, listing#1012914, sourceOfSupplyCategory, sourceOfSupplyCategory#1012915) AS productPlant#1012916]
(41) Project
Arguments: [productPlant#1012916]
(42) Join
Arguments: LeftOuter, ((product#1012903 <=> productPlant#1012916.product.internalRefUUID) AND (plant#1012904 <=> productPlant#1012916.plant.internalRefUUID))
(43) Project
Arguments: [product#1012903, plant#1012904, orderDateTime#1012905, productPlant#1012916]
(44) LogicalRelation
Arguments: parquet, [systemId#1012917, internalUUID#1012918, id#1012919, displayId#1012920, name#1012921, baseUnitOfMeasure#1012922, unitOfMeasures#1012923, unitOfMeasureConversions#1012924, productionAspect#1012925, salesAspect#1012926, procurementAspect#1012927, productGroup#1012928], false
(45) Repartition
Arguments: 37, true
(46) Join
Arguments: LeftOuter, (product#1012903 = internalUUID#1012918)
(47) Project
Arguments: [product#1012903, plant#1012904, orderDateTime#1012905, productPlant#1012916, systemId#1012917, internalUUID#1012918, id#1012919, displayId#1012920, name#1012921, baseUnitOfMeasure#1012922, unitOfMeasures#1012923, unitOfMeasureConversions#1012924, productionAspect#1012925, salesAspect#1012926, procurementAspect#1012927, productGroup#1012928, filter(unitOfMeasureConversions#1012924, lambdafunction((((lambda u#1012565.measurementUnit1.code = productPlant#1012916.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1012565.measurementUnit1.internalRefUUID = productPlant#1012916.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1012565.measurementUnit2.code = baseUnitOfMeasure#1012922.code) AND (lambda u#1012565.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1012922.internalRefUUID))), lambda u#1012565, false)) AS filteredUnitOfMeasureConversions#1012929]
(48) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1012929.quantityNumerator), true, [quantityNumerator#1012930]
(49) Project
Arguments: [product#1012903, plant#1012904, orderDateTime#1012905, productPlant#1012916, systemId#1012917, internalUUID#1012918, id#1012919, displayId#1012920, name#1012921, baseUnitOfMeasure#1012922, unitOfMeasures#1012923, unitOfMeasureConversions#1012924, productionAspect#1012925, salesAspect#1012926, procurementAspect#1012927, productGroup#1012928, filteredUnitOfMeasureConversions#1012929, quantityNumerator#1012930]
(50) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1012929.quantityDenominator), true, [quantityDenominator#1012931]
(51) Project
Arguments: [product#1012903, plant#1012904, orderDateTime#1012905, productPlant#1012916, systemId#1012917, internalUUID#1012918, id#1012919, displayId#1012920, name#1012921, baseUnitOfMeasure#1012922, unitOfMeasures#1012923, unitOfMeasureConversions#1012924, productionAspect#1012925, salesAspect#1012926, procurementAspect#1012927, productGroup#1012928, filteredUnitOfMeasureConversions#1012929, quantityNumerator#1012930, quantityDenominator#1012931]
(52) Project
Arguments: [product#1012903, plant#1012904, orderDateTime#1012905, productPlant#1012916, systemId#1012917, internalUUID#1012918, id#1012919, displayId#1012920, name#1012921, baseUnitOfMeasure#1012922, unitOfMeasures#1012923, unitOfMeasureConversions#1012924, productionAspect#1012925, salesAspect#1012926, procurementAspect#1012927, productGroup#1012928, filteredUnitOfMeasureConversions#1012929, quantityNumerator#1012930, quantityDenominator#1012931, (cast(quantityNumerator#1012930 as double) / cast(quantityDenominator#1012931 as double)) AS outboundUnit#1012932]
(53) Project
Arguments: [product#1012903, plant#1012904, orderDateTime#1012905, productPlant#1012916, systemId#1012917, internalUUID#1012918, id#1012919, displayId#1012920, name#1012921, baseUnitOfMeasure#1012922, unitOfMeasures#1012923, unitOfMeasureConversions#1012924, productionAspect#1012925, salesAspect#1012926, procurementAspect#1012927, productGroup#1012928, filteredUnitOfMeasureConversions#1012929, quantityNumerator#1012930, quantityDenominator#1012931, CASE WHEN (isnull(outboundUnit#1012932) OR (outboundUnit#1012932 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1012932 END AS outboundUnit#1012933]
(54) Project
Arguments: [product#1012903, plant#1012904, orderDateTime#1012905, productPlant#1012916, outboundUnit#1012933]
(55) Project
Arguments: [plant#1012904]
(56) Deduplicate
Arguments: [plant#1012904]
(57) Join
Arguments: Inner, (plantUuid#1012654 = plant#1012904)
(58) Project
Arguments: [plantId#1012653, plantUuid#1012654, storageLocId#1012660, storageLocUuid#1012661]
(59) Join
Arguments: Inner, (plant#1012689.internalRefUUID <=> plantUuid#1012654)
(60) Generate
Arguments: explode(filter(stockQuantities#1012691, lambdafunction(((lambda x#1012695.storageLocation.internalRefUuid = storageLocUuid#1012661) AND (lambda x#1012695.storageLocation.Id = storageLocId#1012660)), lambda x#1012695, false))), false, [stockQuantity#1012696]
(61) Project
Arguments: [systemId#1012686, internalUUID#1012687, product#1012688, plant#1012689, calculationDateTime#1012690, stockQuantities#1012691, plantId#1012653, plantUuid#1012654, storageLocId#1012660, storageLocUuid#1012661, stockQuantity#1012696]
(62) Aggregate
Arguments: [plantUuid#1012654, internalUUID#1012687, plant#1012689, product#1012688, systemId#1012686], [plantUuid#1012654, internalUUID#1012687, plant#1012689, product#1012688, systemId#1012686, first(calculationDateTime#1012690, false) AS calculationDateTime#1012697, collect_list(stockQuantity#1012696, 0, 0) AS stockQuantities#1012698]
(63) Project
Arguments: [systemId#1012686, internalUUID#1012687, product#1012688, plant#1012689, calculationDateTime#1012697, stockQuantities#1012698]
(64) Generate
Arguments: explode(stockQuantities#1012698), false, [stockQuantity#1012713]
(65) Project
Arguments: [systemId#1012686, internalUUID#1012687, product#1012688, plant#1012689, calculationDateTime#1012697, stockQuantities#1012698, stockQuantity#1012713]
(66) Project
Arguments: [plant#1012689.id AS plant#1012714, plant#1012689.internalRefUUID AS plantUuid#1012715, product#1012688.id AS product#1012716, product#1012688.internalRefUUID AS productUuid#1012717, calculationDateTime#1012697, stockQuantity#1012713.storagelocation.id AS storageLocId#1012718, stockQuantity#1012713.storagelocation.internalRefUUID AS storageLocUuid#1012719, stockQuantity#1012713.quantity.measure AS quantity#1012720, stockQuantity#1012713.specialStockIndicator.code AS specialStockIndicator#1012721, stockQuantity#1012713.stockType.code AS stockType#1012722]
(67) Filter
Arguments: ((specialStockIndicator#1012721 = ) AND (stockType#1012722 = 01))
(68) LogicalRelation
Arguments: parquet, [product#1012732, plant#1012733, orderDateTime#1012734, planningStartDateTime#1012735], false
(69) RepartitionByExpression
Arguments: [product#1012732, plant#1012733], 37
(70) Project
Arguments: [product#1012732, plant#1012733, orderDateTime#1012734]
(71) LogicalRelation
Arguments: parquet, [systemId#1012736, internalUUID#1012737, plant#1012738, product#1012739, blockedForReplenishmentStartingFrom#1012740, productionAspect#1012741, salesPlant#1012742, listing#1012743, sourceOfSupplyCategory#1012744], false
(72) Repartition
Arguments: 37, true
(73) Project
Arguments: [systemId#1012736, internalUUID#1012737, plant#1012738, product#1012739, blockedForReplenishmentStartingFrom#1012740, productionAspect#1012741, salesPlant#1012742, listing#1012743, sourceOfSupplyCategory#1012744, struct(systemId, systemId#1012736, internalUUID, internalUUID#1012737, plant, plant#1012738, product, product#1012739, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1012740, productionAspect, productionAspect#1012741, salesPlant, salesPlant#1012742, listing, listing#1012743, sourceOfSupplyCategory, sourceOfSupplyCategory#1012744) AS productPlant#1012745]
(74) Project
Arguments: [productPlant#1012745]
(75) Join
Arguments: LeftOuter, ((product#1012732 <=> productPlant#1012745.product.internalRefUUID) AND (plant#1012733 <=> productPlant#1012745.plant.internalRefUUID))
(76) Project
Arguments: [product#1012732, plant#1012733, orderDateTime#1012734, productPlant#1012745]
(77) LogicalRelation
Arguments: parquet, [systemId#1012746, internalUUID#1012747, id#1012748, displayId#1012749, name#1012750, baseUnitOfMeasure#1012751, unitOfMeasures#1012752, unitOfMeasureConversions#1012753, productionAspect#1012754, salesAspect#1012755, procurementAspect#1012756, productGroup#1012757], false
(78) Repartition
Arguments: 37, true
(79) Join
Arguments: LeftOuter, (product#1012732 = internalUUID#1012747)
(80) Project
Arguments: [product#1012732, plant#1012733, orderDateTime#1012734, productPlant#1012745, systemId#1012746, internalUUID#1012747, id#1012748, displayId#1012749, name#1012750, baseUnitOfMeasure#1012751, unitOfMeasures#1012752, unitOfMeasureConversions#1012753, productionAspect#1012754, salesAspect#1012755, procurementAspect#1012756, productGroup#1012757, filter(unitOfMeasureConversions#1012753, lambdafunction((((lambda u#1012565.measurementUnit1.code = productPlant#1012745.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1012565.measurementUnit1.internalRefUUID = productPlant#1012745.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1012565.measurementUnit2.code = baseUnitOfMeasure#1012751.code) AND (lambda u#1012565.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1012751.internalRefUUID))), lambda u#1012565, false)) AS filteredUnitOfMeasureConversions#1012758]
(81) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1012758.quantityNumerator), true, [quantityNumerator#1012759]
(82) Project
Arguments: [product#1012732, plant#1012733, orderDateTime#1012734, productPlant#1012745, systemId#1012746, internalUUID#1012747, id#1012748, displayId#1012749, name#1012750, baseUnitOfMeasure#1012751, unitOfMeasures#1012752, unitOfMeasureConversions#1012753, productionAspect#1012754, salesAspect#1012755, procurementAspect#1012756, productGroup#1012757, filteredUnitOfMeasureConversions#1012758, quantityNumerator#1012759]
(83) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1012758.quantityDenominator), true, [quantityDenominator#1012760]
(84) Project
Arguments: [product#1012732, plant#1012733, orderDateTime#1012734, productPlant#1012745, systemId#1012746, internalUUID#1012747, id#1012748, displayId#1012749, name#1012750, baseUnitOfMeasure#1012751, unitOfMeasures#1012752, unitOfMeasureConversions#1012753, productionAspect#1012754, salesAspect#1012755, procurementAspect#1012756, productGroup#1012757, filteredUnitOfMeasureConversions#1012758, quantityNumerator#1012759, quantityDenominator#1012760]
(85) Project
Arguments: [product#1012732, plant#1012733, orderDateTime#1012734, productPlant#1012745, systemId#1012746, internalUUID#1012747, id#1012748, displayId#1012749, name#1012750, baseUnitOfMeasure#1012751, unitOfMeasures#1012752, unitOfMeasureConversions#1012753, productionAspect#1012754, salesAspect#1012755, procurementAspect#1012756, productGroup#1012757, filteredUnitOfMeasureConversions#1012758, quantityNumerator#1012759, quantityDenominator#1012760, (cast(quantityNumerator#1012759 as double) / cast(quantityDenominator#1012760 as double)) AS outboundUnit#1012761]
(86) Project
Arguments: [product#1012732, plant#1012733, orderDateTime#1012734, productPlant#1012745, systemId#1012746, internalUUID#1012747, id#1012748, displayId#1012749, name#1012750, baseUnitOfMeasure#1012751, unitOfMeasures#1012752, unitOfMeasureConversions#1012753, productionAspect#1012754, salesAspect#1012755, procurementAspect#1012756, productGroup#1012757, filteredUnitOfMeasureConversions#1012758, quantityNumerator#1012759, quantityDenominator#1012760, CASE WHEN (isnull(outboundUnit#1012761) OR (outboundUnit#1012761 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1012761 END AS outboundUnit#1012762]
(87) Project
Arguments: [product#1012732, plant#1012733, orderDateTime#1012734, productPlant#1012745, outboundUnit#1012762]
(88) Join
Arguments: Inner, ((plantUuid#1012715 = plant#1012733) AND (productUuid#1012717 = product#1012732))
(89) Filter
Arguments: (calculationDateTime#1012697 <= orderDateTime#1012734)
(90) Project
Arguments: [plantUuid#1012715 AS plant#1012766, productUuid#1012717 AS product#1012767, storageLocId#1012718, calculationDateTime#1012697, quantity#1012720]
(91) LogicalRelation
Arguments: parquet, [systemId#1012775, internalUUID#1012776, product#1012777, plant#1012778, calculationDateTime#1012779, stockQuantities#1012780], false
(92) Repartition
Arguments: 37, true
(93) LogicalRelation
Arguments: parquet, [marketUnit#1012781, description#1012782, articleHierarchy#1012783, defaultCurrency#1012784, responsibilities#1012785, replenishmentTypes#1012786, distributionCenters#1012787, assignedArticleHierarchyNodes#1012788, minOrderQtySetting#1012789, listingCheck#1012790, odsSelection#1012791, demandProfiles#1012792, constraintProfiles#1012793, optimizationProfiles#1012794, orderGroupSplitProfiles#1012795, supplierMinimumProfiles#1012796, multipleRestrictionProfiles#1012797, preferredUomSource#1012798, handlingOfUnfulfilledDemands#1012799, negligibleQuantitiesThreshold#1012800, eventtype#1012801], false
(94) Repartition
Arguments: 37, true
(95) Filter
Arguments: (marketUnit#1012781 <=> STEPHI_MU)
(96) Project
Arguments: [marketUnit#1012781, description#1012782, articleHierarchy#1012783, defaultCurrency#1012784, responsibilities#1012785, replenishmentTypes#1012786, distributionCenters#1012787, assignedArticleHierarchyNodes#1012788, minOrderQtySetting#1012789, listingCheck#1012790, odsSelection#1012791, demandProfiles#1012792, constraintProfiles#1012793, optimizationProfiles#1012794, orderGroupSplitProfiles#1012795, supplierMinimumProfiles#1012796, multipleRestrictionProfiles#1012797, preferredUomSource#1012798, handlingOfUnfulfilledDemands#1012799, negligibleQuantitiesThreshold#1012800, eventtype#1012801]
(97) Project
Arguments: [distributionCenters#1012787]
(98) Generate
Arguments: explode(distributionCenters#1012787), false, [distributionCenters#1012802]
(99) Project
Arguments: [distributionCenters#1012802]
(100) Generate
Arguments: explode(distributionCenters#1012802.storageLocations), false, [storageLocations#1012803]
(101) Project
Arguments: [distributionCenters#1012802.id AS plantId#1012804, distributionCenters#1012802.internalRefUUID AS plantUuid#1012805, storageLocations#1012803]
(102) Project
Arguments: [plantId#1012804, plantUuid#1012805, storageLocations#1012803.id AS storageLocId#1012806, storageLocations#1012803.internalRefUUID AS storageLocUuid#1012807]
(103) LogicalRelation
Arguments: parquet, [product#1012808, plant#1012809, orderDateTime#1012810, planningStartDateTime#1012811], false
(104) RepartitionByExpression
Arguments: [product#1012808, plant#1012809], 37
(105) Project
Arguments: [product#1012808, plant#1012809, orderDateTime#1012810]
(106) LogicalRelation
Arguments: parquet, [systemId#1012812, internalUUID#1012813, plant#1012814, product#1012815, blockedForReplenishmentStartingFrom#1012816, productionAspect#1012817, salesPlant#1012818, listing#1012819, sourceOfSupplyCategory#1012820], false
(107) Repartition
Arguments: 37, true
(108) Project
Arguments: [systemId#1012812, internalUUID#1012813, plant#1012814, product#1012815, blockedForReplenishmentStartingFrom#1012816, productionAspect#1012817, salesPlant#1012818, listing#1012819, sourceOfSupplyCategory#1012820, struct(systemId, systemId#1012812, internalUUID, internalUUID#1012813, plant, plant#1012814, product, product#1012815, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1012816, productionAspect, productionAspect#1012817, salesPlant, salesPlant#1012818, listing, listing#1012819, sourceOfSupplyCategory, sourceOfSupplyCategory#1012820) AS productPlant#1012821]
(109) Project
Arguments: [productPlant#1012821]
(110) Join
Arguments: LeftOuter, ((product#1012808 <=> productPlant#1012821.product.internalRefUUID) AND (plant#1012809 <=> productPlant#1012821.plant.internalRefUUID))
(111) Project
Arguments: [product#1012808, plant#1012809, orderDateTime#1012810, productPlant#1012821]
(112) LogicalRelation
Arguments: parquet, [systemId#1012822, internalUUID#1012823, id#1012824, displayId#1012825, name#1012826, baseUnitOfMeasure#1012827, unitOfMeasures#1012828, unitOfMeasureConversions#1012829, productionAspect#1012830, salesAspect#1012831, procurementAspect#1012832, productGroup#1012833], false
(113) Repartition
Arguments: 37, true
(114) Join
Arguments: LeftOuter, (product#1012808 = internalUUID#1012823)
(115) Project
Arguments: [product#1012808, plant#1012809, orderDateTime#1012810, productPlant#1012821, systemId#1012822, internalUUID#1012823, id#1012824, displayId#1012825, name#1012826, baseUnitOfMeasure#1012827, unitOfMeasures#1012828, unitOfMeasureConversions#1012829, productionAspect#1012830, salesAspect#1012831, procurementAspect#1012832, productGroup#1012833, filter(unitOfMeasureConversions#1012829, lambdafunction((((lambda u#1012565.measurementUnit1.code = productPlant#1012821.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1012565.measurementUnit1.internalRefUUID = productPlant#1012821.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1012565.measurementUnit2.code = baseUnitOfMeasure#1012827.code) AND (lambda u#1012565.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1012827.internalRefUUID))), lambda u#1012565, false)) AS filteredUnitOfMeasureConversions#1012834]
(116) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1012834.quantityNumerator), true, [quantityNumerator#1012835]
(117) Project
Arguments: [product#1012808, plant#1012809, orderDateTime#1012810, productPlant#1012821, systemId#1012822, internalUUID#1012823, id#1012824, displayId#1012825, name#1012826, baseUnitOfMeasure#1012827, unitOfMeasures#1012828, unitOfMeasureConversions#1012829, productionAspect#1012830, salesAspect#1012831, procurementAspect#1012832, productGroup#1012833, filteredUnitOfMeasureConversions#1012834, quantityNumerator#1012835]
(118) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1012834.quantityDenominator), true, [quantityDenominator#1012836]
(119) Project
Arguments: [product#1012808, plant#1012809, orderDateTime#1012810, productPlant#1012821, systemId#1012822, internalUUID#1012823, id#1012824, displayId#1012825, name#1012826, baseUnitOfMeasure#1012827, unitOfMeasures#1012828, unitOfMeasureConversions#1012829, productionAspect#1012830, salesAspect#1012831, procurementAspect#1012832, productGroup#1012833, filteredUnitOfMeasureConversions#1012834, quantityNumerator#1012835, quantityDenominator#1012836]
(120) Project
Arguments: [product#1012808, plant#1012809, orderDateTime#1012810, productPlant#1012821, systemId#1012822, internalUUID#1012823, id#1012824, displayId#1012825, name#1012826, baseUnitOfMeasure#1012827, unitOfMeasures#1012828, unitOfMeasureConversions#1012829, productionAspect#1012830, salesAspect#1012831, procurementAspect#1012832, productGroup#1012833, filteredUnitOfMeasureConversions#1012834, quantityNumerator#1012835, quantityDenominator#1012836, (cast(quantityNumerator#1012835 as double) / cast(quantityDenominator#1012836 as double)) AS outboundUnit#1012837]
(121) Project
Arguments: [product#1012808, plant#1012809, orderDateTime#1012810, productPlant#1012821, systemId#1012822, internalUUID#1012823, id#1012824, displayId#1012825, name#1012826, baseUnitOfMeasure#1012827, unitOfMeasures#1012828, unitOfMeasureConversions#1012829, productionAspect#1012830, salesAspect#1012831, procurementAspect#1012832, productGroup#1012833, filteredUnitOfMeasureConversions#1012834, quantityNumerator#1012835, quantityDenominator#1012836, CASE WHEN (isnull(outboundUnit#1012837) OR (outboundUnit#1012837 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1012837 END AS outboundUnit#1012838]
(122) Project
Arguments: [product#1012808, plant#1012809, orderDateTime#1012810, productPlant#1012821, outboundUnit#1012838]
(123) Project
Arguments: [plant#1012809]
(124) Deduplicate
Arguments: [plant#1012809]
(125) Join
Arguments: Inner, (plantUuid#1012805 = plant#1012809)
(126) Project
Arguments: [plantId#1012804, plantUuid#1012805, storageLocId#1012806, storageLocUuid#1012807]
(127) Join
Arguments: Inner, (plant#1012778.internalRefUUID <=> plantUuid#1012805)
(128) Generate
Arguments: explode(filter(stockQuantities#1012780, lambdafunction(((lambda x#1012695.storageLocation.internalRefUuid = storageLocUuid#1012807) AND (lambda x#1012695.storageLocation.Id = storageLocId#1012806)), lambda x#1012695, false))), false, [stockQuantity#1012839]
(129) Project
Arguments: [systemId#1012775, internalUUID#1012776, product#1012777, plant#1012778, calculationDateTime#1012779, stockQuantities#1012780, plantId#1012804, plantUuid#1012805, storageLocId#1012806, storageLocUuid#1012807, stockQuantity#1012839]
(130) Aggregate
Arguments: [plantUuid#1012805, internalUUID#1012776, plant#1012778, product#1012777, systemId#1012775], [plantUuid#1012805, internalUUID#1012776, plant#1012778, product#1012777, systemId#1012775, first(calculationDateTime#1012779, false) AS calculationDateTime#1012840, collect_list(stockQuantity#1012839, 0, 0) AS stockQuantities#1012841]
(131) Project
Arguments: [systemId#1012775, internalUUID#1012776, product#1012777, plant#1012778, calculationDateTime#1012840, stockQuantities#1012841]
(132) Generate
Arguments: explode(stockQuantities#1012841), false, [stockQuantity#1012842]
(133) Project
Arguments: [systemId#1012775, internalUUID#1012776, product#1012777, plant#1012778, calculationDateTime#1012840, stockQuantities#1012841, stockQuantity#1012842]
(134) Project
Arguments: [plant#1012778.id AS plant#1012843, plant#1012778.internalRefUUID AS plantUuid#1012844, product#1012777.id AS product#1012845, product#1012777.internalRefUUID AS productUuid#1012846, calculationDateTime#1012840, stockQuantity#1012842.storagelocation.id AS storageLocId#1012847, stockQuantity#1012842.storagelocation.internalRefUUID AS storageLocUuid#1012848, stockQuantity#1012842.quantity.measure AS quantity#1012849, stockQuantity#1012842.specialStockIndicator.code AS specialStockIndicator#1012850, stockQuantity#1012842.stockType.code AS stockType#1012851]
(135) Filter
Arguments: ((specialStockIndicator#1012850 = ) AND (stockType#1012851 = 01))
(136) LogicalRelation
Arguments: parquet, [product#1012852, plant#1012853, orderDateTime#1012854, planningStartDateTime#1012855], false
(137) RepartitionByExpression
Arguments: [product#1012852, plant#1012853], 37
(138) Project
Arguments: [product#1012852, plant#1012853, orderDateTime#1012854]
(139) LogicalRelation
Arguments: parquet, [systemId#1012856, internalUUID#1012857, plant#1012858, product#1012859, blockedForReplenishmentStartingFrom#1012860, productionAspect#1012861, salesPlant#1012862, listing#1012863, sourceOfSupplyCategory#1012864], false
(140) Repartition
Arguments: 37, true
(141) Project
Arguments: [systemId#1012856, internalUUID#1012857, plant#1012858, product#1012859, blockedForReplenishmentStartingFrom#1012860, productionAspect#1012861, salesPlant#1012862, listing#1012863, sourceOfSupplyCategory#1012864, struct(systemId, systemId#1012856, internalUUID, internalUUID#1012857, plant, plant#1012858, product, product#1012859, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1012860, productionAspect, productionAspect#1012861, salesPlant, salesPlant#1012862, listing, listing#1012863, sourceOfSupplyCategory, sourceOfSupplyCategory#1012864) AS productPlant#1012865]
(142) Project
Arguments: [productPlant#1012865]
(143) Join
Arguments: LeftOuter, ((product#1012852 <=> productPlant#1012865.product.internalRefUUID) AND (plant#1012853 <=> productPlant#1012865.plant.internalRefUUID))
(144) Project
Arguments: [product#1012852, plant#1012853, orderDateTime#1012854, productPlant#1012865]
(145) LogicalRelation
Arguments: parquet, [systemId#1012866, internalUUID#1012867, id#1012868, displayId#1012869, name#1012870, baseUnitOfMeasure#1012871, unitOfMeasures#1012872, unitOfMeasureConversions#1012873, productionAspect#1012874, salesAspect#1012875, procurementAspect#1012876, productGroup#1012877], false
(146) Repartition
Arguments: 37, true
(147) Join
Arguments: LeftOuter, (product#1012852 = internalUUID#1012867)
(148) Project
Arguments: [product#1012852, plant#1012853, orderDateTime#1012854, productPlant#1012865, systemId#1012866, internalUUID#1012867, id#1012868, displayId#1012869, name#1012870, baseUnitOfMeasure#1012871, unitOfMeasures#1012872, unitOfMeasureConversions#1012873, productionAspect#1012874, salesAspect#1012875, procurementAspect#1012876, productGroup#1012877, filter(unitOfMeasureConversions#1012873, lambdafunction((((lambda u#1012565.measurementUnit1.code = productPlant#1012865.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1012565.measurementUnit1.internalRefUUID = productPlant#1012865.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1012565.measurementUnit2.code = baseUnitOfMeasure#1012871.code) AND (lambda u#1012565.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1012871.internalRefUUID))), lambda u#1012565, false)) AS filteredUnitOfMeasureConversions#1012878]
(149) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1012878.quantityNumerator), true, [quantityNumerator#1012879]
(150) Project
Arguments: [product#1012852, plant#1012853, orderDateTime#1012854, productPlant#1012865, systemId#1012866, internalUUID#1012867, id#1012868, displayId#1012869, name#1012870, baseUnitOfMeasure#1012871, unitOfMeasures#1012872, unitOfMeasureConversions#1012873, productionAspect#1012874, salesAspect#1012875, procurementAspect#1012876, productGroup#1012877, filteredUnitOfMeasureConversions#1012878, quantityNumerator#1012879]
(151) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1012878.quantityDenominator), true, [quantityDenominator#1012880]
(152) Project
Arguments: [product#1012852, plant#1012853, orderDateTime#1012854, productPlant#1012865, systemId#1012866, internalUUID#1012867, id#1012868, displayId#1012869, name#1012870, baseUnitOfMeasure#1012871, unitOfMeasures#1012872, unitOfMeasureConversions#1012873, productionAspect#1012874, salesAspect#1012875, procurementAspect#1012876, productGroup#1012877, filteredUnitOfMeasureConversions#1012878, quantityNumerator#1012879, quantityDenominator#1012880]
(153) Project
Arguments: [product#1012852, plant#1012853, orderDateTime#1012854, productPlant#1012865, systemId#1012866, internalUUID#1012867, id#1012868, displayId#1012869, name#1012870, baseUnitOfMeasure#1012871, unitOfMeasures#1012872, unitOfMeasureConversions#1012873, productionAspect#1012874, salesAspect#1012875, procurementAspect#1012876, productGroup#1012877, filteredUnitOfMeasureConversions#1012878, quantityNumerator#1012879, quantityDenominator#1012880, (cast(quantityNumerator#1012879 as double) / cast(quantityDenominator#1012880 as double)) AS outboundUnit#1012881]
(154) Project
Arguments: [product#1012852, plant#1012853, orderDateTime#1012854, productPlant#1012865, systemId#1012866, internalUUID#1012867, id#1012868, displayId#1012869, name#1012870, baseUnitOfMeasure#1012871, unitOfMeasures#1012872, unitOfMeasureConversions#1012873, productionAspect#1012874, salesAspect#1012875, procurementAspect#1012876, productGroup#1012877, filteredUnitOfMeasureConversions#1012878, quantityNumerator#1012879, quantityDenominator#1012880, CASE WHEN (isnull(outboundUnit#1012881) OR (outboundUnit#1012881 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1012881 END AS outboundUnit#1012882]
(155) Project
Arguments: [product#1012852, plant#1012853, orderDateTime#1012854, productPlant#1012865, outboundUnit#1012882]
(156) Join
Arguments: Inner, ((plantUuid#1012844 = plant#1012853) AND (productUuid#1012846 = product#1012852))
(157) Filter
Arguments: (calculationDateTime#1012840 <= orderDateTime#1012854)
(158) Project
Arguments: [plantUuid#1012844 AS plant#1012883, productUuid#1012846 AS product#1012884, storageLocId#1012847, calculationDateTime#1012840, quantity#1012849]
(159) Aggregate
Arguments: [plant#1012883, product#1012884, storageLocId#1012847], [plant#1012883, product#1012884, storageLocId#1012847, max(calculationDateTime#1012840) AS max_calc_datetime#1012768]
(160) Join
Arguments: Inner, ((((plant#1012766 <=> plant#1012883) AND (product#1012767 <=> product#1012884)) AND (storageLocId#1012718 <=> storageLocId#1012847)) AND (calculationDateTime#1012697 <=> max_calc_datetime#1012768))
(161) Project
Arguments: [plant#1012766, product#1012767, storageLocId#1012718, calculationDateTime#1012697, quantity#1012720]
(162) Aggregate
Arguments: [product#1012767, plant#1012766], [product#1012767, plant#1012766, sum(quantity#1012720) AS quantitySum#1012893, min(calculationDateTime#1012697) AS minCalculationDateTime#1012894]
(163) Project
Arguments: [product#1012767, plant#1012766, quantitySum#1012893, minCalculationDateTime#1012894, round(quantitySum#1012893, 0) AS roundedQuantitySum#1012902]
(164) Join
Arguments: LeftOuter, ((plant#1012490 = plant#1012766) AND (product#1012489 = product#1012767))
(165) Project
Arguments: [product#1012489, plant#1012490, orderDateTime#1012491, productPlant#1012526, outboundUnit#1012577, roundedQuantitySum#1012902, minCalculationDateTime#1012894]
(166) Project
Arguments: [product#1012489, plant#1012490, orderDateTime#1012491, productPlant#1012526, outboundUnit#1012577, roundedQuantitySum#1012902, minCalculationDateTime#1012894, CASE WHEN isnotnull(minCalculationDateTime#1012894) THEN minCalculationDateTime#1012894 ELSE orderDateTime#1012491 END AS stockDatetime#1012937]
(167) Project
Arguments: [product#1012489, plant#1012490, orderDateTime#1012491, productPlant#1012526, outboundUnit#1012577, roundedQuantitySum#1012902, minCalculationDateTime#1012894, stockDatetime#1012937, CASE WHEN isnotnull(roundedQuantitySum#1012902) THEN array(roundedQuantitySum#1012902) ELSE array(0.0) END AS stockBatchQuantities#1012938]
(168) Project
Arguments: [product#1012489, plant#1012490, orderDateTime#1012491, productPlant#1012526, outboundUnit#1012577, roundedQuantitySum#1012902, minCalculationDateTime#1012894, stockDatetime#1012937, stockBatchQuantities#1012938, array(2199-01-01 00:00:00) AS stockBatchShelfLifeEndDatetimes#1012939]
(169) Project
Arguments: [product#1012489, plant#1012490, orderDateTime#1012491, productPlant#1012526, outboundUnit#1012577, roundedQuantitySum#1012902, stockDatetime#1012937, stockBatchQuantities#1012938, stockBatchShelfLifeEndDatetimes#1012939]
(170) Project
Arguments: [product#1012489, plant#1012490, orderDateTime#1012491, productPlant#1012526, outboundUnit#1012577, stockDatetime#1012937, stockBatchQuantities#1012938, stockBatchShelfLifeEndDatetimes#1012939]
(171) LogicalRelation
Arguments: parquet, [product#1014057, plant#1014058, orderDateTime#1014059, planningStartDateTime#1014060], false
(172) RepartitionByExpression
Arguments: [product#1014057, plant#1014058], 37
(173) Project
Arguments: [product#1014057, plant#1014058, orderDateTime#1014059]
(174) LogicalRelation
Arguments: parquet, [systemId#1014061, internalUUID#1014062, plant#1014063, product#1014064, blockedForReplenishmentStartingFrom#1014065, productionAspect#1014066, salesPlant#1014067, listing#1014068, sourceOfSupplyCategory#1014069], false
(175) Repartition
Arguments: 37, true
(176) Project
Arguments: [systemId#1014061, internalUUID#1014062, plant#1014063, product#1014064, blockedForReplenishmentStartingFrom#1014065, productionAspect#1014066, salesPlant#1014067, listing#1014068, sourceOfSupplyCategory#1014069, struct(systemId, systemId#1014061, internalUUID, internalUUID#1014062, plant, plant#1014063, product, product#1014064, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1014065, productionAspect, productionAspect#1014066, salesPlant, salesPlant#1014067, listing, listing#1014068, sourceOfSupplyCategory, sourceOfSupplyCategory#1014069) AS productPlant#1014070]
(177) Project
Arguments: [productPlant#1014070]
(178) Join
Arguments: LeftOuter, ((product#1014057 <=> productPlant#1014070.product.internalRefUUID) AND (plant#1014058 <=> productPlant#1014070.plant.internalRefUUID))
(179) Project
Arguments: [product#1014057, plant#1014058, orderDateTime#1014059, productPlant#1014070]
(180) LogicalRelation
Arguments: parquet, [systemId#1014071, internalUUID#1014072, id#1014073, displayId#1014074, name#1014075, baseUnitOfMeasure#1014076, unitOfMeasures#1014077, unitOfMeasureConversions#1014078, productionAspect#1014079, salesAspect#1014080, procurementAspect#1014081, productGroup#1014082], false
(181) Repartition
Arguments: 37, true
(182) Join
Arguments: LeftOuter, (product#1014057 = internalUUID#1014072)
(183) Project
Arguments: [product#1014057, plant#1014058, orderDateTime#1014059, productPlant#1014070, systemId#1014071, internalUUID#1014072, id#1014073, displayId#1014074, name#1014075, baseUnitOfMeasure#1014076, unitOfMeasures#1014077, unitOfMeasureConversions#1014078, productionAspect#1014079, salesAspect#1014080, procurementAspect#1014081, productGroup#1014082, filter(unitOfMeasureConversions#1014078, lambdafunction((((lambda u#1012565.measurementUnit1.code = productPlant#1014070.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1012565.measurementUnit1.internalRefUUID = productPlant#1014070.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1012565.measurementUnit2.code = baseUnitOfMeasure#1014076.code) AND (lambda u#1012565.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1014076.internalRefUUID))), lambda u#1012565, false)) AS filteredUnitOfMeasureConversions#1014083]
(184) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1014083.quantityNumerator), true, [quantityNumerator#1014084]
(185) Project
Arguments: [product#1014057, plant#1014058, orderDateTime#1014059, productPlant#1014070, systemId#1014071, internalUUID#1014072, id#1014073, displayId#1014074, name#1014075, baseUnitOfMeasure#1014076, unitOfMeasures#1014077, unitOfMeasureConversions#1014078, productionAspect#1014079, salesAspect#1014080, procurementAspect#1014081, productGroup#1014082, filteredUnitOfMeasureConversions#1014083, quantityNumerator#1014084]
(186) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1014083.quantityDenominator), true, [quantityDenominator#1014085]
(187) Project
Arguments: [product#1014057, plant#1014058, orderDateTime#1014059, productPlant#1014070, systemId#1014071, internalUUID#1014072, id#1014073, displayId#1014074, name#1014075, baseUnitOfMeasure#1014076, unitOfMeasures#1014077, unitOfMeasureConversions#1014078, productionAspect#1014079, salesAspect#1014080, procurementAspect#1014081, productGroup#1014082, filteredUnitOfMeasureConversions#1014083, quantityNumerator#1014084, quantityDenominator#1014085]
(188) Project
Arguments: [product#1014057, plant#1014058, orderDateTime#1014059, productPlant#1014070, systemId#1014071, internalUUID#1014072, id#1014073, displayId#1014074, name#1014075, baseUnitOfMeasure#1014076, unitOfMeasures#1014077, unitOfMeasureConversions#1014078, productionAspect#1014079, salesAspect#1014080, procurementAspect#1014081, productGroup#1014082, filteredUnitOfMeasureConversions#1014083, quantityNumerator#1014084, quantityDenominator#1014085, (cast(quantityNumerator#1014084 as double) / cast(quantityDenominator#1014085 as double)) AS outboundUnit#1014086]
(189) Project
Arguments: [product#1014057, plant#1014058, orderDateTime#1014059, productPlant#1014070, systemId#1014071, internalUUID#1014072, id#1014073, displayId#1014074, name#1014075, baseUnitOfMeasure#1014076, unitOfMeasures#1014077, unitOfMeasureConversions#1014078, productionAspect#1014079, salesAspect#1014080, procurementAspect#1014081, productGroup#1014082, filteredUnitOfMeasureConversions#1014083, quantityNumerator#1014084, quantityDenominator#1014085, CASE WHEN (isnull(outboundUnit#1014086) OR (outboundUnit#1014086 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1014086 END AS outboundUnit#1014087]
(190) Project
Arguments: [product#1014057, plant#1014058, orderDateTime#1014059, productPlant#1014070, outboundUnit#1014087]
(191) LogicalRelation
Arguments: parquet, [systemId#1014088, internalUUID#1014089, product#1014090, plant#1014091, calculationDateTime#1014092, stockQuantities#1014093], false
(192) Repartition
Arguments: 37, true
(193) LogicalRelation
Arguments: parquet, [marketUnit#1014094, description#1014095, articleHierarchy#1014096, defaultCurrency#1014097, responsibilities#1014098, replenishmentTypes#1014099, distributionCenters#1014100, assignedArticleHierarchyNodes#1014101, minOrderQtySetting#1014102, listingCheck#1014103, odsSelection#1014104, demandProfiles#1014105, constraintProfiles#1014106, optimizationProfiles#1014107, orderGroupSplitProfiles#1014108, supplierMinimumProfiles#1014109, multipleRestrictionProfiles#1014110, preferredUomSource#1014111, handlingOfUnfulfilledDemands#1014112, negligibleQuantitiesThreshold#1014113, eventtype#1014114], false
(194) Repartition
Arguments: 37, true
(195) Filter
Arguments: (marketUnit#1014094 <=> STEPHI_MU)
(196) Project
Arguments: [marketUnit#1014094, description#1014095, articleHierarchy#1014096, defaultCurrency#1014097, responsibilities#1014098, replenishmentTypes#1014099, distributionCenters#1014100, assignedArticleHierarchyNodes#1014101, minOrderQtySetting#1014102, listingCheck#1014103, odsSelection#1014104, demandProfiles#1014105, constraintProfiles#1014106, optimizationProfiles#1014107, orderGroupSplitProfiles#1014108, supplierMinimumProfiles#1014109, multipleRestrictionProfiles#1014110, preferredUomSource#1014111, handlingOfUnfulfilledDemands#1014112, negligibleQuantitiesThreshold#1014113, eventtype#1014114]
(197) Project
Arguments: [distributionCenters#1014100]
(198) Generate
Arguments: explode(distributionCenters#1014100), false, [distributionCenters#1014115]
(199) Project
Arguments: [distributionCenters#1014115]
(200) Generate
Arguments: explode(distributionCenters#1014115.storageLocations), false, [storageLocations#1014116]
(201) Project
Arguments: [distributionCenters#1014115.id AS plantId#1014117, distributionCenters#1014115.internalRefUUID AS plantUuid#1014118, storageLocations#1014116]
(202) Project
Arguments: [plantId#1014117, plantUuid#1014118, storageLocations#1014116.id AS storageLocId#1014119, storageLocations#1014116.internalRefUUID AS storageLocUuid#1014120]
(203) LogicalRelation
Arguments: parquet, [product#1014121, plant#1014122, orderDateTime#1014123, planningStartDateTime#1014124], false
(204) RepartitionByExpression
Arguments: [product#1014121, plant#1014122], 37
(205) Project
Arguments: [product#1014121, plant#1014122, orderDateTime#1014123]
(206) LogicalRelation
Arguments: parquet, [systemId#1014125, internalUUID#1014126, plant#1014127, product#1014128, blockedForReplenishmentStartingFrom#1014129, productionAspect#1014130, salesPlant#1014131, listing#1014132, sourceOfSupplyCategory#1014133], false
(207) Repartition
Arguments: 37, true
(208) Project
Arguments: [systemId#1014125, internalUUID#1014126, plant#1014127, product#1014128, blockedForReplenishmentStartingFrom#1014129, productionAspect#1014130, salesPlant#1014131, listing#1014132, sourceOfSupplyCategory#1014133, struct(systemId, systemId#1014125, internalUUID, internalUUID#1014126, plant, plant#1014127, product, product#1014128, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1014129, productionAspect, productionAspect#1014130, salesPlant, salesPlant#1014131, listing, listing#1014132, sourceOfSupplyCategory, sourceOfSupplyCategory#1014133) AS productPlant#1014134]
(209) Project
Arguments: [productPlant#1014134]
(210) Join
Arguments: LeftOuter, ((product#1014121 <=> productPlant#1014134.product.internalRefUUID) AND (plant#1014122 <=> productPlant#1014134.plant.internalRefUUID))
(211) Project
Arguments: [product#1014121, plant#1014122, orderDateTime#1014123, productPlant#1014134]
(212) LogicalRelation
Arguments: parquet, [systemId#1014135, internalUUID#1014136, id#1014137, displayId#1014138, name#1014139, baseUnitOfMeasure#1014140, unitOfMeasures#1014141, unitOfMeasureConversions#1014142, productionAspect#1014143, salesAspect#1014144, procurementAspect#1014145, productGroup#1014146], false
(213) Repartition
Arguments: 37, true
(214) Join
Arguments: LeftOuter, (product#1014121 = internalUUID#1014136)
(215) Project
Arguments: [product#1014121, plant#1014122, orderDateTime#1014123, productPlant#1014134, systemId#1014135, internalUUID#1014136, id#1014137, displayId#1014138, name#1014139, baseUnitOfMeasure#1014140, unitOfMeasures#1014141, unitOfMeasureConversions#1014142, productionAspect#1014143, salesAspect#1014144, procurementAspect#1014145, productGroup#1014146, filter(unitOfMeasureConversions#1014142, lambdafunction((((lambda u#1012565.measurementUnit1.code = productPlant#1014134.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1012565.measurementUnit1.internalRefUUID = productPlant#1014134.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1012565.measurementUnit2.code = baseUnitOfMeasure#1014140.code) AND (lambda u#1012565.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1014140.internalRefUUID))), lambda u#1012565, false)) AS filteredUnitOfMeasureConversions#1014147]
(216) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1014147.quantityNumerator), true, [quantityNumerator#1014148]
(217) Project
Arguments: [product#1014121, plant#1014122, orderDateTime#1014123, productPlant#1014134, systemId#1014135, internalUUID#1014136, id#1014137, displayId#1014138, name#1014139, baseUnitOfMeasure#1014140, unitOfMeasures#1014141, unitOfMeasureConversions#1014142, productionAspect#1014143, salesAspect#1014144, procurementAspect#1014145, productGroup#1014146, filteredUnitOfMeasureConversions#1014147, quantityNumerator#1014148]
(218) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1014147.quantityDenominator), true, [quantityDenominator#1014149]
(219) Project
Arguments: [product#1014121, plant#1014122, orderDateTime#1014123, productPlant#1014134, systemId#1014135, internalUUID#1014136, id#1014137, displayId#1014138, name#1014139, baseUnitOfMeasure#1014140, unitOfMeasures#1014141, unitOfMeasureConversions#1014142, productionAspect#1014143, salesAspect#1014144, procurementAspect#1014145, productGroup#1014146, filteredUnitOfMeasureConversions#1014147, quantityNumerator#1014148, quantityDenominator#1014149]
(220) Project
Arguments: [product#1014121, plant#1014122, orderDateTime#1014123, productPlant#1014134, systemId#1014135, internalUUID#1014136, id#1014137, displayId#1014138, name#1014139, baseUnitOfMeasure#1014140, unitOfMeasures#1014141, unitOfMeasureConversions#1014142, productionAspect#1014143, salesAspect#1014144, procurementAspect#1014145, productGroup#1014146, filteredUnitOfMeasureConversions#1014147, quantityNumerator#1014148, quantityDenominator#1014149, (cast(quantityNumerator#1014148 as double) / cast(quantityDenominator#1014149 as double)) AS outboundUnit#1014150]
(221) Project
Arguments: [product#1014121, plant#1014122, orderDateTime#1014123, productPlant#1014134, systemId#1014135, internalUUID#1014136, id#1014137, displayId#1014138, name#1014139, baseUnitOfMeasure#1014140, unitOfMeasures#1014141, unitOfMeasureConversions#1014142, productionAspect#1014143, salesAspect#1014144, procurementAspect#1014145, productGroup#1014146, filteredUnitOfMeasureConversions#1014147, quantityNumerator#1014148, quantityDenominator#1014149, CASE WHEN (isnull(outboundUnit#1014150) OR (outboundUnit#1014150 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1014150 END AS outboundUnit#1014151]
(222) Project
Arguments: [product#1014121, plant#1014122, orderDateTime#1014123, productPlant#1014134, outboundUnit#1014151]
(223) Project
Arguments: [plant#1014122]
(224) Deduplicate
Arguments: [plant#1014122]
(225) Join
Arguments: Inner, (plantUuid#1014118 = plant#1014122)
(226) Project
Arguments: [plantId#1014117, plantUuid#1014118, storageLocId#1014119, storageLocUuid#1014120]
(227) Join
Arguments: Inner, (plant#1014091.internalRefUUID <=> plantUuid#1014118)
(228) Generate
Arguments: explode(filter(stockQuantities#1014093, lambdafunction(((lambda x#1012695.storageLocation.internalRefUuid = storageLocUuid#1014120) AND (lambda x#1012695.storageLocation.Id = storageLocId#1014119)), lambda x#1012695, false))), false, [stockQuantity#1014152]
(229) Project
Arguments: [systemId#1014088, internalUUID#1014089, product#1014090, plant#1014091, calculationDateTime#1014092, stockQuantities#1014093, plantId#1014117, plantUuid#1014118, storageLocId#1014119, storageLocUuid#1014120, stockQuantity#1014152]
(230) Aggregate
Arguments: [plantUuid#1014118, internalUUID#1014089, plant#1014091, product#1014090, systemId#1014088], [plantUuid#1014118, internalUUID#1014089, plant#1014091, product#1014090, systemId#1014088, first(calculationDateTime#1014092, false) AS calculationDateTime#1014153, collect_list(stockQuantity#1014152, 0, 0) AS stockQuantities#1014154]
(231) Project
Arguments: [systemId#1014088, internalUUID#1014089, product#1014090, plant#1014091, calculationDateTime#1014153, stockQuantities#1014154]
(232) Generate
Arguments: explode(stockQuantities#1014154), false, [stockQuantity#1014155]
(233) Project
Arguments: [systemId#1014088, internalUUID#1014089, product#1014090, plant#1014091, calculationDateTime#1014153, stockQuantities#1014154, stockQuantity#1014155]
(234) Project
Arguments: [plant#1014091.id AS plant#1014156, plant#1014091.internalRefUUID AS plantUuid#1014157, product#1014090.id AS product#1014158, product#1014090.internalRefUUID AS productUuid#1014159, calculationDateTime#1014153, stockQuantity#1014155.storagelocation.id AS storageLocId#1014160, stockQuantity#1014155.storagelocation.internalRefUUID AS storageLocUuid#1014161, stockQuantity#1014155.quantity.measure AS quantity#1014162, stockQuantity#1014155.specialStockIndicator.code AS specialStockIndicator#1014163, stockQuantity#1014155.stockType.code AS stockType#1014164]
(235) Filter
Arguments: ((specialStockIndicator#1014163 = ) AND (stockType#1014164 = 01))
(236) LogicalRelation
Arguments: parquet, [product#1014165, plant#1014166, orderDateTime#1014167, planningStartDateTime#1014168], false
(237) RepartitionByExpression
Arguments: [product#1014165, plant#1014166], 37
(238) Project
Arguments: [product#1014165, plant#1014166, orderDateTime#1014167]
(239) LogicalRelation
Arguments: parquet, [systemId#1014169, internalUUID#1014170, plant#1014171, product#1014172, blockedForReplenishmentStartingFrom#1014173, productionAspect#1014174, salesPlant#1014175, listing#1014176, sourceOfSupplyCategory#1014177], false
(240) Repartition
Arguments: 37, true
(241) Project
Arguments: [systemId#1014169, internalUUID#1014170, plant#1014171, product#1014172, blockedForReplenishmentStartingFrom#1014173, productionAspect#1014174, salesPlant#1014175, listing#1014176, sourceOfSupplyCategory#1014177, struct(systemId, systemId#1014169, internalUUID, internalUUID#1014170, plant, plant#1014171, product, product#1014172, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1014173, productionAspect, productionAspect#1014174, salesPlant, salesPlant#1014175, listing, listing#1014176, sourceOfSupplyCategory, sourceOfSupplyCategory#1014177) AS productPlant#1014178]
(242) Project
Arguments: [productPlant#1014178]
(243) Join
Arguments: LeftOuter, ((product#1014165 <=> productPlant#1014178.product.internalRefUUID) AND (plant#1014166 <=> productPlant#1014178.plant.internalRefUUID))
(244) Project
Arguments: [product#1014165, plant#1014166, orderDateTime#1014167, productPlant#1014178]
(245) LogicalRelation
Arguments: parquet, [systemId#1014179, internalUUID#1014180, id#1014181, displayId#1014182, name#1014183, baseUnitOfMeasure#1014184, unitOfMeasures#1014185, unitOfMeasureConversions#1014186, productionAspect#1014187, salesAspect#1014188, procurementAspect#1014189, productGroup#1014190], false
(246) Repartition
Arguments: 37, true
(247) Join
Arguments: LeftOuter, (product#1014165 = internalUUID#1014180)
(248) Project
Arguments: [product#1014165, plant#1014166, orderDateTime#1014167, productPlant#1014178, systemId#1014179, internalUUID#1014180, id#1014181, displayId#1014182, name#1014183, baseUnitOfMeasure#1014184, unitOfMeasures#1014185, unitOfMeasureConversions#1014186, productionAspect#1014187, salesAspect#1014188, procurementAspect#1014189, productGroup#1014190, filter(unitOfMeasureConversions#1014186, lambdafunction((((lambda u#1012565.measurementUnit1.code = productPlant#1014178.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1012565.measurementUnit1.internalRefUUID = productPlant#1014178.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1012565.measurementUnit2.code = baseUnitOfMeasure#1014184.code) AND (lambda u#1012565.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1014184.internalRefUUID))), lambda u#1012565, false)) AS filteredUnitOfMeasureConversions#1014191]
(249) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1014191.quantityNumerator), true, [quantityNumerator#1014192]
(250) Project
Arguments: [product#1014165, plant#1014166, orderDateTime#1014167, productPlant#1014178, systemId#1014179, internalUUID#1014180, id#1014181, displayId#1014182, name#1014183, baseUnitOfMeasure#1014184, unitOfMeasures#1014185, unitOfMeasureConversions#1014186, productionAspect#1014187, salesAspect#1014188, procurementAspect#1014189, productGroup#1014190, filteredUnitOfMeasureConversions#1014191, quantityNumerator#1014192]
(251) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1014191.quantityDenominator), true, [quantityDenominator#1014193]
(252) Project
Arguments: [product#1014165, plant#1014166, orderDateTime#1014167, productPlant#1014178, systemId#1014179, internalUUID#1014180, id#1014181, displayId#1014182, name#1014183, baseUnitOfMeasure#1014184, unitOfMeasures#1014185, unitOfMeasureConversions#1014186, productionAspect#1014187, salesAspect#1014188, procurementAspect#1014189, productGroup#1014190, filteredUnitOfMeasureConversions#1014191, quantityNumerator#1014192, quantityDenominator#1014193]
(253) Project
Arguments: [product#1014165, plant#1014166, orderDateTime#1014167, productPlant#1014178, systemId#1014179, internalUUID#1014180, id#1014181, displayId#1014182, name#1014183, baseUnitOfMeasure#1014184, unitOfMeasures#1014185, unitOfMeasureConversions#1014186, productionAspect#1014187, salesAspect#1014188, procurementAspect#1014189, productGroup#1014190, filteredUnitOfMeasureConversions#1014191, quantityNumerator#1014192, quantityDenominator#1014193, (cast(quantityNumerator#1014192 as double) / cast(quantityDenominator#1014193 as double)) AS outboundUnit#1014194]
(254) Project
Arguments: [product#1014165, plant#1014166, orderDateTime#1014167, productPlant#1014178, systemId#1014179, internalUUID#1014180, id#1014181, displayId#1014182, name#1014183, baseUnitOfMeasure#1014184, unitOfMeasures#1014185, unitOfMeasureConversions#1014186, productionAspect#1014187, salesAspect#1014188, procurementAspect#1014189, productGroup#1014190, filteredUnitOfMeasureConversions#1014191, quantityNumerator#1014192, quantityDenominator#1014193, CASE WHEN (isnull(outboundUnit#1014194) OR (outboundUnit#1014194 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1014194 END AS outboundUnit#1014195]
(255) Project
Arguments: [product#1014165, plant#1014166, orderDateTime#1014167, productPlant#1014178, outboundUnit#1014195]
(256) Join
Arguments: Inner, ((plantUuid#1014157 = plant#1014166) AND (productUuid#1014159 = product#1014165))
(257) Filter
Arguments: (calculationDateTime#1014153 <= orderDateTime#1014167)
(258) Project
Arguments: [plantUuid#1014157 AS plant#1014196, productUuid#1014159 AS product#1014197, storageLocId#1014160, calculationDateTime#1014153, quantity#1014162]
(259) LogicalRelation
Arguments: parquet, [systemId#1014198, internalUUID#1014199, product#1014200, plant#1014201, calculationDateTime#1014202, stockQuantities#1014203], false
(260) Repartition
Arguments: 37, true
(261) LogicalRelation
Arguments: parquet, [marketUnit#1014204, description#1014205, articleHierarchy#1014206, defaultCurrency#1014207, responsibilities#1014208, replenishmentTypes#1014209, distributionCenters#1014210, assignedArticleHierarchyNodes#1014211, minOrderQtySetting#1014212, listingCheck#1014213, odsSelection#1014214, demandProfiles#1014215, constraintProfiles#1014216, optimizationProfiles#1014217, orderGroupSplitProfiles#1014218, supplierMinimumProfiles#1014219, multipleRestrictionProfiles#1014220, preferredUomSource#1014221, handlingOfUnfulfilledDemands#1014222, negligibleQuantitiesThreshold#1014223, eventtype#1014224], false
(262) Repartition
Arguments: 37, true
(263) Filter
Arguments: (marketUnit#1014204 <=> STEPHI_MU)
(264) Project
Arguments: [marketUnit#1014204, description#1014205, articleHierarchy#1014206, defaultCurrency#1014207, responsibilities#1014208, replenishmentTypes#1014209, distributionCenters#1014210, assignedArticleHierarchyNodes#1014211, minOrderQtySetting#1014212, listingCheck#1014213, odsSelection#1014214, demandProfiles#1014215, constraintProfiles#1014216, optimizationProfiles#1014217, orderGroupSplitProfiles#1014218, supplierMinimumProfiles#1014219, multipleRestrictionProfiles#1014220, preferredUomSource#1014221, handlingOfUnfulfilledDemands#1014222, negligibleQuantitiesThreshold#1014223, eventtype#1014224]
(265) Project
Arguments: [distributionCenters#1014210]
(266) Generate
Arguments: explode(distributionCenters#1014210), false, [distributionCenters#1014225]
(267) Project
Arguments: [distributionCenters#1014225]
(268) Generate
Arguments: explode(distributionCenters#1014225.storageLocations), false, [storageLocations#1014226]
(269) Project
Arguments: [distributionCenters#1014225.id AS plantId#1014227, distributionCenters#1014225.internalRefUUID AS plantUuid#1014228, storageLocations#1014226]
(270) Project
Arguments: [plantId#1014227, plantUuid#1014228, storageLocations#1014226.id AS storageLocId#1014229, storageLocations#1014226.internalRefUUID AS storageLocUuid#1014230]
(271) LogicalRelation
Arguments: parquet, [product#1014231, plant#1014232, orderDateTime#1014233, planningStartDateTime#1014234], false
(272) RepartitionByExpression
Arguments: [product#1014231, plant#1014232], 37
(273) Project
Arguments: [product#1014231, plant#1014232, orderDateTime#1014233]
(274) LogicalRelation
Arguments: parquet, [systemId#1014235, internalUUID#1014236, plant#1014237, product#1014238, blockedForReplenishmentStartingFrom#1014239, productionAspect#1014240, salesPlant#1014241, listing#1014242, sourceOfSupplyCategory#1014243], false
(275) Repartition
Arguments: 37, true
(276) Project
Arguments: [systemId#1014235, internalUUID#1014236, plant#1014237, product#1014238, blockedForReplenishmentStartingFrom#1014239, productionAspect#1014240, salesPlant#1014241, listing#1014242, sourceOfSupplyCategory#1014243, struct(systemId, systemId#1014235, internalUUID, internalUUID#1014236, plant, plant#1014237, product, product#1014238, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1014239, productionAspect, productionAspect#1014240, salesPlant, salesPlant#1014241, listing, listing#1014242, sourceOfSupplyCategory, sourceOfSupplyCategory#1014243) AS productPlant#1014244]
(277) Project
Arguments: [productPlant#1014244]
(278) Join
Arguments: LeftOuter, ((product#1014231 <=> productPlant#1014244.product.internalRefUUID) AND (plant#1014232 <=> productPlant#1014244.plant.internalRefUUID))
(279) Project
Arguments: [product#1014231, plant#1014232, orderDateTime#1014233, productPlant#1014244]
(280) LogicalRelation
Arguments: parquet, [systemId#1014245, internalUUID#1014246, id#1014247, displayId#1014248, name#1014249, baseUnitOfMeasure#1014250, unitOfMeasures#1014251, unitOfMeasureConversions#1014252, productionAspect#1014253, salesAspect#1014254, procurementAspect#1014255, productGroup#1014256], false
(281) Repartition
Arguments: 37, true
(282) Join
Arguments: LeftOuter, (product#1014231 = internalUUID#1014246)
(283) Project
Arguments: [product#1014231, plant#1014232, orderDateTime#1014233, productPlant#1014244, systemId#1014245, internalUUID#1014246, id#1014247, displayId#1014248, name#1014249, baseUnitOfMeasure#1014250, unitOfMeasures#1014251, unitOfMeasureConversions#1014252, productionAspect#1014253, salesAspect#1014254, procurementAspect#1014255, productGroup#1014256, filter(unitOfMeasureConversions#1014252, lambdafunction((((lambda u#1012565.measurementUnit1.code = productPlant#1014244.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1012565.measurementUnit1.internalRefUUID = productPlant#1014244.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1012565.measurementUnit2.code = baseUnitOfMeasure#1014250.code) AND (lambda u#1012565.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1014250.internalRefUUID))), lambda u#1012565, false)) AS filteredUnitOfMeasureConversions#1014257]
(284) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1014257.quantityNumerator), true, [quantityNumerator#1014258]
(285) Project
Arguments: [product#1014231, plant#1014232, orderDateTime#1014233, productPlant#1014244, systemId#1014245, internalUUID#1014246, id#1014247, displayId#1014248, name#1014249, baseUnitOfMeasure#1014250, unitOfMeasures#1014251, unitOfMeasureConversions#1014252, productionAspect#1014253, salesAspect#1014254, procurementAspect#1014255, productGroup#1014256, filteredUnitOfMeasureConversions#1014257, quantityNumerator#1014258]
(286) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1014257.quantityDenominator), true, [quantityDenominator#1014259]
(287) Project
Arguments: [product#1014231, plant#1014232, orderDateTime#1014233, productPlant#1014244, systemId#1014245, internalUUID#1014246, id#1014247, displayId#1014248, name#1014249, baseUnitOfMeasure#1014250, unitOfMeasures#1014251, unitOfMeasureConversions#1014252, productionAspect#1014253, salesAspect#1014254, procurementAspect#1014255, productGroup#1014256, filteredUnitOfMeasureConversions#1014257, quantityNumerator#1014258, quantityDenominator#1014259]
(288) Project
Arguments: [product#1014231, plant#1014232, orderDateTime#1014233, productPlant#1014244, systemId#1014245, internalUUID#1014246, id#1014247, displayId#1014248, name#1014249, baseUnitOfMeasure#1014250, unitOfMeasures#1014251, unitOfMeasureConversions#1014252, productionAspect#1014253, salesAspect#1014254, procurementAspect#1014255, productGroup#1014256, filteredUnitOfMeasureConversions#1014257, quantityNumerator#1014258, quantityDenominator#1014259, (cast(quantityNumerator#1014258 as double) / cast(quantityDenominator#1014259 as double)) AS outboundUnit#1014260]
(289) Project
Arguments: [product#1014231, plant#1014232, orderDateTime#1014233, productPlant#1014244, systemId#1014245, internalUUID#1014246, id#1014247, displayId#1014248, name#1014249, baseUnitOfMeasure#1014250, unitOfMeasures#1014251, unitOfMeasureConversions#1014252, productionAspect#1014253, salesAspect#1014254, procurementAspect#1014255, productGroup#1014256, filteredUnitOfMeasureConversions#1014257, quantityNumerator#1014258, quantityDenominator#1014259, CASE WHEN (isnull(outboundUnit#1014260) OR (outboundUnit#1014260 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1014260 END AS outboundUnit#1014261]
(290) Project
Arguments: [product#1014231, plant#1014232, orderDateTime#1014233, productPlant#1014244, outboundUnit#1014261]
(291) Project
Arguments: [plant#1014232]
(292) Deduplicate
Arguments: [plant#1014232]
(293) Join
Arguments: Inner, (plantUuid#1014228 = plant#1014232)
(294) Project
Arguments: [plantId#1014227, plantUuid#1014228, storageLocId#1014229, storageLocUuid#1014230]
(295) Join
Arguments: Inner, (plant#1014201.internalRefUUID <=> plantUuid#1014228)
(296) Generate
Arguments: explode(filter(stockQuantities#1014203, lambdafunction(((lambda x#1012695.storageLocation.internalRefUuid = storageLocUuid#1014230) AND (lambda x#1012695.storageLocation.Id = storageLocId#1014229)), lambda x#1012695, false))), false, [stockQuantity#1014262]
(297) Project
Arguments: [systemId#1014198, internalUUID#1014199, product#1014200, plant#1014201, calculationDateTime#1014202, stockQuantities#1014203, plantId#1014227, plantUuid#1014228, storageLocId#1014229, storageLocUuid#1014230, stockQuantity#1014262]
(298) Aggregate
Arguments: [plantUuid#1014228, internalUUID#1014199, plant#1014201, product#1014200, systemId#1014198], [plantUuid#1014228, internalUUID#1014199, plant#1014201, product#1014200, systemId#1014198, first(calculationDateTime#1014202, false) AS calculationDateTime#1014263, collect_list(stockQuantity#1014262, 0, 0) AS stockQuantities#1014264]
(299) Project
Arguments: [systemId#1014198, internalUUID#1014199, product#1014200, plant#1014201, calculationDateTime#1014263, stockQuantities#1014264]
(300) Generate
Arguments: explode(stockQuantities#1014264), false, [stockQuantity#1014265]
(301) Project
Arguments: [systemId#1014198, internalUUID#1014199, product#1014200, plant#1014201, calculationDateTime#1014263, stockQuantities#1014264, stockQuantity#1014265]
(302) Project
Arguments: [plant#1014201.id AS plant#1014266, plant#1014201.internalRefUUID AS plantUuid#1014267, product#1014200.id AS product#1014268, product#1014200.internalRefUUID AS productUuid#1014269, calculationDateTime#1014263, stockQuantity#1014265.storagelocation.id AS storageLocId#1014270, stockQuantity#1014265.storagelocation.internalRefUUID AS storageLocUuid#1014271, stockQuantity#1014265.quantity.measure AS quantity#1014272, stockQuantity#1014265.specialStockIndicator.code AS specialStockIndicator#1014273, stockQuantity#1014265.stockType.code AS stockType#1014274]
(303) Filter
Arguments: ((specialStockIndicator#1014273 = ) AND (stockType#1014274 = 01))
(304) LogicalRelation
Arguments: parquet, [product#1014275, plant#1014276, orderDateTime#1014277, planningStartDateTime#1014278], false
(305) RepartitionByExpression
Arguments: [product#1014275, plant#1014276], 37
(306) Project
Arguments: [product#1014275, plant#1014276, orderDateTime#1014277]
(307) LogicalRelation
Arguments: parquet, [systemId#1014279, internalUUID#1014280, plant#1014281, product#1014282, blockedForReplenishmentStartingFrom#1014283, productionAspect#1014284, salesPlant#1014285, listing#1014286, sourceOfSupplyCategory#1014287], false
(308) Repartition
Arguments: 37, true
(309) Project
Arguments: [systemId#1014279, internalUUID#1014280, plant#1014281, product#1014282, blockedForReplenishmentStartingFrom#1014283, productionAspect#1014284, salesPlant#1014285, listing#1014286, sourceOfSupplyCategory#1014287, struct(systemId, systemId#1014279, internalUUID, internalUUID#1014280, plant, plant#1014281, product, product#1014282, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1014283, productionAspect, productionAspect#1014284, salesPlant, salesPlant#1014285, listing, listing#1014286, sourceOfSupplyCategory, sourceOfSupplyCategory#1014287) AS productPlant#1014288]
(310) Project
Arguments: [productPlant#1014288]
(311) Join
Arguments: LeftOuter, ((product#1014275 <=> productPlant#1014288.product.internalRefUUID) AND (plant#1014276 <=> productPlant#1014288.plant.internalRefUUID))
(312) Project
Arguments: [product#1014275, plant#1014276, orderDateTime#1014277, productPlant#1014288]
(313) LogicalRelation
Arguments: parquet, [systemId#1014289, internalUUID#1014290, id#1014291, displayId#1014292, name#1014293, baseUnitOfMeasure#1014294, unitOfMeasures#1014295, unitOfMeasureConversions#1014296, productionAspect#1014297, salesAspect#1014298, procurementAspect#1014299, productGroup#1014300], false
(314) Repartition
Arguments: 37, true
(315) Join
Arguments: LeftOuter, (product#1014275 = internalUUID#1014290)
(316) Project
Arguments: [product#1014275, plant#1014276, orderDateTime#1014277, productPlant#1014288, systemId#1014289, internalUUID#1014290, id#1014291, displayId#1014292, name#1014293, baseUnitOfMeasure#1014294, unitOfMeasures#1014295, unitOfMeasureConversions#1014296, productionAspect#1014297, salesAspect#1014298, procurementAspect#1014299, productGroup#1014300, filter(unitOfMeasureConversions#1014296, lambdafunction((((lambda u#1012565.measurementUnit1.code = productPlant#1014288.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1012565.measurementUnit1.internalRefUUID = productPlant#1014288.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1012565.measurementUnit2.code = baseUnitOfMeasure#1014294.code) AND (lambda u#1012565.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1014294.internalRefUUID))), lambda u#1012565, false)) AS filteredUnitOfMeasureConversions#1014301]
(317) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1014301.quantityNumerator), true, [quantityNumerator#1014302]
(318) Project
Arguments: [product#1014275, plant#1014276, orderDateTime#1014277, productPlant#1014288, systemId#1014289, internalUUID#1014290, id#1014291, displayId#1014292, name#1014293, baseUnitOfMeasure#1014294, unitOfMeasures#1014295, unitOfMeasureConversions#1014296, productionAspect#1014297, salesAspect#1014298, procurementAspect#1014299, productGroup#1014300, filteredUnitOfMeasureConversions#1014301, quantityNumerator#1014302]
(319) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1014301.quantityDenominator), true, [quantityDenominator#1014303]
(320) Project
Arguments: [product#1014275, plant#1014276, orderDateTime#1014277, productPlant#1014288, systemId#1014289, internalUUID#1014290, id#1014291, displayId#1014292, name#1014293, baseUnitOfMeasure#1014294, unitOfMeasures#1014295, unitOfMeasureConversions#1014296, productionAspect#1014297, salesAspect#1014298, procurementAspect#1014299, productGroup#1014300, filteredUnitOfMeasureConversions#1014301, quantityNumerator#1014302, quantityDenominator#1014303]
(321) Project
Arguments: [product#1014275, plant#1014276, orderDateTime#1014277, productPlant#1014288, systemId#1014289, internalUUID#1014290, id#1014291, displayId#1014292, name#1014293, baseUnitOfMeasure#1014294, unitOfMeasures#1014295, unitOfMeasureConversions#1014296, productionAspect#1014297, salesAspect#1014298, procurementAspect#1014299, productGroup#1014300, filteredUnitOfMeasureConversions#1014301, quantityNumerator#1014302, quantityDenominator#1014303, (cast(quantityNumerator#1014302 as double) / cast(quantityDenominator#1014303 as double)) AS outboundUnit#1014304]
(322) Project
Arguments: [product#1014275, plant#1014276, orderDateTime#1014277, productPlant#1014288, systemId#1014289, internalUUID#1014290, id#1014291, displayId#1014292, name#1014293, baseUnitOfMeasure#1014294, unitOfMeasures#1014295, unitOfMeasureConversions#1014296, productionAspect#1014297, salesAspect#1014298, procurementAspect#1014299, productGroup#1014300, filteredUnitOfMeasureConversions#1014301, quantityNumerator#1014302, quantityDenominator#1014303, CASE WHEN (isnull(outboundUnit#1014304) OR (outboundUnit#1014304 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1014304 END AS outboundUnit#1014305]
(323) Project
Arguments: [product#1014275, plant#1014276, orderDateTime#1014277, productPlant#1014288, outboundUnit#1014305]
(324) Join
Arguments: Inner, ((plantUuid#1014267 = plant#1014276) AND (productUuid#1014269 = product#1014275))
(325) Filter
Arguments: (calculationDateTime#1014263 <= orderDateTime#1014277)
(326) Project
Arguments: [plantUuid#1014267 AS plant#1014306, productUuid#1014269 AS product#1014307, storageLocId#1014270, calculationDateTime#1014263, quantity#1014272]
(327) Aggregate
Arguments: [plant#1014306, product#1014307, storageLocId#1014270], [plant#1014306, product#1014307, storageLocId#1014270, max(calculationDateTime#1014263) AS max_calc_datetime#1014308]
(328) Join
Arguments: Inner, ((((plant#1014196 <=> plant#1014306) AND (product#1014197 <=> product#1014307)) AND (storageLocId#1014160 <=> storageLocId#1014270)) AND (calculationDateTime#1014153 <=> max_calc_datetime#1014308))
(329) Project
Arguments: [plant#1014196, product#1014197, storageLocId#1014160, calculationDateTime#1014153, quantity#1014162]
(330) Aggregate
Arguments: [product#1014197, plant#1014196], [product#1014197, plant#1014196, sum(quantity#1014162) AS quantitySum#1014309, min(calculationDateTime#1014153) AS minCalculationDateTime#1014310]
(331) Project
Arguments: [product#1014197, plant#1014196, quantitySum#1014309, minCalculationDateTime#1014310, round(quantitySum#1014309, 0) AS roundedQuantitySum#1014311]
(332) Join
Arguments: LeftOuter, ((plant#1014058 = plant#1014196) AND (product#1014057 = product#1014197))
(333) Project
Arguments: [product#1014057, plant#1014058, orderDateTime#1014059, productPlant#1014070, outboundUnit#1014087, roundedQuantitySum#1014311, minCalculationDateTime#1014310]
(334) Project
Arguments: [product#1014057, plant#1014058, orderDateTime#1014059, productPlant#1014070, outboundUnit#1014087, roundedQuantitySum#1014311, minCalculationDateTime#1014310, CASE WHEN isnotnull(minCalculationDateTime#1014310) THEN minCalculationDateTime#1014310 ELSE orderDateTime#1014059 END AS stockDatetime#1014312]
(335) Project
Arguments: [product#1014057, plant#1014058, orderDateTime#1014059, productPlant#1014070, outboundUnit#1014087, roundedQuantitySum#1014311, minCalculationDateTime#1014310, stockDatetime#1014312, CASE WHEN isnotnull(roundedQuantitySum#1014311) THEN array(roundedQuantitySum#1014311) ELSE array(0.0) END AS stockBatchQuantities#1014313]
(336) Project
Arguments: [product#1014057, plant#1014058, orderDateTime#1014059, productPlant#1014070, outboundUnit#1014087, roundedQuantitySum#1014311, minCalculationDateTime#1014310, stockDatetime#1014312, stockBatchQuantities#1014313, array(2199-01-01 00:00:00) AS stockBatchShelfLifeEndDatetimes#1014314]
(337) Project
Arguments: [product#1014057, plant#1014058, orderDateTime#1014059, productPlant#1014070, outboundUnit#1014087, roundedQuantitySum#1014311, stockDatetime#1014312, stockBatchQuantities#1014313, stockBatchShelfLifeEndDatetimes#1014314]
(338) Project
Arguments: [product#1014057, plant#1014058, orderDateTime#1014059, productPlant#1014070, outboundUnit#1014087, stockDatetime#1014312, stockBatchQuantities#1014313, stockBatchShelfLifeEndDatetimes#1014314]
(339) LogicalRelation
Arguments: parquet, [product#1012940, plant#1012941, demandChannel#1012942, demandStream#1012943, considerVariance#1012944, demandTimeBuckets#1012945, demandPointInTimeStart#1012946, demandPointInTimeEnd#1012947, demandPointInTime#1012948], false
(340) Join
Arguments: LeftOuter, ((plant#1012941 <=> plant#1014058) AND (product#1012940 <=> product#1014057))
(341) Project
Arguments: [product#1014057, plant#1014058, orderDateTime#1014059, productPlant#1014070, outboundUnit#1014087, stockDatetime#1014312, stockBatchQuantities#1014313, stockBatchShelfLifeEndDatetimes#1014314, product#1012940, plant#1012941, demandChannel#1012942, demandStream#1012943, considerVariance#1012944, demandTimeBuckets#1012945, demandPointInTimeStart#1012946, demandPointInTimeEnd#1012947, demandPointInTime#1012948, CASE WHEN isnotnull(product#1012940) THEN struct(demandChannel, demandChannel#1012942, demandStream, demandStream#1012943, considerVariance, considerVariance#1012944, demandTimeBuckets, demandTimeBuckets#1012945, demandPointInTimeStart, demandPointInTimeStart#1012946, demandPointInTimeEnd, demandPointInTimeEnd#1012947, demandPointInTime, demandPointInTime#1012948) 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#1012950]
(342) Aggregate
Arguments: [product#1014057, plant#1014058, orderDateTime#1014059, productPlant#1014070, outboundUnit#1014087, stockDatetime#1014312, stockBatchQuantities#1014313, stockBatchShelfLifeEndDatetimes#1014314], [product#1014057, plant#1014058, orderDateTime#1014059, productPlant#1014070, outboundUnit#1014087, stockDatetime#1014312, stockBatchQuantities#1014313, stockBatchShelfLifeEndDatetimes#1014314, collect_list(rawDemands#1012950, 0, 0) AS rawDemands#1012951]
(343) SubqueryAlias
Arguments: wl
(344) LogicalRelation
Arguments: parquet, [systemId#1014007, internalUUID#1014008, id#1014009, displayId#1014010, name#1014011, category#1014012, companyCode#1014013, address#1014014, mainDistributionChain#1014015, mainPurchasingOrganization#1014016, validPurchasingOrganizations#1014017, productGroup#1014018], false
(345) Repartition
Arguments: 37, true
(346) Project
Arguments: [systemId#1014007, internalUUID#1014008, id#1014009, displayId#1014010, name#1014011, category#1014012, companyCode#1014013, address#1014014, mainDistributionChain#1014015, mainPurchasingOrganization#1014016, validPurchasingOrganizations#1014017, productGroup#1014018, address#1014014.timezone.code AS timezonecode#1014020]
(347) Join
Arguments: LeftOuter, (plant#1014058 <=> internalUUID#1014008)
(348) Project
Arguments: [product#1014057, plant#1014058, orderDateTime#1014059, productPlant#1014070, outboundUnit#1014087, stockDatetime#1014312, stockBatchQuantities#1014313, stockBatchShelfLifeEndDatetimes#1014314, rawDemands#1012951, systemId#1014007, internalUUID#1014008, id#1014009, displayId#1014010, name#1014011, category#1014012, companyCode#1014013, address#1014014, mainDistributionChain#1014015, mainPurchasingOrganization#1014016, validPurchasingOrganizations#1014017, productGroup#1014018, CASE WHEN isnotnull(timezonecode#1014020) THEN timezonecode#1014020 ELSE UTC END AS timezonecode#1014022]
(349) Project
Arguments: [product#1014057, plant#1014058, orderDateTime#1014059, productPlant#1014070, outboundUnit#1014087, stockDatetime#1014312, stockBatchQuantities#1014313, stockBatchShelfLifeEndDatetimes#1014314, rawDemands#1012951, timezonecode#1014022]
(350) DeserializeToObject
Arguments: createexternalrow(invoke(product#1014057.toString()), invoke(plant#1014058.toString()), static_invoke(DateTimeUtils.toJavaTimestamp(orderDateTime#1014059)), if (isnull(productPlant#1014070)) null else createexternalrow(invoke(productPlant#1014070.systemId.toString()), invoke(productPlant#1014070.internalUUID.toString()), if (isnull(productPlant#1014070.plant)) null else createexternalrow(invoke(productPlant#1014070.plant.internalRefUUID.toString()), invoke(productPlant#1014070.plant.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), if (isnull(productPlant#1014070.product)) null else createexternalrow(invoke(productPlant#1014070.product.internalRefUUID.toString()), invoke(productPlant#1014070.product.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(DateTimeUtils.toJavaDate(productPlant#1014070.blockedForReplenishmentStartingFrom)), if (isnull(productPlant#1014070.productionAspect)) null else createexternalrow(if (isnull(productPlant#1014070.productionAspect.productMovementPlants)) null else createexternalrow(if (isnull(productPlant#1014070.productionAspect.productMovementPlants.unitOfIssue)) null else createexternalrow(invoke(productPlant#1014070.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID.toString()), invoke(productPlant#1014070.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#1014070.productionAspect.productPlanningPlants)) null else createexternalrow(if (isnull(productPlant#1014070.productionAspect.productPlanningPlants.mrpType)) null else createexternalrow(invoke(productPlant#1014070.productionAspect.productPlanningPlants.mrpType.internalRefUUID.toString()), invoke(productPlant#1014070.productionAspect.productPlanningPlants.mrpType.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1014070.productionAspect.productPlanningPlants.abcIndicator)) null else createexternalrow(invoke(productPlant#1014070.productionAspect.productPlanningPlants.abcIndicator.internalRefUUID.toString()), invoke(productPlant#1014070.productionAspect.productPlanningPlants.abcIndicator.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1014070.productionAspect.productPlanningPlants.mrpController)) null else createexternalrow(invoke(productPlant#1014070.productionAspect.productPlanningPlants.mrpController.internalRefUUID.toString()), invoke(productPlant#1014070.productionAspect.productPlanningPlants.mrpController.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(java.lang.Double.valueOf(productPlant#1014070.productionAspect.productPlanningPlants.minimumLotSize)), if (isnull(productPlant#1014070.productionAspect.productPlanningPlants.logisticalRoundingProfile)) null else createexternalrow(invoke(productPlant#1014070.productionAspect.productPlanningPlants.logisticalRoundingProfile.internalRefUUID.toString()), invoke(productPlant#1014070.productionAspect.productPlanningPlants.logisticalRoundingProfile.logisticalRoundingProfile.toString()), StructField(internalRefUUID,StringType,true), StructField(logisticalRoundingProfile,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(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)),true)), if (isnull(productPlant#1014070.salesPlant)) null else createexternalrow(if (isnull(productPlant#1014070.salesPlant.loadingGroup)) null else createexternalrow(invoke(productPlant#1014070.salesPlant.loadingGroup.internalRefUUID.toString()), invoke(productPlant#1014070.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, 80503), if (isnull(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 80503))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 80503).validFrom)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 80503).validTo)), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 80503).isListed)), StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true)), productPlant#1014070.listing, Some(class scala.collection.mutable.ArraySeq)), if (isnull(productPlant#1014070.sourceOfSupplyCategory)) null else createexternalrow(invoke(productPlant#1014070.sourceOfSupplyCategory.internalRefUUID.toString()), invoke(productPlant#1014070.sourceOfSupplyCategory.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), 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)),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), StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), static_invoke(java.lang.Double.valueOf(outboundUnit#1014087)), static_invoke(DateTimeUtils.toJavaTimestamp(stockDatetime#1014312)), mapobjects(lambdavariable(MapObject, DoubleType, true, 80504), static_invoke(java.lang.Double.valueOf(cast(lambdavariable(MapObject, DoubleType, true, 80504) as double))), stockBatchQuantities#1014313, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, false, 80505), assertnotnull(static_invoke(DateTimeUtils.toJavaTimestamp(cast(lambdavariable(MapObject, TimestampType, false, 80505) as timestamp)))), stockBatchShelfLifeEndDatetimes#1014314, 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, 80506), 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, 80506))) 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, 80506).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, 80506).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, 80506).considerVariance)), mapobjects(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 80507), if (isnull(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 80507))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 80507).demandStartDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 80507).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 80507).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, 80506).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, 80506).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, 80506).demandPointInTimeEnd)), mapobjects(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 80508), if (isnull(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 80508))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 80508).demandDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 80508).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 80508).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, 80506).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#1012951, Some(class scala.collection.mutable.ArraySeq)), invoke(timezonecode#1014022.toString()), 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)),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),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),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), StructField(timezonecode,StringType,true)), obj#1014043: org.apache.spark.sql.Row
(351) MapElements
Arguments: com.sap.s4hana.eureka.business.crporderquantitykpiservice.core.business.datasnapshot.DemandTransformatorImpl$$Lambda/0x0000000801fc3d98@2aab4875, 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)),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),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),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), StructField(timezonecode,StringType,true)], obj#1014048: org.apache.spark.sql.Row
(352) 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#1014053, 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#1014054, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(2))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80493), assertnotnull(if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80494), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80494), DoubleType, ObjectType(class java.lang.Double)).doubleValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80495), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80495), DoubleType, ObjectType(class java.lang.Double)).doubleValue()), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80496), assertnotnull(static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80496), TimestampType, ObjectType(class java.sql.Timestamp))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80497), assertnotnull(static_invoke(UTF8String.fromString(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80497), StringType, ObjectType(class java.lang.String))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80498), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80498), IntegerType, ObjectType(class java.lang.Integer)).intValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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#1014055, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(3))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80499), assertnotnull(if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80500), assertnotnull(static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80500), TimestampType, ObjectType(class java.sql.Timestamp))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80501), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80501), DoubleType, ObjectType(class java.lang.Double)).doubleValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80502), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80502), DoubleType, ObjectType(class java.lang.Double)).doubleValue()), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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#1014056]
(353) Join
Arguments: LeftOuter, ((plant#1014054 <=> plant#1012490) AND (product#1014053 <=> product#1012489))
(354) Project
Arguments: [product#1012489, plant#1012490, orderDateTime#1012491, productPlant#1012526, outboundUnit#1012577, stockDatetime#1012937, stockBatchQuantities#1012938, stockBatchShelfLifeEndDatetimes#1012939, plant#1014054, dayBucketDemands#1014055, pointInTimeDemands#1014056]
(355) Project
Arguments: [product#1012489, plant#1012490, orderDateTime#1012491, productPlant#1012526, outboundUnit#1012577, stockDatetime#1012937, stockBatchQuantities#1012938, stockBatchShelfLifeEndDatetimes#1012939, dayBucketDemands#1014055, pointInTimeDemands#1014056]
(356) LogicalRelation
Arguments: parquet, [product#1015117, plant#1015118, orderDateTime#1015119, planningStartDateTime#1015120], false
(357) RepartitionByExpression
Arguments: [product#1015117, plant#1015118], 37
(358) Project
Arguments: [product#1015117, plant#1015118, orderDateTime#1015119]
(359) LogicalRelation
Arguments: parquet, [systemId#1015121, internalUUID#1015122, plant#1015123, product#1015124, blockedForReplenishmentStartingFrom#1015125, productionAspect#1015126, salesPlant#1015127, listing#1015128, sourceOfSupplyCategory#1015129], false
(360) Repartition
Arguments: 37, true
(361) Project
Arguments: [systemId#1015121, internalUUID#1015122, plant#1015123, product#1015124, blockedForReplenishmentStartingFrom#1015125, productionAspect#1015126, salesPlant#1015127, listing#1015128, sourceOfSupplyCategory#1015129, struct(systemId, systemId#1015121, internalUUID, internalUUID#1015122, plant, plant#1015123, product, product#1015124, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1015125, productionAspect, productionAspect#1015126, salesPlant, salesPlant#1015127, listing, listing#1015128, sourceOfSupplyCategory, sourceOfSupplyCategory#1015129) AS productPlant#1015130]
(362) Project
Arguments: [productPlant#1015130]
(363) Join
Arguments: LeftOuter, ((product#1015117 <=> productPlant#1015130.product.internalRefUUID) AND (plant#1015118 <=> productPlant#1015130.plant.internalRefUUID))
(364) Project
Arguments: [product#1015117, plant#1015118, orderDateTime#1015119, productPlant#1015130]
(365) LogicalRelation
Arguments: parquet, [systemId#1015131, internalUUID#1015132, id#1015133, displayId#1015134, name#1015135, baseUnitOfMeasure#1015136, unitOfMeasures#1015137, unitOfMeasureConversions#1015138, productionAspect#1015139, salesAspect#1015140, procurementAspect#1015141, productGroup#1015142], false
(366) Repartition
Arguments: 37, true
(367) Join
Arguments: LeftOuter, (product#1015117 = internalUUID#1015132)
(368) Project
Arguments: [product#1015117, plant#1015118, orderDateTime#1015119, productPlant#1015130, systemId#1015131, internalUUID#1015132, id#1015133, displayId#1015134, name#1015135, baseUnitOfMeasure#1015136, unitOfMeasures#1015137, unitOfMeasureConversions#1015138, productionAspect#1015139, salesAspect#1015140, procurementAspect#1015141, productGroup#1015142, filter(unitOfMeasureConversions#1015138, lambdafunction((((lambda u#1012565.measurementUnit1.code = productPlant#1015130.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1012565.measurementUnit1.internalRefUUID = productPlant#1015130.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1012565.measurementUnit2.code = baseUnitOfMeasure#1015136.code) AND (lambda u#1012565.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1015136.internalRefUUID))), lambda u#1012565, false)) AS filteredUnitOfMeasureConversions#1015143]
(369) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1015143.quantityNumerator), true, [quantityNumerator#1015144]
(370) Project
Arguments: [product#1015117, plant#1015118, orderDateTime#1015119, productPlant#1015130, systemId#1015131, internalUUID#1015132, id#1015133, displayId#1015134, name#1015135, baseUnitOfMeasure#1015136, unitOfMeasures#1015137, unitOfMeasureConversions#1015138, productionAspect#1015139, salesAspect#1015140, procurementAspect#1015141, productGroup#1015142, filteredUnitOfMeasureConversions#1015143, quantityNumerator#1015144]
(371) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1015143.quantityDenominator), true, [quantityDenominator#1015145]
(372) Project
Arguments: [product#1015117, plant#1015118, orderDateTime#1015119, productPlant#1015130, systemId#1015131, internalUUID#1015132, id#1015133, displayId#1015134, name#1015135, baseUnitOfMeasure#1015136, unitOfMeasures#1015137, unitOfMeasureConversions#1015138, productionAspect#1015139, salesAspect#1015140, procurementAspect#1015141, productGroup#1015142, filteredUnitOfMeasureConversions#1015143, quantityNumerator#1015144, quantityDenominator#1015145]
(373) Project
Arguments: [product#1015117, plant#1015118, orderDateTime#1015119, productPlant#1015130, systemId#1015131, internalUUID#1015132, id#1015133, displayId#1015134, name#1015135, baseUnitOfMeasure#1015136, unitOfMeasures#1015137, unitOfMeasureConversions#1015138, productionAspect#1015139, salesAspect#1015140, procurementAspect#1015141, productGroup#1015142, filteredUnitOfMeasureConversions#1015143, quantityNumerator#1015144, quantityDenominator#1015145, (cast(quantityNumerator#1015144 as double) / cast(quantityDenominator#1015145 as double)) AS outboundUnit#1015146]
(374) Project
Arguments: [product#1015117, plant#1015118, orderDateTime#1015119, productPlant#1015130, systemId#1015131, internalUUID#1015132, id#1015133, displayId#1015134, name#1015135, baseUnitOfMeasure#1015136, unitOfMeasures#1015137, unitOfMeasureConversions#1015138, productionAspect#1015139, salesAspect#1015140, procurementAspect#1015141, productGroup#1015142, filteredUnitOfMeasureConversions#1015143, quantityNumerator#1015144, quantityDenominator#1015145, CASE WHEN (isnull(outboundUnit#1015146) OR (outboundUnit#1015146 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1015146 END AS outboundUnit#1015147]
(375) Project
Arguments: [product#1015117, plant#1015118, orderDateTime#1015119, productPlant#1015130, outboundUnit#1015147]
(376) LogicalRelation
Arguments: parquet, [systemId#1015148, internalUUID#1015149, product#1015150, plant#1015151, calculationDateTime#1015152, stockQuantities#1015153], false
(377) Repartition
Arguments: 37, true
(378) LogicalRelation
Arguments: parquet, [marketUnit#1015154, description#1015155, articleHierarchy#1015156, defaultCurrency#1015157, responsibilities#1015158, replenishmentTypes#1015159, distributionCenters#1015160, assignedArticleHierarchyNodes#1015161, minOrderQtySetting#1015162, listingCheck#1015163, odsSelection#1015164, demandProfiles#1015165, constraintProfiles#1015166, optimizationProfiles#1015167, orderGroupSplitProfiles#1015168, supplierMinimumProfiles#1015169, multipleRestrictionProfiles#1015170, preferredUomSource#1015171, handlingOfUnfulfilledDemands#1015172, negligibleQuantitiesThreshold#1015173, eventtype#1015174], false
(379) Repartition
Arguments: 37, true
(380) Filter
Arguments: (marketUnit#1015154 <=> STEPHI_MU)
(381) Project
Arguments: [marketUnit#1015154, description#1015155, articleHierarchy#1015156, defaultCurrency#1015157, responsibilities#1015158, replenishmentTypes#1015159, distributionCenters#1015160, assignedArticleHierarchyNodes#1015161, minOrderQtySetting#1015162, listingCheck#1015163, odsSelection#1015164, demandProfiles#1015165, constraintProfiles#1015166, optimizationProfiles#1015167, orderGroupSplitProfiles#1015168, supplierMinimumProfiles#1015169, multipleRestrictionProfiles#1015170, preferredUomSource#1015171, handlingOfUnfulfilledDemands#1015172, negligibleQuantitiesThreshold#1015173, eventtype#1015174]
(382) Project
Arguments: [distributionCenters#1015160]
(383) Generate
Arguments: explode(distributionCenters#1015160), false, [distributionCenters#1015175]
(384) Project
Arguments: [distributionCenters#1015175]
(385) Generate
Arguments: explode(distributionCenters#1015175.storageLocations), false, [storageLocations#1015176]
(386) Project
Arguments: [distributionCenters#1015175.id AS plantId#1015177, distributionCenters#1015175.internalRefUUID AS plantUuid#1015178, storageLocations#1015176]
(387) Project
Arguments: [plantId#1015177, plantUuid#1015178, storageLocations#1015176.id AS storageLocId#1015179, storageLocations#1015176.internalRefUUID AS storageLocUuid#1015180]
(388) LogicalRelation
Arguments: parquet, [product#1015181, plant#1015182, orderDateTime#1015183, planningStartDateTime#1015184], false
(389) RepartitionByExpression
Arguments: [product#1015181, plant#1015182], 37
(390) Project
Arguments: [product#1015181, plant#1015182, orderDateTime#1015183]
(391) LogicalRelation
Arguments: parquet, [systemId#1015185, internalUUID#1015186, plant#1015187, product#1015188, blockedForReplenishmentStartingFrom#1015189, productionAspect#1015190, salesPlant#1015191, listing#1015192, sourceOfSupplyCategory#1015193], false
(392) Repartition
Arguments: 37, true
(393) Project
Arguments: [systemId#1015185, internalUUID#1015186, plant#1015187, product#1015188, blockedForReplenishmentStartingFrom#1015189, productionAspect#1015190, salesPlant#1015191, listing#1015192, sourceOfSupplyCategory#1015193, struct(systemId, systemId#1015185, internalUUID, internalUUID#1015186, plant, plant#1015187, product, product#1015188, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1015189, productionAspect, productionAspect#1015190, salesPlant, salesPlant#1015191, listing, listing#1015192, sourceOfSupplyCategory, sourceOfSupplyCategory#1015193) AS productPlant#1015194]
(394) Project
Arguments: [productPlant#1015194]
(395) Join
Arguments: LeftOuter, ((product#1015181 <=> productPlant#1015194.product.internalRefUUID) AND (plant#1015182 <=> productPlant#1015194.plant.internalRefUUID))
(396) Project
Arguments: [product#1015181, plant#1015182, orderDateTime#1015183, productPlant#1015194]
(397) LogicalRelation
Arguments: parquet, [systemId#1015195, internalUUID#1015196, id#1015197, displayId#1015198, name#1015199, baseUnitOfMeasure#1015200, unitOfMeasures#1015201, unitOfMeasureConversions#1015202, productionAspect#1015203, salesAspect#1015204, procurementAspect#1015205, productGroup#1015206], false
(398) Repartition
Arguments: 37, true
(399) Join
Arguments: LeftOuter, (product#1015181 = internalUUID#1015196)
(400) Project
Arguments: [product#1015181, plant#1015182, orderDateTime#1015183, productPlant#1015194, systemId#1015195, internalUUID#1015196, id#1015197, displayId#1015198, name#1015199, baseUnitOfMeasure#1015200, unitOfMeasures#1015201, unitOfMeasureConversions#1015202, productionAspect#1015203, salesAspect#1015204, procurementAspect#1015205, productGroup#1015206, filter(unitOfMeasureConversions#1015202, lambdafunction((((lambda u#1012565.measurementUnit1.code = productPlant#1015194.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1012565.measurementUnit1.internalRefUUID = productPlant#1015194.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1012565.measurementUnit2.code = baseUnitOfMeasure#1015200.code) AND (lambda u#1012565.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1015200.internalRefUUID))), lambda u#1012565, false)) AS filteredUnitOfMeasureConversions#1015207]
(401) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1015207.quantityNumerator), true, [quantityNumerator#1015208]
(402) Project
Arguments: [product#1015181, plant#1015182, orderDateTime#1015183, productPlant#1015194, systemId#1015195, internalUUID#1015196, id#1015197, displayId#1015198, name#1015199, baseUnitOfMeasure#1015200, unitOfMeasures#1015201, unitOfMeasureConversions#1015202, productionAspect#1015203, salesAspect#1015204, procurementAspect#1015205, productGroup#1015206, filteredUnitOfMeasureConversions#1015207, quantityNumerator#1015208]
(403) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1015207.quantityDenominator), true, [quantityDenominator#1015209]
(404) Project
Arguments: [product#1015181, plant#1015182, orderDateTime#1015183, productPlant#1015194, systemId#1015195, internalUUID#1015196, id#1015197, displayId#1015198, name#1015199, baseUnitOfMeasure#1015200, unitOfMeasures#1015201, unitOfMeasureConversions#1015202, productionAspect#1015203, salesAspect#1015204, procurementAspect#1015205, productGroup#1015206, filteredUnitOfMeasureConversions#1015207, quantityNumerator#1015208, quantityDenominator#1015209]
(405) Project
Arguments: [product#1015181, plant#1015182, orderDateTime#1015183, productPlant#1015194, systemId#1015195, internalUUID#1015196, id#1015197, displayId#1015198, name#1015199, baseUnitOfMeasure#1015200, unitOfMeasures#1015201, unitOfMeasureConversions#1015202, productionAspect#1015203, salesAspect#1015204, procurementAspect#1015205, productGroup#1015206, filteredUnitOfMeasureConversions#1015207, quantityNumerator#1015208, quantityDenominator#1015209, (cast(quantityNumerator#1015208 as double) / cast(quantityDenominator#1015209 as double)) AS outboundUnit#1015210]
(406) Project
Arguments: [product#1015181, plant#1015182, orderDateTime#1015183, productPlant#1015194, systemId#1015195, internalUUID#1015196, id#1015197, displayId#1015198, name#1015199, baseUnitOfMeasure#1015200, unitOfMeasures#1015201, unitOfMeasureConversions#1015202, productionAspect#1015203, salesAspect#1015204, procurementAspect#1015205, productGroup#1015206, filteredUnitOfMeasureConversions#1015207, quantityNumerator#1015208, quantityDenominator#1015209, CASE WHEN (isnull(outboundUnit#1015210) OR (outboundUnit#1015210 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1015210 END AS outboundUnit#1015211]
(407) Project
Arguments: [product#1015181, plant#1015182, orderDateTime#1015183, productPlant#1015194, outboundUnit#1015211]
(408) Project
Arguments: [plant#1015182]
(409) Deduplicate
Arguments: [plant#1015182]
(410) Join
Arguments: Inner, (plantUuid#1015178 = plant#1015182)
(411) Project
Arguments: [plantId#1015177, plantUuid#1015178, storageLocId#1015179, storageLocUuid#1015180]
(412) Join
Arguments: Inner, (plant#1015151.internalRefUUID <=> plantUuid#1015178)
(413) Generate
Arguments: explode(filter(stockQuantities#1015153, lambdafunction(((lambda x#1012695.storageLocation.internalRefUuid = storageLocUuid#1015180) AND (lambda x#1012695.storageLocation.Id = storageLocId#1015179)), lambda x#1012695, false))), false, [stockQuantity#1015212]
(414) Project
Arguments: [systemId#1015148, internalUUID#1015149, product#1015150, plant#1015151, calculationDateTime#1015152, stockQuantities#1015153, plantId#1015177, plantUuid#1015178, storageLocId#1015179, storageLocUuid#1015180, stockQuantity#1015212]
(415) Aggregate
Arguments: [plantUuid#1015178, internalUUID#1015149, plant#1015151, product#1015150, systemId#1015148], [plantUuid#1015178, internalUUID#1015149, plant#1015151, product#1015150, systemId#1015148, first(calculationDateTime#1015152, false) AS calculationDateTime#1015213, collect_list(stockQuantity#1015212, 0, 0) AS stockQuantities#1015214]
(416) Project
Arguments: [systemId#1015148, internalUUID#1015149, product#1015150, plant#1015151, calculationDateTime#1015213, stockQuantities#1015214]
(417) Generate
Arguments: explode(stockQuantities#1015214), false, [stockQuantity#1015215]
(418) Project
Arguments: [systemId#1015148, internalUUID#1015149, product#1015150, plant#1015151, calculationDateTime#1015213, stockQuantities#1015214, stockQuantity#1015215]
(419) Project
Arguments: [plant#1015151.id AS plant#1015216, plant#1015151.internalRefUUID AS plantUuid#1015217, product#1015150.id AS product#1015218, product#1015150.internalRefUUID AS productUuid#1015219, calculationDateTime#1015213, stockQuantity#1015215.storagelocation.id AS storageLocId#1015220, stockQuantity#1015215.storagelocation.internalRefUUID AS storageLocUuid#1015221, stockQuantity#1015215.quantity.measure AS quantity#1015222, stockQuantity#1015215.specialStockIndicator.code AS specialStockIndicator#1015223, stockQuantity#1015215.stockType.code AS stockType#1015224]
(420) Filter
Arguments: ((specialStockIndicator#1015223 = ) AND (stockType#1015224 = 01))
(421) LogicalRelation
Arguments: parquet, [product#1015225, plant#1015226, orderDateTime#1015227, planningStartDateTime#1015228], false
(422) RepartitionByExpression
Arguments: [product#1015225, plant#1015226], 37
(423) Project
Arguments: [product#1015225, plant#1015226, orderDateTime#1015227]
(424) LogicalRelation
Arguments: parquet, [systemId#1015229, internalUUID#1015230, plant#1015231, product#1015232, blockedForReplenishmentStartingFrom#1015233, productionAspect#1015234, salesPlant#1015235, listing#1015236, sourceOfSupplyCategory#1015237], false
(425) Repartition
Arguments: 37, true
(426) Project
Arguments: [systemId#1015229, internalUUID#1015230, plant#1015231, product#1015232, blockedForReplenishmentStartingFrom#1015233, productionAspect#1015234, salesPlant#1015235, listing#1015236, sourceOfSupplyCategory#1015237, struct(systemId, systemId#1015229, internalUUID, internalUUID#1015230, plant, plant#1015231, product, product#1015232, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1015233, productionAspect, productionAspect#1015234, salesPlant, salesPlant#1015235, listing, listing#1015236, sourceOfSupplyCategory, sourceOfSupplyCategory#1015237) AS productPlant#1015238]
(427) Project
Arguments: [productPlant#1015238]
(428) Join
Arguments: LeftOuter, ((product#1015225 <=> productPlant#1015238.product.internalRefUUID) AND (plant#1015226 <=> productPlant#1015238.plant.internalRefUUID))
(429) Project
Arguments: [product#1015225, plant#1015226, orderDateTime#1015227, productPlant#1015238]
(430) LogicalRelation
Arguments: parquet, [systemId#1015239, internalUUID#1015240, id#1015241, displayId#1015242, name#1015243, baseUnitOfMeasure#1015244, unitOfMeasures#1015245, unitOfMeasureConversions#1015246, productionAspect#1015247, salesAspect#1015248, procurementAspect#1015249, productGroup#1015250], false
(431) Repartition
Arguments: 37, true
(432) Join
Arguments: LeftOuter, (product#1015225 = internalUUID#1015240)
(433) Project
Arguments: [product#1015225, plant#1015226, orderDateTime#1015227, productPlant#1015238, systemId#1015239, internalUUID#1015240, id#1015241, displayId#1015242, name#1015243, baseUnitOfMeasure#1015244, unitOfMeasures#1015245, unitOfMeasureConversions#1015246, productionAspect#1015247, salesAspect#1015248, procurementAspect#1015249, productGroup#1015250, filter(unitOfMeasureConversions#1015246, lambdafunction((((lambda u#1012565.measurementUnit1.code = productPlant#1015238.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1012565.measurementUnit1.internalRefUUID = productPlant#1015238.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1012565.measurementUnit2.code = baseUnitOfMeasure#1015244.code) AND (lambda u#1012565.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1015244.internalRefUUID))), lambda u#1012565, false)) AS filteredUnitOfMeasureConversions#1015251]
(434) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1015251.quantityNumerator), true, [quantityNumerator#1015252]
(435) Project
Arguments: [product#1015225, plant#1015226, orderDateTime#1015227, productPlant#1015238, systemId#1015239, internalUUID#1015240, id#1015241, displayId#1015242, name#1015243, baseUnitOfMeasure#1015244, unitOfMeasures#1015245, unitOfMeasureConversions#1015246, productionAspect#1015247, salesAspect#1015248, procurementAspect#1015249, productGroup#1015250, filteredUnitOfMeasureConversions#1015251, quantityNumerator#1015252]
(436) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1015251.quantityDenominator), true, [quantityDenominator#1015253]
(437) Project
Arguments: [product#1015225, plant#1015226, orderDateTime#1015227, productPlant#1015238, systemId#1015239, internalUUID#1015240, id#1015241, displayId#1015242, name#1015243, baseUnitOfMeasure#1015244, unitOfMeasures#1015245, unitOfMeasureConversions#1015246, productionAspect#1015247, salesAspect#1015248, procurementAspect#1015249, productGroup#1015250, filteredUnitOfMeasureConversions#1015251, quantityNumerator#1015252, quantityDenominator#1015253]
(438) Project
Arguments: [product#1015225, plant#1015226, orderDateTime#1015227, productPlant#1015238, systemId#1015239, internalUUID#1015240, id#1015241, displayId#1015242, name#1015243, baseUnitOfMeasure#1015244, unitOfMeasures#1015245, unitOfMeasureConversions#1015246, productionAspect#1015247, salesAspect#1015248, procurementAspect#1015249, productGroup#1015250, filteredUnitOfMeasureConversions#1015251, quantityNumerator#1015252, quantityDenominator#1015253, (cast(quantityNumerator#1015252 as double) / cast(quantityDenominator#1015253 as double)) AS outboundUnit#1015254]
(439) Project
Arguments: [product#1015225, plant#1015226, orderDateTime#1015227, productPlant#1015238, systemId#1015239, internalUUID#1015240, id#1015241, displayId#1015242, name#1015243, baseUnitOfMeasure#1015244, unitOfMeasures#1015245, unitOfMeasureConversions#1015246, productionAspect#1015247, salesAspect#1015248, procurementAspect#1015249, productGroup#1015250, filteredUnitOfMeasureConversions#1015251, quantityNumerator#1015252, quantityDenominator#1015253, CASE WHEN (isnull(outboundUnit#1015254) OR (outboundUnit#1015254 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1015254 END AS outboundUnit#1015255]
(440) Project
Arguments: [product#1015225, plant#1015226, orderDateTime#1015227, productPlant#1015238, outboundUnit#1015255]
(441) Join
Arguments: Inner, ((plantUuid#1015217 = plant#1015226) AND (productUuid#1015219 = product#1015225))
(442) Filter
Arguments: (calculationDateTime#1015213 <= orderDateTime#1015227)
(443) Project
Arguments: [plantUuid#1015217 AS plant#1015256, productUuid#1015219 AS product#1015257, storageLocId#1015220, calculationDateTime#1015213, quantity#1015222]
(444) LogicalRelation
Arguments: parquet, [systemId#1015258, internalUUID#1015259, product#1015260, plant#1015261, calculationDateTime#1015262, stockQuantities#1015263], false
(445) Repartition
Arguments: 37, true
(446) LogicalRelation
Arguments: parquet, [marketUnit#1015264, description#1015265, articleHierarchy#1015266, defaultCurrency#1015267, responsibilities#1015268, replenishmentTypes#1015269, distributionCenters#1015270, assignedArticleHierarchyNodes#1015271, minOrderQtySetting#1015272, listingCheck#1015273, odsSelection#1015274, demandProfiles#1015275, constraintProfiles#1015276, optimizationProfiles#1015277, orderGroupSplitProfiles#1015278, supplierMinimumProfiles#1015279, multipleRestrictionProfiles#1015280, preferredUomSource#1015281, handlingOfUnfulfilledDemands#1015282, negligibleQuantitiesThreshold#1015283, eventtype#1015284], false
(447) Repartition
Arguments: 37, true
(448) Filter
Arguments: (marketUnit#1015264 <=> STEPHI_MU)
(449) Project
Arguments: [marketUnit#1015264, description#1015265, articleHierarchy#1015266, defaultCurrency#1015267, responsibilities#1015268, replenishmentTypes#1015269, distributionCenters#1015270, assignedArticleHierarchyNodes#1015271, minOrderQtySetting#1015272, listingCheck#1015273, odsSelection#1015274, demandProfiles#1015275, constraintProfiles#1015276, optimizationProfiles#1015277, orderGroupSplitProfiles#1015278, supplierMinimumProfiles#1015279, multipleRestrictionProfiles#1015280, preferredUomSource#1015281, handlingOfUnfulfilledDemands#1015282, negligibleQuantitiesThreshold#1015283, eventtype#1015284]
(450) Project
Arguments: [distributionCenters#1015270]
(451) Generate
Arguments: explode(distributionCenters#1015270), false, [distributionCenters#1015285]
(452) Project
Arguments: [distributionCenters#1015285]
(453) Generate
Arguments: explode(distributionCenters#1015285.storageLocations), false, [storageLocations#1015286]
(454) Project
Arguments: [distributionCenters#1015285.id AS plantId#1015287, distributionCenters#1015285.internalRefUUID AS plantUuid#1015288, storageLocations#1015286]
(455) Project
Arguments: [plantId#1015287, plantUuid#1015288, storageLocations#1015286.id AS storageLocId#1015289, storageLocations#1015286.internalRefUUID AS storageLocUuid#1015290]
(456) LogicalRelation
Arguments: parquet, [product#1015291, plant#1015292, orderDateTime#1015293, planningStartDateTime#1015294], false
(457) RepartitionByExpression
Arguments: [product#1015291, plant#1015292], 37
(458) Project
Arguments: [product#1015291, plant#1015292, orderDateTime#1015293]
(459) LogicalRelation
Arguments: parquet, [systemId#1015295, internalUUID#1015296, plant#1015297, product#1015298, blockedForReplenishmentStartingFrom#1015299, productionAspect#1015300, salesPlant#1015301, listing#1015302, sourceOfSupplyCategory#1015303], false
(460) Repartition
Arguments: 37, true
(461) Project
Arguments: [systemId#1015295, internalUUID#1015296, plant#1015297, product#1015298, blockedForReplenishmentStartingFrom#1015299, productionAspect#1015300, salesPlant#1015301, listing#1015302, sourceOfSupplyCategory#1015303, struct(systemId, systemId#1015295, internalUUID, internalUUID#1015296, plant, plant#1015297, product, product#1015298, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1015299, productionAspect, productionAspect#1015300, salesPlant, salesPlant#1015301, listing, listing#1015302, sourceOfSupplyCategory, sourceOfSupplyCategory#1015303) AS productPlant#1015304]
(462) Project
Arguments: [productPlant#1015304]
(463) Join
Arguments: LeftOuter, ((product#1015291 <=> productPlant#1015304.product.internalRefUUID) AND (plant#1015292 <=> productPlant#1015304.plant.internalRefUUID))
(464) Project
Arguments: [product#1015291, plant#1015292, orderDateTime#1015293, productPlant#1015304]
(465) LogicalRelation
Arguments: parquet, [systemId#1015305, internalUUID#1015306, id#1015307, displayId#1015308, name#1015309, baseUnitOfMeasure#1015310, unitOfMeasures#1015311, unitOfMeasureConversions#1015312, productionAspect#1015313, salesAspect#1015314, procurementAspect#1015315, productGroup#1015316], false
(466) Repartition
Arguments: 37, true
(467) Join
Arguments: LeftOuter, (product#1015291 = internalUUID#1015306)
(468) Project
Arguments: [product#1015291, plant#1015292, orderDateTime#1015293, productPlant#1015304, systemId#1015305, internalUUID#1015306, id#1015307, displayId#1015308, name#1015309, baseUnitOfMeasure#1015310, unitOfMeasures#1015311, unitOfMeasureConversions#1015312, productionAspect#1015313, salesAspect#1015314, procurementAspect#1015315, productGroup#1015316, filter(unitOfMeasureConversions#1015312, lambdafunction((((lambda u#1012565.measurementUnit1.code = productPlant#1015304.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1012565.measurementUnit1.internalRefUUID = productPlant#1015304.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1012565.measurementUnit2.code = baseUnitOfMeasure#1015310.code) AND (lambda u#1012565.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1015310.internalRefUUID))), lambda u#1012565, false)) AS filteredUnitOfMeasureConversions#1015317]
(469) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1015317.quantityNumerator), true, [quantityNumerator#1015318]
(470) Project
Arguments: [product#1015291, plant#1015292, orderDateTime#1015293, productPlant#1015304, systemId#1015305, internalUUID#1015306, id#1015307, displayId#1015308, name#1015309, baseUnitOfMeasure#1015310, unitOfMeasures#1015311, unitOfMeasureConversions#1015312, productionAspect#1015313, salesAspect#1015314, procurementAspect#1015315, productGroup#1015316, filteredUnitOfMeasureConversions#1015317, quantityNumerator#1015318]
(471) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1015317.quantityDenominator), true, [quantityDenominator#1015319]
(472) Project
Arguments: [product#1015291, plant#1015292, orderDateTime#1015293, productPlant#1015304, systemId#1015305, internalUUID#1015306, id#1015307, displayId#1015308, name#1015309, baseUnitOfMeasure#1015310, unitOfMeasures#1015311, unitOfMeasureConversions#1015312, productionAspect#1015313, salesAspect#1015314, procurementAspect#1015315, productGroup#1015316, filteredUnitOfMeasureConversions#1015317, quantityNumerator#1015318, quantityDenominator#1015319]
(473) Project
Arguments: [product#1015291, plant#1015292, orderDateTime#1015293, productPlant#1015304, systemId#1015305, internalUUID#1015306, id#1015307, displayId#1015308, name#1015309, baseUnitOfMeasure#1015310, unitOfMeasures#1015311, unitOfMeasureConversions#1015312, productionAspect#1015313, salesAspect#1015314, procurementAspect#1015315, productGroup#1015316, filteredUnitOfMeasureConversions#1015317, quantityNumerator#1015318, quantityDenominator#1015319, (cast(quantityNumerator#1015318 as double) / cast(quantityDenominator#1015319 as double)) AS outboundUnit#1015320]
(474) Project
Arguments: [product#1015291, plant#1015292, orderDateTime#1015293, productPlant#1015304, systemId#1015305, internalUUID#1015306, id#1015307, displayId#1015308, name#1015309, baseUnitOfMeasure#1015310, unitOfMeasures#1015311, unitOfMeasureConversions#1015312, productionAspect#1015313, salesAspect#1015314, procurementAspect#1015315, productGroup#1015316, filteredUnitOfMeasureConversions#1015317, quantityNumerator#1015318, quantityDenominator#1015319, CASE WHEN (isnull(outboundUnit#1015320) OR (outboundUnit#1015320 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1015320 END AS outboundUnit#1015321]
(475) Project
Arguments: [product#1015291, plant#1015292, orderDateTime#1015293, productPlant#1015304, outboundUnit#1015321]
(476) Project
Arguments: [plant#1015292]
(477) Deduplicate
Arguments: [plant#1015292]
(478) Join
Arguments: Inner, (plantUuid#1015288 = plant#1015292)
(479) Project
Arguments: [plantId#1015287, plantUuid#1015288, storageLocId#1015289, storageLocUuid#1015290]
(480) Join
Arguments: Inner, (plant#1015261.internalRefUUID <=> plantUuid#1015288)
(481) Generate
Arguments: explode(filter(stockQuantities#1015263, lambdafunction(((lambda x#1012695.storageLocation.internalRefUuid = storageLocUuid#1015290) AND (lambda x#1012695.storageLocation.Id = storageLocId#1015289)), lambda x#1012695, false))), false, [stockQuantity#1015322]
(482) Project
Arguments: [systemId#1015258, internalUUID#1015259, product#1015260, plant#1015261, calculationDateTime#1015262, stockQuantities#1015263, plantId#1015287, plantUuid#1015288, storageLocId#1015289, storageLocUuid#1015290, stockQuantity#1015322]
(483) Aggregate
Arguments: [plantUuid#1015288, internalUUID#1015259, plant#1015261, product#1015260, systemId#1015258], [plantUuid#1015288, internalUUID#1015259, plant#1015261, product#1015260, systemId#1015258, first(calculationDateTime#1015262, false) AS calculationDateTime#1015323, collect_list(stockQuantity#1015322, 0, 0) AS stockQuantities#1015324]
(484) Project
Arguments: [systemId#1015258, internalUUID#1015259, product#1015260, plant#1015261, calculationDateTime#1015323, stockQuantities#1015324]
(485) Generate
Arguments: explode(stockQuantities#1015324), false, [stockQuantity#1015325]
(486) Project
Arguments: [systemId#1015258, internalUUID#1015259, product#1015260, plant#1015261, calculationDateTime#1015323, stockQuantities#1015324, stockQuantity#1015325]
(487) Project
Arguments: [plant#1015261.id AS plant#1015326, plant#1015261.internalRefUUID AS plantUuid#1015327, product#1015260.id AS product#1015328, product#1015260.internalRefUUID AS productUuid#1015329, calculationDateTime#1015323, stockQuantity#1015325.storagelocation.id AS storageLocId#1015330, stockQuantity#1015325.storagelocation.internalRefUUID AS storageLocUuid#1015331, stockQuantity#1015325.quantity.measure AS quantity#1015332, stockQuantity#1015325.specialStockIndicator.code AS specialStockIndicator#1015333, stockQuantity#1015325.stockType.code AS stockType#1015334]
(488) Filter
Arguments: ((specialStockIndicator#1015333 = ) AND (stockType#1015334 = 01))
(489) LogicalRelation
Arguments: parquet, [product#1015335, plant#1015336, orderDateTime#1015337, planningStartDateTime#1015338], false
(490) RepartitionByExpression
Arguments: [product#1015335, plant#1015336], 37
(491) Project
Arguments: [product#1015335, plant#1015336, orderDateTime#1015337]
(492) LogicalRelation
Arguments: parquet, [systemId#1015339, internalUUID#1015340, plant#1015341, product#1015342, blockedForReplenishmentStartingFrom#1015343, productionAspect#1015344, salesPlant#1015345, listing#1015346, sourceOfSupplyCategory#1015347], false
(493) Repartition
Arguments: 37, true
(494) Project
Arguments: [systemId#1015339, internalUUID#1015340, plant#1015341, product#1015342, blockedForReplenishmentStartingFrom#1015343, productionAspect#1015344, salesPlant#1015345, listing#1015346, sourceOfSupplyCategory#1015347, struct(systemId, systemId#1015339, internalUUID, internalUUID#1015340, plant, plant#1015341, product, product#1015342, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1015343, productionAspect, productionAspect#1015344, salesPlant, salesPlant#1015345, listing, listing#1015346, sourceOfSupplyCategory, sourceOfSupplyCategory#1015347) AS productPlant#1015348]
(495) Project
Arguments: [productPlant#1015348]
(496) Join
Arguments: LeftOuter, ((product#1015335 <=> productPlant#1015348.product.internalRefUUID) AND (plant#1015336 <=> productPlant#1015348.plant.internalRefUUID))
(497) Project
Arguments: [product#1015335, plant#1015336, orderDateTime#1015337, productPlant#1015348]
(498) LogicalRelation
Arguments: parquet, [systemId#1015349, internalUUID#1015350, id#1015351, displayId#1015352, name#1015353, baseUnitOfMeasure#1015354, unitOfMeasures#1015355, unitOfMeasureConversions#1015356, productionAspect#1015357, salesAspect#1015358, procurementAspect#1015359, productGroup#1015360], false
(499) Repartition
Arguments: 37, true
(500) Join
Arguments: LeftOuter, (product#1015335 = internalUUID#1015350)
(501) Project
Arguments: [product#1015335, plant#1015336, orderDateTime#1015337, productPlant#1015348, systemId#1015349, internalUUID#1015350, id#1015351, displayId#1015352, name#1015353, baseUnitOfMeasure#1015354, unitOfMeasures#1015355, unitOfMeasureConversions#1015356, productionAspect#1015357, salesAspect#1015358, procurementAspect#1015359, productGroup#1015360, filter(unitOfMeasureConversions#1015356, lambdafunction((((lambda u#1012565.measurementUnit1.code = productPlant#1015348.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1012565.measurementUnit1.internalRefUUID = productPlant#1015348.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1012565.measurementUnit2.code = baseUnitOfMeasure#1015354.code) AND (lambda u#1012565.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1015354.internalRefUUID))), lambda u#1012565, false)) AS filteredUnitOfMeasureConversions#1015361]
(502) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1015361.quantityNumerator), true, [quantityNumerator#1015362]
(503) Project
Arguments: [product#1015335, plant#1015336, orderDateTime#1015337, productPlant#1015348, systemId#1015349, internalUUID#1015350, id#1015351, displayId#1015352, name#1015353, baseUnitOfMeasure#1015354, unitOfMeasures#1015355, unitOfMeasureConversions#1015356, productionAspect#1015357, salesAspect#1015358, procurementAspect#1015359, productGroup#1015360, filteredUnitOfMeasureConversions#1015361, quantityNumerator#1015362]
(504) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1015361.quantityDenominator), true, [quantityDenominator#1015363]
(505) Project
Arguments: [product#1015335, plant#1015336, orderDateTime#1015337, productPlant#1015348, systemId#1015349, internalUUID#1015350, id#1015351, displayId#1015352, name#1015353, baseUnitOfMeasure#1015354, unitOfMeasures#1015355, unitOfMeasureConversions#1015356, productionAspect#1015357, salesAspect#1015358, procurementAspect#1015359, productGroup#1015360, filteredUnitOfMeasureConversions#1015361, quantityNumerator#1015362, quantityDenominator#1015363]
(506) Project
Arguments: [product#1015335, plant#1015336, orderDateTime#1015337, productPlant#1015348, systemId#1015349, internalUUID#1015350, id#1015351, displayId#1015352, name#1015353, baseUnitOfMeasure#1015354, unitOfMeasures#1015355, unitOfMeasureConversions#1015356, productionAspect#1015357, salesAspect#1015358, procurementAspect#1015359, productGroup#1015360, filteredUnitOfMeasureConversions#1015361, quantityNumerator#1015362, quantityDenominator#1015363, (cast(quantityNumerator#1015362 as double) / cast(quantityDenominator#1015363 as double)) AS outboundUnit#1015364]
(507) Project
Arguments: [product#1015335, plant#1015336, orderDateTime#1015337, productPlant#1015348, systemId#1015349, internalUUID#1015350, id#1015351, displayId#1015352, name#1015353, baseUnitOfMeasure#1015354, unitOfMeasures#1015355, unitOfMeasureConversions#1015356, productionAspect#1015357, salesAspect#1015358, procurementAspect#1015359, productGroup#1015360, filteredUnitOfMeasureConversions#1015361, quantityNumerator#1015362, quantityDenominator#1015363, CASE WHEN (isnull(outboundUnit#1015364) OR (outboundUnit#1015364 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1015364 END AS outboundUnit#1015365]
(508) Project
Arguments: [product#1015335, plant#1015336, orderDateTime#1015337, productPlant#1015348, outboundUnit#1015365]
(509) Join
Arguments: Inner, ((plantUuid#1015327 = plant#1015336) AND (productUuid#1015329 = product#1015335))
(510) Filter
Arguments: (calculationDateTime#1015323 <= orderDateTime#1015337)
(511) Project
Arguments: [plantUuid#1015327 AS plant#1015366, productUuid#1015329 AS product#1015367, storageLocId#1015330, calculationDateTime#1015323, quantity#1015332]
(512) Aggregate
Arguments: [plant#1015366, product#1015367, storageLocId#1015330], [plant#1015366, product#1015367, storageLocId#1015330, max(calculationDateTime#1015323) AS max_calc_datetime#1015368]
(513) Join
Arguments: Inner, ((((plant#1015256 <=> plant#1015366) AND (product#1015257 <=> product#1015367)) AND (storageLocId#1015220 <=> storageLocId#1015330)) AND (calculationDateTime#1015213 <=> max_calc_datetime#1015368))
(514) Project
Arguments: [plant#1015256, product#1015257, storageLocId#1015220, calculationDateTime#1015213, quantity#1015222]
(515) Aggregate
Arguments: [product#1015257, plant#1015256], [product#1015257, plant#1015256, sum(quantity#1015222) AS quantitySum#1015369, min(calculationDateTime#1015213) AS minCalculationDateTime#1015370]
(516) Project
Arguments: [product#1015257, plant#1015256, quantitySum#1015369, minCalculationDateTime#1015370, round(quantitySum#1015369, 0) AS roundedQuantitySum#1015371]
(517) Join
Arguments: LeftOuter, ((plant#1015118 = plant#1015256) AND (product#1015117 = product#1015257))
(518) Project
Arguments: [product#1015117, plant#1015118, orderDateTime#1015119, productPlant#1015130, outboundUnit#1015147, roundedQuantitySum#1015371, minCalculationDateTime#1015370]
(519) Project
Arguments: [product#1015117, plant#1015118, orderDateTime#1015119, productPlant#1015130, outboundUnit#1015147, roundedQuantitySum#1015371, minCalculationDateTime#1015370, CASE WHEN isnotnull(minCalculationDateTime#1015370) THEN minCalculationDateTime#1015370 ELSE orderDateTime#1015119 END AS stockDatetime#1015372]
(520) Project
Arguments: [product#1015117, plant#1015118, orderDateTime#1015119, productPlant#1015130, outboundUnit#1015147, roundedQuantitySum#1015371, minCalculationDateTime#1015370, stockDatetime#1015372, CASE WHEN isnotnull(roundedQuantitySum#1015371) THEN array(roundedQuantitySum#1015371) ELSE array(0.0) END AS stockBatchQuantities#1015373]
(521) Project
Arguments: [product#1015117, plant#1015118, orderDateTime#1015119, productPlant#1015130, outboundUnit#1015147, roundedQuantitySum#1015371, minCalculationDateTime#1015370, stockDatetime#1015372, stockBatchQuantities#1015373, array(2199-01-01 00:00:00) AS stockBatchShelfLifeEndDatetimes#1015374]
(522) Project
Arguments: [product#1015117, plant#1015118, orderDateTime#1015119, productPlant#1015130, outboundUnit#1015147, roundedQuantitySum#1015371, stockDatetime#1015372, stockBatchQuantities#1015373, stockBatchShelfLifeEndDatetimes#1015374]
(523) Project
Arguments: [product#1015117, plant#1015118, orderDateTime#1015119, productPlant#1015130, outboundUnit#1015147, stockDatetime#1015372, stockBatchQuantities#1015373, stockBatchShelfLifeEndDatetimes#1015374]
(524) LogicalRelation
Arguments: parquet, [product#1015375, plant#1015376, orderDateTime#1015377, planningStartDateTime#1015378], false
(525) RepartitionByExpression
Arguments: [product#1015375, plant#1015376], 37
(526) Project
Arguments: [product#1015375, plant#1015376, orderDateTime#1015377]
(527) LogicalRelation
Arguments: parquet, [systemId#1015379, internalUUID#1015380, plant#1015381, product#1015382, blockedForReplenishmentStartingFrom#1015383, productionAspect#1015384, salesPlant#1015385, listing#1015386, sourceOfSupplyCategory#1015387], false
(528) Repartition
Arguments: 37, true
(529) Project
Arguments: [systemId#1015379, internalUUID#1015380, plant#1015381, product#1015382, blockedForReplenishmentStartingFrom#1015383, productionAspect#1015384, salesPlant#1015385, listing#1015386, sourceOfSupplyCategory#1015387, struct(systemId, systemId#1015379, internalUUID, internalUUID#1015380, plant, plant#1015381, product, product#1015382, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1015383, productionAspect, productionAspect#1015384, salesPlant, salesPlant#1015385, listing, listing#1015386, sourceOfSupplyCategory, sourceOfSupplyCategory#1015387) AS productPlant#1015388]
(530) Project
Arguments: [productPlant#1015388]
(531) Join
Arguments: LeftOuter, ((product#1015375 <=> productPlant#1015388.product.internalRefUUID) AND (plant#1015376 <=> productPlant#1015388.plant.internalRefUUID))
(532) Project
Arguments: [product#1015375, plant#1015376, orderDateTime#1015377, productPlant#1015388]
(533) LogicalRelation
Arguments: parquet, [systemId#1015389, internalUUID#1015390, id#1015391, displayId#1015392, name#1015393, baseUnitOfMeasure#1015394, unitOfMeasures#1015395, unitOfMeasureConversions#1015396, productionAspect#1015397, salesAspect#1015398, procurementAspect#1015399, productGroup#1015400], false
(534) Repartition
Arguments: 37, true
(535) Join
Arguments: LeftOuter, (product#1015375 = internalUUID#1015390)
(536) Project
Arguments: [product#1015375, plant#1015376, orderDateTime#1015377, productPlant#1015388, systemId#1015389, internalUUID#1015390, id#1015391, displayId#1015392, name#1015393, baseUnitOfMeasure#1015394, unitOfMeasures#1015395, unitOfMeasureConversions#1015396, productionAspect#1015397, salesAspect#1015398, procurementAspect#1015399, productGroup#1015400, filter(unitOfMeasureConversions#1015396, lambdafunction((((lambda u#1012565.measurementUnit1.code = productPlant#1015388.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1012565.measurementUnit1.internalRefUUID = productPlant#1015388.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1012565.measurementUnit2.code = baseUnitOfMeasure#1015394.code) AND (lambda u#1012565.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1015394.internalRefUUID))), lambda u#1012565, false)) AS filteredUnitOfMeasureConversions#1015401]
(537) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1015401.quantityNumerator), true, [quantityNumerator#1015402]
(538) Project
Arguments: [product#1015375, plant#1015376, orderDateTime#1015377, productPlant#1015388, systemId#1015389, internalUUID#1015390, id#1015391, displayId#1015392, name#1015393, baseUnitOfMeasure#1015394, unitOfMeasures#1015395, unitOfMeasureConversions#1015396, productionAspect#1015397, salesAspect#1015398, procurementAspect#1015399, productGroup#1015400, filteredUnitOfMeasureConversions#1015401, quantityNumerator#1015402]
(539) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1015401.quantityDenominator), true, [quantityDenominator#1015403]
(540) Project
Arguments: [product#1015375, plant#1015376, orderDateTime#1015377, productPlant#1015388, systemId#1015389, internalUUID#1015390, id#1015391, displayId#1015392, name#1015393, baseUnitOfMeasure#1015394, unitOfMeasures#1015395, unitOfMeasureConversions#1015396, productionAspect#1015397, salesAspect#1015398, procurementAspect#1015399, productGroup#1015400, filteredUnitOfMeasureConversions#1015401, quantityNumerator#1015402, quantityDenominator#1015403]
(541) Project
Arguments: [product#1015375, plant#1015376, orderDateTime#1015377, productPlant#1015388, systemId#1015389, internalUUID#1015390, id#1015391, displayId#1015392, name#1015393, baseUnitOfMeasure#1015394, unitOfMeasures#1015395, unitOfMeasureConversions#1015396, productionAspect#1015397, salesAspect#1015398, procurementAspect#1015399, productGroup#1015400, filteredUnitOfMeasureConversions#1015401, quantityNumerator#1015402, quantityDenominator#1015403, (cast(quantityNumerator#1015402 as double) / cast(quantityDenominator#1015403 as double)) AS outboundUnit#1015404]
(542) Project
Arguments: [product#1015375, plant#1015376, orderDateTime#1015377, productPlant#1015388, systemId#1015389, internalUUID#1015390, id#1015391, displayId#1015392, name#1015393, baseUnitOfMeasure#1015394, unitOfMeasures#1015395, unitOfMeasureConversions#1015396, productionAspect#1015397, salesAspect#1015398, procurementAspect#1015399, productGroup#1015400, filteredUnitOfMeasureConversions#1015401, quantityNumerator#1015402, quantityDenominator#1015403, CASE WHEN (isnull(outboundUnit#1015404) OR (outboundUnit#1015404 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1015404 END AS outboundUnit#1015405]
(543) Project
Arguments: [product#1015375, plant#1015376, orderDateTime#1015377, productPlant#1015388, outboundUnit#1015405]
(544) LogicalRelation
Arguments: parquet, [systemId#1015406, internalUUID#1015407, product#1015408, plant#1015409, calculationDateTime#1015410, stockQuantities#1015411], false
(545) Repartition
Arguments: 37, true
(546) LogicalRelation
Arguments: parquet, [marketUnit#1015412, description#1015413, articleHierarchy#1015414, defaultCurrency#1015415, responsibilities#1015416, replenishmentTypes#1015417, distributionCenters#1015418, assignedArticleHierarchyNodes#1015419, minOrderQtySetting#1015420, listingCheck#1015421, odsSelection#1015422, demandProfiles#1015423, constraintProfiles#1015424, optimizationProfiles#1015425, orderGroupSplitProfiles#1015426, supplierMinimumProfiles#1015427, multipleRestrictionProfiles#1015428, preferredUomSource#1015429, handlingOfUnfulfilledDemands#1015430, negligibleQuantitiesThreshold#1015431, eventtype#1015432], false
(547) Repartition
Arguments: 37, true
(548) Filter
Arguments: (marketUnit#1015412 <=> STEPHI_MU)
(549) Project
Arguments: [marketUnit#1015412, description#1015413, articleHierarchy#1015414, defaultCurrency#1015415, responsibilities#1015416, replenishmentTypes#1015417, distributionCenters#1015418, assignedArticleHierarchyNodes#1015419, minOrderQtySetting#1015420, listingCheck#1015421, odsSelection#1015422, demandProfiles#1015423, constraintProfiles#1015424, optimizationProfiles#1015425, orderGroupSplitProfiles#1015426, supplierMinimumProfiles#1015427, multipleRestrictionProfiles#1015428, preferredUomSource#1015429, handlingOfUnfulfilledDemands#1015430, negligibleQuantitiesThreshold#1015431, eventtype#1015432]
(550) Project
Arguments: [distributionCenters#1015418]
(551) Generate
Arguments: explode(distributionCenters#1015418), false, [distributionCenters#1015433]
(552) Project
Arguments: [distributionCenters#1015433]
(553) Generate
Arguments: explode(distributionCenters#1015433.storageLocations), false, [storageLocations#1015434]
(554) Project
Arguments: [distributionCenters#1015433.id AS plantId#1015435, distributionCenters#1015433.internalRefUUID AS plantUuid#1015436, storageLocations#1015434]
(555) Project
Arguments: [plantId#1015435, plantUuid#1015436, storageLocations#1015434.id AS storageLocId#1015437, storageLocations#1015434.internalRefUUID AS storageLocUuid#1015438]
(556) LogicalRelation
Arguments: parquet, [product#1015439, plant#1015440, orderDateTime#1015441, planningStartDateTime#1015442], false
(557) RepartitionByExpression
Arguments: [product#1015439, plant#1015440], 37
(558) Project
Arguments: [product#1015439, plant#1015440, orderDateTime#1015441]
(559) LogicalRelation
Arguments: parquet, [systemId#1015443, internalUUID#1015444, plant#1015445, product#1015446, blockedForReplenishmentStartingFrom#1015447, productionAspect#1015448, salesPlant#1015449, listing#1015450, sourceOfSupplyCategory#1015451], false
(560) Repartition
Arguments: 37, true
(561) Project
Arguments: [systemId#1015443, internalUUID#1015444, plant#1015445, product#1015446, blockedForReplenishmentStartingFrom#1015447, productionAspect#1015448, salesPlant#1015449, listing#1015450, sourceOfSupplyCategory#1015451, struct(systemId, systemId#1015443, internalUUID, internalUUID#1015444, plant, plant#1015445, product, product#1015446, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1015447, productionAspect, productionAspect#1015448, salesPlant, salesPlant#1015449, listing, listing#1015450, sourceOfSupplyCategory, sourceOfSupplyCategory#1015451) AS productPlant#1015452]
(562) Project
Arguments: [productPlant#1015452]
(563) Join
Arguments: LeftOuter, ((product#1015439 <=> productPlant#1015452.product.internalRefUUID) AND (plant#1015440 <=> productPlant#1015452.plant.internalRefUUID))
(564) Project
Arguments: [product#1015439, plant#1015440, orderDateTime#1015441, productPlant#1015452]
(565) LogicalRelation
Arguments: parquet, [systemId#1015453, internalUUID#1015454, id#1015455, displayId#1015456, name#1015457, baseUnitOfMeasure#1015458, unitOfMeasures#1015459, unitOfMeasureConversions#1015460, productionAspect#1015461, salesAspect#1015462, procurementAspect#1015463, productGroup#1015464], false
(566) Repartition
Arguments: 37, true
(567) Join
Arguments: LeftOuter, (product#1015439 = internalUUID#1015454)
(568) Project
Arguments: [product#1015439, plant#1015440, orderDateTime#1015441, productPlant#1015452, systemId#1015453, internalUUID#1015454, id#1015455, displayId#1015456, name#1015457, baseUnitOfMeasure#1015458, unitOfMeasures#1015459, unitOfMeasureConversions#1015460, productionAspect#1015461, salesAspect#1015462, procurementAspect#1015463, productGroup#1015464, filter(unitOfMeasureConversions#1015460, lambdafunction((((lambda u#1012565.measurementUnit1.code = productPlant#1015452.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1012565.measurementUnit1.internalRefUUID = productPlant#1015452.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1012565.measurementUnit2.code = baseUnitOfMeasure#1015458.code) AND (lambda u#1012565.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1015458.internalRefUUID))), lambda u#1012565, false)) AS filteredUnitOfMeasureConversions#1015465]
(569) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1015465.quantityNumerator), true, [quantityNumerator#1015466]
(570) Project
Arguments: [product#1015439, plant#1015440, orderDateTime#1015441, productPlant#1015452, systemId#1015453, internalUUID#1015454, id#1015455, displayId#1015456, name#1015457, baseUnitOfMeasure#1015458, unitOfMeasures#1015459, unitOfMeasureConversions#1015460, productionAspect#1015461, salesAspect#1015462, procurementAspect#1015463, productGroup#1015464, filteredUnitOfMeasureConversions#1015465, quantityNumerator#1015466]
(571) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1015465.quantityDenominator), true, [quantityDenominator#1015467]
(572) Project
Arguments: [product#1015439, plant#1015440, orderDateTime#1015441, productPlant#1015452, systemId#1015453, internalUUID#1015454, id#1015455, displayId#1015456, name#1015457, baseUnitOfMeasure#1015458, unitOfMeasures#1015459, unitOfMeasureConversions#1015460, productionAspect#1015461, salesAspect#1015462, procurementAspect#1015463, productGroup#1015464, filteredUnitOfMeasureConversions#1015465, quantityNumerator#1015466, quantityDenominator#1015467]
(573) Project
Arguments: [product#1015439, plant#1015440, orderDateTime#1015441, productPlant#1015452, systemId#1015453, internalUUID#1015454, id#1015455, displayId#1015456, name#1015457, baseUnitOfMeasure#1015458, unitOfMeasures#1015459, unitOfMeasureConversions#1015460, productionAspect#1015461, salesAspect#1015462, procurementAspect#1015463, productGroup#1015464, filteredUnitOfMeasureConversions#1015465, quantityNumerator#1015466, quantityDenominator#1015467, (cast(quantityNumerator#1015466 as double) / cast(quantityDenominator#1015467 as double)) AS outboundUnit#1015468]
(574) Project
Arguments: [product#1015439, plant#1015440, orderDateTime#1015441, productPlant#1015452, systemId#1015453, internalUUID#1015454, id#1015455, displayId#1015456, name#1015457, baseUnitOfMeasure#1015458, unitOfMeasures#1015459, unitOfMeasureConversions#1015460, productionAspect#1015461, salesAspect#1015462, procurementAspect#1015463, productGroup#1015464, filteredUnitOfMeasureConversions#1015465, quantityNumerator#1015466, quantityDenominator#1015467, CASE WHEN (isnull(outboundUnit#1015468) OR (outboundUnit#1015468 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1015468 END AS outboundUnit#1015469]
(575) Project
Arguments: [product#1015439, plant#1015440, orderDateTime#1015441, productPlant#1015452, outboundUnit#1015469]
(576) Project
Arguments: [plant#1015440]
(577) Deduplicate
Arguments: [plant#1015440]
(578) Join
Arguments: Inner, (plantUuid#1015436 = plant#1015440)
(579) Project
Arguments: [plantId#1015435, plantUuid#1015436, storageLocId#1015437, storageLocUuid#1015438]
(580) Join
Arguments: Inner, (plant#1015409.internalRefUUID <=> plantUuid#1015436)
(581) Generate
Arguments: explode(filter(stockQuantities#1015411, lambdafunction(((lambda x#1012695.storageLocation.internalRefUuid = storageLocUuid#1015438) AND (lambda x#1012695.storageLocation.Id = storageLocId#1015437)), lambda x#1012695, false))), false, [stockQuantity#1015470]
(582) Project
Arguments: [systemId#1015406, internalUUID#1015407, product#1015408, plant#1015409, calculationDateTime#1015410, stockQuantities#1015411, plantId#1015435, plantUuid#1015436, storageLocId#1015437, storageLocUuid#1015438, stockQuantity#1015470]
(583) Aggregate
Arguments: [plantUuid#1015436, internalUUID#1015407, plant#1015409, product#1015408, systemId#1015406], [plantUuid#1015436, internalUUID#1015407, plant#1015409, product#1015408, systemId#1015406, first(calculationDateTime#1015410, false) AS calculationDateTime#1015471, collect_list(stockQuantity#1015470, 0, 0) AS stockQuantities#1015472]
(584) Project
Arguments: [systemId#1015406, internalUUID#1015407, product#1015408, plant#1015409, calculationDateTime#1015471, stockQuantities#1015472]
(585) Generate
Arguments: explode(stockQuantities#1015472), false, [stockQuantity#1015473]
(586) Project
Arguments: [systemId#1015406, internalUUID#1015407, product#1015408, plant#1015409, calculationDateTime#1015471, stockQuantities#1015472, stockQuantity#1015473]
(587) Project
Arguments: [plant#1015409.id AS plant#1015474, plant#1015409.internalRefUUID AS plantUuid#1015475, product#1015408.id AS product#1015476, product#1015408.internalRefUUID AS productUuid#1015477, calculationDateTime#1015471, stockQuantity#1015473.storagelocation.id AS storageLocId#1015478, stockQuantity#1015473.storagelocation.internalRefUUID AS storageLocUuid#1015479, stockQuantity#1015473.quantity.measure AS quantity#1015480, stockQuantity#1015473.specialStockIndicator.code AS specialStockIndicator#1015481, stockQuantity#1015473.stockType.code AS stockType#1015482]
(588) Filter
Arguments: ((specialStockIndicator#1015481 = ) AND (stockType#1015482 = 01))
(589) LogicalRelation
Arguments: parquet, [product#1015483, plant#1015484, orderDateTime#1015485, planningStartDateTime#1015486], false
(590) RepartitionByExpression
Arguments: [product#1015483, plant#1015484], 37
(591) Project
Arguments: [product#1015483, plant#1015484, orderDateTime#1015485]
(592) LogicalRelation
Arguments: parquet, [systemId#1015487, internalUUID#1015488, plant#1015489, product#1015490, blockedForReplenishmentStartingFrom#1015491, productionAspect#1015492, salesPlant#1015493, listing#1015494, sourceOfSupplyCategory#1015495], false
(593) Repartition
Arguments: 37, true
(594) Project
Arguments: [systemId#1015487, internalUUID#1015488, plant#1015489, product#1015490, blockedForReplenishmentStartingFrom#1015491, productionAspect#1015492, salesPlant#1015493, listing#1015494, sourceOfSupplyCategory#1015495, struct(systemId, systemId#1015487, internalUUID, internalUUID#1015488, plant, plant#1015489, product, product#1015490, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1015491, productionAspect, productionAspect#1015492, salesPlant, salesPlant#1015493, listing, listing#1015494, sourceOfSupplyCategory, sourceOfSupplyCategory#1015495) AS productPlant#1015496]
(595) Project
Arguments: [productPlant#1015496]
(596) Join
Arguments: LeftOuter, ((product#1015483 <=> productPlant#1015496.product.internalRefUUID) AND (plant#1015484 <=> productPlant#1015496.plant.internalRefUUID))
(597) Project
Arguments: [product#1015483, plant#1015484, orderDateTime#1015485, productPlant#1015496]
(598) LogicalRelation
Arguments: parquet, [systemId#1015497, internalUUID#1015498, id#1015499, displayId#1015500, name#1015501, baseUnitOfMeasure#1015502, unitOfMeasures#1015503, unitOfMeasureConversions#1015504, productionAspect#1015505, salesAspect#1015506, procurementAspect#1015507, productGroup#1015508], false
(599) Repartition
Arguments: 37, true
(600) Join
Arguments: LeftOuter, (product#1015483 = internalUUID#1015498)
(601) Project
Arguments: [product#1015483, plant#1015484, orderDateTime#1015485, productPlant#1015496, systemId#1015497, internalUUID#1015498, id#1015499, displayId#1015500, name#1015501, baseUnitOfMeasure#1015502, unitOfMeasures#1015503, unitOfMeasureConversions#1015504, productionAspect#1015505, salesAspect#1015506, procurementAspect#1015507, productGroup#1015508, filter(unitOfMeasureConversions#1015504, lambdafunction((((lambda u#1012565.measurementUnit1.code = productPlant#1015496.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1012565.measurementUnit1.internalRefUUID = productPlant#1015496.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1012565.measurementUnit2.code = baseUnitOfMeasure#1015502.code) AND (lambda u#1012565.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1015502.internalRefUUID))), lambda u#1012565, false)) AS filteredUnitOfMeasureConversions#1015509]
(602) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1015509.quantityNumerator), true, [quantityNumerator#1015510]
(603) Project
Arguments: [product#1015483, plant#1015484, orderDateTime#1015485, productPlant#1015496, systemId#1015497, internalUUID#1015498, id#1015499, displayId#1015500, name#1015501, baseUnitOfMeasure#1015502, unitOfMeasures#1015503, unitOfMeasureConversions#1015504, productionAspect#1015505, salesAspect#1015506, procurementAspect#1015507, productGroup#1015508, filteredUnitOfMeasureConversions#1015509, quantityNumerator#1015510]
(604) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1015509.quantityDenominator), true, [quantityDenominator#1015511]
(605) Project
Arguments: [product#1015483, plant#1015484, orderDateTime#1015485, productPlant#1015496, systemId#1015497, internalUUID#1015498, id#1015499, displayId#1015500, name#1015501, baseUnitOfMeasure#1015502, unitOfMeasures#1015503, unitOfMeasureConversions#1015504, productionAspect#1015505, salesAspect#1015506, procurementAspect#1015507, productGroup#1015508, filteredUnitOfMeasureConversions#1015509, quantityNumerator#1015510, quantityDenominator#1015511]
(606) Project
Arguments: [product#1015483, plant#1015484, orderDateTime#1015485, productPlant#1015496, systemId#1015497, internalUUID#1015498, id#1015499, displayId#1015500, name#1015501, baseUnitOfMeasure#1015502, unitOfMeasures#1015503, unitOfMeasureConversions#1015504, productionAspect#1015505, salesAspect#1015506, procurementAspect#1015507, productGroup#1015508, filteredUnitOfMeasureConversions#1015509, quantityNumerator#1015510, quantityDenominator#1015511, (cast(quantityNumerator#1015510 as double) / cast(quantityDenominator#1015511 as double)) AS outboundUnit#1015512]
(607) Project
Arguments: [product#1015483, plant#1015484, orderDateTime#1015485, productPlant#1015496, systemId#1015497, internalUUID#1015498, id#1015499, displayId#1015500, name#1015501, baseUnitOfMeasure#1015502, unitOfMeasures#1015503, unitOfMeasureConversions#1015504, productionAspect#1015505, salesAspect#1015506, procurementAspect#1015507, productGroup#1015508, filteredUnitOfMeasureConversions#1015509, quantityNumerator#1015510, quantityDenominator#1015511, CASE WHEN (isnull(outboundUnit#1015512) OR (outboundUnit#1015512 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1015512 END AS outboundUnit#1015513]
(608) Project
Arguments: [product#1015483, plant#1015484, orderDateTime#1015485, productPlant#1015496, outboundUnit#1015513]
(609) Join
Arguments: Inner, ((plantUuid#1015475 = plant#1015484) AND (productUuid#1015477 = product#1015483))
(610) Filter
Arguments: (calculationDateTime#1015471 <= orderDateTime#1015485)
(611) Project
Arguments: [plantUuid#1015475 AS plant#1015514, productUuid#1015477 AS product#1015515, storageLocId#1015478, calculationDateTime#1015471, quantity#1015480]
(612) LogicalRelation
Arguments: parquet, [systemId#1015516, internalUUID#1015517, product#1015518, plant#1015519, calculationDateTime#1015520, stockQuantities#1015521], false
(613) Repartition
Arguments: 37, true
(614) LogicalRelation
Arguments: parquet, [marketUnit#1015522, description#1015523, articleHierarchy#1015524, defaultCurrency#1015525, responsibilities#1015526, replenishmentTypes#1015527, distributionCenters#1015528, assignedArticleHierarchyNodes#1015529, minOrderQtySetting#1015530, listingCheck#1015531, odsSelection#1015532, demandProfiles#1015533, constraintProfiles#1015534, optimizationProfiles#1015535, orderGroupSplitProfiles#1015536, supplierMinimumProfiles#1015537, multipleRestrictionProfiles#1015538, preferredUomSource#1015539, handlingOfUnfulfilledDemands#1015540, negligibleQuantitiesThreshold#1015541, eventtype#1015542], false
(615) Repartition
Arguments: 37, true
(616) Filter
Arguments: (marketUnit#1015522 <=> STEPHI_MU)
(617) Project
Arguments: [marketUnit#1015522, description#1015523, articleHierarchy#1015524, defaultCurrency#1015525, responsibilities#1015526, replenishmentTypes#1015527, distributionCenters#1015528, assignedArticleHierarchyNodes#1015529, minOrderQtySetting#1015530, listingCheck#1015531, odsSelection#1015532, demandProfiles#1015533, constraintProfiles#1015534, optimizationProfiles#1015535, orderGroupSplitProfiles#1015536, supplierMinimumProfiles#1015537, multipleRestrictionProfiles#1015538, preferredUomSource#1015539, handlingOfUnfulfilledDemands#1015540, negligibleQuantitiesThreshold#1015541, eventtype#1015542]
(618) Project
Arguments: [distributionCenters#1015528]
(619) Generate
Arguments: explode(distributionCenters#1015528), false, [distributionCenters#1015543]
(620) Project
Arguments: [distributionCenters#1015543]
(621) Generate
Arguments: explode(distributionCenters#1015543.storageLocations), false, [storageLocations#1015544]
(622) Project
Arguments: [distributionCenters#1015543.id AS plantId#1015545, distributionCenters#1015543.internalRefUUID AS plantUuid#1015546, storageLocations#1015544]
(623) Project
Arguments: [plantId#1015545, plantUuid#1015546, storageLocations#1015544.id AS storageLocId#1015547, storageLocations#1015544.internalRefUUID AS storageLocUuid#1015548]
(624) LogicalRelation
Arguments: parquet, [product#1015549, plant#1015550, orderDateTime#1015551, planningStartDateTime#1015552], false
(625) RepartitionByExpression
Arguments: [product#1015549, plant#1015550], 37
(626) Project
Arguments: [product#1015549, plant#1015550, orderDateTime#1015551]
(627) LogicalRelation
Arguments: parquet, [systemId#1015553, internalUUID#1015554, plant#1015555, product#1015556, blockedForReplenishmentStartingFrom#1015557, productionAspect#1015558, salesPlant#1015559, listing#1015560, sourceOfSupplyCategory#1015561], false
(628) Repartition
Arguments: 37, true
(629) Project
Arguments: [systemId#1015553, internalUUID#1015554, plant#1015555, product#1015556, blockedForReplenishmentStartingFrom#1015557, productionAspect#1015558, salesPlant#1015559, listing#1015560, sourceOfSupplyCategory#1015561, struct(systemId, systemId#1015553, internalUUID, internalUUID#1015554, plant, plant#1015555, product, product#1015556, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1015557, productionAspect, productionAspect#1015558, salesPlant, salesPlant#1015559, listing, listing#1015560, sourceOfSupplyCategory, sourceOfSupplyCategory#1015561) AS productPlant#1015562]
(630) Project
Arguments: [productPlant#1015562]
(631) Join
Arguments: LeftOuter, ((product#1015549 <=> productPlant#1015562.product.internalRefUUID) AND (plant#1015550 <=> productPlant#1015562.plant.internalRefUUID))
(632) Project
Arguments: [product#1015549, plant#1015550, orderDateTime#1015551, productPlant#1015562]
(633) LogicalRelation
Arguments: parquet, [systemId#1015563, internalUUID#1015564, id#1015565, displayId#1015566, name#1015567, baseUnitOfMeasure#1015568, unitOfMeasures#1015569, unitOfMeasureConversions#1015570, productionAspect#1015571, salesAspect#1015572, procurementAspect#1015573, productGroup#1015574], false
(634) Repartition
Arguments: 37, true
(635) Join
Arguments: LeftOuter, (product#1015549 = internalUUID#1015564)
(636) Project
Arguments: [product#1015549, plant#1015550, orderDateTime#1015551, productPlant#1015562, systemId#1015563, internalUUID#1015564, id#1015565, displayId#1015566, name#1015567, baseUnitOfMeasure#1015568, unitOfMeasures#1015569, unitOfMeasureConversions#1015570, productionAspect#1015571, salesAspect#1015572, procurementAspect#1015573, productGroup#1015574, filter(unitOfMeasureConversions#1015570, lambdafunction((((lambda u#1012565.measurementUnit1.code = productPlant#1015562.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1012565.measurementUnit1.internalRefUUID = productPlant#1015562.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1012565.measurementUnit2.code = baseUnitOfMeasure#1015568.code) AND (lambda u#1012565.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1015568.internalRefUUID))), lambda u#1012565, false)) AS filteredUnitOfMeasureConversions#1015575]
(637) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1015575.quantityNumerator), true, [quantityNumerator#1015576]
(638) Project
Arguments: [product#1015549, plant#1015550, orderDateTime#1015551, productPlant#1015562, systemId#1015563, internalUUID#1015564, id#1015565, displayId#1015566, name#1015567, baseUnitOfMeasure#1015568, unitOfMeasures#1015569, unitOfMeasureConversions#1015570, productionAspect#1015571, salesAspect#1015572, procurementAspect#1015573, productGroup#1015574, filteredUnitOfMeasureConversions#1015575, quantityNumerator#1015576]
(639) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1015575.quantityDenominator), true, [quantityDenominator#1015577]
(640) Project
Arguments: [product#1015549, plant#1015550, orderDateTime#1015551, productPlant#1015562, systemId#1015563, internalUUID#1015564, id#1015565, displayId#1015566, name#1015567, baseUnitOfMeasure#1015568, unitOfMeasures#1015569, unitOfMeasureConversions#1015570, productionAspect#1015571, salesAspect#1015572, procurementAspect#1015573, productGroup#1015574, filteredUnitOfMeasureConversions#1015575, quantityNumerator#1015576, quantityDenominator#1015577]
(641) Project
Arguments: [product#1015549, plant#1015550, orderDateTime#1015551, productPlant#1015562, systemId#1015563, internalUUID#1015564, id#1015565, displayId#1015566, name#1015567, baseUnitOfMeasure#1015568, unitOfMeasures#1015569, unitOfMeasureConversions#1015570, productionAspect#1015571, salesAspect#1015572, procurementAspect#1015573, productGroup#1015574, filteredUnitOfMeasureConversions#1015575, quantityNumerator#1015576, quantityDenominator#1015577, (cast(quantityNumerator#1015576 as double) / cast(quantityDenominator#1015577 as double)) AS outboundUnit#1015578]
(642) Project
Arguments: [product#1015549, plant#1015550, orderDateTime#1015551, productPlant#1015562, systemId#1015563, internalUUID#1015564, id#1015565, displayId#1015566, name#1015567, baseUnitOfMeasure#1015568, unitOfMeasures#1015569, unitOfMeasureConversions#1015570, productionAspect#1015571, salesAspect#1015572, procurementAspect#1015573, productGroup#1015574, filteredUnitOfMeasureConversions#1015575, quantityNumerator#1015576, quantityDenominator#1015577, CASE WHEN (isnull(outboundUnit#1015578) OR (outboundUnit#1015578 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1015578 END AS outboundUnit#1015579]
(643) Project
Arguments: [product#1015549, plant#1015550, orderDateTime#1015551, productPlant#1015562, outboundUnit#1015579]
(644) Project
Arguments: [plant#1015550]
(645) Deduplicate
Arguments: [plant#1015550]
(646) Join
Arguments: Inner, (plantUuid#1015546 = plant#1015550)
(647) Project
Arguments: [plantId#1015545, plantUuid#1015546, storageLocId#1015547, storageLocUuid#1015548]
(648) Join
Arguments: Inner, (plant#1015519.internalRefUUID <=> plantUuid#1015546)
(649) Generate
Arguments: explode(filter(stockQuantities#1015521, lambdafunction(((lambda x#1012695.storageLocation.internalRefUuid = storageLocUuid#1015548) AND (lambda x#1012695.storageLocation.Id = storageLocId#1015547)), lambda x#1012695, false))), false, [stockQuantity#1015580]
(650) Project
Arguments: [systemId#1015516, internalUUID#1015517, product#1015518, plant#1015519, calculationDateTime#1015520, stockQuantities#1015521, plantId#1015545, plantUuid#1015546, storageLocId#1015547, storageLocUuid#1015548, stockQuantity#1015580]
(651) Aggregate
Arguments: [plantUuid#1015546, internalUUID#1015517, plant#1015519, product#1015518, systemId#1015516], [plantUuid#1015546, internalUUID#1015517, plant#1015519, product#1015518, systemId#1015516, first(calculationDateTime#1015520, false) AS calculationDateTime#1015581, collect_list(stockQuantity#1015580, 0, 0) AS stockQuantities#1015582]
(652) Project
Arguments: [systemId#1015516, internalUUID#1015517, product#1015518, plant#1015519, calculationDateTime#1015581, stockQuantities#1015582]
(653) Generate
Arguments: explode(stockQuantities#1015582), false, [stockQuantity#1015583]
(654) Project
Arguments: [systemId#1015516, internalUUID#1015517, product#1015518, plant#1015519, calculationDateTime#1015581, stockQuantities#1015582, stockQuantity#1015583]
(655) Project
Arguments: [plant#1015519.id AS plant#1015584, plant#1015519.internalRefUUID AS plantUuid#1015585, product#1015518.id AS product#1015586, product#1015518.internalRefUUID AS productUuid#1015587, calculationDateTime#1015581, stockQuantity#1015583.storagelocation.id AS storageLocId#1015588, stockQuantity#1015583.storagelocation.internalRefUUID AS storageLocUuid#1015589, stockQuantity#1015583.quantity.measure AS quantity#1015590, stockQuantity#1015583.specialStockIndicator.code AS specialStockIndicator#1015591, stockQuantity#1015583.stockType.code AS stockType#1015592]
(656) Filter
Arguments: ((specialStockIndicator#1015591 = ) AND (stockType#1015592 = 01))
(657) LogicalRelation
Arguments: parquet, [product#1015593, plant#1015594, orderDateTime#1015595, planningStartDateTime#1015596], false
(658) RepartitionByExpression
Arguments: [product#1015593, plant#1015594], 37
(659) Project
Arguments: [product#1015593, plant#1015594, orderDateTime#1015595]
(660) LogicalRelation
Arguments: parquet, [systemId#1015597, internalUUID#1015598, plant#1015599, product#1015600, blockedForReplenishmentStartingFrom#1015601, productionAspect#1015602, salesPlant#1015603, listing#1015604, sourceOfSupplyCategory#1015605], false
(661) Repartition
Arguments: 37, true
(662) Project
Arguments: [systemId#1015597, internalUUID#1015598, plant#1015599, product#1015600, blockedForReplenishmentStartingFrom#1015601, productionAspect#1015602, salesPlant#1015603, listing#1015604, sourceOfSupplyCategory#1015605, struct(systemId, systemId#1015597, internalUUID, internalUUID#1015598, plant, plant#1015599, product, product#1015600, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1015601, productionAspect, productionAspect#1015602, salesPlant, salesPlant#1015603, listing, listing#1015604, sourceOfSupplyCategory, sourceOfSupplyCategory#1015605) AS productPlant#1015606]
(663) Project
Arguments: [productPlant#1015606]
(664) Join
Arguments: LeftOuter, ((product#1015593 <=> productPlant#1015606.product.internalRefUUID) AND (plant#1015594 <=> productPlant#1015606.plant.internalRefUUID))
(665) Project
Arguments: [product#1015593, plant#1015594, orderDateTime#1015595, productPlant#1015606]
(666) LogicalRelation
Arguments: parquet, [systemId#1015607, internalUUID#1015608, id#1015609, displayId#1015610, name#1015611, baseUnitOfMeasure#1015612, unitOfMeasures#1015613, unitOfMeasureConversions#1015614, productionAspect#1015615, salesAspect#1015616, procurementAspect#1015617, productGroup#1015618], false
(667) Repartition
Arguments: 37, true
(668) Join
Arguments: LeftOuter, (product#1015593 = internalUUID#1015608)
(669) Project
Arguments: [product#1015593, plant#1015594, orderDateTime#1015595, productPlant#1015606, systemId#1015607, internalUUID#1015608, id#1015609, displayId#1015610, name#1015611, baseUnitOfMeasure#1015612, unitOfMeasures#1015613, unitOfMeasureConversions#1015614, productionAspect#1015615, salesAspect#1015616, procurementAspect#1015617, productGroup#1015618, filter(unitOfMeasureConversions#1015614, lambdafunction((((lambda u#1012565.measurementUnit1.code = productPlant#1015606.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1012565.measurementUnit1.internalRefUUID = productPlant#1015606.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1012565.measurementUnit2.code = baseUnitOfMeasure#1015612.code) AND (lambda u#1012565.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1015612.internalRefUUID))), lambda u#1012565, false)) AS filteredUnitOfMeasureConversions#1015619]
(670) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1015619.quantityNumerator), true, [quantityNumerator#1015620]
(671) Project
Arguments: [product#1015593, plant#1015594, orderDateTime#1015595, productPlant#1015606, systemId#1015607, internalUUID#1015608, id#1015609, displayId#1015610, name#1015611, baseUnitOfMeasure#1015612, unitOfMeasures#1015613, unitOfMeasureConversions#1015614, productionAspect#1015615, salesAspect#1015616, procurementAspect#1015617, productGroup#1015618, filteredUnitOfMeasureConversions#1015619, quantityNumerator#1015620]
(672) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1015619.quantityDenominator), true, [quantityDenominator#1015621]
(673) Project
Arguments: [product#1015593, plant#1015594, orderDateTime#1015595, productPlant#1015606, systemId#1015607, internalUUID#1015608, id#1015609, displayId#1015610, name#1015611, baseUnitOfMeasure#1015612, unitOfMeasures#1015613, unitOfMeasureConversions#1015614, productionAspect#1015615, salesAspect#1015616, procurementAspect#1015617, productGroup#1015618, filteredUnitOfMeasureConversions#1015619, quantityNumerator#1015620, quantityDenominator#1015621]
(674) Project
Arguments: [product#1015593, plant#1015594, orderDateTime#1015595, productPlant#1015606, systemId#1015607, internalUUID#1015608, id#1015609, displayId#1015610, name#1015611, baseUnitOfMeasure#1015612, unitOfMeasures#1015613, unitOfMeasureConversions#1015614, productionAspect#1015615, salesAspect#1015616, procurementAspect#1015617, productGroup#1015618, filteredUnitOfMeasureConversions#1015619, quantityNumerator#1015620, quantityDenominator#1015621, (cast(quantityNumerator#1015620 as double) / cast(quantityDenominator#1015621 as double)) AS outboundUnit#1015622]
(675) Project
Arguments: [product#1015593, plant#1015594, orderDateTime#1015595, productPlant#1015606, systemId#1015607, internalUUID#1015608, id#1015609, displayId#1015610, name#1015611, baseUnitOfMeasure#1015612, unitOfMeasures#1015613, unitOfMeasureConversions#1015614, productionAspect#1015615, salesAspect#1015616, procurementAspect#1015617, productGroup#1015618, filteredUnitOfMeasureConversions#1015619, quantityNumerator#1015620, quantityDenominator#1015621, CASE WHEN (isnull(outboundUnit#1015622) OR (outboundUnit#1015622 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1015622 END AS outboundUnit#1015623]
(676) Project
Arguments: [product#1015593, plant#1015594, orderDateTime#1015595, productPlant#1015606, outboundUnit#1015623]
(677) Join
Arguments: Inner, ((plantUuid#1015585 = plant#1015594) AND (productUuid#1015587 = product#1015593))
(678) Filter
Arguments: (calculationDateTime#1015581 <= orderDateTime#1015595)
(679) Project
Arguments: [plantUuid#1015585 AS plant#1015624, productUuid#1015587 AS product#1015625, storageLocId#1015588, calculationDateTime#1015581, quantity#1015590]
(680) Aggregate
Arguments: [plant#1015624, product#1015625, storageLocId#1015588], [plant#1015624, product#1015625, storageLocId#1015588, max(calculationDateTime#1015581) AS max_calc_datetime#1015626]
(681) Join
Arguments: Inner, ((((plant#1015514 <=> plant#1015624) AND (product#1015515 <=> product#1015625)) AND (storageLocId#1015478 <=> storageLocId#1015588)) AND (calculationDateTime#1015471 <=> max_calc_datetime#1015626))
(682) Project
Arguments: [plant#1015514, product#1015515, storageLocId#1015478, calculationDateTime#1015471, quantity#1015480]
(683) Aggregate
Arguments: [product#1015515, plant#1015514], [product#1015515, plant#1015514, sum(quantity#1015480) AS quantitySum#1015627, min(calculationDateTime#1015471) AS minCalculationDateTime#1015628]
(684) Project
Arguments: [product#1015515, plant#1015514, quantitySum#1015627, minCalculationDateTime#1015628, round(quantitySum#1015627, 0) AS roundedQuantitySum#1015629]
(685) Join
Arguments: LeftOuter, ((plant#1015376 = plant#1015514) AND (product#1015375 = product#1015515))
(686) Project
Arguments: [product#1015375, plant#1015376, orderDateTime#1015377, productPlant#1015388, outboundUnit#1015405, roundedQuantitySum#1015629, minCalculationDateTime#1015628]
(687) Project
Arguments: [product#1015375, plant#1015376, orderDateTime#1015377, productPlant#1015388, outboundUnit#1015405, roundedQuantitySum#1015629, minCalculationDateTime#1015628, CASE WHEN isnotnull(minCalculationDateTime#1015628) THEN minCalculationDateTime#1015628 ELSE orderDateTime#1015377 END AS stockDatetime#1015630]
(688) Project
Arguments: [product#1015375, plant#1015376, orderDateTime#1015377, productPlant#1015388, outboundUnit#1015405, roundedQuantitySum#1015629, minCalculationDateTime#1015628, stockDatetime#1015630, CASE WHEN isnotnull(roundedQuantitySum#1015629) THEN array(roundedQuantitySum#1015629) ELSE array(0.0) END AS stockBatchQuantities#1015631]
(689) Project
Arguments: [product#1015375, plant#1015376, orderDateTime#1015377, productPlant#1015388, outboundUnit#1015405, roundedQuantitySum#1015629, minCalculationDateTime#1015628, stockDatetime#1015630, stockBatchQuantities#1015631, array(2199-01-01 00:00:00) AS stockBatchShelfLifeEndDatetimes#1015632]
(690) Project
Arguments: [product#1015375, plant#1015376, orderDateTime#1015377, productPlant#1015388, outboundUnit#1015405, roundedQuantitySum#1015629, stockDatetime#1015630, stockBatchQuantities#1015631, stockBatchShelfLifeEndDatetimes#1015632]
(691) Project
Arguments: [product#1015375, plant#1015376, orderDateTime#1015377, productPlant#1015388, outboundUnit#1015405, stockDatetime#1015630, stockBatchQuantities#1015631, stockBatchShelfLifeEndDatetimes#1015632]
(692) LogicalRelation
Arguments: parquet, [product#1015633, plant#1015634, demandChannel#1015635, demandStream#1015636, considerVariance#1015637, demandTimeBuckets#1015638, demandPointInTimeStart#1015639, demandPointInTimeEnd#1015640, demandPointInTime#1015641], false
(693) Join
Arguments: LeftOuter, ((plant#1015634 <=> plant#1015376) AND (product#1015633 <=> product#1015375))
(694) Project
Arguments: [product#1015375, plant#1015376, orderDateTime#1015377, productPlant#1015388, outboundUnit#1015405, stockDatetime#1015630, stockBatchQuantities#1015631, stockBatchShelfLifeEndDatetimes#1015632, product#1015633, plant#1015634, demandChannel#1015635, demandStream#1015636, considerVariance#1015637, demandTimeBuckets#1015638, demandPointInTimeStart#1015639, demandPointInTimeEnd#1015640, demandPointInTime#1015641, CASE WHEN isnotnull(product#1015633) THEN struct(demandChannel, demandChannel#1015635, demandStream, demandStream#1015636, considerVariance, considerVariance#1015637, demandTimeBuckets, demandTimeBuckets#1015638, demandPointInTimeStart, demandPointInTimeStart#1015639, demandPointInTimeEnd, demandPointInTimeEnd#1015640, demandPointInTime, demandPointInTime#1015641) 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#1015642]
(695) Aggregate
Arguments: [product#1015375, plant#1015376, orderDateTime#1015377, productPlant#1015388, outboundUnit#1015405, stockDatetime#1015630, stockBatchQuantities#1015631, stockBatchShelfLifeEndDatetimes#1015632], [product#1015375, plant#1015376, orderDateTime#1015377, productPlant#1015388, outboundUnit#1015405, stockDatetime#1015630, stockBatchQuantities#1015631, stockBatchShelfLifeEndDatetimes#1015632, collect_list(rawDemands#1015642, 0, 0) AS rawDemands#1015643]
(696) SubqueryAlias
Arguments: wl
(697) LogicalRelation
Arguments: parquet, [systemId#1015644, internalUUID#1015645, id#1015646, displayId#1015647, name#1015648, category#1015649, companyCode#1015650, address#1015651, mainDistributionChain#1015652, mainPurchasingOrganization#1015653, validPurchasingOrganizations#1015654, productGroup#1015655], false
(698) Repartition
Arguments: 37, true
(699) Project
Arguments: [systemId#1015644, internalUUID#1015645, id#1015646, displayId#1015647, name#1015648, category#1015649, companyCode#1015650, address#1015651, mainDistributionChain#1015652, mainPurchasingOrganization#1015653, validPurchasingOrganizations#1015654, productGroup#1015655, address#1015651.timezone.code AS timezonecode#1015656]
(700) Join
Arguments: LeftOuter, (plant#1015376 <=> internalUUID#1015645)
(701) Project
Arguments: [product#1015375, plant#1015376, orderDateTime#1015377, productPlant#1015388, outboundUnit#1015405, stockDatetime#1015630, stockBatchQuantities#1015631, stockBatchShelfLifeEndDatetimes#1015632, rawDemands#1015643, systemId#1015644, internalUUID#1015645, id#1015646, displayId#1015647, name#1015648, category#1015649, companyCode#1015650, address#1015651, mainDistributionChain#1015652, mainPurchasingOrganization#1015653, validPurchasingOrganizations#1015654, productGroup#1015655, CASE WHEN isnotnull(timezonecode#1015656) THEN timezonecode#1015656 ELSE UTC END AS timezonecode#1015657]
(702) Project
Arguments: [product#1015375, plant#1015376, orderDateTime#1015377, productPlant#1015388, outboundUnit#1015405, stockDatetime#1015630, stockBatchQuantities#1015631, stockBatchShelfLifeEndDatetimes#1015632, rawDemands#1015643, timezonecode#1015657]
(703) DeserializeToObject
Arguments: createexternalrow(invoke(product#1015375.toString()), invoke(plant#1015376.toString()), static_invoke(DateTimeUtils.toJavaTimestamp(orderDateTime#1015377)), if (isnull(productPlant#1015388)) null else createexternalrow(invoke(productPlant#1015388.systemId.toString()), invoke(productPlant#1015388.internalUUID.toString()), if (isnull(productPlant#1015388.plant)) null else createexternalrow(invoke(productPlant#1015388.plant.internalRefUUID.toString()), invoke(productPlant#1015388.plant.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), if (isnull(productPlant#1015388.product)) null else createexternalrow(invoke(productPlant#1015388.product.internalRefUUID.toString()), invoke(productPlant#1015388.product.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(DateTimeUtils.toJavaDate(productPlant#1015388.blockedForReplenishmentStartingFrom)), if (isnull(productPlant#1015388.productionAspect)) null else createexternalrow(if (isnull(productPlant#1015388.productionAspect.productMovementPlants)) null else createexternalrow(if (isnull(productPlant#1015388.productionAspect.productMovementPlants.unitOfIssue)) null else createexternalrow(invoke(productPlant#1015388.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID.toString()), invoke(productPlant#1015388.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#1015388.productionAspect.productPlanningPlants)) null else createexternalrow(if (isnull(productPlant#1015388.productionAspect.productPlanningPlants.mrpType)) null else createexternalrow(invoke(productPlant#1015388.productionAspect.productPlanningPlants.mrpType.internalRefUUID.toString()), invoke(productPlant#1015388.productionAspect.productPlanningPlants.mrpType.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1015388.productionAspect.productPlanningPlants.abcIndicator)) null else createexternalrow(invoke(productPlant#1015388.productionAspect.productPlanningPlants.abcIndicator.internalRefUUID.toString()), invoke(productPlant#1015388.productionAspect.productPlanningPlants.abcIndicator.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1015388.productionAspect.productPlanningPlants.mrpController)) null else createexternalrow(invoke(productPlant#1015388.productionAspect.productPlanningPlants.mrpController.internalRefUUID.toString()), invoke(productPlant#1015388.productionAspect.productPlanningPlants.mrpController.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(java.lang.Double.valueOf(productPlant#1015388.productionAspect.productPlanningPlants.minimumLotSize)), if (isnull(productPlant#1015388.productionAspect.productPlanningPlants.logisticalRoundingProfile)) null else createexternalrow(invoke(productPlant#1015388.productionAspect.productPlanningPlants.logisticalRoundingProfile.internalRefUUID.toString()), invoke(productPlant#1015388.productionAspect.productPlanningPlants.logisticalRoundingProfile.logisticalRoundingProfile.toString()), StructField(internalRefUUID,StringType,true), StructField(logisticalRoundingProfile,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(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)),true)), if (isnull(productPlant#1015388.salesPlant)) null else createexternalrow(if (isnull(productPlant#1015388.salesPlant.loadingGroup)) null else createexternalrow(invoke(productPlant#1015388.salesPlant.loadingGroup.internalRefUUID.toString()), invoke(productPlant#1015388.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, 80503), if (isnull(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 80503))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 80503).validFrom)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 80503).validTo)), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 80503).isListed)), StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true)), productPlant#1015388.listing, Some(class scala.collection.mutable.ArraySeq)), if (isnull(productPlant#1015388.sourceOfSupplyCategory)) null else createexternalrow(invoke(productPlant#1015388.sourceOfSupplyCategory.internalRefUUID.toString()), invoke(productPlant#1015388.sourceOfSupplyCategory.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), 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)),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), StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), static_invoke(java.lang.Double.valueOf(outboundUnit#1015405)), static_invoke(DateTimeUtils.toJavaTimestamp(stockDatetime#1015630)), mapobjects(lambdavariable(MapObject, DoubleType, true, 80504), static_invoke(java.lang.Double.valueOf(cast(lambdavariable(MapObject, DoubleType, true, 80504) as double))), stockBatchQuantities#1015631, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, false, 80505), assertnotnull(static_invoke(DateTimeUtils.toJavaTimestamp(cast(lambdavariable(MapObject, TimestampType, false, 80505) as timestamp)))), stockBatchShelfLifeEndDatetimes#1015632, 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, 80506), 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, 80506))) 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, 80506).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, 80506).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, 80506).considerVariance)), mapobjects(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 80507), if (isnull(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 80507))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 80507).demandStartDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 80507).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 80507).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, 80506).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, 80506).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, 80506).demandPointInTimeEnd)), mapobjects(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 80508), if (isnull(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 80508))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 80508).demandDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 80508).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 80508).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, 80506).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#1015643, Some(class scala.collection.mutable.ArraySeq)), invoke(timezonecode#1015657.toString()), 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)),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),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),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), StructField(timezonecode,StringType,true)), obj#1014043: org.apache.spark.sql.Row
(704) MapElements
Arguments: com.sap.s4hana.eureka.business.crporderquantitykpiservice.core.business.datasnapshot.DemandTransformatorImpl$$Lambda/0x0000000801fc3d98@2aab4875, 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)),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),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),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), StructField(timezonecode,StringType,true)], obj#1014048: org.apache.spark.sql.Row
(705) 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#1015658, 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#1015659, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(2))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80493), assertnotnull(if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80494), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80494), DoubleType, ObjectType(class java.lang.Double)).doubleValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80495), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80495), DoubleType, ObjectType(class java.lang.Double)).doubleValue()), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80496), assertnotnull(static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80496), TimestampType, ObjectType(class java.sql.Timestamp))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80497), assertnotnull(static_invoke(UTF8String.fromString(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80497), StringType, ObjectType(class java.lang.String))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80498), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80498), IntegerType, ObjectType(class java.lang.Integer)).intValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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#1015660, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(3))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80499), assertnotnull(if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80500), assertnotnull(static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80500), TimestampType, ObjectType(class java.sql.Timestamp))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80501), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80501), DoubleType, ObjectType(class java.lang.Double)).doubleValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80502), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80502), DoubleType, ObjectType(class java.lang.Double)).doubleValue()), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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#1015661]
(706) Join
Arguments: LeftOuter, ((plant#1015659 <=> plant#1015118) AND (product#1015658 <=> product#1015117))
(707) Project
Arguments: [product#1015117, plant#1015118, orderDateTime#1015119, productPlant#1015130, outboundUnit#1015147, stockDatetime#1015372, stockBatchQuantities#1015373, stockBatchShelfLifeEndDatetimes#1015374, plant#1015659, dayBucketDemands#1015660, pointInTimeDemands#1015661]
(708) Project
Arguments: [product#1015117, plant#1015118, orderDateTime#1015119, productPlant#1015130, outboundUnit#1015147, stockDatetime#1015372, stockBatchQuantities#1015373, stockBatchShelfLifeEndDatetimes#1015374, dayBucketDemands#1015660, pointInTimeDemands#1015661]
(709) LogicalRelation
Arguments: parquet, [marketUnit#1014367, description#1014368, articleHierarchy#1014369, defaultCurrency#1014370, responsibilities#1014371, replenishmentTypes#1014372, distributionCenters#1014373, assignedArticleHierarchyNodes#1014374, minOrderQtySetting#1014375, listingCheck#1014376, odsSelection#1014377, demandProfiles#1014378, constraintProfiles#1014379, optimizationProfiles#1014380, orderGroupSplitProfiles#1014381, supplierMinimumProfiles#1014382, multipleRestrictionProfiles#1014383, preferredUomSource#1014384, handlingOfUnfulfilledDemands#1014385, negligibleQuantitiesThreshold#1014386, eventtype#1014387], false
(710) Repartition
Arguments: 37, true
(711) Filter
Arguments: (marketUnit#1014367 <=> STEPHI_MU)
(712) Project
Arguments: [marketUnit#1014367, description#1014368, articleHierarchy#1014369, defaultCurrency#1014370, responsibilities#1014371, replenishmentTypes#1014372, distributionCenters#1014373, assignedArticleHierarchyNodes#1014374, minOrderQtySetting#1014375, listingCheck#1014376, odsSelection#1014377, demandProfiles#1014378, constraintProfiles#1014379, optimizationProfiles#1014380, orderGroupSplitProfiles#1014381, supplierMinimumProfiles#1014382, multipleRestrictionProfiles#1014383, preferredUomSource#1014384, handlingOfUnfulfilledDemands#1014385, negligibleQuantitiesThreshold#1014386, eventtype#1014387]
(713) Project
Arguments: [distributionCenters#1014373]
(714) Generate
Arguments: explode(distributionCenters#1014373), false, [distributionCenters#1014388]
(715) Project
Arguments: [distributionCenters#1014388]
(716) Generate
Arguments: explode(distributionCenters#1014388.storageLocations), false, [storageLocations#1014389]
(717) Project
Arguments: [distributionCenters#1014388.id AS plantId#1014390, distributionCenters#1014388.internalRefUUID AS plantUuid#1014391, storageLocations#1014389]
(718) Project
Arguments: [plantId#1014390, plantUuid#1014391, storageLocations#1014389.id AS storageLocId#1014392, storageLocations#1014389.internalRefUUID AS storageLocUuid#1014393]
(719) LogicalRelation
Arguments: parquet, [product#1014394, plant#1014395, orderDateTime#1014396, planningStartDateTime#1014397], false
(720) RepartitionByExpression
Arguments: [product#1014394, plant#1014395], 37
(721) Project
Arguments: [product#1014394, plant#1014395, orderDateTime#1014396]
(722) LogicalRelation
Arguments: parquet, [systemId#1014398, internalUUID#1014399, plant#1014400, product#1014401, blockedForReplenishmentStartingFrom#1014402, productionAspect#1014403, salesPlant#1014404, listing#1014405, sourceOfSupplyCategory#1014406], false
(723) Repartition
Arguments: 37, true
(724) Project
Arguments: [systemId#1014398, internalUUID#1014399, plant#1014400, product#1014401, blockedForReplenishmentStartingFrom#1014402, productionAspect#1014403, salesPlant#1014404, listing#1014405, sourceOfSupplyCategory#1014406, struct(systemId, systemId#1014398, internalUUID, internalUUID#1014399, plant, plant#1014400, product, product#1014401, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1014402, productionAspect, productionAspect#1014403, salesPlant, salesPlant#1014404, listing, listing#1014405, sourceOfSupplyCategory, sourceOfSupplyCategory#1014406) AS productPlant#1014407]
(725) Project
Arguments: [productPlant#1014407]
(726) Join
Arguments: LeftOuter, ((product#1014394 <=> productPlant#1014407.product.internalRefUUID) AND (plant#1014395 <=> productPlant#1014407.plant.internalRefUUID))
(727) Project
Arguments: [product#1014394, plant#1014395, orderDateTime#1014396, productPlant#1014407]
(728) LogicalRelation
Arguments: parquet, [systemId#1014408, internalUUID#1014409, id#1014410, displayId#1014411, name#1014412, baseUnitOfMeasure#1014413, unitOfMeasures#1014414, unitOfMeasureConversions#1014415, productionAspect#1014416, salesAspect#1014417, procurementAspect#1014418, productGroup#1014419], false
(729) Repartition
Arguments: 37, true
(730) Join
Arguments: LeftOuter, (product#1014394 = internalUUID#1014409)
(731) Project
Arguments: [product#1014394, plant#1014395, orderDateTime#1014396, productPlant#1014407, systemId#1014408, internalUUID#1014409, id#1014410, displayId#1014411, name#1014412, baseUnitOfMeasure#1014413, unitOfMeasures#1014414, unitOfMeasureConversions#1014415, productionAspect#1014416, salesAspect#1014417, procurementAspect#1014418, productGroup#1014419, filter(unitOfMeasureConversions#1014415, lambdafunction((((lambda u#1012565.measurementUnit1.code = productPlant#1014407.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1012565.measurementUnit1.internalRefUUID = productPlant#1014407.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1012565.measurementUnit2.code = baseUnitOfMeasure#1014413.code) AND (lambda u#1012565.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1014413.internalRefUUID))), lambda u#1012565, false)) AS filteredUnitOfMeasureConversions#1014420]
(732) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1014420.quantityNumerator), true, [quantityNumerator#1014421]
(733) Project
Arguments: [product#1014394, plant#1014395, orderDateTime#1014396, productPlant#1014407, systemId#1014408, internalUUID#1014409, id#1014410, displayId#1014411, name#1014412, baseUnitOfMeasure#1014413, unitOfMeasures#1014414, unitOfMeasureConversions#1014415, productionAspect#1014416, salesAspect#1014417, procurementAspect#1014418, productGroup#1014419, filteredUnitOfMeasureConversions#1014420, quantityNumerator#1014421]
(734) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1014420.quantityDenominator), true, [quantityDenominator#1014422]
(735) Project
Arguments: [product#1014394, plant#1014395, orderDateTime#1014396, productPlant#1014407, systemId#1014408, internalUUID#1014409, id#1014410, displayId#1014411, name#1014412, baseUnitOfMeasure#1014413, unitOfMeasures#1014414, unitOfMeasureConversions#1014415, productionAspect#1014416, salesAspect#1014417, procurementAspect#1014418, productGroup#1014419, filteredUnitOfMeasureConversions#1014420, quantityNumerator#1014421, quantityDenominator#1014422]
(736) Project
Arguments: [product#1014394, plant#1014395, orderDateTime#1014396, productPlant#1014407, systemId#1014408, internalUUID#1014409, id#1014410, displayId#1014411, name#1014412, baseUnitOfMeasure#1014413, unitOfMeasures#1014414, unitOfMeasureConversions#1014415, productionAspect#1014416, salesAspect#1014417, procurementAspect#1014418, productGroup#1014419, filteredUnitOfMeasureConversions#1014420, quantityNumerator#1014421, quantityDenominator#1014422, (cast(quantityNumerator#1014421 as double) / cast(quantityDenominator#1014422 as double)) AS outboundUnit#1014423]
(737) Project
Arguments: [product#1014394, plant#1014395, orderDateTime#1014396, productPlant#1014407, systemId#1014408, internalUUID#1014409, id#1014410, displayId#1014411, name#1014412, baseUnitOfMeasure#1014413, unitOfMeasures#1014414, unitOfMeasureConversions#1014415, productionAspect#1014416, salesAspect#1014417, procurementAspect#1014418, productGroup#1014419, filteredUnitOfMeasureConversions#1014420, quantityNumerator#1014421, quantityDenominator#1014422, CASE WHEN (isnull(outboundUnit#1014423) OR (outboundUnit#1014423 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1014423 END AS outboundUnit#1014424]
(738) Project
Arguments: [product#1014394, plant#1014395, orderDateTime#1014396, productPlant#1014407, outboundUnit#1014424]
(739) Project
Arguments: [plant#1014395]
(740) Deduplicate
Arguments: [plant#1014395]
(741) Join
Arguments: Inner, (plantUuid#1014391 = plant#1014395)
(742) Project
Arguments: [plantId#1014390, plantUuid#1014391, storageLocId#1014392, storageLocUuid#1014393]
(743) Project
Arguments: [plantId#1014390, plantUuid#1014391 AS plant#1014366, storageLocId#1014392, storageLocUuid#1014393]
(744) Join
Arguments: Inner, (plant#1015118 = plant#1014366)
(745) Project
Arguments: [plant#1015118, product#1015117, orderDateTime#1015119, productPlant#1015130, outboundUnit#1015147, stockDatetime#1015372, stockBatchQuantities#1015373, stockBatchShelfLifeEndDatetimes#1015374, dayBucketDemands#1015660, pointInTimeDemands#1015661, plantId#1014390, storageLocId#1014392, storageLocUuid#1014393, plant#1014366]
(746) LocalRelation
Arguments: <empty>, [systemId#1014334, internalUUID#1014335, id#1014336, isMarkedForDeletion#1014337, supplier#1014338, status#1014339, items#1014340]
(747) Generate
Arguments: explode(items#1014340), false, [item#1014344]
(748) Project
Arguments: [id#1014336, internalUUID#1014335, isMarkedForDeletion#1014337, supplier#1014338.internalRefUUID AS supplierUuid#1014341, item#1014344]
(749) Filter
Arguments: (((NOT isMarkedForDeletion#1014337 AND NOT item#1014344.deletionIndicator) AND NOT item#1014344.completeIndicator) AND NOT item#1014344.returnIndicator)
(750) Project
Arguments: [id#1014336, internalUUID#1014335, supplierUuid#1014341, item#1014344.plant.internalRefUUID AS plant#1014348, item#1014344.product.internalRefUUID AS product#1014349, item#1014344.storageLocation.internalRefUUID AS storageLocUuid#1014350, item#1014344.quantityUnit.code AS quantityUom#1014351, item#1014344.quantityUnit.internalRefUUID AS quantityUomUuid#1014352, item#1014344.quantityNumerator AS quantityNumerator#1014353, item#1014344.quantityDenominator AS quantityDenominator#1014354, item#1014344.scheduleLines AS scheduleLines#1014355, item#1014344.confirmations AS confirmations#1014356]
(751) Join
Arguments: Inner, (((product#1015117 = product#1014349) AND (plant#1015118 = plant#1014348)) AND (storageLocUuid#1014393 = storageLocUuid#1014350))
(752) Project
Arguments: [product#1015117, plant#1015118, storageLocUuid#1014393, orderDateTime#1015119, productPlant#1015130, outboundUnit#1015147, stockDatetime#1015372, stockBatchQuantities#1015373, stockBatchShelfLifeEndDatetimes#1015374, dayBucketDemands#1015660, pointInTimeDemands#1015661, plantId#1014390, storageLocId#1014392, id#1014336, internalUUID#1014335, supplierUuid#1014341, quantityUom#1014351, quantityUomUuid#1014352, quantityNumerator#1014353, quantityDenominator#1014354, scheduleLines#1014355, confirmations#1014356, product#1014349, plant#1014348, storageLocUuid#1014350, ... 1 more fields]
(753) Project
Arguments: [id#1014336, internalUUID#1014335, supplierUuid#1014341, plant#1014348, product#1014349, storageLocUuid#1014350, quantityUom#1014351, quantityUomUuid#1014352, quantityNumerator#1014353, quantityDenominator#1014354, scheduleLines#1014355, confirmations#1014356, stockDatetime#1015372]
(754) Project
Arguments: [id#1014336, internalUUID#1014335, supplierUuid#1014341, plant#1014348, product#1014349, storageLocUuid#1014350, quantityUom#1014351, quantityUomUuid#1014352, quantityNumerator#1014353, quantityDenominator#1014354, scheduleLines#1014355, confirmations#1014356, stockDatetime#1015372, array_size(filter(confirmations#1014356, lambdafunction((((lambda x_150#1014440.deletionIndicator = false) AND (lambda x_150#1014440.isRelevantForConfirmation = true)) AND isnotnull(lambda x_150#1014440.confirmedDeliveryAt)), lambda x_150#1014440, false))) AS _w0#1014447]
(755) Window
Arguments: [sum(_w0#1014447) windowspecdefinition(internalUUID#1014335, specifiedwindowframe(RowFrame, unboundedpreceding$(), unboundedfollowing$())) AS _we0#1014448L], [internalUUID#1014335]
(756) Project
Arguments: [id#1014336, internalUUID#1014335, supplierUuid#1014341, plant#1014348, product#1014349, storageLocUuid#1014350, quantityUom#1014351, quantityUomUuid#1014352, quantityNumerator#1014353, quantityDenominator#1014354, scheduleLines#1014355, confirmations#1014356, stockDatetime#1015372, _w0#1014447, _we0#1014448L, filter(transform(CASE WHEN (_we0#1014448L > cast(0 as bigint)) THEN transform(filter(confirmations#1014356, lambdafunction((((lambda x_150#1014441.deletionIndicator = false) AND (lambda x_150#1014441.isRelevantForConfirmation = true)) AND isnotnull(lambda x_150#1014441.confirmedDeliveryAt)), lambda x_150#1014441, false)), lambdafunction(struct(openQty, greatest((lambda x_151#1014444.confirmedQuantity - coalesce(lambda x_151#1014444.mrpRelevantQuantity, 0.0)), 0.0), availabilityDatetime, lambda x_151#1014444.confirmedDeliveryAt), lambda x_151#1014444, false)) ELSE transform(scheduleLines#1014355, lambdafunction(struct(openQty, greatest((lambda x_149#1014442.quantity - coalesce(lambda x_149#1014442.receivedQuantity, 0.0)), 0.0), availabilityDatetime, lambda x_149#1014442.deliveryAt), lambda x_149#1014442, false)) END, lambdafunction(struct(documentId, id#1014336, documentUuid, internalUUID#1014335, openQty, lambda x_152#1014445.openQty, openQtyInBaseUnit, ((lambda x_152#1014445.openQty * quantityNumerator#1014353) / quantityDenominator#1014354), qtyUom, quantityUom#1014351, qtyUomUuid, quantityUomUuid#1014352, availabilityDatetime, lambda x_152#1014445.availabilityDatetime, shelfLifeEndDatetime, 2199-01-01 00:00:00), lambda x_152#1014445, false)), lambdafunction(NOT (lambda x_153#1014446.openQty = 0.0), lambda x_153#1014446, false)) AS openGoodsMovements#1014439]
(757) Project
Arguments: [id#1014336, internalUUID#1014335, supplierUuid#1014341, plant#1014348, product#1014349, storageLocUuid#1014350, quantityUom#1014351, quantityUomUuid#1014352, quantityNumerator#1014353, quantityDenominator#1014354, scheduleLines#1014355, confirmations#1014356, stockDatetime#1015372, openGoodsMovements#1014439]
(758) Aggregate
Arguments: [product#1014349, plant#1014348], [product#1014349, plant#1014348, flatten(collect_list(openGoodsMovements#1014439, 0, 0)) AS openGoodsMovements#1014449]
(759) Filter
Arguments: (array_size(openGoodsMovements#1014449) > 0)
(760) LogicalRelation
Arguments: parquet, [product#1014509, plant#1014510, orderDateTime#1014511, planningStartDateTime#1014512], false
(761) RepartitionByExpression
Arguments: [product#1014509, plant#1014510], 37
(762) Project
Arguments: [product#1014509, plant#1014510, orderDateTime#1014511]
(763) LogicalRelation
Arguments: parquet, [systemId#1014513, internalUUID#1014514, plant#1014515, product#1014516, blockedForReplenishmentStartingFrom#1014517, productionAspect#1014518, salesPlant#1014519, listing#1014520, sourceOfSupplyCategory#1014521], false
(764) Repartition
Arguments: 37, true
(765) Project
Arguments: [systemId#1014513, internalUUID#1014514, plant#1014515, product#1014516, blockedForReplenishmentStartingFrom#1014517, productionAspect#1014518, salesPlant#1014519, listing#1014520, sourceOfSupplyCategory#1014521, struct(systemId, systemId#1014513, internalUUID, internalUUID#1014514, plant, plant#1014515, product, product#1014516, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1014517, productionAspect, productionAspect#1014518, salesPlant, salesPlant#1014519, listing, listing#1014520, sourceOfSupplyCategory, sourceOfSupplyCategory#1014521) AS productPlant#1014522]
(766) Project
Arguments: [productPlant#1014522]
(767) Join
Arguments: LeftOuter, ((product#1014509 <=> productPlant#1014522.product.internalRefUUID) AND (plant#1014510 <=> productPlant#1014522.plant.internalRefUUID))
(768) Project
Arguments: [product#1014509, plant#1014510, orderDateTime#1014511, productPlant#1014522]
(769) LogicalRelation
Arguments: parquet, [systemId#1014523, internalUUID#1014524, id#1014525, displayId#1014526, name#1014527, baseUnitOfMeasure#1014528, unitOfMeasures#1014529, unitOfMeasureConversions#1014530, productionAspect#1014531, salesAspect#1014532, procurementAspect#1014533, productGroup#1014534], false
(770) Repartition
Arguments: 37, true
(771) Join
Arguments: LeftOuter, (product#1014509 = internalUUID#1014524)
(772) Project
Arguments: [product#1014509, plant#1014510, orderDateTime#1014511, productPlant#1014522, systemId#1014523, internalUUID#1014524, id#1014525, displayId#1014526, name#1014527, baseUnitOfMeasure#1014528, unitOfMeasures#1014529, unitOfMeasureConversions#1014530, productionAspect#1014531, salesAspect#1014532, procurementAspect#1014533, productGroup#1014534, filter(unitOfMeasureConversions#1014530, lambdafunction((((lambda u#1012565.measurementUnit1.code = productPlant#1014522.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1012565.measurementUnit1.internalRefUUID = productPlant#1014522.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1012565.measurementUnit2.code = baseUnitOfMeasure#1014528.code) AND (lambda u#1012565.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1014528.internalRefUUID))), lambda u#1012565, false)) AS filteredUnitOfMeasureConversions#1014535]
(773) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1014535.quantityNumerator), true, [quantityNumerator#1014536]
(774) Project
Arguments: [product#1014509, plant#1014510, orderDateTime#1014511, productPlant#1014522, systemId#1014523, internalUUID#1014524, id#1014525, displayId#1014526, name#1014527, baseUnitOfMeasure#1014528, unitOfMeasures#1014529, unitOfMeasureConversions#1014530, productionAspect#1014531, salesAspect#1014532, procurementAspect#1014533, productGroup#1014534, filteredUnitOfMeasureConversions#1014535, quantityNumerator#1014536]
(775) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1014535.quantityDenominator), true, [quantityDenominator#1014537]
(776) Project
Arguments: [product#1014509, plant#1014510, orderDateTime#1014511, productPlant#1014522, systemId#1014523, internalUUID#1014524, id#1014525, displayId#1014526, name#1014527, baseUnitOfMeasure#1014528, unitOfMeasures#1014529, unitOfMeasureConversions#1014530, productionAspect#1014531, salesAspect#1014532, procurementAspect#1014533, productGroup#1014534, filteredUnitOfMeasureConversions#1014535, quantityNumerator#1014536, quantityDenominator#1014537]
(777) Project
Arguments: [product#1014509, plant#1014510, orderDateTime#1014511, productPlant#1014522, systemId#1014523, internalUUID#1014524, id#1014525, displayId#1014526, name#1014527, baseUnitOfMeasure#1014528, unitOfMeasures#1014529, unitOfMeasureConversions#1014530, productionAspect#1014531, salesAspect#1014532, procurementAspect#1014533, productGroup#1014534, filteredUnitOfMeasureConversions#1014535, quantityNumerator#1014536, quantityDenominator#1014537, (cast(quantityNumerator#1014536 as double) / cast(quantityDenominator#1014537 as double)) AS outboundUnit#1014538]
(778) Project
Arguments: [product#1014509, plant#1014510, orderDateTime#1014511, productPlant#1014522, systemId#1014523, internalUUID#1014524, id#1014525, displayId#1014526, name#1014527, baseUnitOfMeasure#1014528, unitOfMeasures#1014529, unitOfMeasureConversions#1014530, productionAspect#1014531, salesAspect#1014532, procurementAspect#1014533, productGroup#1014534, filteredUnitOfMeasureConversions#1014535, quantityNumerator#1014536, quantityDenominator#1014537, CASE WHEN (isnull(outboundUnit#1014538) OR (outboundUnit#1014538 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1014538 END AS outboundUnit#1014539]
(779) Project
Arguments: [product#1014509, plant#1014510, orderDateTime#1014511, productPlant#1014522, outboundUnit#1014539]
(780) LogicalRelation
Arguments: parquet, [systemId#1014540, internalUUID#1014541, product#1014542, plant#1014543, calculationDateTime#1014544, stockQuantities#1014545], false
(781) Repartition
Arguments: 37, true
(782) LogicalRelation
Arguments: parquet, [marketUnit#1014546, description#1014547, articleHierarchy#1014548, defaultCurrency#1014549, responsibilities#1014550, replenishmentTypes#1014551, distributionCenters#1014552, assignedArticleHierarchyNodes#1014553, minOrderQtySetting#1014554, listingCheck#1014555, odsSelection#1014556, demandProfiles#1014557, constraintProfiles#1014558, optimizationProfiles#1014559, orderGroupSplitProfiles#1014560, supplierMinimumProfiles#1014561, multipleRestrictionProfiles#1014562, preferredUomSource#1014563, handlingOfUnfulfilledDemands#1014564, negligibleQuantitiesThreshold#1014565, eventtype#1014566], false
(783) Repartition
Arguments: 37, true
(784) Filter
Arguments: (marketUnit#1014546 <=> STEPHI_MU)
(785) Project
Arguments: [marketUnit#1014546, description#1014547, articleHierarchy#1014548, defaultCurrency#1014549, responsibilities#1014550, replenishmentTypes#1014551, distributionCenters#1014552, assignedArticleHierarchyNodes#1014553, minOrderQtySetting#1014554, listingCheck#1014555, odsSelection#1014556, demandProfiles#1014557, constraintProfiles#1014558, optimizationProfiles#1014559, orderGroupSplitProfiles#1014560, supplierMinimumProfiles#1014561, multipleRestrictionProfiles#1014562, preferredUomSource#1014563, handlingOfUnfulfilledDemands#1014564, negligibleQuantitiesThreshold#1014565, eventtype#1014566]
(786) Project
Arguments: [distributionCenters#1014552]
(787) Generate
Arguments: explode(distributionCenters#1014552), false, [distributionCenters#1014567]
(788) Project
Arguments: [distributionCenters#1014567]
(789) Generate
Arguments: explode(distributionCenters#1014567.storageLocations), false, [storageLocations#1014568]
(790) Project
Arguments: [distributionCenters#1014567.id AS plantId#1014569, distributionCenters#1014567.internalRefUUID AS plantUuid#1014570, storageLocations#1014568]
(791) Project
Arguments: [plantId#1014569, plantUuid#1014570, storageLocations#1014568.id AS storageLocId#1014571, storageLocations#1014568.internalRefUUID AS storageLocUuid#1014572]
(792) LogicalRelation
Arguments: parquet, [product#1014573, plant#1014574, orderDateTime#1014575, planningStartDateTime#1014576], false
(793) RepartitionByExpression
Arguments: [product#1014573, plant#1014574], 37
(794) Project
Arguments: [product#1014573, plant#1014574, orderDateTime#1014575]
(795) LogicalRelation
Arguments: parquet, [systemId#1014577, internalUUID#1014578, plant#1014579, product#1014580, blockedForReplenishmentStartingFrom#1014581, productionAspect#1014582, salesPlant#1014583, listing#1014584, sourceOfSupplyCategory#1014585], false
(796) Repartition
Arguments: 37, true
(797) Project
Arguments: [systemId#1014577, internalUUID#1014578, plant#1014579, product#1014580, blockedForReplenishmentStartingFrom#1014581, productionAspect#1014582, salesPlant#1014583, listing#1014584, sourceOfSupplyCategory#1014585, struct(systemId, systemId#1014577, internalUUID, internalUUID#1014578, plant, plant#1014579, product, product#1014580, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1014581, productionAspect, productionAspect#1014582, salesPlant, salesPlant#1014583, listing, listing#1014584, sourceOfSupplyCategory, sourceOfSupplyCategory#1014585) AS productPlant#1014586]
(798) Project
Arguments: [productPlant#1014586]
(799) Join
Arguments: LeftOuter, ((product#1014573 <=> productPlant#1014586.product.internalRefUUID) AND (plant#1014574 <=> productPlant#1014586.plant.internalRefUUID))
(800) Project
Arguments: [product#1014573, plant#1014574, orderDateTime#1014575, productPlant#1014586]
(801) LogicalRelation
Arguments: parquet, [systemId#1014587, internalUUID#1014588, id#1014589, displayId#1014590, name#1014591, baseUnitOfMeasure#1014592, unitOfMeasures#1014593, unitOfMeasureConversions#1014594, productionAspect#1014595, salesAspect#1014596, procurementAspect#1014597, productGroup#1014598], false
(802) Repartition
Arguments: 37, true
(803) Join
Arguments: LeftOuter, (product#1014573 = internalUUID#1014588)
(804) Project
Arguments: [product#1014573, plant#1014574, orderDateTime#1014575, productPlant#1014586, systemId#1014587, internalUUID#1014588, id#1014589, displayId#1014590, name#1014591, baseUnitOfMeasure#1014592, unitOfMeasures#1014593, unitOfMeasureConversions#1014594, productionAspect#1014595, salesAspect#1014596, procurementAspect#1014597, productGroup#1014598, filter(unitOfMeasureConversions#1014594, lambdafunction((((lambda u#1012565.measurementUnit1.code = productPlant#1014586.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1012565.measurementUnit1.internalRefUUID = productPlant#1014586.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1012565.measurementUnit2.code = baseUnitOfMeasure#1014592.code) AND (lambda u#1012565.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1014592.internalRefUUID))), lambda u#1012565, false)) AS filteredUnitOfMeasureConversions#1014599]
(805) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1014599.quantityNumerator), true, [quantityNumerator#1014600]
(806) Project
Arguments: [product#1014573, plant#1014574, orderDateTime#1014575, productPlant#1014586, systemId#1014587, internalUUID#1014588, id#1014589, displayId#1014590, name#1014591, baseUnitOfMeasure#1014592, unitOfMeasures#1014593, unitOfMeasureConversions#1014594, productionAspect#1014595, salesAspect#1014596, procurementAspect#1014597, productGroup#1014598, filteredUnitOfMeasureConversions#1014599, quantityNumerator#1014600]
(807) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1014599.quantityDenominator), true, [quantityDenominator#1014601]
(808) Project
Arguments: [product#1014573, plant#1014574, orderDateTime#1014575, productPlant#1014586, systemId#1014587, internalUUID#1014588, id#1014589, displayId#1014590, name#1014591, baseUnitOfMeasure#1014592, unitOfMeasures#1014593, unitOfMeasureConversions#1014594, productionAspect#1014595, salesAspect#1014596, procurementAspect#1014597, productGroup#1014598, filteredUnitOfMeasureConversions#1014599, quantityNumerator#1014600, quantityDenominator#1014601]
(809) Project
Arguments: [product#1014573, plant#1014574, orderDateTime#1014575, productPlant#1014586, systemId#1014587, internalUUID#1014588, id#1014589, displayId#1014590, name#1014591, baseUnitOfMeasure#1014592, unitOfMeasures#1014593, unitOfMeasureConversions#1014594, productionAspect#1014595, salesAspect#1014596, procurementAspect#1014597, productGroup#1014598, filteredUnitOfMeasureConversions#1014599, quantityNumerator#1014600, quantityDenominator#1014601, (cast(quantityNumerator#1014600 as double) / cast(quantityDenominator#1014601 as double)) AS outboundUnit#1014602]
(810) Project
Arguments: [product#1014573, plant#1014574, orderDateTime#1014575, productPlant#1014586, systemId#1014587, internalUUID#1014588, id#1014589, displayId#1014590, name#1014591, baseUnitOfMeasure#1014592, unitOfMeasures#1014593, unitOfMeasureConversions#1014594, productionAspect#1014595, salesAspect#1014596, procurementAspect#1014597, productGroup#1014598, filteredUnitOfMeasureConversions#1014599, quantityNumerator#1014600, quantityDenominator#1014601, CASE WHEN (isnull(outboundUnit#1014602) OR (outboundUnit#1014602 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1014602 END AS outboundUnit#1014603]
(811) Project
Arguments: [product#1014573, plant#1014574, orderDateTime#1014575, productPlant#1014586, outboundUnit#1014603]
(812) Project
Arguments: [plant#1014574]
(813) Deduplicate
Arguments: [plant#1014574]
(814) Join
Arguments: Inner, (plantUuid#1014570 = plant#1014574)
(815) Project
Arguments: [plantId#1014569, plantUuid#1014570, storageLocId#1014571, storageLocUuid#1014572]
(816) Join
Arguments: Inner, (plant#1014543.internalRefUUID <=> plantUuid#1014570)
(817) Generate
Arguments: explode(filter(stockQuantities#1014545, lambdafunction(((lambda x#1012695.storageLocation.internalRefUuid = storageLocUuid#1014572) AND (lambda x#1012695.storageLocation.Id = storageLocId#1014571)), lambda x#1012695, false))), false, [stockQuantity#1014604]
(818) Project
Arguments: [systemId#1014540, internalUUID#1014541, product#1014542, plant#1014543, calculationDateTime#1014544, stockQuantities#1014545, plantId#1014569, plantUuid#1014570, storageLocId#1014571, storageLocUuid#1014572, stockQuantity#1014604]
(819) Aggregate
Arguments: [plantUuid#1014570, internalUUID#1014541, plant#1014543, product#1014542, systemId#1014540], [plantUuid#1014570, internalUUID#1014541, plant#1014543, product#1014542, systemId#1014540, first(calculationDateTime#1014544, false) AS calculationDateTime#1014605, collect_list(stockQuantity#1014604, 0, 0) AS stockQuantities#1014606]
(820) Project
Arguments: [systemId#1014540, internalUUID#1014541, product#1014542, plant#1014543, calculationDateTime#1014605, stockQuantities#1014606]
(821) Generate
Arguments: explode(stockQuantities#1014606), false, [stockQuantity#1014607]
(822) Project
Arguments: [systemId#1014540, internalUUID#1014541, product#1014542, plant#1014543, calculationDateTime#1014605, stockQuantities#1014606, stockQuantity#1014607]
(823) Project
Arguments: [plant#1014543.id AS plant#1014608, plant#1014543.internalRefUUID AS plantUuid#1014609, product#1014542.id AS product#1014610, product#1014542.internalRefUUID AS productUuid#1014611, calculationDateTime#1014605, stockQuantity#1014607.storagelocation.id AS storageLocId#1014612, stockQuantity#1014607.storagelocation.internalRefUUID AS storageLocUuid#1014613, stockQuantity#1014607.quantity.measure AS quantity#1014614, stockQuantity#1014607.specialStockIndicator.code AS specialStockIndicator#1014615, stockQuantity#1014607.stockType.code AS stockType#1014616]
(824) Filter
Arguments: ((specialStockIndicator#1014615 = ) AND (stockType#1014616 = 01))
(825) LogicalRelation
Arguments: parquet, [product#1014617, plant#1014618, orderDateTime#1014619, planningStartDateTime#1014620], false
(826) RepartitionByExpression
Arguments: [product#1014617, plant#1014618], 37
(827) Project
Arguments: [product#1014617, plant#1014618, orderDateTime#1014619]
(828) LogicalRelation
Arguments: parquet, [systemId#1014621, internalUUID#1014622, plant#1014623, product#1014624, blockedForReplenishmentStartingFrom#1014625, productionAspect#1014626, salesPlant#1014627, listing#1014628, sourceOfSupplyCategory#1014629], false
(829) Repartition
Arguments: 37, true
(830) Project
Arguments: [systemId#1014621, internalUUID#1014622, plant#1014623, product#1014624, blockedForReplenishmentStartingFrom#1014625, productionAspect#1014626, salesPlant#1014627, listing#1014628, sourceOfSupplyCategory#1014629, struct(systemId, systemId#1014621, internalUUID, internalUUID#1014622, plant, plant#1014623, product, product#1014624, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1014625, productionAspect, productionAspect#1014626, salesPlant, salesPlant#1014627, listing, listing#1014628, sourceOfSupplyCategory, sourceOfSupplyCategory#1014629) AS productPlant#1014630]
(831) Project
Arguments: [productPlant#1014630]
(832) Join
Arguments: LeftOuter, ((product#1014617 <=> productPlant#1014630.product.internalRefUUID) AND (plant#1014618 <=> productPlant#1014630.plant.internalRefUUID))
(833) Project
Arguments: [product#1014617, plant#1014618, orderDateTime#1014619, productPlant#1014630]
(834) LogicalRelation
Arguments: parquet, [systemId#1014631, internalUUID#1014632, id#1014633, displayId#1014634, name#1014635, baseUnitOfMeasure#1014636, unitOfMeasures#1014637, unitOfMeasureConversions#1014638, productionAspect#1014639, salesAspect#1014640, procurementAspect#1014641, productGroup#1014642], false
(835) Repartition
Arguments: 37, true
(836) Join
Arguments: LeftOuter, (product#1014617 = internalUUID#1014632)
(837) Project
Arguments: [product#1014617, plant#1014618, orderDateTime#1014619, productPlant#1014630, systemId#1014631, internalUUID#1014632, id#1014633, displayId#1014634, name#1014635, baseUnitOfMeasure#1014636, unitOfMeasures#1014637, unitOfMeasureConversions#1014638, productionAspect#1014639, salesAspect#1014640, procurementAspect#1014641, productGroup#1014642, filter(unitOfMeasureConversions#1014638, lambdafunction((((lambda u#1012565.measurementUnit1.code = productPlant#1014630.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1012565.measurementUnit1.internalRefUUID = productPlant#1014630.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1012565.measurementUnit2.code = baseUnitOfMeasure#1014636.code) AND (lambda u#1012565.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1014636.internalRefUUID))), lambda u#1012565, false)) AS filteredUnitOfMeasureConversions#1014643]
(838) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1014643.quantityNumerator), true, [quantityNumerator#1014644]
(839) Project
Arguments: [product#1014617, plant#1014618, orderDateTime#1014619, productPlant#1014630, systemId#1014631, internalUUID#1014632, id#1014633, displayId#1014634, name#1014635, baseUnitOfMeasure#1014636, unitOfMeasures#1014637, unitOfMeasureConversions#1014638, productionAspect#1014639, salesAspect#1014640, procurementAspect#1014641, productGroup#1014642, filteredUnitOfMeasureConversions#1014643, quantityNumerator#1014644]
(840) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1014643.quantityDenominator), true, [quantityDenominator#1014645]
(841) Project
Arguments: [product#1014617, plant#1014618, orderDateTime#1014619, productPlant#1014630, systemId#1014631, internalUUID#1014632, id#1014633, displayId#1014634, name#1014635, baseUnitOfMeasure#1014636, unitOfMeasures#1014637, unitOfMeasureConversions#1014638, productionAspect#1014639, salesAspect#1014640, procurementAspect#1014641, productGroup#1014642, filteredUnitOfMeasureConversions#1014643, quantityNumerator#1014644, quantityDenominator#1014645]
(842) Project
Arguments: [product#1014617, plant#1014618, orderDateTime#1014619, productPlant#1014630, systemId#1014631, internalUUID#1014632, id#1014633, displayId#1014634, name#1014635, baseUnitOfMeasure#1014636, unitOfMeasures#1014637, unitOfMeasureConversions#1014638, productionAspect#1014639, salesAspect#1014640, procurementAspect#1014641, productGroup#1014642, filteredUnitOfMeasureConversions#1014643, quantityNumerator#1014644, quantityDenominator#1014645, (cast(quantityNumerator#1014644 as double) / cast(quantityDenominator#1014645 as double)) AS outboundUnit#1014646]
(843) Project
Arguments: [product#1014617, plant#1014618, orderDateTime#1014619, productPlant#1014630, systemId#1014631, internalUUID#1014632, id#1014633, displayId#1014634, name#1014635, baseUnitOfMeasure#1014636, unitOfMeasures#1014637, unitOfMeasureConversions#1014638, productionAspect#1014639, salesAspect#1014640, procurementAspect#1014641, productGroup#1014642, filteredUnitOfMeasureConversions#1014643, quantityNumerator#1014644, quantityDenominator#1014645, CASE WHEN (isnull(outboundUnit#1014646) OR (outboundUnit#1014646 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1014646 END AS outboundUnit#1014647]
(844) Project
Arguments: [product#1014617, plant#1014618, orderDateTime#1014619, productPlant#1014630, outboundUnit#1014647]
(845) Join
Arguments: Inner, ((plantUuid#1014609 = plant#1014618) AND (productUuid#1014611 = product#1014617))
(846) Filter
Arguments: (calculationDateTime#1014605 <= orderDateTime#1014619)
(847) Project
Arguments: [plantUuid#1014609 AS plant#1014648, productUuid#1014611 AS product#1014649, storageLocId#1014612, calculationDateTime#1014605, quantity#1014614]
(848) LogicalRelation
Arguments: parquet, [systemId#1014650, internalUUID#1014651, product#1014652, plant#1014653, calculationDateTime#1014654, stockQuantities#1014655], false
(849) Repartition
Arguments: 37, true
(850) LogicalRelation
Arguments: parquet, [marketUnit#1014656, description#1014657, articleHierarchy#1014658, defaultCurrency#1014659, responsibilities#1014660, replenishmentTypes#1014661, distributionCenters#1014662, assignedArticleHierarchyNodes#1014663, minOrderQtySetting#1014664, listingCheck#1014665, odsSelection#1014666, demandProfiles#1014667, constraintProfiles#1014668, optimizationProfiles#1014669, orderGroupSplitProfiles#1014670, supplierMinimumProfiles#1014671, multipleRestrictionProfiles#1014672, preferredUomSource#1014673, handlingOfUnfulfilledDemands#1014674, negligibleQuantitiesThreshold#1014675, eventtype#1014676], false
(851) Repartition
Arguments: 37, true
(852) Filter
Arguments: (marketUnit#1014656 <=> STEPHI_MU)
(853) Project
Arguments: [marketUnit#1014656, description#1014657, articleHierarchy#1014658, defaultCurrency#1014659, responsibilities#1014660, replenishmentTypes#1014661, distributionCenters#1014662, assignedArticleHierarchyNodes#1014663, minOrderQtySetting#1014664, listingCheck#1014665, odsSelection#1014666, demandProfiles#1014667, constraintProfiles#1014668, optimizationProfiles#1014669, orderGroupSplitProfiles#1014670, supplierMinimumProfiles#1014671, multipleRestrictionProfiles#1014672, preferredUomSource#1014673, handlingOfUnfulfilledDemands#1014674, negligibleQuantitiesThreshold#1014675, eventtype#1014676]
(854) Project
Arguments: [distributionCenters#1014662]
(855) Generate
Arguments: explode(distributionCenters#1014662), false, [distributionCenters#1014677]
(856) Project
Arguments: [distributionCenters#1014677]
(857) Generate
Arguments: explode(distributionCenters#1014677.storageLocations), false, [storageLocations#1014678]
(858) Project
Arguments: [distributionCenters#1014677.id AS plantId#1014679, distributionCenters#1014677.internalRefUUID AS plantUuid#1014680, storageLocations#1014678]
(859) Project
Arguments: [plantId#1014679, plantUuid#1014680, storageLocations#1014678.id AS storageLocId#1014681, storageLocations#1014678.internalRefUUID AS storageLocUuid#1014682]
(860) LogicalRelation
Arguments: parquet, [product#1014683, plant#1014684, orderDateTime#1014685, planningStartDateTime#1014686], false
(861) RepartitionByExpression
Arguments: [product#1014683, plant#1014684], 37
(862) Project
Arguments: [product#1014683, plant#1014684, orderDateTime#1014685]
(863) LogicalRelation
Arguments: parquet, [systemId#1014687, internalUUID#1014688, plant#1014689, product#1014690, blockedForReplenishmentStartingFrom#1014691, productionAspect#1014692, salesPlant#1014693, listing#1014694, sourceOfSupplyCategory#1014695], false
(864) Repartition
Arguments: 37, true
(865) Project
Arguments: [systemId#1014687, internalUUID#1014688, plant#1014689, product#1014690, blockedForReplenishmentStartingFrom#1014691, productionAspect#1014692, salesPlant#1014693, listing#1014694, sourceOfSupplyCategory#1014695, struct(systemId, systemId#1014687, internalUUID, internalUUID#1014688, plant, plant#1014689, product, product#1014690, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1014691, productionAspect, productionAspect#1014692, salesPlant, salesPlant#1014693, listing, listing#1014694, sourceOfSupplyCategory, sourceOfSupplyCategory#1014695) AS productPlant#1014696]
(866) Project
Arguments: [productPlant#1014696]
(867) Join
Arguments: LeftOuter, ((product#1014683 <=> productPlant#1014696.product.internalRefUUID) AND (plant#1014684 <=> productPlant#1014696.plant.internalRefUUID))
(868) Project
Arguments: [product#1014683, plant#1014684, orderDateTime#1014685, productPlant#1014696]
(869) LogicalRelation
Arguments: parquet, [systemId#1014697, internalUUID#1014698, id#1014699, displayId#1014700, name#1014701, baseUnitOfMeasure#1014702, unitOfMeasures#1014703, unitOfMeasureConversions#1014704, productionAspect#1014705, salesAspect#1014706, procurementAspect#1014707, productGroup#1014708], false
(870) Repartition
Arguments: 37, true
(871) Join
Arguments: LeftOuter, (product#1014683 = internalUUID#1014698)
(872) Project
Arguments: [product#1014683, plant#1014684, orderDateTime#1014685, productPlant#1014696, systemId#1014697, internalUUID#1014698, id#1014699, displayId#1014700, name#1014701, baseUnitOfMeasure#1014702, unitOfMeasures#1014703, unitOfMeasureConversions#1014704, productionAspect#1014705, salesAspect#1014706, procurementAspect#1014707, productGroup#1014708, filter(unitOfMeasureConversions#1014704, lambdafunction((((lambda u#1012565.measurementUnit1.code = productPlant#1014696.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1012565.measurementUnit1.internalRefUUID = productPlant#1014696.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1012565.measurementUnit2.code = baseUnitOfMeasure#1014702.code) AND (lambda u#1012565.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1014702.internalRefUUID))), lambda u#1012565, false)) AS filteredUnitOfMeasureConversions#1014709]
(873) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1014709.quantityNumerator), true, [quantityNumerator#1014710]
(874) Project
Arguments: [product#1014683, plant#1014684, orderDateTime#1014685, productPlant#1014696, systemId#1014697, internalUUID#1014698, id#1014699, displayId#1014700, name#1014701, baseUnitOfMeasure#1014702, unitOfMeasures#1014703, unitOfMeasureConversions#1014704, productionAspect#1014705, salesAspect#1014706, procurementAspect#1014707, productGroup#1014708, filteredUnitOfMeasureConversions#1014709, quantityNumerator#1014710]
(875) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1014709.quantityDenominator), true, [quantityDenominator#1014711]
(876) Project
Arguments: [product#1014683, plant#1014684, orderDateTime#1014685, productPlant#1014696, systemId#1014697, internalUUID#1014698, id#1014699, displayId#1014700, name#1014701, baseUnitOfMeasure#1014702, unitOfMeasures#1014703, unitOfMeasureConversions#1014704, productionAspect#1014705, salesAspect#1014706, procurementAspect#1014707, productGroup#1014708, filteredUnitOfMeasureConversions#1014709, quantityNumerator#1014710, quantityDenominator#1014711]
(877) Project
Arguments: [product#1014683, plant#1014684, orderDateTime#1014685, productPlant#1014696, systemId#1014697, internalUUID#1014698, id#1014699, displayId#1014700, name#1014701, baseUnitOfMeasure#1014702, unitOfMeasures#1014703, unitOfMeasureConversions#1014704, productionAspect#1014705, salesAspect#1014706, procurementAspect#1014707, productGroup#1014708, filteredUnitOfMeasureConversions#1014709, quantityNumerator#1014710, quantityDenominator#1014711, (cast(quantityNumerator#1014710 as double) / cast(quantityDenominator#1014711 as double)) AS outboundUnit#1014712]
(878) Project
Arguments: [product#1014683, plant#1014684, orderDateTime#1014685, productPlant#1014696, systemId#1014697, internalUUID#1014698, id#1014699, displayId#1014700, name#1014701, baseUnitOfMeasure#1014702, unitOfMeasures#1014703, unitOfMeasureConversions#1014704, productionAspect#1014705, salesAspect#1014706, procurementAspect#1014707, productGroup#1014708, filteredUnitOfMeasureConversions#1014709, quantityNumerator#1014710, quantityDenominator#1014711, CASE WHEN (isnull(outboundUnit#1014712) OR (outboundUnit#1014712 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1014712 END AS outboundUnit#1014713]
(879) Project
Arguments: [product#1014683, plant#1014684, orderDateTime#1014685, productPlant#1014696, outboundUnit#1014713]
(880) Project
Arguments: [plant#1014684]
(881) Deduplicate
Arguments: [plant#1014684]
(882) Join
Arguments: Inner, (plantUuid#1014680 = plant#1014684)
(883) Project
Arguments: [plantId#1014679, plantUuid#1014680, storageLocId#1014681, storageLocUuid#1014682]
(884) Join
Arguments: Inner, (plant#1014653.internalRefUUID <=> plantUuid#1014680)
(885) Generate
Arguments: explode(filter(stockQuantities#1014655, lambdafunction(((lambda x#1012695.storageLocation.internalRefUuid = storageLocUuid#1014682) AND (lambda x#1012695.storageLocation.Id = storageLocId#1014681)), lambda x#1012695, false))), false, [stockQuantity#1014714]
(886) Project
Arguments: [systemId#1014650, internalUUID#1014651, product#1014652, plant#1014653, calculationDateTime#1014654, stockQuantities#1014655, plantId#1014679, plantUuid#1014680, storageLocId#1014681, storageLocUuid#1014682, stockQuantity#1014714]
(887) Aggregate
Arguments: [plantUuid#1014680, internalUUID#1014651, plant#1014653, product#1014652, systemId#1014650], [plantUuid#1014680, internalUUID#1014651, plant#1014653, product#1014652, systemId#1014650, first(calculationDateTime#1014654, false) AS calculationDateTime#1014715, collect_list(stockQuantity#1014714, 0, 0) AS stockQuantities#1014716]
(888) Project
Arguments: [systemId#1014650, internalUUID#1014651, product#1014652, plant#1014653, calculationDateTime#1014715, stockQuantities#1014716]
(889) Generate
Arguments: explode(stockQuantities#1014716), false, [stockQuantity#1014717]
(890) Project
Arguments: [systemId#1014650, internalUUID#1014651, product#1014652, plant#1014653, calculationDateTime#1014715, stockQuantities#1014716, stockQuantity#1014717]
(891) Project
Arguments: [plant#1014653.id AS plant#1014718, plant#1014653.internalRefUUID AS plantUuid#1014719, product#1014652.id AS product#1014720, product#1014652.internalRefUUID AS productUuid#1014721, calculationDateTime#1014715, stockQuantity#1014717.storagelocation.id AS storageLocId#1014722, stockQuantity#1014717.storagelocation.internalRefUUID AS storageLocUuid#1014723, stockQuantity#1014717.quantity.measure AS quantity#1014724, stockQuantity#1014717.specialStockIndicator.code AS specialStockIndicator#1014725, stockQuantity#1014717.stockType.code AS stockType#1014726]
(892) Filter
Arguments: ((specialStockIndicator#1014725 = ) AND (stockType#1014726 = 01))
(893) LogicalRelation
Arguments: parquet, [product#1014727, plant#1014728, orderDateTime#1014729, planningStartDateTime#1014730], false
(894) RepartitionByExpression
Arguments: [product#1014727, plant#1014728], 37
(895) Project
Arguments: [product#1014727, plant#1014728, orderDateTime#1014729]
(896) LogicalRelation
Arguments: parquet, [systemId#1014731, internalUUID#1014732, plant#1014733, product#1014734, blockedForReplenishmentStartingFrom#1014735, productionAspect#1014736, salesPlant#1014737, listing#1014738, sourceOfSupplyCategory#1014739], false
(897) Repartition
Arguments: 37, true
(898) Project
Arguments: [systemId#1014731, internalUUID#1014732, plant#1014733, product#1014734, blockedForReplenishmentStartingFrom#1014735, productionAspect#1014736, salesPlant#1014737, listing#1014738, sourceOfSupplyCategory#1014739, struct(systemId, systemId#1014731, internalUUID, internalUUID#1014732, plant, plant#1014733, product, product#1014734, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1014735, productionAspect, productionAspect#1014736, salesPlant, salesPlant#1014737, listing, listing#1014738, sourceOfSupplyCategory, sourceOfSupplyCategory#1014739) AS productPlant#1014740]
(899) Project
Arguments: [productPlant#1014740]
(900) Join
Arguments: LeftOuter, ((product#1014727 <=> productPlant#1014740.product.internalRefUUID) AND (plant#1014728 <=> productPlant#1014740.plant.internalRefUUID))
(901) Project
Arguments: [product#1014727, plant#1014728, orderDateTime#1014729, productPlant#1014740]
(902) LogicalRelation
Arguments: parquet, [systemId#1014741, internalUUID#1014742, id#1014743, displayId#1014744, name#1014745, baseUnitOfMeasure#1014746, unitOfMeasures#1014747, unitOfMeasureConversions#1014748, productionAspect#1014749, salesAspect#1014750, procurementAspect#1014751, productGroup#1014752], false
(903) Repartition
Arguments: 37, true
(904) Join
Arguments: LeftOuter, (product#1014727 = internalUUID#1014742)
(905) Project
Arguments: [product#1014727, plant#1014728, orderDateTime#1014729, productPlant#1014740, systemId#1014741, internalUUID#1014742, id#1014743, displayId#1014744, name#1014745, baseUnitOfMeasure#1014746, unitOfMeasures#1014747, unitOfMeasureConversions#1014748, productionAspect#1014749, salesAspect#1014750, procurementAspect#1014751, productGroup#1014752, filter(unitOfMeasureConversions#1014748, lambdafunction((((lambda u#1012565.measurementUnit1.code = productPlant#1014740.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1012565.measurementUnit1.internalRefUUID = productPlant#1014740.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1012565.measurementUnit2.code = baseUnitOfMeasure#1014746.code) AND (lambda u#1012565.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1014746.internalRefUUID))), lambda u#1012565, false)) AS filteredUnitOfMeasureConversions#1014753]
(906) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1014753.quantityNumerator), true, [quantityNumerator#1014754]
(907) Project
Arguments: [product#1014727, plant#1014728, orderDateTime#1014729, productPlant#1014740, systemId#1014741, internalUUID#1014742, id#1014743, displayId#1014744, name#1014745, baseUnitOfMeasure#1014746, unitOfMeasures#1014747, unitOfMeasureConversions#1014748, productionAspect#1014749, salesAspect#1014750, procurementAspect#1014751, productGroup#1014752, filteredUnitOfMeasureConversions#1014753, quantityNumerator#1014754]
(908) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1014753.quantityDenominator), true, [quantityDenominator#1014755]
(909) Project
Arguments: [product#1014727, plant#1014728, orderDateTime#1014729, productPlant#1014740, systemId#1014741, internalUUID#1014742, id#1014743, displayId#1014744, name#1014745, baseUnitOfMeasure#1014746, unitOfMeasures#1014747, unitOfMeasureConversions#1014748, productionAspect#1014749, salesAspect#1014750, procurementAspect#1014751, productGroup#1014752, filteredUnitOfMeasureConversions#1014753, quantityNumerator#1014754, quantityDenominator#1014755]
(910) Project
Arguments: [product#1014727, plant#1014728, orderDateTime#1014729, productPlant#1014740, systemId#1014741, internalUUID#1014742, id#1014743, displayId#1014744, name#1014745, baseUnitOfMeasure#1014746, unitOfMeasures#1014747, unitOfMeasureConversions#1014748, productionAspect#1014749, salesAspect#1014750, procurementAspect#1014751, productGroup#1014752, filteredUnitOfMeasureConversions#1014753, quantityNumerator#1014754, quantityDenominator#1014755, (cast(quantityNumerator#1014754 as double) / cast(quantityDenominator#1014755 as double)) AS outboundUnit#1014756]
(911) Project
Arguments: [product#1014727, plant#1014728, orderDateTime#1014729, productPlant#1014740, systemId#1014741, internalUUID#1014742, id#1014743, displayId#1014744, name#1014745, baseUnitOfMeasure#1014746, unitOfMeasures#1014747, unitOfMeasureConversions#1014748, productionAspect#1014749, salesAspect#1014750, procurementAspect#1014751, productGroup#1014752, filteredUnitOfMeasureConversions#1014753, quantityNumerator#1014754, quantityDenominator#1014755, CASE WHEN (isnull(outboundUnit#1014756) OR (outboundUnit#1014756 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1014756 END AS outboundUnit#1014757]
(912) Project
Arguments: [product#1014727, plant#1014728, orderDateTime#1014729, productPlant#1014740, outboundUnit#1014757]
(913) Join
Arguments: Inner, ((plantUuid#1014719 = plant#1014728) AND (productUuid#1014721 = product#1014727))
(914) Filter
Arguments: (calculationDateTime#1014715 <= orderDateTime#1014729)
(915) Project
Arguments: [plantUuid#1014719 AS plant#1014758, productUuid#1014721 AS product#1014759, storageLocId#1014722, calculationDateTime#1014715, quantity#1014724]
(916) Aggregate
Arguments: [plant#1014758, product#1014759, storageLocId#1014722], [plant#1014758, product#1014759, storageLocId#1014722, max(calculationDateTime#1014715) AS max_calc_datetime#1014760]
(917) Join
Arguments: Inner, ((((plant#1014648 <=> plant#1014758) AND (product#1014649 <=> product#1014759)) AND (storageLocId#1014612 <=> storageLocId#1014722)) AND (calculationDateTime#1014605 <=> max_calc_datetime#1014760))
(918) Project
Arguments: [plant#1014648, product#1014649, storageLocId#1014612, calculationDateTime#1014605, quantity#1014614]
(919) Aggregate
Arguments: [product#1014649, plant#1014648], [product#1014649, plant#1014648, sum(quantity#1014614) AS quantitySum#1014761, min(calculationDateTime#1014605) AS minCalculationDateTime#1014762]
(920) Project
Arguments: [product#1014649, plant#1014648, quantitySum#1014761, minCalculationDateTime#1014762, round(quantitySum#1014761, 0) AS roundedQuantitySum#1014763]
(921) Join
Arguments: LeftOuter, ((plant#1014510 = plant#1014648) AND (product#1014509 = product#1014649))
(922) Project
Arguments: [product#1014509, plant#1014510, orderDateTime#1014511, productPlant#1014522, outboundUnit#1014539, roundedQuantitySum#1014763, minCalculationDateTime#1014762]
(923) Project
Arguments: [product#1014509, plant#1014510, orderDateTime#1014511, productPlant#1014522, outboundUnit#1014539, roundedQuantitySum#1014763, minCalculationDateTime#1014762, CASE WHEN isnotnull(minCalculationDateTime#1014762) THEN minCalculationDateTime#1014762 ELSE orderDateTime#1014511 END AS stockDatetime#1014764]
(924) Project
Arguments: [product#1014509, plant#1014510, orderDateTime#1014511, productPlant#1014522, outboundUnit#1014539, roundedQuantitySum#1014763, minCalculationDateTime#1014762, stockDatetime#1014764, CASE WHEN isnotnull(roundedQuantitySum#1014763) THEN array(roundedQuantitySum#1014763) ELSE array(0.0) END AS stockBatchQuantities#1014765]
(925) Project
Arguments: [product#1014509, plant#1014510, orderDateTime#1014511, productPlant#1014522, outboundUnit#1014539, roundedQuantitySum#1014763, minCalculationDateTime#1014762, stockDatetime#1014764, stockBatchQuantities#1014765, array(2199-01-01 00:00:00) AS stockBatchShelfLifeEndDatetimes#1014766]
(926) Project
Arguments: [product#1014509, plant#1014510, orderDateTime#1014511, productPlant#1014522, outboundUnit#1014539, roundedQuantitySum#1014763, stockDatetime#1014764, stockBatchQuantities#1014765, stockBatchShelfLifeEndDatetimes#1014766]
(927) Project
Arguments: [product#1014509, plant#1014510, orderDateTime#1014511, productPlant#1014522, outboundUnit#1014539, stockDatetime#1014764, stockBatchQuantities#1014765, stockBatchShelfLifeEndDatetimes#1014766]
(928) LogicalRelation
Arguments: parquet, [product#1014767, plant#1014768, orderDateTime#1014769, planningStartDateTime#1014770], false
(929) RepartitionByExpression
Arguments: [product#1014767, plant#1014768], 37
(930) Project
Arguments: [product#1014767, plant#1014768, orderDateTime#1014769]
(931) LogicalRelation
Arguments: parquet, [systemId#1014771, internalUUID#1014772, plant#1014773, product#1014774, blockedForReplenishmentStartingFrom#1014775, productionAspect#1014776, salesPlant#1014777, listing#1014778, sourceOfSupplyCategory#1014779], false
(932) Repartition
Arguments: 37, true
(933) Project
Arguments: [systemId#1014771, internalUUID#1014772, plant#1014773, product#1014774, blockedForReplenishmentStartingFrom#1014775, productionAspect#1014776, salesPlant#1014777, listing#1014778, sourceOfSupplyCategory#1014779, struct(systemId, systemId#1014771, internalUUID, internalUUID#1014772, plant, plant#1014773, product, product#1014774, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1014775, productionAspect, productionAspect#1014776, salesPlant, salesPlant#1014777, listing, listing#1014778, sourceOfSupplyCategory, sourceOfSupplyCategory#1014779) AS productPlant#1014780]
(934) Project
Arguments: [productPlant#1014780]
(935) Join
Arguments: LeftOuter, ((product#1014767 <=> productPlant#1014780.product.internalRefUUID) AND (plant#1014768 <=> productPlant#1014780.plant.internalRefUUID))
(936) Project
Arguments: [product#1014767, plant#1014768, orderDateTime#1014769, productPlant#1014780]
(937) LogicalRelation
Arguments: parquet, [systemId#1014781, internalUUID#1014782, id#1014783, displayId#1014784, name#1014785, baseUnitOfMeasure#1014786, unitOfMeasures#1014787, unitOfMeasureConversions#1014788, productionAspect#1014789, salesAspect#1014790, procurementAspect#1014791, productGroup#1014792], false
(938) Repartition
Arguments: 37, true
(939) Join
Arguments: LeftOuter, (product#1014767 = internalUUID#1014782)
(940) Project
Arguments: [product#1014767, plant#1014768, orderDateTime#1014769, productPlant#1014780, systemId#1014781, internalUUID#1014782, id#1014783, displayId#1014784, name#1014785, baseUnitOfMeasure#1014786, unitOfMeasures#1014787, unitOfMeasureConversions#1014788, productionAspect#1014789, salesAspect#1014790, procurementAspect#1014791, productGroup#1014792, filter(unitOfMeasureConversions#1014788, lambdafunction((((lambda u#1012565.measurementUnit1.code = productPlant#1014780.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1012565.measurementUnit1.internalRefUUID = productPlant#1014780.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1012565.measurementUnit2.code = baseUnitOfMeasure#1014786.code) AND (lambda u#1012565.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1014786.internalRefUUID))), lambda u#1012565, false)) AS filteredUnitOfMeasureConversions#1014793]
(941) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1014793.quantityNumerator), true, [quantityNumerator#1014794]
(942) Project
Arguments: [product#1014767, plant#1014768, orderDateTime#1014769, productPlant#1014780, systemId#1014781, internalUUID#1014782, id#1014783, displayId#1014784, name#1014785, baseUnitOfMeasure#1014786, unitOfMeasures#1014787, unitOfMeasureConversions#1014788, productionAspect#1014789, salesAspect#1014790, procurementAspect#1014791, productGroup#1014792, filteredUnitOfMeasureConversions#1014793, quantityNumerator#1014794]
(943) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1014793.quantityDenominator), true, [quantityDenominator#1014795]
(944) Project
Arguments: [product#1014767, plant#1014768, orderDateTime#1014769, productPlant#1014780, systemId#1014781, internalUUID#1014782, id#1014783, displayId#1014784, name#1014785, baseUnitOfMeasure#1014786, unitOfMeasures#1014787, unitOfMeasureConversions#1014788, productionAspect#1014789, salesAspect#1014790, procurementAspect#1014791, productGroup#1014792, filteredUnitOfMeasureConversions#1014793, quantityNumerator#1014794, quantityDenominator#1014795]
(945) Project
Arguments: [product#1014767, plant#1014768, orderDateTime#1014769, productPlant#1014780, systemId#1014781, internalUUID#1014782, id#1014783, displayId#1014784, name#1014785, baseUnitOfMeasure#1014786, unitOfMeasures#1014787, unitOfMeasureConversions#1014788, productionAspect#1014789, salesAspect#1014790, procurementAspect#1014791, productGroup#1014792, filteredUnitOfMeasureConversions#1014793, quantityNumerator#1014794, quantityDenominator#1014795, (cast(quantityNumerator#1014794 as double) / cast(quantityDenominator#1014795 as double)) AS outboundUnit#1014796]
(946) Project
Arguments: [product#1014767, plant#1014768, orderDateTime#1014769, productPlant#1014780, systemId#1014781, internalUUID#1014782, id#1014783, displayId#1014784, name#1014785, baseUnitOfMeasure#1014786, unitOfMeasures#1014787, unitOfMeasureConversions#1014788, productionAspect#1014789, salesAspect#1014790, procurementAspect#1014791, productGroup#1014792, filteredUnitOfMeasureConversions#1014793, quantityNumerator#1014794, quantityDenominator#1014795, CASE WHEN (isnull(outboundUnit#1014796) OR (outboundUnit#1014796 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1014796 END AS outboundUnit#1014797]
(947) Project
Arguments: [product#1014767, plant#1014768, orderDateTime#1014769, productPlant#1014780, outboundUnit#1014797]
(948) LogicalRelation
Arguments: parquet, [systemId#1014798, internalUUID#1014799, product#1014800, plant#1014801, calculationDateTime#1014802, stockQuantities#1014803], false
(949) Repartition
Arguments: 37, true
(950) LogicalRelation
Arguments: parquet, [marketUnit#1014804, description#1014805, articleHierarchy#1014806, defaultCurrency#1014807, responsibilities#1014808, replenishmentTypes#1014809, distributionCenters#1014810, assignedArticleHierarchyNodes#1014811, minOrderQtySetting#1014812, listingCheck#1014813, odsSelection#1014814, demandProfiles#1014815, constraintProfiles#1014816, optimizationProfiles#1014817, orderGroupSplitProfiles#1014818, supplierMinimumProfiles#1014819, multipleRestrictionProfiles#1014820, preferredUomSource#1014821, handlingOfUnfulfilledDemands#1014822, negligibleQuantitiesThreshold#1014823, eventtype#1014824], false
(951) Repartition
Arguments: 37, true
(952) Filter
Arguments: (marketUnit#1014804 <=> STEPHI_MU)
(953) Project
Arguments: [marketUnit#1014804, description#1014805, articleHierarchy#1014806, defaultCurrency#1014807, responsibilities#1014808, replenishmentTypes#1014809, distributionCenters#1014810, assignedArticleHierarchyNodes#1014811, minOrderQtySetting#1014812, listingCheck#1014813, odsSelection#1014814, demandProfiles#1014815, constraintProfiles#1014816, optimizationProfiles#1014817, orderGroupSplitProfiles#1014818, supplierMinimumProfiles#1014819, multipleRestrictionProfiles#1014820, preferredUomSource#1014821, handlingOfUnfulfilledDemands#1014822, negligibleQuantitiesThreshold#1014823, eventtype#1014824]
(954) Project
Arguments: [distributionCenters#1014810]
(955) Generate
Arguments: explode(distributionCenters#1014810), false, [distributionCenters#1014825]
(956) Project
Arguments: [distributionCenters#1014825]
(957) Generate
Arguments: explode(distributionCenters#1014825.storageLocations), false, [storageLocations#1014826]
(958) Project
Arguments: [distributionCenters#1014825.id AS plantId#1014827, distributionCenters#1014825.internalRefUUID AS plantUuid#1014828, storageLocations#1014826]
(959) Project
Arguments: [plantId#1014827, plantUuid#1014828, storageLocations#1014826.id AS storageLocId#1014829, storageLocations#1014826.internalRefUUID AS storageLocUuid#1014830]
(960) LogicalRelation
Arguments: parquet, [product#1014831, plant#1014832, orderDateTime#1014833, planningStartDateTime#1014834], false
(961) RepartitionByExpression
Arguments: [product#1014831, plant#1014832], 37
(962) Project
Arguments: [product#1014831, plant#1014832, orderDateTime#1014833]
(963) LogicalRelation
Arguments: parquet, [systemId#1014835, internalUUID#1014836, plant#1014837, product#1014838, blockedForReplenishmentStartingFrom#1014839, productionAspect#1014840, salesPlant#1014841, listing#1014842, sourceOfSupplyCategory#1014843], false
(964) Repartition
Arguments: 37, true
(965) Project
Arguments: [systemId#1014835, internalUUID#1014836, plant#1014837, product#1014838, blockedForReplenishmentStartingFrom#1014839, productionAspect#1014840, salesPlant#1014841, listing#1014842, sourceOfSupplyCategory#1014843, struct(systemId, systemId#1014835, internalUUID, internalUUID#1014836, plant, plant#1014837, product, product#1014838, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1014839, productionAspect, productionAspect#1014840, salesPlant, salesPlant#1014841, listing, listing#1014842, sourceOfSupplyCategory, sourceOfSupplyCategory#1014843) AS productPlant#1014844]
(966) Project
Arguments: [productPlant#1014844]
(967) Join
Arguments: LeftOuter, ((product#1014831 <=> productPlant#1014844.product.internalRefUUID) AND (plant#1014832 <=> productPlant#1014844.plant.internalRefUUID))
(968) Project
Arguments: [product#1014831, plant#1014832, orderDateTime#1014833, productPlant#1014844]
(969) LogicalRelation
Arguments: parquet, [systemId#1014845, internalUUID#1014846, id#1014847, displayId#1014848, name#1014849, baseUnitOfMeasure#1014850, unitOfMeasures#1014851, unitOfMeasureConversions#1014852, productionAspect#1014853, salesAspect#1014854, procurementAspect#1014855, productGroup#1014856], false
(970) Repartition
Arguments: 37, true
(971) Join
Arguments: LeftOuter, (product#1014831 = internalUUID#1014846)
(972) Project
Arguments: [product#1014831, plant#1014832, orderDateTime#1014833, productPlant#1014844, systemId#1014845, internalUUID#1014846, id#1014847, displayId#1014848, name#1014849, baseUnitOfMeasure#1014850, unitOfMeasures#1014851, unitOfMeasureConversions#1014852, productionAspect#1014853, salesAspect#1014854, procurementAspect#1014855, productGroup#1014856, filter(unitOfMeasureConversions#1014852, lambdafunction((((lambda u#1012565.measurementUnit1.code = productPlant#1014844.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1012565.measurementUnit1.internalRefUUID = productPlant#1014844.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1012565.measurementUnit2.code = baseUnitOfMeasure#1014850.code) AND (lambda u#1012565.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1014850.internalRefUUID))), lambda u#1012565, false)) AS filteredUnitOfMeasureConversions#1014857]
(973) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1014857.quantityNumerator), true, [quantityNumerator#1014858]
(974) Project
Arguments: [product#1014831, plant#1014832, orderDateTime#1014833, productPlant#1014844, systemId#1014845, internalUUID#1014846, id#1014847, displayId#1014848, name#1014849, baseUnitOfMeasure#1014850, unitOfMeasures#1014851, unitOfMeasureConversions#1014852, productionAspect#1014853, salesAspect#1014854, procurementAspect#1014855, productGroup#1014856, filteredUnitOfMeasureConversions#1014857, quantityNumerator#1014858]
(975) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1014857.quantityDenominator), true, [quantityDenominator#1014859]
(976) Project
Arguments: [product#1014831, plant#1014832, orderDateTime#1014833, productPlant#1014844, systemId#1014845, internalUUID#1014846, id#1014847, displayId#1014848, name#1014849, baseUnitOfMeasure#1014850, unitOfMeasures#1014851, unitOfMeasureConversions#1014852, productionAspect#1014853, salesAspect#1014854, procurementAspect#1014855, productGroup#1014856, filteredUnitOfMeasureConversions#1014857, quantityNumerator#1014858, quantityDenominator#1014859]
(977) Project
Arguments: [product#1014831, plant#1014832, orderDateTime#1014833, productPlant#1014844, systemId#1014845, internalUUID#1014846, id#1014847, displayId#1014848, name#1014849, baseUnitOfMeasure#1014850, unitOfMeasures#1014851, unitOfMeasureConversions#1014852, productionAspect#1014853, salesAspect#1014854, procurementAspect#1014855, productGroup#1014856, filteredUnitOfMeasureConversions#1014857, quantityNumerator#1014858, quantityDenominator#1014859, (cast(quantityNumerator#1014858 as double) / cast(quantityDenominator#1014859 as double)) AS outboundUnit#1014860]
(978) Project
Arguments: [product#1014831, plant#1014832, orderDateTime#1014833, productPlant#1014844, systemId#1014845, internalUUID#1014846, id#1014847, displayId#1014848, name#1014849, baseUnitOfMeasure#1014850, unitOfMeasures#1014851, unitOfMeasureConversions#1014852, productionAspect#1014853, salesAspect#1014854, procurementAspect#1014855, productGroup#1014856, filteredUnitOfMeasureConversions#1014857, quantityNumerator#1014858, quantityDenominator#1014859, CASE WHEN (isnull(outboundUnit#1014860) OR (outboundUnit#1014860 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1014860 END AS outboundUnit#1014861]
(979) Project
Arguments: [product#1014831, plant#1014832, orderDateTime#1014833, productPlant#1014844, outboundUnit#1014861]
(980) Project
Arguments: [plant#1014832]
(981) Deduplicate
Arguments: [plant#1014832]
(982) Join
Arguments: Inner, (plantUuid#1014828 = plant#1014832)
(983) Project
Arguments: [plantId#1014827, plantUuid#1014828, storageLocId#1014829, storageLocUuid#1014830]
(984) Join
Arguments: Inner, (plant#1014801.internalRefUUID <=> plantUuid#1014828)
(985) Generate
Arguments: explode(filter(stockQuantities#1014803, lambdafunction(((lambda x#1012695.storageLocation.internalRefUuid = storageLocUuid#1014830) AND (lambda x#1012695.storageLocation.Id = storageLocId#1014829)), lambda x#1012695, false))), false, [stockQuantity#1014862]
(986) Project
Arguments: [systemId#1014798, internalUUID#1014799, product#1014800, plant#1014801, calculationDateTime#1014802, stockQuantities#1014803, plantId#1014827, plantUuid#1014828, storageLocId#1014829, storageLocUuid#1014830, stockQuantity#1014862]
(987) Aggregate
Arguments: [plantUuid#1014828, internalUUID#1014799, plant#1014801, product#1014800, systemId#1014798], [plantUuid#1014828, internalUUID#1014799, plant#1014801, product#1014800, systemId#1014798, first(calculationDateTime#1014802, false) AS calculationDateTime#1014863, collect_list(stockQuantity#1014862, 0, 0) AS stockQuantities#1014864]
(988) Project
Arguments: [systemId#1014798, internalUUID#1014799, product#1014800, plant#1014801, calculationDateTime#1014863, stockQuantities#1014864]
(989) Generate
Arguments: explode(stockQuantities#1014864), false, [stockQuantity#1014865]
(990) Project
Arguments: [systemId#1014798, internalUUID#1014799, product#1014800, plant#1014801, calculationDateTime#1014863, stockQuantities#1014864, stockQuantity#1014865]
(991) Project
Arguments: [plant#1014801.id AS plant#1014866, plant#1014801.internalRefUUID AS plantUuid#1014867, product#1014800.id AS product#1014868, product#1014800.internalRefUUID AS productUuid#1014869, calculationDateTime#1014863, stockQuantity#1014865.storagelocation.id AS storageLocId#1014870, stockQuantity#1014865.storagelocation.internalRefUUID AS storageLocUuid#1014871, stockQuantity#1014865.quantity.measure AS quantity#1014872, stockQuantity#1014865.specialStockIndicator.code AS specialStockIndicator#1014873, stockQuantity#1014865.stockType.code AS stockType#1014874]
(992) Filter
Arguments: ((specialStockIndicator#1014873 = ) AND (stockType#1014874 = 01))
(993) LogicalRelation
Arguments: parquet, [product#1014875, plant#1014876, orderDateTime#1014877, planningStartDateTime#1014878], false
(994) RepartitionByExpression
Arguments: [product#1014875, plant#1014876], 37
(995) Project
Arguments: [product#1014875, plant#1014876, orderDateTime#1014877]
(996) LogicalRelation
Arguments: parquet, [systemId#1014879, internalUUID#1014880, plant#1014881, product#1014882, blockedForReplenishmentStartingFrom#1014883, productionAspect#1014884, salesPlant#1014885, listing#1014886, sourceOfSupplyCategory#1014887], false
(997) Repartition
Arguments: 37, true
(998) Project
Arguments: [systemId#1014879, internalUUID#1014880, plant#1014881, product#1014882, blockedForReplenishmentStartingFrom#1014883, productionAspect#1014884, salesPlant#1014885, listing#1014886, sourceOfSupplyCategory#1014887, struct(systemId, systemId#1014879, internalUUID, internalUUID#1014880, plant, plant#1014881, product, product#1014882, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1014883, productionAspect, productionAspect#1014884, salesPlant, salesPlant#1014885, listing, listing#1014886, sourceOfSupplyCategory, sourceOfSupplyCategory#1014887) AS productPlant#1014888]
(999) Project
Arguments: [productPlant#1014888]
(1000) Join
Arguments: LeftOuter, ((product#1014875 <=> productPlant#1014888.product.internalRefUUID) AND (plant#1014876 <=> productPlant#1014888.plant.internalRefUUID))
(1001) Project
Arguments: [product#1014875, plant#1014876, orderDateTime#1014877, productPlant#1014888]
(1002) LogicalRelation
Arguments: parquet, [systemId#1014889, internalUUID#1014890, id#1014891, displayId#1014892, name#1014893, baseUnitOfMeasure#1014894, unitOfMeasures#1014895, unitOfMeasureConversions#1014896, productionAspect#1014897, salesAspect#1014898, procurementAspect#1014899, productGroup#1014900], false
(1003) Repartition
Arguments: 37, true
(1004) Join
Arguments: LeftOuter, (product#1014875 = internalUUID#1014890)
(1005) Project
Arguments: [product#1014875, plant#1014876, orderDateTime#1014877, productPlant#1014888, systemId#1014889, internalUUID#1014890, id#1014891, displayId#1014892, name#1014893, baseUnitOfMeasure#1014894, unitOfMeasures#1014895, unitOfMeasureConversions#1014896, productionAspect#1014897, salesAspect#1014898, procurementAspect#1014899, productGroup#1014900, filter(unitOfMeasureConversions#1014896, lambdafunction((((lambda u#1012565.measurementUnit1.code = productPlant#1014888.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1012565.measurementUnit1.internalRefUUID = productPlant#1014888.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1012565.measurementUnit2.code = baseUnitOfMeasure#1014894.code) AND (lambda u#1012565.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1014894.internalRefUUID))), lambda u#1012565, false)) AS filteredUnitOfMeasureConversions#1014901]
(1006) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1014901.quantityNumerator), true, [quantityNumerator#1014902]
(1007) Project
Arguments: [product#1014875, plant#1014876, orderDateTime#1014877, productPlant#1014888, systemId#1014889, internalUUID#1014890, id#1014891, displayId#1014892, name#1014893, baseUnitOfMeasure#1014894, unitOfMeasures#1014895, unitOfMeasureConversions#1014896, productionAspect#1014897, salesAspect#1014898, procurementAspect#1014899, productGroup#1014900, filteredUnitOfMeasureConversions#1014901, quantityNumerator#1014902]
(1008) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1014901.quantityDenominator), true, [quantityDenominator#1014903]
(1009) Project
Arguments: [product#1014875, plant#1014876, orderDateTime#1014877, productPlant#1014888, systemId#1014889, internalUUID#1014890, id#1014891, displayId#1014892, name#1014893, baseUnitOfMeasure#1014894, unitOfMeasures#1014895, unitOfMeasureConversions#1014896, productionAspect#1014897, salesAspect#1014898, procurementAspect#1014899, productGroup#1014900, filteredUnitOfMeasureConversions#1014901, quantityNumerator#1014902, quantityDenominator#1014903]
(1010) Project
Arguments: [product#1014875, plant#1014876, orderDateTime#1014877, productPlant#1014888, systemId#1014889, internalUUID#1014890, id#1014891, displayId#1014892, name#1014893, baseUnitOfMeasure#1014894, unitOfMeasures#1014895, unitOfMeasureConversions#1014896, productionAspect#1014897, salesAspect#1014898, procurementAspect#1014899, productGroup#1014900, filteredUnitOfMeasureConversions#1014901, quantityNumerator#1014902, quantityDenominator#1014903, (cast(quantityNumerator#1014902 as double) / cast(quantityDenominator#1014903 as double)) AS outboundUnit#1014904]
(1011) Project
Arguments: [product#1014875, plant#1014876, orderDateTime#1014877, productPlant#1014888, systemId#1014889, internalUUID#1014890, id#1014891, displayId#1014892, name#1014893, baseUnitOfMeasure#1014894, unitOfMeasures#1014895, unitOfMeasureConversions#1014896, productionAspect#1014897, salesAspect#1014898, procurementAspect#1014899, productGroup#1014900, filteredUnitOfMeasureConversions#1014901, quantityNumerator#1014902, quantityDenominator#1014903, CASE WHEN (isnull(outboundUnit#1014904) OR (outboundUnit#1014904 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1014904 END AS outboundUnit#1014905]
(1012) Project
Arguments: [product#1014875, plant#1014876, orderDateTime#1014877, productPlant#1014888, outboundUnit#1014905]
(1013) Join
Arguments: Inner, ((plantUuid#1014867 = plant#1014876) AND (productUuid#1014869 = product#1014875))
(1014) Filter
Arguments: (calculationDateTime#1014863 <= orderDateTime#1014877)
(1015) Project
Arguments: [plantUuid#1014867 AS plant#1014906, productUuid#1014869 AS product#1014907, storageLocId#1014870, calculationDateTime#1014863, quantity#1014872]
(1016) LogicalRelation
Arguments: parquet, [systemId#1014908, internalUUID#1014909, product#1014910, plant#1014911, calculationDateTime#1014912, stockQuantities#1014913], false
(1017) Repartition
Arguments: 37, true
(1018) LogicalRelation
Arguments: parquet, [marketUnit#1014914, description#1014915, articleHierarchy#1014916, defaultCurrency#1014917, responsibilities#1014918, replenishmentTypes#1014919, distributionCenters#1014920, assignedArticleHierarchyNodes#1014921, minOrderQtySetting#1014922, listingCheck#1014923, odsSelection#1014924, demandProfiles#1014925, constraintProfiles#1014926, optimizationProfiles#1014927, orderGroupSplitProfiles#1014928, supplierMinimumProfiles#1014929, multipleRestrictionProfiles#1014930, preferredUomSource#1014931, handlingOfUnfulfilledDemands#1014932, negligibleQuantitiesThreshold#1014933, eventtype#1014934], false
(1019) Repartition
Arguments: 37, true
(1020) Filter
Arguments: (marketUnit#1014914 <=> STEPHI_MU)
(1021) Project
Arguments: [marketUnit#1014914, description#1014915, articleHierarchy#1014916, defaultCurrency#1014917, responsibilities#1014918, replenishmentTypes#1014919, distributionCenters#1014920, assignedArticleHierarchyNodes#1014921, minOrderQtySetting#1014922, listingCheck#1014923, odsSelection#1014924, demandProfiles#1014925, constraintProfiles#1014926, optimizationProfiles#1014927, orderGroupSplitProfiles#1014928, supplierMinimumProfiles#1014929, multipleRestrictionProfiles#1014930, preferredUomSource#1014931, handlingOfUnfulfilledDemands#1014932, negligibleQuantitiesThreshold#1014933, eventtype#1014934]
(1022) Project
Arguments: [distributionCenters#1014920]
(1023) Generate
Arguments: explode(distributionCenters#1014920), false, [distributionCenters#1014935]
(1024) Project
Arguments: [distributionCenters#1014935]
(1025) Generate
Arguments: explode(distributionCenters#1014935.storageLocations), false, [storageLocations#1014936]
(1026) Project
Arguments: [distributionCenters#1014935.id AS plantId#1014937, distributionCenters#1014935.internalRefUUID AS plantUuid#1014938, storageLocations#1014936]
(1027) Project
Arguments: [plantId#1014937, plantUuid#1014938, storageLocations#1014936.id AS storageLocId#1014939, storageLocations#1014936.internalRefUUID AS storageLocUuid#1014940]
(1028) LogicalRelation
Arguments: parquet, [product#1014941, plant#1014942, orderDateTime#1014943, planningStartDateTime#1014944], false
(1029) RepartitionByExpression
Arguments: [product#1014941, plant#1014942], 37
(1030) Project
Arguments: [product#1014941, plant#1014942, orderDateTime#1014943]
(1031) LogicalRelation
Arguments: parquet, [systemId#1014945, internalUUID#1014946, plant#1014947, product#1014948, blockedForReplenishmentStartingFrom#1014949, productionAspect#1014950, salesPlant#1014951, listing#1014952, sourceOfSupplyCategory#1014953], false
(1032) Repartition
Arguments: 37, true
(1033) Project
Arguments: [systemId#1014945, internalUUID#1014946, plant#1014947, product#1014948, blockedForReplenishmentStartingFrom#1014949, productionAspect#1014950, salesPlant#1014951, listing#1014952, sourceOfSupplyCategory#1014953, struct(systemId, systemId#1014945, internalUUID, internalUUID#1014946, plant, plant#1014947, product, product#1014948, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1014949, productionAspect, productionAspect#1014950, salesPlant, salesPlant#1014951, listing, listing#1014952, sourceOfSupplyCategory, sourceOfSupplyCategory#1014953) AS productPlant#1014954]
(1034) Project
Arguments: [productPlant#1014954]
(1035) Join
Arguments: LeftOuter, ((product#1014941 <=> productPlant#1014954.product.internalRefUUID) AND (plant#1014942 <=> productPlant#1014954.plant.internalRefUUID))
(1036) Project
Arguments: [product#1014941, plant#1014942, orderDateTime#1014943, productPlant#1014954]
(1037) LogicalRelation
Arguments: parquet, [systemId#1014955, internalUUID#1014956, id#1014957, displayId#1014958, name#1014959, baseUnitOfMeasure#1014960, unitOfMeasures#1014961, unitOfMeasureConversions#1014962, productionAspect#1014963, salesAspect#1014964, procurementAspect#1014965, productGroup#1014966], false
(1038) Repartition
Arguments: 37, true
(1039) Join
Arguments: LeftOuter, (product#1014941 = internalUUID#1014956)
(1040) Project
Arguments: [product#1014941, plant#1014942, orderDateTime#1014943, productPlant#1014954, systemId#1014955, internalUUID#1014956, id#1014957, displayId#1014958, name#1014959, baseUnitOfMeasure#1014960, unitOfMeasures#1014961, unitOfMeasureConversions#1014962, productionAspect#1014963, salesAspect#1014964, procurementAspect#1014965, productGroup#1014966, filter(unitOfMeasureConversions#1014962, lambdafunction((((lambda u#1012565.measurementUnit1.code = productPlant#1014954.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1012565.measurementUnit1.internalRefUUID = productPlant#1014954.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1012565.measurementUnit2.code = baseUnitOfMeasure#1014960.code) AND (lambda u#1012565.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1014960.internalRefUUID))), lambda u#1012565, false)) AS filteredUnitOfMeasureConversions#1014967]
(1041) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1014967.quantityNumerator), true, [quantityNumerator#1014968]
(1042) Project
Arguments: [product#1014941, plant#1014942, orderDateTime#1014943, productPlant#1014954, systemId#1014955, internalUUID#1014956, id#1014957, displayId#1014958, name#1014959, baseUnitOfMeasure#1014960, unitOfMeasures#1014961, unitOfMeasureConversions#1014962, productionAspect#1014963, salesAspect#1014964, procurementAspect#1014965, productGroup#1014966, filteredUnitOfMeasureConversions#1014967, quantityNumerator#1014968]
(1043) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1014967.quantityDenominator), true, [quantityDenominator#1014969]
(1044) Project
Arguments: [product#1014941, plant#1014942, orderDateTime#1014943, productPlant#1014954, systemId#1014955, internalUUID#1014956, id#1014957, displayId#1014958, name#1014959, baseUnitOfMeasure#1014960, unitOfMeasures#1014961, unitOfMeasureConversions#1014962, productionAspect#1014963, salesAspect#1014964, procurementAspect#1014965, productGroup#1014966, filteredUnitOfMeasureConversions#1014967, quantityNumerator#1014968, quantityDenominator#1014969]
(1045) Project
Arguments: [product#1014941, plant#1014942, orderDateTime#1014943, productPlant#1014954, systemId#1014955, internalUUID#1014956, id#1014957, displayId#1014958, name#1014959, baseUnitOfMeasure#1014960, unitOfMeasures#1014961, unitOfMeasureConversions#1014962, productionAspect#1014963, salesAspect#1014964, procurementAspect#1014965, productGroup#1014966, filteredUnitOfMeasureConversions#1014967, quantityNumerator#1014968, quantityDenominator#1014969, (cast(quantityNumerator#1014968 as double) / cast(quantityDenominator#1014969 as double)) AS outboundUnit#1014970]
(1046) Project
Arguments: [product#1014941, plant#1014942, orderDateTime#1014943, productPlant#1014954, systemId#1014955, internalUUID#1014956, id#1014957, displayId#1014958, name#1014959, baseUnitOfMeasure#1014960, unitOfMeasures#1014961, unitOfMeasureConversions#1014962, productionAspect#1014963, salesAspect#1014964, procurementAspect#1014965, productGroup#1014966, filteredUnitOfMeasureConversions#1014967, quantityNumerator#1014968, quantityDenominator#1014969, CASE WHEN (isnull(outboundUnit#1014970) OR (outboundUnit#1014970 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1014970 END AS outboundUnit#1014971]
(1047) Project
Arguments: [product#1014941, plant#1014942, orderDateTime#1014943, productPlant#1014954, outboundUnit#1014971]
(1048) Project
Arguments: [plant#1014942]
(1049) Deduplicate
Arguments: [plant#1014942]
(1050) Join
Arguments: Inner, (plantUuid#1014938 = plant#1014942)
(1051) Project
Arguments: [plantId#1014937, plantUuid#1014938, storageLocId#1014939, storageLocUuid#1014940]
(1052) Join
Arguments: Inner, (plant#1014911.internalRefUUID <=> plantUuid#1014938)
(1053) Generate
Arguments: explode(filter(stockQuantities#1014913, lambdafunction(((lambda x#1012695.storageLocation.internalRefUuid = storageLocUuid#1014940) AND (lambda x#1012695.storageLocation.Id = storageLocId#1014939)), lambda x#1012695, false))), false, [stockQuantity#1014972]
(1054) Project
Arguments: [systemId#1014908, internalUUID#1014909, product#1014910, plant#1014911, calculationDateTime#1014912, stockQuantities#1014913, plantId#1014937, plantUuid#1014938, storageLocId#1014939, storageLocUuid#1014940, stockQuantity#1014972]
(1055) Aggregate
Arguments: [plantUuid#1014938, internalUUID#1014909, plant#1014911, product#1014910, systemId#1014908], [plantUuid#1014938, internalUUID#1014909, plant#1014911, product#1014910, systemId#1014908, first(calculationDateTime#1014912, false) AS calculationDateTime#1014973, collect_list(stockQuantity#1014972, 0, 0) AS stockQuantities#1014974]
(1056) Project
Arguments: [systemId#1014908, internalUUID#1014909, product#1014910, plant#1014911, calculationDateTime#1014973, stockQuantities#1014974]
(1057) Generate
Arguments: explode(stockQuantities#1014974), false, [stockQuantity#1014975]
(1058) Project
Arguments: [systemId#1014908, internalUUID#1014909, product#1014910, plant#1014911, calculationDateTime#1014973, stockQuantities#1014974, stockQuantity#1014975]
(1059) Project
Arguments: [plant#1014911.id AS plant#1014976, plant#1014911.internalRefUUID AS plantUuid#1014977, product#1014910.id AS product#1014978, product#1014910.internalRefUUID AS productUuid#1014979, calculationDateTime#1014973, stockQuantity#1014975.storagelocation.id AS storageLocId#1014980, stockQuantity#1014975.storagelocation.internalRefUUID AS storageLocUuid#1014981, stockQuantity#1014975.quantity.measure AS quantity#1014982, stockQuantity#1014975.specialStockIndicator.code AS specialStockIndicator#1014983, stockQuantity#1014975.stockType.code AS stockType#1014984]
(1060) Filter
Arguments: ((specialStockIndicator#1014983 = ) AND (stockType#1014984 = 01))
(1061) LogicalRelation
Arguments: parquet, [product#1014985, plant#1014986, orderDateTime#1014987, planningStartDateTime#1014988], false
(1062) RepartitionByExpression
Arguments: [product#1014985, plant#1014986], 37
(1063) Project
Arguments: [product#1014985, plant#1014986, orderDateTime#1014987]
(1064) LogicalRelation
Arguments: parquet, [systemId#1014989, internalUUID#1014990, plant#1014991, product#1014992, blockedForReplenishmentStartingFrom#1014993, productionAspect#1014994, salesPlant#1014995, listing#1014996, sourceOfSupplyCategory#1014997], false
(1065) Repartition
Arguments: 37, true
(1066) Project
Arguments: [systemId#1014989, internalUUID#1014990, plant#1014991, product#1014992, blockedForReplenishmentStartingFrom#1014993, productionAspect#1014994, salesPlant#1014995, listing#1014996, sourceOfSupplyCategory#1014997, struct(systemId, systemId#1014989, internalUUID, internalUUID#1014990, plant, plant#1014991, product, product#1014992, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1014993, productionAspect, productionAspect#1014994, salesPlant, salesPlant#1014995, listing, listing#1014996, sourceOfSupplyCategory, sourceOfSupplyCategory#1014997) AS productPlant#1014998]
(1067) Project
Arguments: [productPlant#1014998]
(1068) Join
Arguments: LeftOuter, ((product#1014985 <=> productPlant#1014998.product.internalRefUUID) AND (plant#1014986 <=> productPlant#1014998.plant.internalRefUUID))
(1069) Project
Arguments: [product#1014985, plant#1014986, orderDateTime#1014987, productPlant#1014998]
(1070) LogicalRelation
Arguments: parquet, [systemId#1014999, internalUUID#1015000, id#1015001, displayId#1015002, name#1015003, baseUnitOfMeasure#1015004, unitOfMeasures#1015005, unitOfMeasureConversions#1015006, productionAspect#1015007, salesAspect#1015008, procurementAspect#1015009, productGroup#1015010], false
(1071) Repartition
Arguments: 37, true
(1072) Join
Arguments: LeftOuter, (product#1014985 = internalUUID#1015000)
(1073) Project
Arguments: [product#1014985, plant#1014986, orderDateTime#1014987, productPlant#1014998, systemId#1014999, internalUUID#1015000, id#1015001, displayId#1015002, name#1015003, baseUnitOfMeasure#1015004, unitOfMeasures#1015005, unitOfMeasureConversions#1015006, productionAspect#1015007, salesAspect#1015008, procurementAspect#1015009, productGroup#1015010, filter(unitOfMeasureConversions#1015006, lambdafunction((((lambda u#1012565.measurementUnit1.code = productPlant#1014998.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1012565.measurementUnit1.internalRefUUID = productPlant#1014998.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1012565.measurementUnit2.code = baseUnitOfMeasure#1015004.code) AND (lambda u#1012565.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1015004.internalRefUUID))), lambda u#1012565, false)) AS filteredUnitOfMeasureConversions#1015011]
(1074) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1015011.quantityNumerator), true, [quantityNumerator#1015012]
(1075) Project
Arguments: [product#1014985, plant#1014986, orderDateTime#1014987, productPlant#1014998, systemId#1014999, internalUUID#1015000, id#1015001, displayId#1015002, name#1015003, baseUnitOfMeasure#1015004, unitOfMeasures#1015005, unitOfMeasureConversions#1015006, productionAspect#1015007, salesAspect#1015008, procurementAspect#1015009, productGroup#1015010, filteredUnitOfMeasureConversions#1015011, quantityNumerator#1015012]
(1076) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1015011.quantityDenominator), true, [quantityDenominator#1015013]
(1077) Project
Arguments: [product#1014985, plant#1014986, orderDateTime#1014987, productPlant#1014998, systemId#1014999, internalUUID#1015000, id#1015001, displayId#1015002, name#1015003, baseUnitOfMeasure#1015004, unitOfMeasures#1015005, unitOfMeasureConversions#1015006, productionAspect#1015007, salesAspect#1015008, procurementAspect#1015009, productGroup#1015010, filteredUnitOfMeasureConversions#1015011, quantityNumerator#1015012, quantityDenominator#1015013]
(1078) Project
Arguments: [product#1014985, plant#1014986, orderDateTime#1014987, productPlant#1014998, systemId#1014999, internalUUID#1015000, id#1015001, displayId#1015002, name#1015003, baseUnitOfMeasure#1015004, unitOfMeasures#1015005, unitOfMeasureConversions#1015006, productionAspect#1015007, salesAspect#1015008, procurementAspect#1015009, productGroup#1015010, filteredUnitOfMeasureConversions#1015011, quantityNumerator#1015012, quantityDenominator#1015013, (cast(quantityNumerator#1015012 as double) / cast(quantityDenominator#1015013 as double)) AS outboundUnit#1015014]
(1079) Project
Arguments: [product#1014985, plant#1014986, orderDateTime#1014987, productPlant#1014998, systemId#1014999, internalUUID#1015000, id#1015001, displayId#1015002, name#1015003, baseUnitOfMeasure#1015004, unitOfMeasures#1015005, unitOfMeasureConversions#1015006, productionAspect#1015007, salesAspect#1015008, procurementAspect#1015009, productGroup#1015010, filteredUnitOfMeasureConversions#1015011, quantityNumerator#1015012, quantityDenominator#1015013, CASE WHEN (isnull(outboundUnit#1015014) OR (outboundUnit#1015014 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1015014 END AS outboundUnit#1015015]
(1080) Project
Arguments: [product#1014985, plant#1014986, orderDateTime#1014987, productPlant#1014998, outboundUnit#1015015]
(1081) Join
Arguments: Inner, ((plantUuid#1014977 = plant#1014986) AND (productUuid#1014979 = product#1014985))
(1082) Filter
Arguments: (calculationDateTime#1014973 <= orderDateTime#1014987)
(1083) Project
Arguments: [plantUuid#1014977 AS plant#1015016, productUuid#1014979 AS product#1015017, storageLocId#1014980, calculationDateTime#1014973, quantity#1014982]
(1084) Aggregate
Arguments: [plant#1015016, product#1015017, storageLocId#1014980], [plant#1015016, product#1015017, storageLocId#1014980, max(calculationDateTime#1014973) AS max_calc_datetime#1015018]
(1085) Join
Arguments: Inner, ((((plant#1014906 <=> plant#1015016) AND (product#1014907 <=> product#1015017)) AND (storageLocId#1014870 <=> storageLocId#1014980)) AND (calculationDateTime#1014863 <=> max_calc_datetime#1015018))
(1086) Project
Arguments: [plant#1014906, product#1014907, storageLocId#1014870, calculationDateTime#1014863, quantity#1014872]
(1087) Aggregate
Arguments: [product#1014907, plant#1014906], [product#1014907, plant#1014906, sum(quantity#1014872) AS quantitySum#1015019, min(calculationDateTime#1014863) AS minCalculationDateTime#1015020]
(1088) Project
Arguments: [product#1014907, plant#1014906, quantitySum#1015019, minCalculationDateTime#1015020, round(quantitySum#1015019, 0) AS roundedQuantitySum#1015021]
(1089) Join
Arguments: LeftOuter, ((plant#1014768 = plant#1014906) AND (product#1014767 = product#1014907))
(1090) Project
Arguments: [product#1014767, plant#1014768, orderDateTime#1014769, productPlant#1014780, outboundUnit#1014797, roundedQuantitySum#1015021, minCalculationDateTime#1015020]
(1091) Project
Arguments: [product#1014767, plant#1014768, orderDateTime#1014769, productPlant#1014780, outboundUnit#1014797, roundedQuantitySum#1015021, minCalculationDateTime#1015020, CASE WHEN isnotnull(minCalculationDateTime#1015020) THEN minCalculationDateTime#1015020 ELSE orderDateTime#1014769 END AS stockDatetime#1015022]
(1092) Project
Arguments: [product#1014767, plant#1014768, orderDateTime#1014769, productPlant#1014780, outboundUnit#1014797, roundedQuantitySum#1015021, minCalculationDateTime#1015020, stockDatetime#1015022, CASE WHEN isnotnull(roundedQuantitySum#1015021) THEN array(roundedQuantitySum#1015021) ELSE array(0.0) END AS stockBatchQuantities#1015023]
(1093) Project
Arguments: [product#1014767, plant#1014768, orderDateTime#1014769, productPlant#1014780, outboundUnit#1014797, roundedQuantitySum#1015021, minCalculationDateTime#1015020, stockDatetime#1015022, stockBatchQuantities#1015023, array(2199-01-01 00:00:00) AS stockBatchShelfLifeEndDatetimes#1015024]
(1094) Project
Arguments: [product#1014767, plant#1014768, orderDateTime#1014769, productPlant#1014780, outboundUnit#1014797, roundedQuantitySum#1015021, stockDatetime#1015022, stockBatchQuantities#1015023, stockBatchShelfLifeEndDatetimes#1015024]
(1095) Project
Arguments: [product#1014767, plant#1014768, orderDateTime#1014769, productPlant#1014780, outboundUnit#1014797, stockDatetime#1015022, stockBatchQuantities#1015023, stockBatchShelfLifeEndDatetimes#1015024]
(1096) LogicalRelation
Arguments: parquet, [product#1015025, plant#1015026, demandChannel#1015027, demandStream#1015028, considerVariance#1015029, demandTimeBuckets#1015030, demandPointInTimeStart#1015031, demandPointInTimeEnd#1015032, demandPointInTime#1015033], false
(1097) Join
Arguments: LeftOuter, ((plant#1015026 <=> plant#1014768) AND (product#1015025 <=> product#1014767))
(1098) Project
Arguments: [product#1014767, plant#1014768, orderDateTime#1014769, productPlant#1014780, outboundUnit#1014797, stockDatetime#1015022, stockBatchQuantities#1015023, stockBatchShelfLifeEndDatetimes#1015024, product#1015025, plant#1015026, demandChannel#1015027, demandStream#1015028, considerVariance#1015029, demandTimeBuckets#1015030, demandPointInTimeStart#1015031, demandPointInTimeEnd#1015032, demandPointInTime#1015033, CASE WHEN isnotnull(product#1015025) THEN struct(demandChannel, demandChannel#1015027, demandStream, demandStream#1015028, considerVariance, considerVariance#1015029, demandTimeBuckets, demandTimeBuckets#1015030, demandPointInTimeStart, demandPointInTimeStart#1015031, demandPointInTimeEnd, demandPointInTimeEnd#1015032, demandPointInTime, demandPointInTime#1015033) 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#1015034]
(1099) Aggregate
Arguments: [product#1014767, plant#1014768, orderDateTime#1014769, productPlant#1014780, outboundUnit#1014797, stockDatetime#1015022, stockBatchQuantities#1015023, stockBatchShelfLifeEndDatetimes#1015024], [product#1014767, plant#1014768, orderDateTime#1014769, productPlant#1014780, outboundUnit#1014797, stockDatetime#1015022, stockBatchQuantities#1015023, stockBatchShelfLifeEndDatetimes#1015024, collect_list(rawDemands#1015034, 0, 0) AS rawDemands#1015035]
(1100) SubqueryAlias
Arguments: wl
(1101) LogicalRelation
Arguments: parquet, [systemId#1015036, internalUUID#1015037, id#1015038, displayId#1015039, name#1015040, category#1015041, companyCode#1015042, address#1015043, mainDistributionChain#1015044, mainPurchasingOrganization#1015045, validPurchasingOrganizations#1015046, productGroup#1015047], false
(1102) Repartition
Arguments: 37, true
(1103) Project
Arguments: [systemId#1015036, internalUUID#1015037, id#1015038, displayId#1015039, name#1015040, category#1015041, companyCode#1015042, address#1015043, mainDistributionChain#1015044, mainPurchasingOrganization#1015045, validPurchasingOrganizations#1015046, productGroup#1015047, address#1015043.timezone.code AS timezonecode#1015048]
(1104) Join
Arguments: LeftOuter, (plant#1014768 <=> internalUUID#1015037)
(1105) Project
Arguments: [product#1014767, plant#1014768, orderDateTime#1014769, productPlant#1014780, outboundUnit#1014797, stockDatetime#1015022, stockBatchQuantities#1015023, stockBatchShelfLifeEndDatetimes#1015024, rawDemands#1015035, systemId#1015036, internalUUID#1015037, id#1015038, displayId#1015039, name#1015040, category#1015041, companyCode#1015042, address#1015043, mainDistributionChain#1015044, mainPurchasingOrganization#1015045, validPurchasingOrganizations#1015046, productGroup#1015047, CASE WHEN isnotnull(timezonecode#1015048) THEN timezonecode#1015048 ELSE UTC END AS timezonecode#1015049]
(1106) Project
Arguments: [product#1014767, plant#1014768, orderDateTime#1014769, productPlant#1014780, outboundUnit#1014797, stockDatetime#1015022, stockBatchQuantities#1015023, stockBatchShelfLifeEndDatetimes#1015024, rawDemands#1015035, timezonecode#1015049]
(1107) DeserializeToObject
Arguments: createexternalrow(invoke(product#1014767.toString()), invoke(plant#1014768.toString()), static_invoke(DateTimeUtils.toJavaTimestamp(orderDateTime#1014769)), if (isnull(productPlant#1014780)) null else createexternalrow(invoke(productPlant#1014780.systemId.toString()), invoke(productPlant#1014780.internalUUID.toString()), if (isnull(productPlant#1014780.plant)) null else createexternalrow(invoke(productPlant#1014780.plant.internalRefUUID.toString()), invoke(productPlant#1014780.plant.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), if (isnull(productPlant#1014780.product)) null else createexternalrow(invoke(productPlant#1014780.product.internalRefUUID.toString()), invoke(productPlant#1014780.product.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(DateTimeUtils.toJavaDate(productPlant#1014780.blockedForReplenishmentStartingFrom)), if (isnull(productPlant#1014780.productionAspect)) null else createexternalrow(if (isnull(productPlant#1014780.productionAspect.productMovementPlants)) null else createexternalrow(if (isnull(productPlant#1014780.productionAspect.productMovementPlants.unitOfIssue)) null else createexternalrow(invoke(productPlant#1014780.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID.toString()), invoke(productPlant#1014780.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#1014780.productionAspect.productPlanningPlants)) null else createexternalrow(if (isnull(productPlant#1014780.productionAspect.productPlanningPlants.mrpType)) null else createexternalrow(invoke(productPlant#1014780.productionAspect.productPlanningPlants.mrpType.internalRefUUID.toString()), invoke(productPlant#1014780.productionAspect.productPlanningPlants.mrpType.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1014780.productionAspect.productPlanningPlants.abcIndicator)) null else createexternalrow(invoke(productPlant#1014780.productionAspect.productPlanningPlants.abcIndicator.internalRefUUID.toString()), invoke(productPlant#1014780.productionAspect.productPlanningPlants.abcIndicator.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1014780.productionAspect.productPlanningPlants.mrpController)) null else createexternalrow(invoke(productPlant#1014780.productionAspect.productPlanningPlants.mrpController.internalRefUUID.toString()), invoke(productPlant#1014780.productionAspect.productPlanningPlants.mrpController.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(java.lang.Double.valueOf(productPlant#1014780.productionAspect.productPlanningPlants.minimumLotSize)), if (isnull(productPlant#1014780.productionAspect.productPlanningPlants.logisticalRoundingProfile)) null else createexternalrow(invoke(productPlant#1014780.productionAspect.productPlanningPlants.logisticalRoundingProfile.internalRefUUID.toString()), invoke(productPlant#1014780.productionAspect.productPlanningPlants.logisticalRoundingProfile.logisticalRoundingProfile.toString()), StructField(internalRefUUID,StringType,true), StructField(logisticalRoundingProfile,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(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)),true)), if (isnull(productPlant#1014780.salesPlant)) null else createexternalrow(if (isnull(productPlant#1014780.salesPlant.loadingGroup)) null else createexternalrow(invoke(productPlant#1014780.salesPlant.loadingGroup.internalRefUUID.toString()), invoke(productPlant#1014780.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, 80503), if (isnull(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 80503))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 80503).validFrom)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 80503).validTo)), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 80503).isListed)), StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true)), productPlant#1014780.listing, Some(class scala.collection.mutable.ArraySeq)), if (isnull(productPlant#1014780.sourceOfSupplyCategory)) null else createexternalrow(invoke(productPlant#1014780.sourceOfSupplyCategory.internalRefUUID.toString()), invoke(productPlant#1014780.sourceOfSupplyCategory.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), 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)),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), StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), static_invoke(java.lang.Double.valueOf(outboundUnit#1014797)), static_invoke(DateTimeUtils.toJavaTimestamp(stockDatetime#1015022)), mapobjects(lambdavariable(MapObject, DoubleType, true, 80504), static_invoke(java.lang.Double.valueOf(cast(lambdavariable(MapObject, DoubleType, true, 80504) as double))), stockBatchQuantities#1015023, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, false, 80505), assertnotnull(static_invoke(DateTimeUtils.toJavaTimestamp(cast(lambdavariable(MapObject, TimestampType, false, 80505) as timestamp)))), stockBatchShelfLifeEndDatetimes#1015024, 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, 80506), 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, 80506))) 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, 80506).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, 80506).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, 80506).considerVariance)), mapobjects(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 80507), if (isnull(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 80507))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 80507).demandStartDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 80507).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 80507).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, 80506).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, 80506).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, 80506).demandPointInTimeEnd)), mapobjects(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 80508), if (isnull(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 80508))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 80508).demandDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 80508).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 80508).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, 80506).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#1015035, Some(class scala.collection.mutable.ArraySeq)), invoke(timezonecode#1015049.toString()), 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)),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),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),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), StructField(timezonecode,StringType,true)), obj#1014043: org.apache.spark.sql.Row
(1108) MapElements
Arguments: com.sap.s4hana.eureka.business.crporderquantitykpiservice.core.business.datasnapshot.DemandTransformatorImpl$$Lambda/0x0000000801fc3d98@2aab4875, 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)),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),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),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), StructField(timezonecode,StringType,true)], obj#1014048: org.apache.spark.sql.Row
(1109) 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#1015050, 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#1015051, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(2))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80493), assertnotnull(if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80494), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80494), DoubleType, ObjectType(class java.lang.Double)).doubleValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80495), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80495), DoubleType, ObjectType(class java.lang.Double)).doubleValue()), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80496), assertnotnull(static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80496), TimestampType, ObjectType(class java.sql.Timestamp))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80497), assertnotnull(static_invoke(UTF8String.fromString(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80497), StringType, ObjectType(class java.lang.String))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80498), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80498), IntegerType, ObjectType(class java.lang.Integer)).intValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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#1015052, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(3))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80499), assertnotnull(if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80500), assertnotnull(static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80500), TimestampType, ObjectType(class java.sql.Timestamp))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80501), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80501), DoubleType, ObjectType(class java.lang.Double)).doubleValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80502), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80502), DoubleType, ObjectType(class java.lang.Double)).doubleValue()), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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#1015053]
(1110) Join
Arguments: LeftOuter, ((plant#1015051 <=> plant#1014510) AND (product#1015050 <=> product#1014509))
(1111) Project
Arguments: [product#1014509, plant#1014510, orderDateTime#1014511, productPlant#1014522, outboundUnit#1014539, stockDatetime#1014764, stockBatchQuantities#1014765, stockBatchShelfLifeEndDatetimes#1014766, plant#1015051, dayBucketDemands#1015052, pointInTimeDemands#1015053]
(1112) Project
Arguments: [product#1014509, plant#1014510, orderDateTime#1014511, productPlant#1014522, outboundUnit#1014539, stockDatetime#1014764, stockBatchQuantities#1014765, stockBatchShelfLifeEndDatetimes#1014766, dayBucketDemands#1015052, pointInTimeDemands#1015053]
(1113) LocalRelation
Arguments: <empty>, [systemId#1015054, internalUUID#1015055, id#1015056, isMarkedForDeletion#1015057, supplier#1015058, status#1015059, items#1015060]
(1114) Generate
Arguments: explode(items#1015060), false, [item#1015061]
(1115) Project
Arguments: [id#1015056, internalUUID#1015055, isMarkedForDeletion#1015057, supplier#1015058.internalRefUUID AS supplierUuid#1015062, item#1015061]
(1116) Filter
Arguments: (((NOT isMarkedForDeletion#1015057 AND NOT item#1015061.deletionIndicator) AND NOT item#1015061.completeIndicator) AND NOT item#1015061.returnIndicator)
(1117) Project
Arguments: [id#1015056, internalUUID#1015055, supplierUuid#1015062, item#1015061.plant.internalRefUUID AS plant#1015063, item#1015061.product.internalRefUUID AS product#1015064, item#1015061.storageLocation.internalRefUUID AS storageLocUuid#1015065, item#1015061.quantityUnit.code AS quantityUom#1015066, item#1015061.quantityUnit.internalRefUUID AS quantityUomUuid#1015067, item#1015061.quantityNumerator AS quantityNumerator#1015068, item#1015061.quantityDenominator AS quantityDenominator#1015069, item#1015061.scheduleLines AS scheduleLines#1015070, item#1015061.confirmations AS confirmations#1015071]
(1118) Join
Arguments: Inner, ((product#1014509 <=> product#1015064) AND (plant#1014510 <=> supplierUuid#1015062))
(1119) Project
Arguments: [id#1015056, internalUUID#1015055, supplierUuid#1015062, plant#1015063, product#1015064, storageLocUuid#1015065, quantityUom#1015066, quantityUomUuid#1015067, quantityNumerator#1015068, quantityDenominator#1015069, scheduleLines#1015070, confirmations#1015071, stockDatetime#1014764, plant#1014510]
(1120) Project
Arguments: [id#1015056, internalUUID#1015055, supplierUuid#1015062, product#1015064, storageLocUuid#1015065, quantityUom#1015066, quantityUomUuid#1015067, quantityNumerator#1015068, quantityDenominator#1015069, scheduleLines#1015070, confirmations#1015071, stockDatetime#1014764, plant#1014510]
(1121) Project
Arguments: [id#1015056, internalUUID#1015055, supplierUuid#1015062, product#1015064, storageLocUuid#1015065, quantityUom#1015066, quantityUomUuid#1015067, quantityNumerator#1015068, quantityDenominator#1015069, scheduleLines#1015070, confirmations#1015071, stockDatetime#1014764, plant#1014510, filter(transform(filter(transform(scheduleLines#1015070, lambdafunction(struct(openQty, (greatest((lambda x_154#1014489.quantity - coalesce(lambda x_154#1014489.deliveredQuantity, 0.0)), 0.0) * -1.0), availabilityDatetime, coalesce(lambda x_154#1014489.productAvailabilityDateTime, lambda x_154#1014489.deliveryAt)), lambda x_154#1014489, false)), lambdafunction((lambda x_155#1014490.availabilityDatetime < stockDatetime#1014764), lambda x_155#1014490, false)), lambdafunction(struct(documentId, id#1015056, documentUuid, internalUUID#1015055, openQty, lambda x_156#1014491.openQty, openQtyInBaseUnit, ((lambda x_156#1014491.openQty * quantityNumerator#1015068) / quantityDenominator#1015069), qtyUom, quantityUom#1015066, qtyUomUuid, quantityUomUuid#1015067, availabilityDatetime, lambda x_156#1014491.availabilityDatetime, shelfLifeEndDatetime, 2199-01-01 00:00:00), lambda x_156#1014491, false)), lambdafunction(NOT (lambda x_157#1014492.openQty = 0.0), lambda x_157#1014492, false)) AS openGoodsMovements#1014488]
(1122) Aggregate
Arguments: [product#1015064, plant#1014510], [product#1015064, plant#1014510, flatten(collect_list(openGoodsMovements#1014488, 0, 0)) AS openGoodsMovements#1014493]
(1123) Filter
Arguments: (array_size(openGoodsMovements#1014493) > 0)
(1124) Union
Arguments: false, false
(1125) Aggregate
Arguments: [product#1014349, plant#1014348], [product#1014349, plant#1014348, flatten(collect_list(openGoodsMovements#1014449, 0, 0)) AS openGoodsMovements#1015112]
(1126) Join
Arguments: LeftOuter, ((product#1012489 = product#1014349) AND (plant#1012490 = plant#1014348))
(1127) Project
Arguments: [product#1012489, plant#1012490, orderDateTime#1012491, productPlant#1012526, outboundUnit#1012577, stockDatetime#1012937, stockBatchQuantities#1012938, stockBatchShelfLifeEndDatetimes#1012939, dayBucketDemands#1014055, pointInTimeDemands#1014056, openGoodsMovements#1015112]
(1128) Project
Arguments: [product#1012489, plant#1012490, orderDateTime#1012491, productPlant#1012526, outboundUnit#1012577, stockDatetime#1012937, stockBatchQuantities#1012938, stockBatchShelfLifeEndDatetimes#1012939, dayBucketDemands#1014055, pointInTimeDemands#1014056, coalesce(openGoodsMovements#1015112.openQtyInBaseUnit, cast(array() as array<double>)) AS openGoodsMovementQuantities#1015702, coalesce(openGoodsMovements#1015112.availabilityDatetime, cast(array() as array<timestamp>)) AS openGoodsMovementAvailabilityDatetimes#1015703, coalesce(openGoodsMovements#1015112.shelfLifeEndDatetime, cast(array() as array<timestamp>)) AS openGoodsMovementShelfLifeEndDatetimes#1015704]
(1129) Project
Arguments: [product#1012489, plant#1012490, orderDateTime#1012491, productPlant#1012526, outboundUnit#1012577, stockDatetime#1012937, stockBatchQuantities#1012938, stockBatchShelfLifeEndDatetimes#1012939, dayBucketDemands#1014055, pointInTimeDemands#1014056, openGoodsMovementQuantities#1015702, openGoodsMovementAvailabilityDatetimes#1015703, openGoodsMovementShelfLifeEndDatetimes#1015704, 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#1015995]
(1130) LogicalRelation
Arguments: parquet, [product#1016192, plant#1016193, orderDateTime#1016194, planningStartDateTime#1016195], false
(1131) RepartitionByExpression
Arguments: [product#1016192, plant#1016193], 37
(1132) Project
Arguments: [product#1016192, plant#1016193, orderDateTime#1016194]
(1133) LogicalRelation
Arguments: parquet, [systemId#1016196, internalUUID#1016197, plant#1016198, product#1016199, blockedForReplenishmentStartingFrom#1016200, productionAspect#1016201, salesPlant#1016202, listing#1016203, sourceOfSupplyCategory#1016204], false
(1134) Repartition
Arguments: 37, true
(1135) Project
Arguments: [systemId#1016196, internalUUID#1016197, plant#1016198, product#1016199, blockedForReplenishmentStartingFrom#1016200, productionAspect#1016201, salesPlant#1016202, listing#1016203, sourceOfSupplyCategory#1016204, struct(systemId, systemId#1016196, internalUUID, internalUUID#1016197, plant, plant#1016198, product, product#1016199, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1016200, productionAspect, productionAspect#1016201, salesPlant, salesPlant#1016202, listing, listing#1016203, sourceOfSupplyCategory, sourceOfSupplyCategory#1016204) AS productPlant#1016205]
(1136) Project
Arguments: [productPlant#1016205]
(1137) Join
Arguments: LeftOuter, ((product#1016192 <=> productPlant#1016205.product.internalRefUUID) AND (plant#1016193 <=> productPlant#1016205.plant.internalRefUUID))
(1138) Project
Arguments: [product#1016192, plant#1016193, orderDateTime#1016194, productPlant#1016205]
(1139) LogicalRelation
Arguments: parquet, [systemId#1016206, internalUUID#1016207, id#1016208, displayId#1016209, name#1016210, baseUnitOfMeasure#1016211, unitOfMeasures#1016212, unitOfMeasureConversions#1016213, productionAspect#1016214, salesAspect#1016215, procurementAspect#1016216, productGroup#1016217], false
(1140) Repartition
Arguments: 37, true
(1141) Join
Arguments: LeftOuter, (product#1016192 = internalUUID#1016207)
(1142) Project
Arguments: [product#1016192, plant#1016193, orderDateTime#1016194, productPlant#1016205, systemId#1016206, internalUUID#1016207, id#1016208, displayId#1016209, name#1016210, baseUnitOfMeasure#1016211, unitOfMeasures#1016212, unitOfMeasureConversions#1016213, productionAspect#1016214, salesAspect#1016215, procurementAspect#1016216, productGroup#1016217, filter(unitOfMeasureConversions#1016213, lambdafunction((((lambda u#1012565.measurementUnit1.code = productPlant#1016205.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1012565.measurementUnit1.internalRefUUID = productPlant#1016205.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1012565.measurementUnit2.code = baseUnitOfMeasure#1016211.code) AND (lambda u#1012565.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1016211.internalRefUUID))), lambda u#1012565, false)) AS filteredUnitOfMeasureConversions#1016218]
(1143) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1016218.quantityNumerator), true, [quantityNumerator#1016219]
(1144) Project
Arguments: [product#1016192, plant#1016193, orderDateTime#1016194, productPlant#1016205, systemId#1016206, internalUUID#1016207, id#1016208, displayId#1016209, name#1016210, baseUnitOfMeasure#1016211, unitOfMeasures#1016212, unitOfMeasureConversions#1016213, productionAspect#1016214, salesAspect#1016215, procurementAspect#1016216, productGroup#1016217, filteredUnitOfMeasureConversions#1016218, quantityNumerator#1016219]
(1145) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1016218.quantityDenominator), true, [quantityDenominator#1016220]
(1146) Project
Arguments: [product#1016192, plant#1016193, orderDateTime#1016194, productPlant#1016205, systemId#1016206, internalUUID#1016207, id#1016208, displayId#1016209, name#1016210, baseUnitOfMeasure#1016211, unitOfMeasures#1016212, unitOfMeasureConversions#1016213, productionAspect#1016214, salesAspect#1016215, procurementAspect#1016216, productGroup#1016217, filteredUnitOfMeasureConversions#1016218, quantityNumerator#1016219, quantityDenominator#1016220]
(1147) Project
Arguments: [product#1016192, plant#1016193, orderDateTime#1016194, productPlant#1016205, systemId#1016206, internalUUID#1016207, id#1016208, displayId#1016209, name#1016210, baseUnitOfMeasure#1016211, unitOfMeasures#1016212, unitOfMeasureConversions#1016213, productionAspect#1016214, salesAspect#1016215, procurementAspect#1016216, productGroup#1016217, filteredUnitOfMeasureConversions#1016218, quantityNumerator#1016219, quantityDenominator#1016220, (cast(quantityNumerator#1016219 as double) / cast(quantityDenominator#1016220 as double)) AS outboundUnit#1016221]
(1148) Project
Arguments: [product#1016192, plant#1016193, orderDateTime#1016194, productPlant#1016205, systemId#1016206, internalUUID#1016207, id#1016208, displayId#1016209, name#1016210, baseUnitOfMeasure#1016211, unitOfMeasures#1016212, unitOfMeasureConversions#1016213, productionAspect#1016214, salesAspect#1016215, procurementAspect#1016216, productGroup#1016217, filteredUnitOfMeasureConversions#1016218, quantityNumerator#1016219, quantityDenominator#1016220, CASE WHEN (isnull(outboundUnit#1016221) OR (outboundUnit#1016221 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1016221 END AS outboundUnit#1016222]
(1149) Project
Arguments: [product#1016192, plant#1016193, orderDateTime#1016194, productPlant#1016205, outboundUnit#1016222]
(1150) LogicalRelation
Arguments: parquet, [systemId#1016223, internalUUID#1016224, product#1016225, plant#1016226, calculationDateTime#1016227, stockQuantities#1016228], false
(1151) Repartition
Arguments: 37, true
(1152) LogicalRelation
Arguments: parquet, [marketUnit#1016229, description#1016230, articleHierarchy#1016231, defaultCurrency#1016232, responsibilities#1016233, replenishmentTypes#1016234, distributionCenters#1016235, assignedArticleHierarchyNodes#1016236, minOrderQtySetting#1016237, listingCheck#1016238, odsSelection#1016239, demandProfiles#1016240, constraintProfiles#1016241, optimizationProfiles#1016242, orderGroupSplitProfiles#1016243, supplierMinimumProfiles#1016244, multipleRestrictionProfiles#1016245, preferredUomSource#1016246, handlingOfUnfulfilledDemands#1016247, negligibleQuantitiesThreshold#1016248, eventtype#1016249], false
(1153) Repartition
Arguments: 37, true
(1154) Filter
Arguments: (marketUnit#1016229 <=> STEPHI_MU)
(1155) Project
Arguments: [marketUnit#1016229, description#1016230, articleHierarchy#1016231, defaultCurrency#1016232, responsibilities#1016233, replenishmentTypes#1016234, distributionCenters#1016235, assignedArticleHierarchyNodes#1016236, minOrderQtySetting#1016237, listingCheck#1016238, odsSelection#1016239, demandProfiles#1016240, constraintProfiles#1016241, optimizationProfiles#1016242, orderGroupSplitProfiles#1016243, supplierMinimumProfiles#1016244, multipleRestrictionProfiles#1016245, preferredUomSource#1016246, handlingOfUnfulfilledDemands#1016247, negligibleQuantitiesThreshold#1016248, eventtype#1016249]
(1156) Project
Arguments: [distributionCenters#1016235]
(1157) Generate
Arguments: explode(distributionCenters#1016235), false, [distributionCenters#1016250]
(1158) Project
Arguments: [distributionCenters#1016250]
(1159) Generate
Arguments: explode(distributionCenters#1016250.storageLocations), false, [storageLocations#1016251]
(1160) Project
Arguments: [distributionCenters#1016250.id AS plantId#1016252, distributionCenters#1016250.internalRefUUID AS plantUuid#1016253, storageLocations#1016251]
(1161) Project
Arguments: [plantId#1016252, plantUuid#1016253, storageLocations#1016251.id AS storageLocId#1016254, storageLocations#1016251.internalRefUUID AS storageLocUuid#1016255]
(1162) LogicalRelation
Arguments: parquet, [product#1016256, plant#1016257, orderDateTime#1016258, planningStartDateTime#1016259], false
(1163) RepartitionByExpression
Arguments: [product#1016256, plant#1016257], 37
(1164) Project
Arguments: [product#1016256, plant#1016257, orderDateTime#1016258]
(1165) LogicalRelation
Arguments: parquet, [systemId#1016260, internalUUID#1016261, plant#1016262, product#1016263, blockedForReplenishmentStartingFrom#1016264, productionAspect#1016265, salesPlant#1016266, listing#1016267, sourceOfSupplyCategory#1016268], false
(1166) Repartition
Arguments: 37, true
(1167) Project
Arguments: [systemId#1016260, internalUUID#1016261, plant#1016262, product#1016263, blockedForReplenishmentStartingFrom#1016264, productionAspect#1016265, salesPlant#1016266, listing#1016267, sourceOfSupplyCategory#1016268, struct(systemId, systemId#1016260, internalUUID, internalUUID#1016261, plant, plant#1016262, product, product#1016263, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1016264, productionAspect, productionAspect#1016265, salesPlant, salesPlant#1016266, listing, listing#1016267, sourceOfSupplyCategory, sourceOfSupplyCategory#1016268) AS productPlant#1016269]
(1168) Project
Arguments: [productPlant#1016269]
(1169) Join
Arguments: LeftOuter, ((product#1016256 <=> productPlant#1016269.product.internalRefUUID) AND (plant#1016257 <=> productPlant#1016269.plant.internalRefUUID))
(1170) Project
Arguments: [product#1016256, plant#1016257, orderDateTime#1016258, productPlant#1016269]
(1171) LogicalRelation
Arguments: parquet, [systemId#1016270, internalUUID#1016271, id#1016272, displayId#1016273, name#1016274, baseUnitOfMeasure#1016275, unitOfMeasures#1016276, unitOfMeasureConversions#1016277, productionAspect#1016278, salesAspect#1016279, procurementAspect#1016280, productGroup#1016281], false
(1172) Repartition
Arguments: 37, true
(1173) Join
Arguments: LeftOuter, (product#1016256 = internalUUID#1016271)
(1174) Project
Arguments: [product#1016256, plant#1016257, orderDateTime#1016258, productPlant#1016269, systemId#1016270, internalUUID#1016271, id#1016272, displayId#1016273, name#1016274, baseUnitOfMeasure#1016275, unitOfMeasures#1016276, unitOfMeasureConversions#1016277, productionAspect#1016278, salesAspect#1016279, procurementAspect#1016280, productGroup#1016281, filter(unitOfMeasureConversions#1016277, lambdafunction((((lambda u#1012565.measurementUnit1.code = productPlant#1016269.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1012565.measurementUnit1.internalRefUUID = productPlant#1016269.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1012565.measurementUnit2.code = baseUnitOfMeasure#1016275.code) AND (lambda u#1012565.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1016275.internalRefUUID))), lambda u#1012565, false)) AS filteredUnitOfMeasureConversions#1016282]
(1175) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1016282.quantityNumerator), true, [quantityNumerator#1016283]
(1176) Project
Arguments: [product#1016256, plant#1016257, orderDateTime#1016258, productPlant#1016269, systemId#1016270, internalUUID#1016271, id#1016272, displayId#1016273, name#1016274, baseUnitOfMeasure#1016275, unitOfMeasures#1016276, unitOfMeasureConversions#1016277, productionAspect#1016278, salesAspect#1016279, procurementAspect#1016280, productGroup#1016281, filteredUnitOfMeasureConversions#1016282, quantityNumerator#1016283]
(1177) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1016282.quantityDenominator), true, [quantityDenominator#1016284]
(1178) Project
Arguments: [product#1016256, plant#1016257, orderDateTime#1016258, productPlant#1016269, systemId#1016270, internalUUID#1016271, id#1016272, displayId#1016273, name#1016274, baseUnitOfMeasure#1016275, unitOfMeasures#1016276, unitOfMeasureConversions#1016277, productionAspect#1016278, salesAspect#1016279, procurementAspect#1016280, productGroup#1016281, filteredUnitOfMeasureConversions#1016282, quantityNumerator#1016283, quantityDenominator#1016284]
(1179) Project
Arguments: [product#1016256, plant#1016257, orderDateTime#1016258, productPlant#1016269, systemId#1016270, internalUUID#1016271, id#1016272, displayId#1016273, name#1016274, baseUnitOfMeasure#1016275, unitOfMeasures#1016276, unitOfMeasureConversions#1016277, productionAspect#1016278, salesAspect#1016279, procurementAspect#1016280, productGroup#1016281, filteredUnitOfMeasureConversions#1016282, quantityNumerator#1016283, quantityDenominator#1016284, (cast(quantityNumerator#1016283 as double) / cast(quantityDenominator#1016284 as double)) AS outboundUnit#1016285]
(1180) Project
Arguments: [product#1016256, plant#1016257, orderDateTime#1016258, productPlant#1016269, systemId#1016270, internalUUID#1016271, id#1016272, displayId#1016273, name#1016274, baseUnitOfMeasure#1016275, unitOfMeasures#1016276, unitOfMeasureConversions#1016277, productionAspect#1016278, salesAspect#1016279, procurementAspect#1016280, productGroup#1016281, filteredUnitOfMeasureConversions#1016282, quantityNumerator#1016283, quantityDenominator#1016284, CASE WHEN (isnull(outboundUnit#1016285) OR (outboundUnit#1016285 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1016285 END AS outboundUnit#1016286]
(1181) Project
Arguments: [product#1016256, plant#1016257, orderDateTime#1016258, productPlant#1016269, outboundUnit#1016286]
(1182) Project
Arguments: [plant#1016257]
(1183) Deduplicate
Arguments: [plant#1016257]
(1184) Join
Arguments: Inner, (plantUuid#1016253 = plant#1016257)
(1185) Project
Arguments: [plantId#1016252, plantUuid#1016253, storageLocId#1016254, storageLocUuid#1016255]
(1186) Join
Arguments: Inner, (plant#1016226.internalRefUUID <=> plantUuid#1016253)
(1187) Generate
Arguments: explode(filter(stockQuantities#1016228, lambdafunction(((lambda x#1012695.storageLocation.internalRefUuid = storageLocUuid#1016255) AND (lambda x#1012695.storageLocation.Id = storageLocId#1016254)), lambda x#1012695, false))), false, [stockQuantity#1016287]
(1188) Project
Arguments: [systemId#1016223, internalUUID#1016224, product#1016225, plant#1016226, calculationDateTime#1016227, stockQuantities#1016228, plantId#1016252, plantUuid#1016253, storageLocId#1016254, storageLocUuid#1016255, stockQuantity#1016287]
(1189) Aggregate
Arguments: [plantUuid#1016253, internalUUID#1016224, plant#1016226, product#1016225, systemId#1016223], [plantUuid#1016253, internalUUID#1016224, plant#1016226, product#1016225, systemId#1016223, first(calculationDateTime#1016227, false) AS calculationDateTime#1016288, collect_list(stockQuantity#1016287, 0, 0) AS stockQuantities#1016289]
(1190) Project
Arguments: [systemId#1016223, internalUUID#1016224, product#1016225, plant#1016226, calculationDateTime#1016288, stockQuantities#1016289]
(1191) Generate
Arguments: explode(stockQuantities#1016289), false, [stockQuantity#1016290]
(1192) Project
Arguments: [systemId#1016223, internalUUID#1016224, product#1016225, plant#1016226, calculationDateTime#1016288, stockQuantities#1016289, stockQuantity#1016290]
(1193) Project
Arguments: [plant#1016226.id AS plant#1016291, plant#1016226.internalRefUUID AS plantUuid#1016292, product#1016225.id AS product#1016293, product#1016225.internalRefUUID AS productUuid#1016294, calculationDateTime#1016288, stockQuantity#1016290.storagelocation.id AS storageLocId#1016295, stockQuantity#1016290.storagelocation.internalRefUUID AS storageLocUuid#1016296, stockQuantity#1016290.quantity.measure AS quantity#1016297, stockQuantity#1016290.specialStockIndicator.code AS specialStockIndicator#1016298, stockQuantity#1016290.stockType.code AS stockType#1016299]
(1194) Filter
Arguments: ((specialStockIndicator#1016298 = ) AND (stockType#1016299 = 01))
(1195) LogicalRelation
Arguments: parquet, [product#1016300, plant#1016301, orderDateTime#1016302, planningStartDateTime#1016303], false
(1196) RepartitionByExpression
Arguments: [product#1016300, plant#1016301], 37
(1197) Project
Arguments: [product#1016300, plant#1016301, orderDateTime#1016302]
(1198) LogicalRelation
Arguments: parquet, [systemId#1016304, internalUUID#1016305, plant#1016306, product#1016307, blockedForReplenishmentStartingFrom#1016308, productionAspect#1016309, salesPlant#1016310, listing#1016311, sourceOfSupplyCategory#1016312], false
(1199) Repartition
Arguments: 37, true
(1200) Project
Arguments: [systemId#1016304, internalUUID#1016305, plant#1016306, product#1016307, blockedForReplenishmentStartingFrom#1016308, productionAspect#1016309, salesPlant#1016310, listing#1016311, sourceOfSupplyCategory#1016312, struct(systemId, systemId#1016304, internalUUID, internalUUID#1016305, plant, plant#1016306, product, product#1016307, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1016308, productionAspect, productionAspect#1016309, salesPlant, salesPlant#1016310, listing, listing#1016311, sourceOfSupplyCategory, sourceOfSupplyCategory#1016312) AS productPlant#1016313]
(1201) Project
Arguments: [productPlant#1016313]
(1202) Join
Arguments: LeftOuter, ((product#1016300 <=> productPlant#1016313.product.internalRefUUID) AND (plant#1016301 <=> productPlant#1016313.plant.internalRefUUID))
(1203) Project
Arguments: [product#1016300, plant#1016301, orderDateTime#1016302, productPlant#1016313]
(1204) LogicalRelation
Arguments: parquet, [systemId#1016314, internalUUID#1016315, id#1016316, displayId#1016317, name#1016318, baseUnitOfMeasure#1016319, unitOfMeasures#1016320, unitOfMeasureConversions#1016321, productionAspect#1016322, salesAspect#1016323, procurementAspect#1016324, productGroup#1016325], false
(1205) Repartition
Arguments: 37, true
(1206) Join
Arguments: LeftOuter, (product#1016300 = internalUUID#1016315)
(1207) Project
Arguments: [product#1016300, plant#1016301, orderDateTime#1016302, productPlant#1016313, systemId#1016314, internalUUID#1016315, id#1016316, displayId#1016317, name#1016318, baseUnitOfMeasure#1016319, unitOfMeasures#1016320, unitOfMeasureConversions#1016321, productionAspect#1016322, salesAspect#1016323, procurementAspect#1016324, productGroup#1016325, filter(unitOfMeasureConversions#1016321, lambdafunction((((lambda u#1012565.measurementUnit1.code = productPlant#1016313.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1012565.measurementUnit1.internalRefUUID = productPlant#1016313.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1012565.measurementUnit2.code = baseUnitOfMeasure#1016319.code) AND (lambda u#1012565.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1016319.internalRefUUID))), lambda u#1012565, false)) AS filteredUnitOfMeasureConversions#1016326]
(1208) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1016326.quantityNumerator), true, [quantityNumerator#1016327]
(1209) Project
Arguments: [product#1016300, plant#1016301, orderDateTime#1016302, productPlant#1016313, systemId#1016314, internalUUID#1016315, id#1016316, displayId#1016317, name#1016318, baseUnitOfMeasure#1016319, unitOfMeasures#1016320, unitOfMeasureConversions#1016321, productionAspect#1016322, salesAspect#1016323, procurementAspect#1016324, productGroup#1016325, filteredUnitOfMeasureConversions#1016326, quantityNumerator#1016327]
(1210) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1016326.quantityDenominator), true, [quantityDenominator#1016328]
(1211) Project
Arguments: [product#1016300, plant#1016301, orderDateTime#1016302, productPlant#1016313, systemId#1016314, internalUUID#1016315, id#1016316, displayId#1016317, name#1016318, baseUnitOfMeasure#1016319, unitOfMeasures#1016320, unitOfMeasureConversions#1016321, productionAspect#1016322, salesAspect#1016323, procurementAspect#1016324, productGroup#1016325, filteredUnitOfMeasureConversions#1016326, quantityNumerator#1016327, quantityDenominator#1016328]
(1212) Project
Arguments: [product#1016300, plant#1016301, orderDateTime#1016302, productPlant#1016313, systemId#1016314, internalUUID#1016315, id#1016316, displayId#1016317, name#1016318, baseUnitOfMeasure#1016319, unitOfMeasures#1016320, unitOfMeasureConversions#1016321, productionAspect#1016322, salesAspect#1016323, procurementAspect#1016324, productGroup#1016325, filteredUnitOfMeasureConversions#1016326, quantityNumerator#1016327, quantityDenominator#1016328, (cast(quantityNumerator#1016327 as double) / cast(quantityDenominator#1016328 as double)) AS outboundUnit#1016329]
(1213) Project
Arguments: [product#1016300, plant#1016301, orderDateTime#1016302, productPlant#1016313, systemId#1016314, internalUUID#1016315, id#1016316, displayId#1016317, name#1016318, baseUnitOfMeasure#1016319, unitOfMeasures#1016320, unitOfMeasureConversions#1016321, productionAspect#1016322, salesAspect#1016323, procurementAspect#1016324, productGroup#1016325, filteredUnitOfMeasureConversions#1016326, quantityNumerator#1016327, quantityDenominator#1016328, CASE WHEN (isnull(outboundUnit#1016329) OR (outboundUnit#1016329 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1016329 END AS outboundUnit#1016330]
(1214) Project
Arguments: [product#1016300, plant#1016301, orderDateTime#1016302, productPlant#1016313, outboundUnit#1016330]
(1215) Join
Arguments: Inner, ((plantUuid#1016292 = plant#1016301) AND (productUuid#1016294 = product#1016300))
(1216) Filter
Arguments: (calculationDateTime#1016288 <= orderDateTime#1016302)
(1217) Project
Arguments: [plantUuid#1016292 AS plant#1016331, productUuid#1016294 AS product#1016332, storageLocId#1016295, calculationDateTime#1016288, quantity#1016297]
(1218) LogicalRelation
Arguments: parquet, [systemId#1016333, internalUUID#1016334, product#1016335, plant#1016336, calculationDateTime#1016337, stockQuantities#1016338], false
(1219) Repartition
Arguments: 37, true
(1220) LogicalRelation
Arguments: parquet, [marketUnit#1016339, description#1016340, articleHierarchy#1016341, defaultCurrency#1016342, responsibilities#1016343, replenishmentTypes#1016344, distributionCenters#1016345, assignedArticleHierarchyNodes#1016346, minOrderQtySetting#1016347, listingCheck#1016348, odsSelection#1016349, demandProfiles#1016350, constraintProfiles#1016351, optimizationProfiles#1016352, orderGroupSplitProfiles#1016353, supplierMinimumProfiles#1016354, multipleRestrictionProfiles#1016355, preferredUomSource#1016356, handlingOfUnfulfilledDemands#1016357, negligibleQuantitiesThreshold#1016358, eventtype#1016359], false
(1221) Repartition
Arguments: 37, true
(1222) Filter
Arguments: (marketUnit#1016339 <=> STEPHI_MU)
(1223) Project
Arguments: [marketUnit#1016339, description#1016340, articleHierarchy#1016341, defaultCurrency#1016342, responsibilities#1016343, replenishmentTypes#1016344, distributionCenters#1016345, assignedArticleHierarchyNodes#1016346, minOrderQtySetting#1016347, listingCheck#1016348, odsSelection#1016349, demandProfiles#1016350, constraintProfiles#1016351, optimizationProfiles#1016352, orderGroupSplitProfiles#1016353, supplierMinimumProfiles#1016354, multipleRestrictionProfiles#1016355, preferredUomSource#1016356, handlingOfUnfulfilledDemands#1016357, negligibleQuantitiesThreshold#1016358, eventtype#1016359]
(1224) Project
Arguments: [distributionCenters#1016345]
(1225) Generate
Arguments: explode(distributionCenters#1016345), false, [distributionCenters#1016360]
(1226) Project
Arguments: [distributionCenters#1016360]
(1227) Generate
Arguments: explode(distributionCenters#1016360.storageLocations), false, [storageLocations#1016361]
(1228) Project
Arguments: [distributionCenters#1016360.id AS plantId#1016362, distributionCenters#1016360.internalRefUUID AS plantUuid#1016363, storageLocations#1016361]
(1229) Project
Arguments: [plantId#1016362, plantUuid#1016363, storageLocations#1016361.id AS storageLocId#1016364, storageLocations#1016361.internalRefUUID AS storageLocUuid#1016365]
(1230) LogicalRelation
Arguments: parquet, [product#1016366, plant#1016367, orderDateTime#1016368, planningStartDateTime#1016369], false
(1231) RepartitionByExpression
Arguments: [product#1016366, plant#1016367], 37
(1232) Project
Arguments: [product#1016366, plant#1016367, orderDateTime#1016368]
(1233) LogicalRelation
Arguments: parquet, [systemId#1016370, internalUUID#1016371, plant#1016372, product#1016373, blockedForReplenishmentStartingFrom#1016374, productionAspect#1016375, salesPlant#1016376, listing#1016377, sourceOfSupplyCategory#1016378], false
(1234) Repartition
Arguments: 37, true
(1235) Project
Arguments: [systemId#1016370, internalUUID#1016371, plant#1016372, product#1016373, blockedForReplenishmentStartingFrom#1016374, productionAspect#1016375, salesPlant#1016376, listing#1016377, sourceOfSupplyCategory#1016378, struct(systemId, systemId#1016370, internalUUID, internalUUID#1016371, plant, plant#1016372, product, product#1016373, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1016374, productionAspect, productionAspect#1016375, salesPlant, salesPlant#1016376, listing, listing#1016377, sourceOfSupplyCategory, sourceOfSupplyCategory#1016378) AS productPlant#1016379]
(1236) Project
Arguments: [productPlant#1016379]
(1237) Join
Arguments: LeftOuter, ((product#1016366 <=> productPlant#1016379.product.internalRefUUID) AND (plant#1016367 <=> productPlant#1016379.plant.internalRefUUID))
(1238) Project
Arguments: [product#1016366, plant#1016367, orderDateTime#1016368, productPlant#1016379]
(1239) LogicalRelation
Arguments: parquet, [systemId#1016380, internalUUID#1016381, id#1016382, displayId#1016383, name#1016384, baseUnitOfMeasure#1016385, unitOfMeasures#1016386, unitOfMeasureConversions#1016387, productionAspect#1016388, salesAspect#1016389, procurementAspect#1016390, productGroup#1016391], false
(1240) Repartition
Arguments: 37, true
(1241) Join
Arguments: LeftOuter, (product#1016366 = internalUUID#1016381)
(1242) Project
Arguments: [product#1016366, plant#1016367, orderDateTime#1016368, productPlant#1016379, systemId#1016380, internalUUID#1016381, id#1016382, displayId#1016383, name#1016384, baseUnitOfMeasure#1016385, unitOfMeasures#1016386, unitOfMeasureConversions#1016387, productionAspect#1016388, salesAspect#1016389, procurementAspect#1016390, productGroup#1016391, filter(unitOfMeasureConversions#1016387, lambdafunction((((lambda u#1012565.measurementUnit1.code = productPlant#1016379.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1012565.measurementUnit1.internalRefUUID = productPlant#1016379.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1012565.measurementUnit2.code = baseUnitOfMeasure#1016385.code) AND (lambda u#1012565.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1016385.internalRefUUID))), lambda u#1012565, false)) AS filteredUnitOfMeasureConversions#1016392]
(1243) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1016392.quantityNumerator), true, [quantityNumerator#1016393]
(1244) Project
Arguments: [product#1016366, plant#1016367, orderDateTime#1016368, productPlant#1016379, systemId#1016380, internalUUID#1016381, id#1016382, displayId#1016383, name#1016384, baseUnitOfMeasure#1016385, unitOfMeasures#1016386, unitOfMeasureConversions#1016387, productionAspect#1016388, salesAspect#1016389, procurementAspect#1016390, productGroup#1016391, filteredUnitOfMeasureConversions#1016392, quantityNumerator#1016393]
(1245) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1016392.quantityDenominator), true, [quantityDenominator#1016394]
(1246) Project
Arguments: [product#1016366, plant#1016367, orderDateTime#1016368, productPlant#1016379, systemId#1016380, internalUUID#1016381, id#1016382, displayId#1016383, name#1016384, baseUnitOfMeasure#1016385, unitOfMeasures#1016386, unitOfMeasureConversions#1016387, productionAspect#1016388, salesAspect#1016389, procurementAspect#1016390, productGroup#1016391, filteredUnitOfMeasureConversions#1016392, quantityNumerator#1016393, quantityDenominator#1016394]
(1247) Project
Arguments: [product#1016366, plant#1016367, orderDateTime#1016368, productPlant#1016379, systemId#1016380, internalUUID#1016381, id#1016382, displayId#1016383, name#1016384, baseUnitOfMeasure#1016385, unitOfMeasures#1016386, unitOfMeasureConversions#1016387, productionAspect#1016388, salesAspect#1016389, procurementAspect#1016390, productGroup#1016391, filteredUnitOfMeasureConversions#1016392, quantityNumerator#1016393, quantityDenominator#1016394, (cast(quantityNumerator#1016393 as double) / cast(quantityDenominator#1016394 as double)) AS outboundUnit#1016395]
(1248) Project
Arguments: [product#1016366, plant#1016367, orderDateTime#1016368, productPlant#1016379, systemId#1016380, internalUUID#1016381, id#1016382, displayId#1016383, name#1016384, baseUnitOfMeasure#1016385, unitOfMeasures#1016386, unitOfMeasureConversions#1016387, productionAspect#1016388, salesAspect#1016389, procurementAspect#1016390, productGroup#1016391, filteredUnitOfMeasureConversions#1016392, quantityNumerator#1016393, quantityDenominator#1016394, CASE WHEN (isnull(outboundUnit#1016395) OR (outboundUnit#1016395 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1016395 END AS outboundUnit#1016396]
(1249) Project
Arguments: [product#1016366, plant#1016367, orderDateTime#1016368, productPlant#1016379, outboundUnit#1016396]
(1250) Project
Arguments: [plant#1016367]
(1251) Deduplicate
Arguments: [plant#1016367]
(1252) Join
Arguments: Inner, (plantUuid#1016363 = plant#1016367)
(1253) Project
Arguments: [plantId#1016362, plantUuid#1016363, storageLocId#1016364, storageLocUuid#1016365]
(1254) Join
Arguments: Inner, (plant#1016336.internalRefUUID <=> plantUuid#1016363)
(1255) Generate
Arguments: explode(filter(stockQuantities#1016338, lambdafunction(((lambda x#1012695.storageLocation.internalRefUuid = storageLocUuid#1016365) AND (lambda x#1012695.storageLocation.Id = storageLocId#1016364)), lambda x#1012695, false))), false, [stockQuantity#1016397]
(1256) Project
Arguments: [systemId#1016333, internalUUID#1016334, product#1016335, plant#1016336, calculationDateTime#1016337, stockQuantities#1016338, plantId#1016362, plantUuid#1016363, storageLocId#1016364, storageLocUuid#1016365, stockQuantity#1016397]
(1257) Aggregate
Arguments: [plantUuid#1016363, internalUUID#1016334, plant#1016336, product#1016335, systemId#1016333], [plantUuid#1016363, internalUUID#1016334, plant#1016336, product#1016335, systemId#1016333, first(calculationDateTime#1016337, false) AS calculationDateTime#1016398, collect_list(stockQuantity#1016397, 0, 0) AS stockQuantities#1016399]
(1258) Project
Arguments: [systemId#1016333, internalUUID#1016334, product#1016335, plant#1016336, calculationDateTime#1016398, stockQuantities#1016399]
(1259) Generate
Arguments: explode(stockQuantities#1016399), false, [stockQuantity#1016400]
(1260) Project
Arguments: [systemId#1016333, internalUUID#1016334, product#1016335, plant#1016336, calculationDateTime#1016398, stockQuantities#1016399, stockQuantity#1016400]
(1261) Project
Arguments: [plant#1016336.id AS plant#1016401, plant#1016336.internalRefUUID AS plantUuid#1016402, product#1016335.id AS product#1016403, product#1016335.internalRefUUID AS productUuid#1016404, calculationDateTime#1016398, stockQuantity#1016400.storagelocation.id AS storageLocId#1016405, stockQuantity#1016400.storagelocation.internalRefUUID AS storageLocUuid#1016406, stockQuantity#1016400.quantity.measure AS quantity#1016407, stockQuantity#1016400.specialStockIndicator.code AS specialStockIndicator#1016408, stockQuantity#1016400.stockType.code AS stockType#1016409]
(1262) Filter
Arguments: ((specialStockIndicator#1016408 = ) AND (stockType#1016409 = 01))
(1263) LogicalRelation
Arguments: parquet, [product#1016410, plant#1016411, orderDateTime#1016412, planningStartDateTime#1016413], false
(1264) RepartitionByExpression
Arguments: [product#1016410, plant#1016411], 37
(1265) Project
Arguments: [product#1016410, plant#1016411, orderDateTime#1016412]
(1266) LogicalRelation
Arguments: parquet, [systemId#1016414, internalUUID#1016415, plant#1016416, product#1016417, blockedForReplenishmentStartingFrom#1016418, productionAspect#1016419, salesPlant#1016420, listing#1016421, sourceOfSupplyCategory#1016422], false
(1267) Repartition
Arguments: 37, true
(1268) Project
Arguments: [systemId#1016414, internalUUID#1016415, plant#1016416, product#1016417, blockedForReplenishmentStartingFrom#1016418, productionAspect#1016419, salesPlant#1016420, listing#1016421, sourceOfSupplyCategory#1016422, struct(systemId, systemId#1016414, internalUUID, internalUUID#1016415, plant, plant#1016416, product, product#1016417, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1016418, productionAspect, productionAspect#1016419, salesPlant, salesPlant#1016420, listing, listing#1016421, sourceOfSupplyCategory, sourceOfSupplyCategory#1016422) AS productPlant#1016423]
(1269) Project
Arguments: [productPlant#1016423]
(1270) Join
Arguments: LeftOuter, ((product#1016410 <=> productPlant#1016423.product.internalRefUUID) AND (plant#1016411 <=> productPlant#1016423.plant.internalRefUUID))
(1271) Project
Arguments: [product#1016410, plant#1016411, orderDateTime#1016412, productPlant#1016423]
(1272) LogicalRelation
Arguments: parquet, [systemId#1016424, internalUUID#1016425, id#1016426, displayId#1016427, name#1016428, baseUnitOfMeasure#1016429, unitOfMeasures#1016430, unitOfMeasureConversions#1016431, productionAspect#1016432, salesAspect#1016433, procurementAspect#1016434, productGroup#1016435], false
(1273) Repartition
Arguments: 37, true
(1274) Join
Arguments: LeftOuter, (product#1016410 = internalUUID#1016425)
(1275) Project
Arguments: [product#1016410, plant#1016411, orderDateTime#1016412, productPlant#1016423, systemId#1016424, internalUUID#1016425, id#1016426, displayId#1016427, name#1016428, baseUnitOfMeasure#1016429, unitOfMeasures#1016430, unitOfMeasureConversions#1016431, productionAspect#1016432, salesAspect#1016433, procurementAspect#1016434, productGroup#1016435, filter(unitOfMeasureConversions#1016431, lambdafunction((((lambda u#1012565.measurementUnit1.code = productPlant#1016423.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1012565.measurementUnit1.internalRefUUID = productPlant#1016423.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1012565.measurementUnit2.code = baseUnitOfMeasure#1016429.code) AND (lambda u#1012565.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1016429.internalRefUUID))), lambda u#1012565, false)) AS filteredUnitOfMeasureConversions#1016436]
(1276) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1016436.quantityNumerator), true, [quantityNumerator#1016437]
(1277) Project
Arguments: [product#1016410, plant#1016411, orderDateTime#1016412, productPlant#1016423, systemId#1016424, internalUUID#1016425, id#1016426, displayId#1016427, name#1016428, baseUnitOfMeasure#1016429, unitOfMeasures#1016430, unitOfMeasureConversions#1016431, productionAspect#1016432, salesAspect#1016433, procurementAspect#1016434, productGroup#1016435, filteredUnitOfMeasureConversions#1016436, quantityNumerator#1016437]
(1278) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1016436.quantityDenominator), true, [quantityDenominator#1016438]
(1279) Project
Arguments: [product#1016410, plant#1016411, orderDateTime#1016412, productPlant#1016423, systemId#1016424, internalUUID#1016425, id#1016426, displayId#1016427, name#1016428, baseUnitOfMeasure#1016429, unitOfMeasures#1016430, unitOfMeasureConversions#1016431, productionAspect#1016432, salesAspect#1016433, procurementAspect#1016434, productGroup#1016435, filteredUnitOfMeasureConversions#1016436, quantityNumerator#1016437, quantityDenominator#1016438]
(1280) Project
Arguments: [product#1016410, plant#1016411, orderDateTime#1016412, productPlant#1016423, systemId#1016424, internalUUID#1016425, id#1016426, displayId#1016427, name#1016428, baseUnitOfMeasure#1016429, unitOfMeasures#1016430, unitOfMeasureConversions#1016431, productionAspect#1016432, salesAspect#1016433, procurementAspect#1016434, productGroup#1016435, filteredUnitOfMeasureConversions#1016436, quantityNumerator#1016437, quantityDenominator#1016438, (cast(quantityNumerator#1016437 as double) / cast(quantityDenominator#1016438 as double)) AS outboundUnit#1016439]
(1281) Project
Arguments: [product#1016410, plant#1016411, orderDateTime#1016412, productPlant#1016423, systemId#1016424, internalUUID#1016425, id#1016426, displayId#1016427, name#1016428, baseUnitOfMeasure#1016429, unitOfMeasures#1016430, unitOfMeasureConversions#1016431, productionAspect#1016432, salesAspect#1016433, procurementAspect#1016434, productGroup#1016435, filteredUnitOfMeasureConversions#1016436, quantityNumerator#1016437, quantityDenominator#1016438, CASE WHEN (isnull(outboundUnit#1016439) OR (outboundUnit#1016439 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1016439 END AS outboundUnit#1016440]
(1282) Project
Arguments: [product#1016410, plant#1016411, orderDateTime#1016412, productPlant#1016423, outboundUnit#1016440]
(1283) Join
Arguments: Inner, ((plantUuid#1016402 = plant#1016411) AND (productUuid#1016404 = product#1016410))
(1284) Filter
Arguments: (calculationDateTime#1016398 <= orderDateTime#1016412)
(1285) Project
Arguments: [plantUuid#1016402 AS plant#1016441, productUuid#1016404 AS product#1016442, storageLocId#1016405, calculationDateTime#1016398, quantity#1016407]
(1286) Aggregate
Arguments: [plant#1016441, product#1016442, storageLocId#1016405], [plant#1016441, product#1016442, storageLocId#1016405, max(calculationDateTime#1016398) AS max_calc_datetime#1016443]
(1287) Join
Arguments: Inner, ((((plant#1016331 <=> plant#1016441) AND (product#1016332 <=> product#1016442)) AND (storageLocId#1016295 <=> storageLocId#1016405)) AND (calculationDateTime#1016288 <=> max_calc_datetime#1016443))
(1288) Project
Arguments: [plant#1016331, product#1016332, storageLocId#1016295, calculationDateTime#1016288, quantity#1016297]
(1289) Aggregate
Arguments: [product#1016332, plant#1016331], [product#1016332, plant#1016331, sum(quantity#1016297) AS quantitySum#1016444, min(calculationDateTime#1016288) AS minCalculationDateTime#1016445]
(1290) Project
Arguments: [product#1016332, plant#1016331, quantitySum#1016444, minCalculationDateTime#1016445, round(quantitySum#1016444, 0) AS roundedQuantitySum#1016446]
(1291) Join
Arguments: LeftOuter, ((plant#1016193 = plant#1016331) AND (product#1016192 = product#1016332))
(1292) Project
Arguments: [product#1016192, plant#1016193, orderDateTime#1016194, productPlant#1016205, outboundUnit#1016222, roundedQuantitySum#1016446, minCalculationDateTime#1016445]
(1293) Project
Arguments: [product#1016192, plant#1016193, orderDateTime#1016194, productPlant#1016205, outboundUnit#1016222, roundedQuantitySum#1016446, minCalculationDateTime#1016445, CASE WHEN isnotnull(minCalculationDateTime#1016445) THEN minCalculationDateTime#1016445 ELSE orderDateTime#1016194 END AS stockDatetime#1016447]
(1294) Project
Arguments: [product#1016192, plant#1016193, orderDateTime#1016194, productPlant#1016205, outboundUnit#1016222, roundedQuantitySum#1016446, minCalculationDateTime#1016445, stockDatetime#1016447, CASE WHEN isnotnull(roundedQuantitySum#1016446) THEN array(roundedQuantitySum#1016446) ELSE array(0.0) END AS stockBatchQuantities#1016448]
(1295) Project
Arguments: [product#1016192, plant#1016193, orderDateTime#1016194, productPlant#1016205, outboundUnit#1016222, roundedQuantitySum#1016446, minCalculationDateTime#1016445, stockDatetime#1016447, stockBatchQuantities#1016448, array(2199-01-01 00:00:00) AS stockBatchShelfLifeEndDatetimes#1016449]
(1296) Project
Arguments: [product#1016192, plant#1016193, orderDateTime#1016194, productPlant#1016205, outboundUnit#1016222, roundedQuantitySum#1016446, stockDatetime#1016447, stockBatchQuantities#1016448, stockBatchShelfLifeEndDatetimes#1016449]
(1297) Project
Arguments: [product#1016192, plant#1016193, orderDateTime#1016194, productPlant#1016205, outboundUnit#1016222, stockDatetime#1016447, stockBatchQuantities#1016448, stockBatchShelfLifeEndDatetimes#1016449]
(1298) LogicalRelation
Arguments: parquet, [product#1016450, plant#1016451, orderDateTime#1016452, planningStartDateTime#1016453], false
(1299) RepartitionByExpression
Arguments: [product#1016450, plant#1016451], 37
(1300) Project
Arguments: [product#1016450, plant#1016451, orderDateTime#1016452]
(1301) LogicalRelation
Arguments: parquet, [systemId#1016454, internalUUID#1016455, plant#1016456, product#1016457, blockedForReplenishmentStartingFrom#1016458, productionAspect#1016459, salesPlant#1016460, listing#1016461, sourceOfSupplyCategory#1016462], false
(1302) Repartition
Arguments: 37, true
(1303) Project
Arguments: [systemId#1016454, internalUUID#1016455, plant#1016456, product#1016457, blockedForReplenishmentStartingFrom#1016458, productionAspect#1016459, salesPlant#1016460, listing#1016461, sourceOfSupplyCategory#1016462, struct(systemId, systemId#1016454, internalUUID, internalUUID#1016455, plant, plant#1016456, product, product#1016457, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1016458, productionAspect, productionAspect#1016459, salesPlant, salesPlant#1016460, listing, listing#1016461, sourceOfSupplyCategory, sourceOfSupplyCategory#1016462) AS productPlant#1016463]
(1304) Project
Arguments: [productPlant#1016463]
(1305) Join
Arguments: LeftOuter, ((product#1016450 <=> productPlant#1016463.product.internalRefUUID) AND (plant#1016451 <=> productPlant#1016463.plant.internalRefUUID))
(1306) Project
Arguments: [product#1016450, plant#1016451, orderDateTime#1016452, productPlant#1016463]
(1307) LogicalRelation
Arguments: parquet, [systemId#1016464, internalUUID#1016465, id#1016466, displayId#1016467, name#1016468, baseUnitOfMeasure#1016469, unitOfMeasures#1016470, unitOfMeasureConversions#1016471, productionAspect#1016472, salesAspect#1016473, procurementAspect#1016474, productGroup#1016475], false
(1308) Repartition
Arguments: 37, true
(1309) Join
Arguments: LeftOuter, (product#1016450 = internalUUID#1016465)
(1310) Project
Arguments: [product#1016450, plant#1016451, orderDateTime#1016452, productPlant#1016463, systemId#1016464, internalUUID#1016465, id#1016466, displayId#1016467, name#1016468, baseUnitOfMeasure#1016469, unitOfMeasures#1016470, unitOfMeasureConversions#1016471, productionAspect#1016472, salesAspect#1016473, procurementAspect#1016474, productGroup#1016475, filter(unitOfMeasureConversions#1016471, lambdafunction((((lambda u#1012565.measurementUnit1.code = productPlant#1016463.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1012565.measurementUnit1.internalRefUUID = productPlant#1016463.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1012565.measurementUnit2.code = baseUnitOfMeasure#1016469.code) AND (lambda u#1012565.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1016469.internalRefUUID))), lambda u#1012565, false)) AS filteredUnitOfMeasureConversions#1016476]
(1311) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1016476.quantityNumerator), true, [quantityNumerator#1016477]
(1312) Project
Arguments: [product#1016450, plant#1016451, orderDateTime#1016452, productPlant#1016463, systemId#1016464, internalUUID#1016465, id#1016466, displayId#1016467, name#1016468, baseUnitOfMeasure#1016469, unitOfMeasures#1016470, unitOfMeasureConversions#1016471, productionAspect#1016472, salesAspect#1016473, procurementAspect#1016474, productGroup#1016475, filteredUnitOfMeasureConversions#1016476, quantityNumerator#1016477]
(1313) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1016476.quantityDenominator), true, [quantityDenominator#1016478]
(1314) Project
Arguments: [product#1016450, plant#1016451, orderDateTime#1016452, productPlant#1016463, systemId#1016464, internalUUID#1016465, id#1016466, displayId#1016467, name#1016468, baseUnitOfMeasure#1016469, unitOfMeasures#1016470, unitOfMeasureConversions#1016471, productionAspect#1016472, salesAspect#1016473, procurementAspect#1016474, productGroup#1016475, filteredUnitOfMeasureConversions#1016476, quantityNumerator#1016477, quantityDenominator#1016478]
(1315) Project
Arguments: [product#1016450, plant#1016451, orderDateTime#1016452, productPlant#1016463, systemId#1016464, internalUUID#1016465, id#1016466, displayId#1016467, name#1016468, baseUnitOfMeasure#1016469, unitOfMeasures#1016470, unitOfMeasureConversions#1016471, productionAspect#1016472, salesAspect#1016473, procurementAspect#1016474, productGroup#1016475, filteredUnitOfMeasureConversions#1016476, quantityNumerator#1016477, quantityDenominator#1016478, (cast(quantityNumerator#1016477 as double) / cast(quantityDenominator#1016478 as double)) AS outboundUnit#1016479]
(1316) Project
Arguments: [product#1016450, plant#1016451, orderDateTime#1016452, productPlant#1016463, systemId#1016464, internalUUID#1016465, id#1016466, displayId#1016467, name#1016468, baseUnitOfMeasure#1016469, unitOfMeasures#1016470, unitOfMeasureConversions#1016471, productionAspect#1016472, salesAspect#1016473, procurementAspect#1016474, productGroup#1016475, filteredUnitOfMeasureConversions#1016476, quantityNumerator#1016477, quantityDenominator#1016478, CASE WHEN (isnull(outboundUnit#1016479) OR (outboundUnit#1016479 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1016479 END AS outboundUnit#1016480]
(1317) Project
Arguments: [product#1016450, plant#1016451, orderDateTime#1016452, productPlant#1016463, outboundUnit#1016480]
(1318) LogicalRelation
Arguments: parquet, [systemId#1016481, internalUUID#1016482, product#1016483, plant#1016484, calculationDateTime#1016485, stockQuantities#1016486], false
(1319) Repartition
Arguments: 37, true
(1320) LogicalRelation
Arguments: parquet, [marketUnit#1016487, description#1016488, articleHierarchy#1016489, defaultCurrency#1016490, responsibilities#1016491, replenishmentTypes#1016492, distributionCenters#1016493, assignedArticleHierarchyNodes#1016494, minOrderQtySetting#1016495, listingCheck#1016496, odsSelection#1016497, demandProfiles#1016498, constraintProfiles#1016499, optimizationProfiles#1016500, orderGroupSplitProfiles#1016501, supplierMinimumProfiles#1016502, multipleRestrictionProfiles#1016503, preferredUomSource#1016504, handlingOfUnfulfilledDemands#1016505, negligibleQuantitiesThreshold#1016506, eventtype#1016507], false
(1321) Repartition
Arguments: 37, true
(1322) Filter
Arguments: (marketUnit#1016487 <=> STEPHI_MU)
(1323) Project
Arguments: [marketUnit#1016487, description#1016488, articleHierarchy#1016489, defaultCurrency#1016490, responsibilities#1016491, replenishmentTypes#1016492, distributionCenters#1016493, assignedArticleHierarchyNodes#1016494, minOrderQtySetting#1016495, listingCheck#1016496, odsSelection#1016497, demandProfiles#1016498, constraintProfiles#1016499, optimizationProfiles#1016500, orderGroupSplitProfiles#1016501, supplierMinimumProfiles#1016502, multipleRestrictionProfiles#1016503, preferredUomSource#1016504, handlingOfUnfulfilledDemands#1016505, negligibleQuantitiesThreshold#1016506, eventtype#1016507]
(1324) Project
Arguments: [distributionCenters#1016493]
(1325) Generate
Arguments: explode(distributionCenters#1016493), false, [distributionCenters#1016508]
(1326) Project
Arguments: [distributionCenters#1016508]
(1327) Generate
Arguments: explode(distributionCenters#1016508.storageLocations), false, [storageLocations#1016509]
(1328) Project
Arguments: [distributionCenters#1016508.id AS plantId#1016510, distributionCenters#1016508.internalRefUUID AS plantUuid#1016511, storageLocations#1016509]
(1329) Project
Arguments: [plantId#1016510, plantUuid#1016511, storageLocations#1016509.id AS storageLocId#1016512, storageLocations#1016509.internalRefUUID AS storageLocUuid#1016513]
(1330) LogicalRelation
Arguments: parquet, [product#1016514, plant#1016515, orderDateTime#1016516, planningStartDateTime#1016517], false
(1331) RepartitionByExpression
Arguments: [product#1016514, plant#1016515], 37
(1332) Project
Arguments: [product#1016514, plant#1016515, orderDateTime#1016516]
(1333) LogicalRelation
Arguments: parquet, [systemId#1016518, internalUUID#1016519, plant#1016520, product#1016521, blockedForReplenishmentStartingFrom#1016522, productionAspect#1016523, salesPlant#1016524, listing#1016525, sourceOfSupplyCategory#1016526], false
(1334) Repartition
Arguments: 37, true
(1335) Project
Arguments: [systemId#1016518, internalUUID#1016519, plant#1016520, product#1016521, blockedForReplenishmentStartingFrom#1016522, productionAspect#1016523, salesPlant#1016524, listing#1016525, sourceOfSupplyCategory#1016526, struct(systemId, systemId#1016518, internalUUID, internalUUID#1016519, plant, plant#1016520, product, product#1016521, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1016522, productionAspect, productionAspect#1016523, salesPlant, salesPlant#1016524, listing, listing#1016525, sourceOfSupplyCategory, sourceOfSupplyCategory#1016526) AS productPlant#1016527]
(1336) Project
Arguments: [productPlant#1016527]
(1337) Join
Arguments: LeftOuter, ((product#1016514 <=> productPlant#1016527.product.internalRefUUID) AND (plant#1016515 <=> productPlant#1016527.plant.internalRefUUID))
(1338) Project
Arguments: [product#1016514, plant#1016515, orderDateTime#1016516, productPlant#1016527]
(1339) LogicalRelation
Arguments: parquet, [systemId#1016528, internalUUID#1016529, id#1016530, displayId#1016531, name#1016532, baseUnitOfMeasure#1016533, unitOfMeasures#1016534, unitOfMeasureConversions#1016535, productionAspect#1016536, salesAspect#1016537, procurementAspect#1016538, productGroup#1016539], false
(1340) Repartition
Arguments: 37, true
(1341) Join
Arguments: LeftOuter, (product#1016514 = internalUUID#1016529)
(1342) Project
Arguments: [product#1016514, plant#1016515, orderDateTime#1016516, productPlant#1016527, systemId#1016528, internalUUID#1016529, id#1016530, displayId#1016531, name#1016532, baseUnitOfMeasure#1016533, unitOfMeasures#1016534, unitOfMeasureConversions#1016535, productionAspect#1016536, salesAspect#1016537, procurementAspect#1016538, productGroup#1016539, filter(unitOfMeasureConversions#1016535, lambdafunction((((lambda u#1012565.measurementUnit1.code = productPlant#1016527.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1012565.measurementUnit1.internalRefUUID = productPlant#1016527.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1012565.measurementUnit2.code = baseUnitOfMeasure#1016533.code) AND (lambda u#1012565.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1016533.internalRefUUID))), lambda u#1012565, false)) AS filteredUnitOfMeasureConversions#1016540]
(1343) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1016540.quantityNumerator), true, [quantityNumerator#1016541]
(1344) Project
Arguments: [product#1016514, plant#1016515, orderDateTime#1016516, productPlant#1016527, systemId#1016528, internalUUID#1016529, id#1016530, displayId#1016531, name#1016532, baseUnitOfMeasure#1016533, unitOfMeasures#1016534, unitOfMeasureConversions#1016535, productionAspect#1016536, salesAspect#1016537, procurementAspect#1016538, productGroup#1016539, filteredUnitOfMeasureConversions#1016540, quantityNumerator#1016541]
(1345) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1016540.quantityDenominator), true, [quantityDenominator#1016542]
(1346) Project
Arguments: [product#1016514, plant#1016515, orderDateTime#1016516, productPlant#1016527, systemId#1016528, internalUUID#1016529, id#1016530, displayId#1016531, name#1016532, baseUnitOfMeasure#1016533, unitOfMeasures#1016534, unitOfMeasureConversions#1016535, productionAspect#1016536, salesAspect#1016537, procurementAspect#1016538, productGroup#1016539, filteredUnitOfMeasureConversions#1016540, quantityNumerator#1016541, quantityDenominator#1016542]
(1347) Project
Arguments: [product#1016514, plant#1016515, orderDateTime#1016516, productPlant#1016527, systemId#1016528, internalUUID#1016529, id#1016530, displayId#1016531, name#1016532, baseUnitOfMeasure#1016533, unitOfMeasures#1016534, unitOfMeasureConversions#1016535, productionAspect#1016536, salesAspect#1016537, procurementAspect#1016538, productGroup#1016539, filteredUnitOfMeasureConversions#1016540, quantityNumerator#1016541, quantityDenominator#1016542, (cast(quantityNumerator#1016541 as double) / cast(quantityDenominator#1016542 as double)) AS outboundUnit#1016543]
(1348) Project
Arguments: [product#1016514, plant#1016515, orderDateTime#1016516, productPlant#1016527, systemId#1016528, internalUUID#1016529, id#1016530, displayId#1016531, name#1016532, baseUnitOfMeasure#1016533, unitOfMeasures#1016534, unitOfMeasureConversions#1016535, productionAspect#1016536, salesAspect#1016537, procurementAspect#1016538, productGroup#1016539, filteredUnitOfMeasureConversions#1016540, quantityNumerator#1016541, quantityDenominator#1016542, CASE WHEN (isnull(outboundUnit#1016543) OR (outboundUnit#1016543 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1016543 END AS outboundUnit#1016544]
(1349) Project
Arguments: [product#1016514, plant#1016515, orderDateTime#1016516, productPlant#1016527, outboundUnit#1016544]
(1350) Project
Arguments: [plant#1016515]
(1351) Deduplicate
Arguments: [plant#1016515]
(1352) Join
Arguments: Inner, (plantUuid#1016511 = plant#1016515)
(1353) Project
Arguments: [plantId#1016510, plantUuid#1016511, storageLocId#1016512, storageLocUuid#1016513]
(1354) Join
Arguments: Inner, (plant#1016484.internalRefUUID <=> plantUuid#1016511)
(1355) Generate
Arguments: explode(filter(stockQuantities#1016486, lambdafunction(((lambda x#1012695.storageLocation.internalRefUuid = storageLocUuid#1016513) AND (lambda x#1012695.storageLocation.Id = storageLocId#1016512)), lambda x#1012695, false))), false, [stockQuantity#1016545]
(1356) Project
Arguments: [systemId#1016481, internalUUID#1016482, product#1016483, plant#1016484, calculationDateTime#1016485, stockQuantities#1016486, plantId#1016510, plantUuid#1016511, storageLocId#1016512, storageLocUuid#1016513, stockQuantity#1016545]
(1357) Aggregate
Arguments: [plantUuid#1016511, internalUUID#1016482, plant#1016484, product#1016483, systemId#1016481], [plantUuid#1016511, internalUUID#1016482, plant#1016484, product#1016483, systemId#1016481, first(calculationDateTime#1016485, false) AS calculationDateTime#1016546, collect_list(stockQuantity#1016545, 0, 0) AS stockQuantities#1016547]
(1358) Project
Arguments: [systemId#1016481, internalUUID#1016482, product#1016483, plant#1016484, calculationDateTime#1016546, stockQuantities#1016547]
(1359) Generate
Arguments: explode(stockQuantities#1016547), false, [stockQuantity#1016548]
(1360) Project
Arguments: [systemId#1016481, internalUUID#1016482, product#1016483, plant#1016484, calculationDateTime#1016546, stockQuantities#1016547, stockQuantity#1016548]
(1361) Project
Arguments: [plant#1016484.id AS plant#1016549, plant#1016484.internalRefUUID AS plantUuid#1016550, product#1016483.id AS product#1016551, product#1016483.internalRefUUID AS productUuid#1016552, calculationDateTime#1016546, stockQuantity#1016548.storagelocation.id AS storageLocId#1016553, stockQuantity#1016548.storagelocation.internalRefUUID AS storageLocUuid#1016554, stockQuantity#1016548.quantity.measure AS quantity#1016555, stockQuantity#1016548.specialStockIndicator.code AS specialStockIndicator#1016556, stockQuantity#1016548.stockType.code AS stockType#1016557]
(1362) Filter
Arguments: ((specialStockIndicator#1016556 = ) AND (stockType#1016557 = 01))
(1363) LogicalRelation
Arguments: parquet, [product#1016558, plant#1016559, orderDateTime#1016560, planningStartDateTime#1016561], false
(1364) RepartitionByExpression
Arguments: [product#1016558, plant#1016559], 37
(1365) Project
Arguments: [product#1016558, plant#1016559, orderDateTime#1016560]
(1366) LogicalRelation
Arguments: parquet, [systemId#1016562, internalUUID#1016563, plant#1016564, product#1016565, blockedForReplenishmentStartingFrom#1016566, productionAspect#1016567, salesPlant#1016568, listing#1016569, sourceOfSupplyCategory#1016570], false
(1367) Repartition
Arguments: 37, true
(1368) Project
Arguments: [systemId#1016562, internalUUID#1016563, plant#1016564, product#1016565, blockedForReplenishmentStartingFrom#1016566, productionAspect#1016567, salesPlant#1016568, listing#1016569, sourceOfSupplyCategory#1016570, struct(systemId, systemId#1016562, internalUUID, internalUUID#1016563, plant, plant#1016564, product, product#1016565, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1016566, productionAspect, productionAspect#1016567, salesPlant, salesPlant#1016568, listing, listing#1016569, sourceOfSupplyCategory, sourceOfSupplyCategory#1016570) AS productPlant#1016571]
(1369) Project
Arguments: [productPlant#1016571]
(1370) Join
Arguments: LeftOuter, ((product#1016558 <=> productPlant#1016571.product.internalRefUUID) AND (plant#1016559 <=> productPlant#1016571.plant.internalRefUUID))
(1371) Project
Arguments: [product#1016558, plant#1016559, orderDateTime#1016560, productPlant#1016571]
(1372) LogicalRelation
Arguments: parquet, [systemId#1016572, internalUUID#1016573, id#1016574, displayId#1016575, name#1016576, baseUnitOfMeasure#1016577, unitOfMeasures#1016578, unitOfMeasureConversions#1016579, productionAspect#1016580, salesAspect#1016581, procurementAspect#1016582, productGroup#1016583], false
(1373) Repartition
Arguments: 37, true
(1374) Join
Arguments: LeftOuter, (product#1016558 = internalUUID#1016573)
(1375) Project
Arguments: [product#1016558, plant#1016559, orderDateTime#1016560, productPlant#1016571, systemId#1016572, internalUUID#1016573, id#1016574, displayId#1016575, name#1016576, baseUnitOfMeasure#1016577, unitOfMeasures#1016578, unitOfMeasureConversions#1016579, productionAspect#1016580, salesAspect#1016581, procurementAspect#1016582, productGroup#1016583, filter(unitOfMeasureConversions#1016579, lambdafunction((((lambda u#1012565.measurementUnit1.code = productPlant#1016571.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1012565.measurementUnit1.internalRefUUID = productPlant#1016571.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1012565.measurementUnit2.code = baseUnitOfMeasure#1016577.code) AND (lambda u#1012565.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1016577.internalRefUUID))), lambda u#1012565, false)) AS filteredUnitOfMeasureConversions#1016584]
(1376) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1016584.quantityNumerator), true, [quantityNumerator#1016585]
(1377) Project
Arguments: [product#1016558, plant#1016559, orderDateTime#1016560, productPlant#1016571, systemId#1016572, internalUUID#1016573, id#1016574, displayId#1016575, name#1016576, baseUnitOfMeasure#1016577, unitOfMeasures#1016578, unitOfMeasureConversions#1016579, productionAspect#1016580, salesAspect#1016581, procurementAspect#1016582, productGroup#1016583, filteredUnitOfMeasureConversions#1016584, quantityNumerator#1016585]
(1378) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1016584.quantityDenominator), true, [quantityDenominator#1016586]
(1379) Project
Arguments: [product#1016558, plant#1016559, orderDateTime#1016560, productPlant#1016571, systemId#1016572, internalUUID#1016573, id#1016574, displayId#1016575, name#1016576, baseUnitOfMeasure#1016577, unitOfMeasures#1016578, unitOfMeasureConversions#1016579, productionAspect#1016580, salesAspect#1016581, procurementAspect#1016582, productGroup#1016583, filteredUnitOfMeasureConversions#1016584, quantityNumerator#1016585, quantityDenominator#1016586]
(1380) Project
Arguments: [product#1016558, plant#1016559, orderDateTime#1016560, productPlant#1016571, systemId#1016572, internalUUID#1016573, id#1016574, displayId#1016575, name#1016576, baseUnitOfMeasure#1016577, unitOfMeasures#1016578, unitOfMeasureConversions#1016579, productionAspect#1016580, salesAspect#1016581, procurementAspect#1016582, productGroup#1016583, filteredUnitOfMeasureConversions#1016584, quantityNumerator#1016585, quantityDenominator#1016586, (cast(quantityNumerator#1016585 as double) / cast(quantityDenominator#1016586 as double)) AS outboundUnit#1016587]
(1381) Project
Arguments: [product#1016558, plant#1016559, orderDateTime#1016560, productPlant#1016571, systemId#1016572, internalUUID#1016573, id#1016574, displayId#1016575, name#1016576, baseUnitOfMeasure#1016577, unitOfMeasures#1016578, unitOfMeasureConversions#1016579, productionAspect#1016580, salesAspect#1016581, procurementAspect#1016582, productGroup#1016583, filteredUnitOfMeasureConversions#1016584, quantityNumerator#1016585, quantityDenominator#1016586, CASE WHEN (isnull(outboundUnit#1016587) OR (outboundUnit#1016587 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1016587 END AS outboundUnit#1016588]
(1382) Project
Arguments: [product#1016558, plant#1016559, orderDateTime#1016560, productPlant#1016571, outboundUnit#1016588]
(1383) Join
Arguments: Inner, ((plantUuid#1016550 = plant#1016559) AND (productUuid#1016552 = product#1016558))
(1384) Filter
Arguments: (calculationDateTime#1016546 <= orderDateTime#1016560)
(1385) Project
Arguments: [plantUuid#1016550 AS plant#1016589, productUuid#1016552 AS product#1016590, storageLocId#1016553, calculationDateTime#1016546, quantity#1016555]
(1386) LogicalRelation
Arguments: parquet, [systemId#1016591, internalUUID#1016592, product#1016593, plant#1016594, calculationDateTime#1016595, stockQuantities#1016596], false
(1387) Repartition
Arguments: 37, true
(1388) LogicalRelation
Arguments: parquet, [marketUnit#1016597, description#1016598, articleHierarchy#1016599, defaultCurrency#1016600, responsibilities#1016601, replenishmentTypes#1016602, distributionCenters#1016603, assignedArticleHierarchyNodes#1016604, minOrderQtySetting#1016605, listingCheck#1016606, odsSelection#1016607, demandProfiles#1016608, constraintProfiles#1016609, optimizationProfiles#1016610, orderGroupSplitProfiles#1016611, supplierMinimumProfiles#1016612, multipleRestrictionProfiles#1016613, preferredUomSource#1016614, handlingOfUnfulfilledDemands#1016615, negligibleQuantitiesThreshold#1016616, eventtype#1016617], false
(1389) Repartition
Arguments: 37, true
(1390) Filter
Arguments: (marketUnit#1016597 <=> STEPHI_MU)
(1391) Project
Arguments: [marketUnit#1016597, description#1016598, articleHierarchy#1016599, defaultCurrency#1016600, responsibilities#1016601, replenishmentTypes#1016602, distributionCenters#1016603, assignedArticleHierarchyNodes#1016604, minOrderQtySetting#1016605, listingCheck#1016606, odsSelection#1016607, demandProfiles#1016608, constraintProfiles#1016609, optimizationProfiles#1016610, orderGroupSplitProfiles#1016611, supplierMinimumProfiles#1016612, multipleRestrictionProfiles#1016613, preferredUomSource#1016614, handlingOfUnfulfilledDemands#1016615, negligibleQuantitiesThreshold#1016616, eventtype#1016617]
(1392) Project
Arguments: [distributionCenters#1016603]
(1393) Generate
Arguments: explode(distributionCenters#1016603), false, [distributionCenters#1016618]
(1394) Project
Arguments: [distributionCenters#1016618]
(1395) Generate
Arguments: explode(distributionCenters#1016618.storageLocations), false, [storageLocations#1016619]
(1396) Project
Arguments: [distributionCenters#1016618.id AS plantId#1016620, distributionCenters#1016618.internalRefUUID AS plantUuid#1016621, storageLocations#1016619]
(1397) Project
Arguments: [plantId#1016620, plantUuid#1016621, storageLocations#1016619.id AS storageLocId#1016622, storageLocations#1016619.internalRefUUID AS storageLocUuid#1016623]
(1398) LogicalRelation
Arguments: parquet, [product#1016624, plant#1016625, orderDateTime#1016626, planningStartDateTime#1016627], false
(1399) RepartitionByExpression
Arguments: [product#1016624, plant#1016625], 37
(1400) Project
Arguments: [product#1016624, plant#1016625, orderDateTime#1016626]
(1401) LogicalRelation
Arguments: parquet, [systemId#1016628, internalUUID#1016629, plant#1016630, product#1016631, blockedForReplenishmentStartingFrom#1016632, productionAspect#1016633, salesPlant#1016634, listing#1016635, sourceOfSupplyCategory#1016636], false
(1402) Repartition
Arguments: 37, true
(1403) Project
Arguments: [systemId#1016628, internalUUID#1016629, plant#1016630, product#1016631, blockedForReplenishmentStartingFrom#1016632, productionAspect#1016633, salesPlant#1016634, listing#1016635, sourceOfSupplyCategory#1016636, struct(systemId, systemId#1016628, internalUUID, internalUUID#1016629, plant, plant#1016630, product, product#1016631, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1016632, productionAspect, productionAspect#1016633, salesPlant, salesPlant#1016634, listing, listing#1016635, sourceOfSupplyCategory, sourceOfSupplyCategory#1016636) AS productPlant#1016637]
(1404) Project
Arguments: [productPlant#1016637]
(1405) Join
Arguments: LeftOuter, ((product#1016624 <=> productPlant#1016637.product.internalRefUUID) AND (plant#1016625 <=> productPlant#1016637.plant.internalRefUUID))
(1406) Project
Arguments: [product#1016624, plant#1016625, orderDateTime#1016626, productPlant#1016637]
(1407) LogicalRelation
Arguments: parquet, [systemId#1016638, internalUUID#1016639, id#1016640, displayId#1016641, name#1016642, baseUnitOfMeasure#1016643, unitOfMeasures#1016644, unitOfMeasureConversions#1016645, productionAspect#1016646, salesAspect#1016647, procurementAspect#1016648, productGroup#1016649], false
(1408) Repartition
Arguments: 37, true
(1409) Join
Arguments: LeftOuter, (product#1016624 = internalUUID#1016639)
(1410) Project
Arguments: [product#1016624, plant#1016625, orderDateTime#1016626, productPlant#1016637, systemId#1016638, internalUUID#1016639, id#1016640, displayId#1016641, name#1016642, baseUnitOfMeasure#1016643, unitOfMeasures#1016644, unitOfMeasureConversions#1016645, productionAspect#1016646, salesAspect#1016647, procurementAspect#1016648, productGroup#1016649, filter(unitOfMeasureConversions#1016645, lambdafunction((((lambda u#1012565.measurementUnit1.code = productPlant#1016637.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1012565.measurementUnit1.internalRefUUID = productPlant#1016637.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1012565.measurementUnit2.code = baseUnitOfMeasure#1016643.code) AND (lambda u#1012565.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1016643.internalRefUUID))), lambda u#1012565, false)) AS filteredUnitOfMeasureConversions#1016650]
(1411) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1016650.quantityNumerator), true, [quantityNumerator#1016651]
(1412) Project
Arguments: [product#1016624, plant#1016625, orderDateTime#1016626, productPlant#1016637, systemId#1016638, internalUUID#1016639, id#1016640, displayId#1016641, name#1016642, baseUnitOfMeasure#1016643, unitOfMeasures#1016644, unitOfMeasureConversions#1016645, productionAspect#1016646, salesAspect#1016647, procurementAspect#1016648, productGroup#1016649, filteredUnitOfMeasureConversions#1016650, quantityNumerator#1016651]
(1413) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1016650.quantityDenominator), true, [quantityDenominator#1016652]
(1414) Project
Arguments: [product#1016624, plant#1016625, orderDateTime#1016626, productPlant#1016637, systemId#1016638, internalUUID#1016639, id#1016640, displayId#1016641, name#1016642, baseUnitOfMeasure#1016643, unitOfMeasures#1016644, unitOfMeasureConversions#1016645, productionAspect#1016646, salesAspect#1016647, procurementAspect#1016648, productGroup#1016649, filteredUnitOfMeasureConversions#1016650, quantityNumerator#1016651, quantityDenominator#1016652]
(1415) Project
Arguments: [product#1016624, plant#1016625, orderDateTime#1016626, productPlant#1016637, systemId#1016638, internalUUID#1016639, id#1016640, displayId#1016641, name#1016642, baseUnitOfMeasure#1016643, unitOfMeasures#1016644, unitOfMeasureConversions#1016645, productionAspect#1016646, salesAspect#1016647, procurementAspect#1016648, productGroup#1016649, filteredUnitOfMeasureConversions#1016650, quantityNumerator#1016651, quantityDenominator#1016652, (cast(quantityNumerator#1016651 as double) / cast(quantityDenominator#1016652 as double)) AS outboundUnit#1016653]
(1416) Project
Arguments: [product#1016624, plant#1016625, orderDateTime#1016626, productPlant#1016637, systemId#1016638, internalUUID#1016639, id#1016640, displayId#1016641, name#1016642, baseUnitOfMeasure#1016643, unitOfMeasures#1016644, unitOfMeasureConversions#1016645, productionAspect#1016646, salesAspect#1016647, procurementAspect#1016648, productGroup#1016649, filteredUnitOfMeasureConversions#1016650, quantityNumerator#1016651, quantityDenominator#1016652, CASE WHEN (isnull(outboundUnit#1016653) OR (outboundUnit#1016653 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1016653 END AS outboundUnit#1016654]
(1417) Project
Arguments: [product#1016624, plant#1016625, orderDateTime#1016626, productPlant#1016637, outboundUnit#1016654]
(1418) Project
Arguments: [plant#1016625]
(1419) Deduplicate
Arguments: [plant#1016625]
(1420) Join
Arguments: Inner, (plantUuid#1016621 = plant#1016625)
(1421) Project
Arguments: [plantId#1016620, plantUuid#1016621, storageLocId#1016622, storageLocUuid#1016623]
(1422) Join
Arguments: Inner, (plant#1016594.internalRefUUID <=> plantUuid#1016621)
(1423) Generate
Arguments: explode(filter(stockQuantities#1016596, lambdafunction(((lambda x#1012695.storageLocation.internalRefUuid = storageLocUuid#1016623) AND (lambda x#1012695.storageLocation.Id = storageLocId#1016622)), lambda x#1012695, false))), false, [stockQuantity#1016655]
(1424) Project
Arguments: [systemId#1016591, internalUUID#1016592, product#1016593, plant#1016594, calculationDateTime#1016595, stockQuantities#1016596, plantId#1016620, plantUuid#1016621, storageLocId#1016622, storageLocUuid#1016623, stockQuantity#1016655]
(1425) Aggregate
Arguments: [plantUuid#1016621, internalUUID#1016592, plant#1016594, product#1016593, systemId#1016591], [plantUuid#1016621, internalUUID#1016592, plant#1016594, product#1016593, systemId#1016591, first(calculationDateTime#1016595, false) AS calculationDateTime#1016656, collect_list(stockQuantity#1016655, 0, 0) AS stockQuantities#1016657]
(1426) Project
Arguments: [systemId#1016591, internalUUID#1016592, product#1016593, plant#1016594, calculationDateTime#1016656, stockQuantities#1016657]
(1427) Generate
Arguments: explode(stockQuantities#1016657), false, [stockQuantity#1016658]
(1428) Project
Arguments: [systemId#1016591, internalUUID#1016592, product#1016593, plant#1016594, calculationDateTime#1016656, stockQuantities#1016657, stockQuantity#1016658]
(1429) Project
Arguments: [plant#1016594.id AS plant#1016659, plant#1016594.internalRefUUID AS plantUuid#1016660, product#1016593.id AS product#1016661, product#1016593.internalRefUUID AS productUuid#1016662, calculationDateTime#1016656, stockQuantity#1016658.storagelocation.id AS storageLocId#1016663, stockQuantity#1016658.storagelocation.internalRefUUID AS storageLocUuid#1016664, stockQuantity#1016658.quantity.measure AS quantity#1016665, stockQuantity#1016658.specialStockIndicator.code AS specialStockIndicator#1016666, stockQuantity#1016658.stockType.code AS stockType#1016667]
(1430) Filter
Arguments: ((specialStockIndicator#1016666 = ) AND (stockType#1016667 = 01))
(1431) LogicalRelation
Arguments: parquet, [product#1016668, plant#1016669, orderDateTime#1016670, planningStartDateTime#1016671], false
(1432) RepartitionByExpression
Arguments: [product#1016668, plant#1016669], 37
(1433) Project
Arguments: [product#1016668, plant#1016669, orderDateTime#1016670]
(1434) LogicalRelation
Arguments: parquet, [systemId#1016672, internalUUID#1016673, plant#1016674, product#1016675, blockedForReplenishmentStartingFrom#1016676, productionAspect#1016677, salesPlant#1016678, listing#1016679, sourceOfSupplyCategory#1016680], false
(1435) Repartition
Arguments: 37, true
(1436) Project
Arguments: [systemId#1016672, internalUUID#1016673, plant#1016674, product#1016675, blockedForReplenishmentStartingFrom#1016676, productionAspect#1016677, salesPlant#1016678, listing#1016679, sourceOfSupplyCategory#1016680, struct(systemId, systemId#1016672, internalUUID, internalUUID#1016673, plant, plant#1016674, product, product#1016675, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1016676, productionAspect, productionAspect#1016677, salesPlant, salesPlant#1016678, listing, listing#1016679, sourceOfSupplyCategory, sourceOfSupplyCategory#1016680) AS productPlant#1016681]
(1437) Project
Arguments: [productPlant#1016681]
(1438) Join
Arguments: LeftOuter, ((product#1016668 <=> productPlant#1016681.product.internalRefUUID) AND (plant#1016669 <=> productPlant#1016681.plant.internalRefUUID))
(1439) Project
Arguments: [product#1016668, plant#1016669, orderDateTime#1016670, productPlant#1016681]
(1440) LogicalRelation
Arguments: parquet, [systemId#1016682, internalUUID#1016683, id#1016684, displayId#1016685, name#1016686, baseUnitOfMeasure#1016687, unitOfMeasures#1016688, unitOfMeasureConversions#1016689, productionAspect#1016690, salesAspect#1016691, procurementAspect#1016692, productGroup#1016693], false
(1441) Repartition
Arguments: 37, true
(1442) Join
Arguments: LeftOuter, (product#1016668 = internalUUID#1016683)
(1443) Project
Arguments: [product#1016668, plant#1016669, orderDateTime#1016670, productPlant#1016681, systemId#1016682, internalUUID#1016683, id#1016684, displayId#1016685, name#1016686, baseUnitOfMeasure#1016687, unitOfMeasures#1016688, unitOfMeasureConversions#1016689, productionAspect#1016690, salesAspect#1016691, procurementAspect#1016692, productGroup#1016693, filter(unitOfMeasureConversions#1016689, lambdafunction((((lambda u#1012565.measurementUnit1.code = productPlant#1016681.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1012565.measurementUnit1.internalRefUUID = productPlant#1016681.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1012565.measurementUnit2.code = baseUnitOfMeasure#1016687.code) AND (lambda u#1012565.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1016687.internalRefUUID))), lambda u#1012565, false)) AS filteredUnitOfMeasureConversions#1016694]
(1444) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1016694.quantityNumerator), true, [quantityNumerator#1016695]
(1445) Project
Arguments: [product#1016668, plant#1016669, orderDateTime#1016670, productPlant#1016681, systemId#1016682, internalUUID#1016683, id#1016684, displayId#1016685, name#1016686, baseUnitOfMeasure#1016687, unitOfMeasures#1016688, unitOfMeasureConversions#1016689, productionAspect#1016690, salesAspect#1016691, procurementAspect#1016692, productGroup#1016693, filteredUnitOfMeasureConversions#1016694, quantityNumerator#1016695]
(1446) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1016694.quantityDenominator), true, [quantityDenominator#1016696]
(1447) Project
Arguments: [product#1016668, plant#1016669, orderDateTime#1016670, productPlant#1016681, systemId#1016682, internalUUID#1016683, id#1016684, displayId#1016685, name#1016686, baseUnitOfMeasure#1016687, unitOfMeasures#1016688, unitOfMeasureConversions#1016689, productionAspect#1016690, salesAspect#1016691, procurementAspect#1016692, productGroup#1016693, filteredUnitOfMeasureConversions#1016694, quantityNumerator#1016695, quantityDenominator#1016696]
(1448) Project
Arguments: [product#1016668, plant#1016669, orderDateTime#1016670, productPlant#1016681, systemId#1016682, internalUUID#1016683, id#1016684, displayId#1016685, name#1016686, baseUnitOfMeasure#1016687, unitOfMeasures#1016688, unitOfMeasureConversions#1016689, productionAspect#1016690, salesAspect#1016691, procurementAspect#1016692, productGroup#1016693, filteredUnitOfMeasureConversions#1016694, quantityNumerator#1016695, quantityDenominator#1016696, (cast(quantityNumerator#1016695 as double) / cast(quantityDenominator#1016696 as double)) AS outboundUnit#1016697]
(1449) Project
Arguments: [product#1016668, plant#1016669, orderDateTime#1016670, productPlant#1016681, systemId#1016682, internalUUID#1016683, id#1016684, displayId#1016685, name#1016686, baseUnitOfMeasure#1016687, unitOfMeasures#1016688, unitOfMeasureConversions#1016689, productionAspect#1016690, salesAspect#1016691, procurementAspect#1016692, productGroup#1016693, filteredUnitOfMeasureConversions#1016694, quantityNumerator#1016695, quantityDenominator#1016696, CASE WHEN (isnull(outboundUnit#1016697) OR (outboundUnit#1016697 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1016697 END AS outboundUnit#1016698]
(1450) Project
Arguments: [product#1016668, plant#1016669, orderDateTime#1016670, productPlant#1016681, outboundUnit#1016698]
(1451) Join
Arguments: Inner, ((plantUuid#1016660 = plant#1016669) AND (productUuid#1016662 = product#1016668))
(1452) Filter
Arguments: (calculationDateTime#1016656 <= orderDateTime#1016670)
(1453) Project
Arguments: [plantUuid#1016660 AS plant#1016699, productUuid#1016662 AS product#1016700, storageLocId#1016663, calculationDateTime#1016656, quantity#1016665]
(1454) Aggregate
Arguments: [plant#1016699, product#1016700, storageLocId#1016663], [plant#1016699, product#1016700, storageLocId#1016663, max(calculationDateTime#1016656) AS max_calc_datetime#1016701]
(1455) Join
Arguments: Inner, ((((plant#1016589 <=> plant#1016699) AND (product#1016590 <=> product#1016700)) AND (storageLocId#1016553 <=> storageLocId#1016663)) AND (calculationDateTime#1016546 <=> max_calc_datetime#1016701))
(1456) Project
Arguments: [plant#1016589, product#1016590, storageLocId#1016553, calculationDateTime#1016546, quantity#1016555]
(1457) Aggregate
Arguments: [product#1016590, plant#1016589], [product#1016590, plant#1016589, sum(quantity#1016555) AS quantitySum#1016702, min(calculationDateTime#1016546) AS minCalculationDateTime#1016703]
(1458) Project
Arguments: [product#1016590, plant#1016589, quantitySum#1016702, minCalculationDateTime#1016703, round(quantitySum#1016702, 0) AS roundedQuantitySum#1016704]
(1459) Join
Arguments: LeftOuter, ((plant#1016451 = plant#1016589) AND (product#1016450 = product#1016590))
(1460) Project
Arguments: [product#1016450, plant#1016451, orderDateTime#1016452, productPlant#1016463, outboundUnit#1016480, roundedQuantitySum#1016704, minCalculationDateTime#1016703]
(1461) Project
Arguments: [product#1016450, plant#1016451, orderDateTime#1016452, productPlant#1016463, outboundUnit#1016480, roundedQuantitySum#1016704, minCalculationDateTime#1016703, CASE WHEN isnotnull(minCalculationDateTime#1016703) THEN minCalculationDateTime#1016703 ELSE orderDateTime#1016452 END AS stockDatetime#1016705]
(1462) Project
Arguments: [product#1016450, plant#1016451, orderDateTime#1016452, productPlant#1016463, outboundUnit#1016480, roundedQuantitySum#1016704, minCalculationDateTime#1016703, stockDatetime#1016705, CASE WHEN isnotnull(roundedQuantitySum#1016704) THEN array(roundedQuantitySum#1016704) ELSE array(0.0) END AS stockBatchQuantities#1016706]
(1463) Project
Arguments: [product#1016450, plant#1016451, orderDateTime#1016452, productPlant#1016463, outboundUnit#1016480, roundedQuantitySum#1016704, minCalculationDateTime#1016703, stockDatetime#1016705, stockBatchQuantities#1016706, array(2199-01-01 00:00:00) AS stockBatchShelfLifeEndDatetimes#1016707]
(1464) Project
Arguments: [product#1016450, plant#1016451, orderDateTime#1016452, productPlant#1016463, outboundUnit#1016480, roundedQuantitySum#1016704, stockDatetime#1016705, stockBatchQuantities#1016706, stockBatchShelfLifeEndDatetimes#1016707]
(1465) Project
Arguments: [product#1016450, plant#1016451, orderDateTime#1016452, productPlant#1016463, outboundUnit#1016480, stockDatetime#1016705, stockBatchQuantities#1016706, stockBatchShelfLifeEndDatetimes#1016707]
(1466) LogicalRelation
Arguments: parquet, [product#1016708, plant#1016709, demandChannel#1016710, demandStream#1016711, considerVariance#1016712, demandTimeBuckets#1016713, demandPointInTimeStart#1016714, demandPointInTimeEnd#1016715, demandPointInTime#1016716], false
(1467) Join
Arguments: LeftOuter, ((plant#1016709 <=> plant#1016451) AND (product#1016708 <=> product#1016450))
(1468) Project
Arguments: [product#1016450, plant#1016451, orderDateTime#1016452, productPlant#1016463, outboundUnit#1016480, stockDatetime#1016705, stockBatchQuantities#1016706, stockBatchShelfLifeEndDatetimes#1016707, product#1016708, plant#1016709, demandChannel#1016710, demandStream#1016711, considerVariance#1016712, demandTimeBuckets#1016713, demandPointInTimeStart#1016714, demandPointInTimeEnd#1016715, demandPointInTime#1016716, CASE WHEN isnotnull(product#1016708) THEN struct(demandChannel, demandChannel#1016710, demandStream, demandStream#1016711, considerVariance, considerVariance#1016712, demandTimeBuckets, demandTimeBuckets#1016713, demandPointInTimeStart, demandPointInTimeStart#1016714, demandPointInTimeEnd, demandPointInTimeEnd#1016715, demandPointInTime, demandPointInTime#1016716) 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#1016717]
(1469) Aggregate
Arguments: [product#1016450, plant#1016451, orderDateTime#1016452, productPlant#1016463, outboundUnit#1016480, stockDatetime#1016705, stockBatchQuantities#1016706, stockBatchShelfLifeEndDatetimes#1016707], [product#1016450, plant#1016451, orderDateTime#1016452, productPlant#1016463, outboundUnit#1016480, stockDatetime#1016705, stockBatchQuantities#1016706, stockBatchShelfLifeEndDatetimes#1016707, collect_list(rawDemands#1016717, 0, 0) AS rawDemands#1016718]
(1470) SubqueryAlias
Arguments: wl
(1471) LogicalRelation
Arguments: parquet, [systemId#1016719, internalUUID#1016720, id#1016721, displayId#1016722, name#1016723, category#1016724, companyCode#1016725, address#1016726, mainDistributionChain#1016727, mainPurchasingOrganization#1016728, validPurchasingOrganizations#1016729, productGroup#1016730], false
(1472) Repartition
Arguments: 37, true
(1473) Project
Arguments: [systemId#1016719, internalUUID#1016720, id#1016721, displayId#1016722, name#1016723, category#1016724, companyCode#1016725, address#1016726, mainDistributionChain#1016727, mainPurchasingOrganization#1016728, validPurchasingOrganizations#1016729, productGroup#1016730, address#1016726.timezone.code AS timezonecode#1016731]
(1474) Join
Arguments: LeftOuter, (plant#1016451 <=> internalUUID#1016720)
(1475) Project
Arguments: [product#1016450, plant#1016451, orderDateTime#1016452, productPlant#1016463, outboundUnit#1016480, stockDatetime#1016705, stockBatchQuantities#1016706, stockBatchShelfLifeEndDatetimes#1016707, rawDemands#1016718, systemId#1016719, internalUUID#1016720, id#1016721, displayId#1016722, name#1016723, category#1016724, companyCode#1016725, address#1016726, mainDistributionChain#1016727, mainPurchasingOrganization#1016728, validPurchasingOrganizations#1016729, productGroup#1016730, CASE WHEN isnotnull(timezonecode#1016731) THEN timezonecode#1016731 ELSE UTC END AS timezonecode#1016732]
(1476) Project
Arguments: [product#1016450, plant#1016451, orderDateTime#1016452, productPlant#1016463, outboundUnit#1016480, stockDatetime#1016705, stockBatchQuantities#1016706, stockBatchShelfLifeEndDatetimes#1016707, rawDemands#1016718, timezonecode#1016732]
(1477) DeserializeToObject
Arguments: createexternalrow(invoke(product#1016450.toString()), invoke(plant#1016451.toString()), static_invoke(DateTimeUtils.toJavaTimestamp(orderDateTime#1016452)), if (isnull(productPlant#1016463)) null else createexternalrow(invoke(productPlant#1016463.systemId.toString()), invoke(productPlant#1016463.internalUUID.toString()), if (isnull(productPlant#1016463.plant)) null else createexternalrow(invoke(productPlant#1016463.plant.internalRefUUID.toString()), invoke(productPlant#1016463.plant.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), if (isnull(productPlant#1016463.product)) null else createexternalrow(invoke(productPlant#1016463.product.internalRefUUID.toString()), invoke(productPlant#1016463.product.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(DateTimeUtils.toJavaDate(productPlant#1016463.blockedForReplenishmentStartingFrom)), if (isnull(productPlant#1016463.productionAspect)) null else createexternalrow(if (isnull(productPlant#1016463.productionAspect.productMovementPlants)) null else createexternalrow(if (isnull(productPlant#1016463.productionAspect.productMovementPlants.unitOfIssue)) null else createexternalrow(invoke(productPlant#1016463.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID.toString()), invoke(productPlant#1016463.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#1016463.productionAspect.productPlanningPlants)) null else createexternalrow(if (isnull(productPlant#1016463.productionAspect.productPlanningPlants.mrpType)) null else createexternalrow(invoke(productPlant#1016463.productionAspect.productPlanningPlants.mrpType.internalRefUUID.toString()), invoke(productPlant#1016463.productionAspect.productPlanningPlants.mrpType.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1016463.productionAspect.productPlanningPlants.abcIndicator)) null else createexternalrow(invoke(productPlant#1016463.productionAspect.productPlanningPlants.abcIndicator.internalRefUUID.toString()), invoke(productPlant#1016463.productionAspect.productPlanningPlants.abcIndicator.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1016463.productionAspect.productPlanningPlants.mrpController)) null else createexternalrow(invoke(productPlant#1016463.productionAspect.productPlanningPlants.mrpController.internalRefUUID.toString()), invoke(productPlant#1016463.productionAspect.productPlanningPlants.mrpController.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(java.lang.Double.valueOf(productPlant#1016463.productionAspect.productPlanningPlants.minimumLotSize)), if (isnull(productPlant#1016463.productionAspect.productPlanningPlants.logisticalRoundingProfile)) null else createexternalrow(invoke(productPlant#1016463.productionAspect.productPlanningPlants.logisticalRoundingProfile.internalRefUUID.toString()), invoke(productPlant#1016463.productionAspect.productPlanningPlants.logisticalRoundingProfile.logisticalRoundingProfile.toString()), StructField(internalRefUUID,StringType,true), StructField(logisticalRoundingProfile,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(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)),true)), if (isnull(productPlant#1016463.salesPlant)) null else createexternalrow(if (isnull(productPlant#1016463.salesPlant.loadingGroup)) null else createexternalrow(invoke(productPlant#1016463.salesPlant.loadingGroup.internalRefUUID.toString()), invoke(productPlant#1016463.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, 80503), if (isnull(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 80503))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 80503).validFrom)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 80503).validTo)), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 80503).isListed)), StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true)), productPlant#1016463.listing, Some(class scala.collection.mutable.ArraySeq)), if (isnull(productPlant#1016463.sourceOfSupplyCategory)) null else createexternalrow(invoke(productPlant#1016463.sourceOfSupplyCategory.internalRefUUID.toString()), invoke(productPlant#1016463.sourceOfSupplyCategory.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), 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)),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), StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), static_invoke(java.lang.Double.valueOf(outboundUnit#1016480)), static_invoke(DateTimeUtils.toJavaTimestamp(stockDatetime#1016705)), mapobjects(lambdavariable(MapObject, DoubleType, true, 80504), static_invoke(java.lang.Double.valueOf(cast(lambdavariable(MapObject, DoubleType, true, 80504) as double))), stockBatchQuantities#1016706, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, false, 80505), assertnotnull(static_invoke(DateTimeUtils.toJavaTimestamp(cast(lambdavariable(MapObject, TimestampType, false, 80505) as timestamp)))), stockBatchShelfLifeEndDatetimes#1016707, 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, 80506), 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, 80506))) 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, 80506).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, 80506).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, 80506).considerVariance)), mapobjects(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 80507), if (isnull(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 80507))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 80507).demandStartDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 80507).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 80507).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, 80506).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, 80506).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, 80506).demandPointInTimeEnd)), mapobjects(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 80508), if (isnull(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 80508))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 80508).demandDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 80508).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 80508).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, 80506).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#1016718, Some(class scala.collection.mutable.ArraySeq)), invoke(timezonecode#1016732.toString()), 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)),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),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),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), StructField(timezonecode,StringType,true)), obj#1014043: org.apache.spark.sql.Row
(1478) MapElements
Arguments: com.sap.s4hana.eureka.business.crporderquantitykpiservice.core.business.datasnapshot.DemandTransformatorImpl$$Lambda/0x0000000801fc3d98@2aab4875, 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)),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),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),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), StructField(timezonecode,StringType,true)], obj#1014048: org.apache.spark.sql.Row
(1479) 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#1016733, 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#1016734, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(2))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80493), assertnotnull(if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80494), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80494), DoubleType, ObjectType(class java.lang.Double)).doubleValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80495), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80495), DoubleType, ObjectType(class java.lang.Double)).doubleValue()), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80496), assertnotnull(static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80496), TimestampType, ObjectType(class java.sql.Timestamp))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80497), assertnotnull(static_invoke(UTF8String.fromString(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80497), StringType, ObjectType(class java.lang.String))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80498), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80498), IntegerType, ObjectType(class java.lang.Integer)).intValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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#1016735, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(3))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80499), assertnotnull(if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80500), assertnotnull(static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80500), TimestampType, ObjectType(class java.sql.Timestamp))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80501), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80501), DoubleType, ObjectType(class java.lang.Double)).doubleValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80502), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80502), DoubleType, ObjectType(class java.lang.Double)).doubleValue()), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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#1016736]
(1480) Join
Arguments: LeftOuter, ((plant#1016734 <=> plant#1016193) AND (product#1016733 <=> product#1016192))
(1481) Project
Arguments: [product#1016192, plant#1016193, orderDateTime#1016194, productPlant#1016205, outboundUnit#1016222, stockDatetime#1016447, stockBatchQuantities#1016448, stockBatchShelfLifeEndDatetimes#1016449, plant#1016734, dayBucketDemands#1016735, pointInTimeDemands#1016736]
(1482) Project
Arguments: [product#1016192, plant#1016193, orderDateTime#1016194, productPlant#1016205, outboundUnit#1016222, stockDatetime#1016447, stockBatchQuantities#1016448, stockBatchShelfLifeEndDatetimes#1016449, dayBucketDemands#1016735, pointInTimeDemands#1016736]
(1483) LogicalRelation
Arguments: parquet, [product#1016737, plant#1016738, orderDateTime#1016739, planningStartDateTime#1016740], false
(1484) RepartitionByExpression
Arguments: [product#1016737, plant#1016738], 37
(1485) Project
Arguments: [product#1016737, plant#1016738, orderDateTime#1016739]
(1486) LogicalRelation
Arguments: parquet, [systemId#1016741, internalUUID#1016742, plant#1016743, product#1016744, blockedForReplenishmentStartingFrom#1016745, productionAspect#1016746, salesPlant#1016747, listing#1016748, sourceOfSupplyCategory#1016749], false
(1487) Repartition
Arguments: 37, true
(1488) Project
Arguments: [systemId#1016741, internalUUID#1016742, plant#1016743, product#1016744, blockedForReplenishmentStartingFrom#1016745, productionAspect#1016746, salesPlant#1016747, listing#1016748, sourceOfSupplyCategory#1016749, struct(systemId, systemId#1016741, internalUUID, internalUUID#1016742, plant, plant#1016743, product, product#1016744, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1016745, productionAspect, productionAspect#1016746, salesPlant, salesPlant#1016747, listing, listing#1016748, sourceOfSupplyCategory, sourceOfSupplyCategory#1016749) AS productPlant#1016750]
(1489) Project
Arguments: [productPlant#1016750]
(1490) Join
Arguments: LeftOuter, ((product#1016737 <=> productPlant#1016750.product.internalRefUUID) AND (plant#1016738 <=> productPlant#1016750.plant.internalRefUUID))
(1491) Project
Arguments: [product#1016737, plant#1016738, orderDateTime#1016739, productPlant#1016750]
(1492) LogicalRelation
Arguments: parquet, [systemId#1016751, internalUUID#1016752, id#1016753, displayId#1016754, name#1016755, baseUnitOfMeasure#1016756, unitOfMeasures#1016757, unitOfMeasureConversions#1016758, productionAspect#1016759, salesAspect#1016760, procurementAspect#1016761, productGroup#1016762], false
(1493) Repartition
Arguments: 37, true
(1494) Join
Arguments: LeftOuter, (product#1016737 = internalUUID#1016752)
(1495) Project
Arguments: [product#1016737, plant#1016738, orderDateTime#1016739, productPlant#1016750, systemId#1016751, internalUUID#1016752, id#1016753, displayId#1016754, name#1016755, baseUnitOfMeasure#1016756, unitOfMeasures#1016757, unitOfMeasureConversions#1016758, productionAspect#1016759, salesAspect#1016760, procurementAspect#1016761, productGroup#1016762, filter(unitOfMeasureConversions#1016758, lambdafunction((((lambda u#1012565.measurementUnit1.code = productPlant#1016750.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1012565.measurementUnit1.internalRefUUID = productPlant#1016750.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1012565.measurementUnit2.code = baseUnitOfMeasure#1016756.code) AND (lambda u#1012565.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1016756.internalRefUUID))), lambda u#1012565, false)) AS filteredUnitOfMeasureConversions#1016763]
(1496) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1016763.quantityNumerator), true, [quantityNumerator#1016764]
(1497) Project
Arguments: [product#1016737, plant#1016738, orderDateTime#1016739, productPlant#1016750, systemId#1016751, internalUUID#1016752, id#1016753, displayId#1016754, name#1016755, baseUnitOfMeasure#1016756, unitOfMeasures#1016757, unitOfMeasureConversions#1016758, productionAspect#1016759, salesAspect#1016760, procurementAspect#1016761, productGroup#1016762, filteredUnitOfMeasureConversions#1016763, quantityNumerator#1016764]
(1498) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1016763.quantityDenominator), true, [quantityDenominator#1016765]
(1499) Project
Arguments: [product#1016737, plant#1016738, orderDateTime#1016739, productPlant#1016750, systemId#1016751, internalUUID#1016752, id#1016753, displayId#1016754, name#1016755, baseUnitOfMeasure#1016756, unitOfMeasures#1016757, unitOfMeasureConversions#1016758, productionAspect#1016759, salesAspect#1016760, procurementAspect#1016761, productGroup#1016762, filteredUnitOfMeasureConversions#1016763, quantityNumerator#1016764, quantityDenominator#1016765]
(1500) Project
Arguments: [product#1016737, plant#1016738, orderDateTime#1016739, productPlant#1016750, systemId#1016751, internalUUID#1016752, id#1016753, displayId#1016754, name#1016755, baseUnitOfMeasure#1016756, unitOfMeasures#1016757, unitOfMeasureConversions#1016758, productionAspect#1016759, salesAspect#1016760, procurementAspect#1016761, productGroup#1016762, filteredUnitOfMeasureConversions#1016763, quantityNumerator#1016764, quantityDenominator#1016765, (cast(quantityNumerator#1016764 as double) / cast(quantityDenominator#1016765 as double)) AS outboundUnit#1016766]
(1501) Project
Arguments: [product#1016737, plant#1016738, orderDateTime#1016739, productPlant#1016750, systemId#1016751, internalUUID#1016752, id#1016753, displayId#1016754, name#1016755, baseUnitOfMeasure#1016756, unitOfMeasures#1016757, unitOfMeasureConversions#1016758, productionAspect#1016759, salesAspect#1016760, procurementAspect#1016761, productGroup#1016762, filteredUnitOfMeasureConversions#1016763, quantityNumerator#1016764, quantityDenominator#1016765, CASE WHEN (isnull(outboundUnit#1016766) OR (outboundUnit#1016766 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1016766 END AS outboundUnit#1016767]
(1502) Project
Arguments: [product#1016737, plant#1016738, orderDateTime#1016739, productPlant#1016750, outboundUnit#1016767]
(1503) LogicalRelation
Arguments: parquet, [systemId#1016768, internalUUID#1016769, product#1016770, plant#1016771, calculationDateTime#1016772, stockQuantities#1016773], false
(1504) Repartition
Arguments: 37, true
(1505) LogicalRelation
Arguments: parquet, [marketUnit#1016774, description#1016775, articleHierarchy#1016776, defaultCurrency#1016777, responsibilities#1016778, replenishmentTypes#1016779, distributionCenters#1016780, assignedArticleHierarchyNodes#1016781, minOrderQtySetting#1016782, listingCheck#1016783, odsSelection#1016784, demandProfiles#1016785, constraintProfiles#1016786, optimizationProfiles#1016787, orderGroupSplitProfiles#1016788, supplierMinimumProfiles#1016789, multipleRestrictionProfiles#1016790, preferredUomSource#1016791, handlingOfUnfulfilledDemands#1016792, negligibleQuantitiesThreshold#1016793, eventtype#1016794], false
(1506) Repartition
Arguments: 37, true
(1507) Filter
Arguments: (marketUnit#1016774 <=> STEPHI_MU)
(1508) Project
Arguments: [marketUnit#1016774, description#1016775, articleHierarchy#1016776, defaultCurrency#1016777, responsibilities#1016778, replenishmentTypes#1016779, distributionCenters#1016780, assignedArticleHierarchyNodes#1016781, minOrderQtySetting#1016782, listingCheck#1016783, odsSelection#1016784, demandProfiles#1016785, constraintProfiles#1016786, optimizationProfiles#1016787, orderGroupSplitProfiles#1016788, supplierMinimumProfiles#1016789, multipleRestrictionProfiles#1016790, preferredUomSource#1016791, handlingOfUnfulfilledDemands#1016792, negligibleQuantitiesThreshold#1016793, eventtype#1016794]
(1509) Project
Arguments: [distributionCenters#1016780]
(1510) Generate
Arguments: explode(distributionCenters#1016780), false, [distributionCenters#1016795]
(1511) Project
Arguments: [distributionCenters#1016795]
(1512) Generate
Arguments: explode(distributionCenters#1016795.storageLocations), false, [storageLocations#1016796]
(1513) Project
Arguments: [distributionCenters#1016795.id AS plantId#1016797, distributionCenters#1016795.internalRefUUID AS plantUuid#1016798, storageLocations#1016796]
(1514) Project
Arguments: [plantId#1016797, plantUuid#1016798, storageLocations#1016796.id AS storageLocId#1016799, storageLocations#1016796.internalRefUUID AS storageLocUuid#1016800]
(1515) LogicalRelation
Arguments: parquet, [product#1016801, plant#1016802, orderDateTime#1016803, planningStartDateTime#1016804], false
(1516) RepartitionByExpression
Arguments: [product#1016801, plant#1016802], 37
(1517) Project
Arguments: [product#1016801, plant#1016802, orderDateTime#1016803]
(1518) LogicalRelation
Arguments: parquet, [systemId#1016805, internalUUID#1016806, plant#1016807, product#1016808, blockedForReplenishmentStartingFrom#1016809, productionAspect#1016810, salesPlant#1016811, listing#1016812, sourceOfSupplyCategory#1016813], false
(1519) Repartition
Arguments: 37, true
(1520) Project
Arguments: [systemId#1016805, internalUUID#1016806, plant#1016807, product#1016808, blockedForReplenishmentStartingFrom#1016809, productionAspect#1016810, salesPlant#1016811, listing#1016812, sourceOfSupplyCategory#1016813, struct(systemId, systemId#1016805, internalUUID, internalUUID#1016806, plant, plant#1016807, product, product#1016808, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1016809, productionAspect, productionAspect#1016810, salesPlant, salesPlant#1016811, listing, listing#1016812, sourceOfSupplyCategory, sourceOfSupplyCategory#1016813) AS productPlant#1016814]
(1521) Project
Arguments: [productPlant#1016814]
(1522) Join
Arguments: LeftOuter, ((product#1016801 <=> productPlant#1016814.product.internalRefUUID) AND (plant#1016802 <=> productPlant#1016814.plant.internalRefUUID))
(1523) Project
Arguments: [product#1016801, plant#1016802, orderDateTime#1016803, productPlant#1016814]
(1524) LogicalRelation
Arguments: parquet, [systemId#1016815, internalUUID#1016816, id#1016817, displayId#1016818, name#1016819, baseUnitOfMeasure#1016820, unitOfMeasures#1016821, unitOfMeasureConversions#1016822, productionAspect#1016823, salesAspect#1016824, procurementAspect#1016825, productGroup#1016826], false
(1525) Repartition
Arguments: 37, true
(1526) Join
Arguments: LeftOuter, (product#1016801 = internalUUID#1016816)
(1527) Project
Arguments: [product#1016801, plant#1016802, orderDateTime#1016803, productPlant#1016814, systemId#1016815, internalUUID#1016816, id#1016817, displayId#1016818, name#1016819, baseUnitOfMeasure#1016820, unitOfMeasures#1016821, unitOfMeasureConversions#1016822, productionAspect#1016823, salesAspect#1016824, procurementAspect#1016825, productGroup#1016826, filter(unitOfMeasureConversions#1016822, lambdafunction((((lambda u#1012565.measurementUnit1.code = productPlant#1016814.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1012565.measurementUnit1.internalRefUUID = productPlant#1016814.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1012565.measurementUnit2.code = baseUnitOfMeasure#1016820.code) AND (lambda u#1012565.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1016820.internalRefUUID))), lambda u#1012565, false)) AS filteredUnitOfMeasureConversions#1016827]
(1528) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1016827.quantityNumerator), true, [quantityNumerator#1016828]
(1529) Project
Arguments: [product#1016801, plant#1016802, orderDateTime#1016803, productPlant#1016814, systemId#1016815, internalUUID#1016816, id#1016817, displayId#1016818, name#1016819, baseUnitOfMeasure#1016820, unitOfMeasures#1016821, unitOfMeasureConversions#1016822, productionAspect#1016823, salesAspect#1016824, procurementAspect#1016825, productGroup#1016826, filteredUnitOfMeasureConversions#1016827, quantityNumerator#1016828]
(1530) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1016827.quantityDenominator), true, [quantityDenominator#1016829]
(1531) Project
Arguments: [product#1016801, plant#1016802, orderDateTime#1016803, productPlant#1016814, systemId#1016815, internalUUID#1016816, id#1016817, displayId#1016818, name#1016819, baseUnitOfMeasure#1016820, unitOfMeasures#1016821, unitOfMeasureConversions#1016822, productionAspect#1016823, salesAspect#1016824, procurementAspect#1016825, productGroup#1016826, filteredUnitOfMeasureConversions#1016827, quantityNumerator#1016828, quantityDenominator#1016829]
(1532) Project
Arguments: [product#1016801, plant#1016802, orderDateTime#1016803, productPlant#1016814, systemId#1016815, internalUUID#1016816, id#1016817, displayId#1016818, name#1016819, baseUnitOfMeasure#1016820, unitOfMeasures#1016821, unitOfMeasureConversions#1016822, productionAspect#1016823, salesAspect#1016824, procurementAspect#1016825, productGroup#1016826, filteredUnitOfMeasureConversions#1016827, quantityNumerator#1016828, quantityDenominator#1016829, (cast(quantityNumerator#1016828 as double) / cast(quantityDenominator#1016829 as double)) AS outboundUnit#1016830]
(1533) Project
Arguments: [product#1016801, plant#1016802, orderDateTime#1016803, productPlant#1016814, systemId#1016815, internalUUID#1016816, id#1016817, displayId#1016818, name#1016819, baseUnitOfMeasure#1016820, unitOfMeasures#1016821, unitOfMeasureConversions#1016822, productionAspect#1016823, salesAspect#1016824, procurementAspect#1016825, productGroup#1016826, filteredUnitOfMeasureConversions#1016827, quantityNumerator#1016828, quantityDenominator#1016829, CASE WHEN (isnull(outboundUnit#1016830) OR (outboundUnit#1016830 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1016830 END AS outboundUnit#1016831]
(1534) Project
Arguments: [product#1016801, plant#1016802, orderDateTime#1016803, productPlant#1016814, outboundUnit#1016831]
(1535) Project
Arguments: [plant#1016802]
(1536) Deduplicate
Arguments: [plant#1016802]
(1537) Join
Arguments: Inner, (plantUuid#1016798 = plant#1016802)
(1538) Project
Arguments: [plantId#1016797, plantUuid#1016798, storageLocId#1016799, storageLocUuid#1016800]
(1539) Join
Arguments: Inner, (plant#1016771.internalRefUUID <=> plantUuid#1016798)
(1540) Generate
Arguments: explode(filter(stockQuantities#1016773, lambdafunction(((lambda x#1012695.storageLocation.internalRefUuid = storageLocUuid#1016800) AND (lambda x#1012695.storageLocation.Id = storageLocId#1016799)), lambda x#1012695, false))), false, [stockQuantity#1016832]
(1541) Project
Arguments: [systemId#1016768, internalUUID#1016769, product#1016770, plant#1016771, calculationDateTime#1016772, stockQuantities#1016773, plantId#1016797, plantUuid#1016798, storageLocId#1016799, storageLocUuid#1016800, stockQuantity#1016832]
(1542) Aggregate
Arguments: [plantUuid#1016798, internalUUID#1016769, plant#1016771, product#1016770, systemId#1016768], [plantUuid#1016798, internalUUID#1016769, plant#1016771, product#1016770, systemId#1016768, first(calculationDateTime#1016772, false) AS calculationDateTime#1016833, collect_list(stockQuantity#1016832, 0, 0) AS stockQuantities#1016834]
(1543) Project
Arguments: [systemId#1016768, internalUUID#1016769, product#1016770, plant#1016771, calculationDateTime#1016833, stockQuantities#1016834]
(1544) Generate
Arguments: explode(stockQuantities#1016834), false, [stockQuantity#1016835]
(1545) Project
Arguments: [systemId#1016768, internalUUID#1016769, product#1016770, plant#1016771, calculationDateTime#1016833, stockQuantities#1016834, stockQuantity#1016835]
(1546) Project
Arguments: [plant#1016771.id AS plant#1016836, plant#1016771.internalRefUUID AS plantUuid#1016837, product#1016770.id AS product#1016838, product#1016770.internalRefUUID AS productUuid#1016839, calculationDateTime#1016833, stockQuantity#1016835.storagelocation.id AS storageLocId#1016840, stockQuantity#1016835.storagelocation.internalRefUUID AS storageLocUuid#1016841, stockQuantity#1016835.quantity.measure AS quantity#1016842, stockQuantity#1016835.specialStockIndicator.code AS specialStockIndicator#1016843, stockQuantity#1016835.stockType.code AS stockType#1016844]
(1547) Filter
Arguments: ((specialStockIndicator#1016843 = ) AND (stockType#1016844 = 01))
(1548) LogicalRelation
Arguments: parquet, [product#1016845, plant#1016846, orderDateTime#1016847, planningStartDateTime#1016848], false
(1549) RepartitionByExpression
Arguments: [product#1016845, plant#1016846], 37
(1550) Project
Arguments: [product#1016845, plant#1016846, orderDateTime#1016847]
(1551) LogicalRelation
Arguments: parquet, [systemId#1016849, internalUUID#1016850, plant#1016851, product#1016852, blockedForReplenishmentStartingFrom#1016853, productionAspect#1016854, salesPlant#1016855, listing#1016856, sourceOfSupplyCategory#1016857], false
(1552) Repartition
Arguments: 37, true
(1553) Project
Arguments: [systemId#1016849, internalUUID#1016850, plant#1016851, product#1016852, blockedForReplenishmentStartingFrom#1016853, productionAspect#1016854, salesPlant#1016855, listing#1016856, sourceOfSupplyCategory#1016857, struct(systemId, systemId#1016849, internalUUID, internalUUID#1016850, plant, plant#1016851, product, product#1016852, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1016853, productionAspect, productionAspect#1016854, salesPlant, salesPlant#1016855, listing, listing#1016856, sourceOfSupplyCategory, sourceOfSupplyCategory#1016857) AS productPlant#1016858]
(1554) Project
Arguments: [productPlant#1016858]
(1555) Join
Arguments: LeftOuter, ((product#1016845 <=> productPlant#1016858.product.internalRefUUID) AND (plant#1016846 <=> productPlant#1016858.plant.internalRefUUID))
(1556) Project
Arguments: [product#1016845, plant#1016846, orderDateTime#1016847, productPlant#1016858]
(1557) LogicalRelation
Arguments: parquet, [systemId#1016859, internalUUID#1016860, id#1016861, displayId#1016862, name#1016863, baseUnitOfMeasure#1016864, unitOfMeasures#1016865, unitOfMeasureConversions#1016866, productionAspect#1016867, salesAspect#1016868, procurementAspect#1016869, productGroup#1016870], false
(1558) Repartition
Arguments: 37, true
(1559) Join
Arguments: LeftOuter, (product#1016845 = internalUUID#1016860)
(1560) Project
Arguments: [product#1016845, plant#1016846, orderDateTime#1016847, productPlant#1016858, systemId#1016859, internalUUID#1016860, id#1016861, displayId#1016862, name#1016863, baseUnitOfMeasure#1016864, unitOfMeasures#1016865, unitOfMeasureConversions#1016866, productionAspect#1016867, salesAspect#1016868, procurementAspect#1016869, productGroup#1016870, filter(unitOfMeasureConversions#1016866, lambdafunction((((lambda u#1012565.measurementUnit1.code = productPlant#1016858.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1012565.measurementUnit1.internalRefUUID = productPlant#1016858.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1012565.measurementUnit2.code = baseUnitOfMeasure#1016864.code) AND (lambda u#1012565.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1016864.internalRefUUID))), lambda u#1012565, false)) AS filteredUnitOfMeasureConversions#1016871]
(1561) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1016871.quantityNumerator), true, [quantityNumerator#1016872]
(1562) Project
Arguments: [product#1016845, plant#1016846, orderDateTime#1016847, productPlant#1016858, systemId#1016859, internalUUID#1016860, id#1016861, displayId#1016862, name#1016863, baseUnitOfMeasure#1016864, unitOfMeasures#1016865, unitOfMeasureConversions#1016866, productionAspect#1016867, salesAspect#1016868, procurementAspect#1016869, productGroup#1016870, filteredUnitOfMeasureConversions#1016871, quantityNumerator#1016872]
(1563) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1016871.quantityDenominator), true, [quantityDenominator#1016873]
(1564) Project
Arguments: [product#1016845, plant#1016846, orderDateTime#1016847, productPlant#1016858, systemId#1016859, internalUUID#1016860, id#1016861, displayId#1016862, name#1016863, baseUnitOfMeasure#1016864, unitOfMeasures#1016865, unitOfMeasureConversions#1016866, productionAspect#1016867, salesAspect#1016868, procurementAspect#1016869, productGroup#1016870, filteredUnitOfMeasureConversions#1016871, quantityNumerator#1016872, quantityDenominator#1016873]
(1565) Project
Arguments: [product#1016845, plant#1016846, orderDateTime#1016847, productPlant#1016858, systemId#1016859, internalUUID#1016860, id#1016861, displayId#1016862, name#1016863, baseUnitOfMeasure#1016864, unitOfMeasures#1016865, unitOfMeasureConversions#1016866, productionAspect#1016867, salesAspect#1016868, procurementAspect#1016869, productGroup#1016870, filteredUnitOfMeasureConversions#1016871, quantityNumerator#1016872, quantityDenominator#1016873, (cast(quantityNumerator#1016872 as double) / cast(quantityDenominator#1016873 as double)) AS outboundUnit#1016874]
(1566) Project
Arguments: [product#1016845, plant#1016846, orderDateTime#1016847, productPlant#1016858, systemId#1016859, internalUUID#1016860, id#1016861, displayId#1016862, name#1016863, baseUnitOfMeasure#1016864, unitOfMeasures#1016865, unitOfMeasureConversions#1016866, productionAspect#1016867, salesAspect#1016868, procurementAspect#1016869, productGroup#1016870, filteredUnitOfMeasureConversions#1016871, quantityNumerator#1016872, quantityDenominator#1016873, CASE WHEN (isnull(outboundUnit#1016874) OR (outboundUnit#1016874 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1016874 END AS outboundUnit#1016875]
(1567) Project
Arguments: [product#1016845, plant#1016846, orderDateTime#1016847, productPlant#1016858, outboundUnit#1016875]
(1568) Join
Arguments: Inner, ((plantUuid#1016837 = plant#1016846) AND (productUuid#1016839 = product#1016845))
(1569) Filter
Arguments: (calculationDateTime#1016833 <= orderDateTime#1016847)
(1570) Project
Arguments: [plantUuid#1016837 AS plant#1016876, productUuid#1016839 AS product#1016877, storageLocId#1016840, calculationDateTime#1016833, quantity#1016842]
(1571) LogicalRelation
Arguments: parquet, [systemId#1016878, internalUUID#1016879, product#1016880, plant#1016881, calculationDateTime#1016882, stockQuantities#1016883], false
(1572) Repartition
Arguments: 37, true
(1573) LogicalRelation
Arguments: parquet, [marketUnit#1016884, description#1016885, articleHierarchy#1016886, defaultCurrency#1016887, responsibilities#1016888, replenishmentTypes#1016889, distributionCenters#1016890, assignedArticleHierarchyNodes#1016891, minOrderQtySetting#1016892, listingCheck#1016893, odsSelection#1016894, demandProfiles#1016895, constraintProfiles#1016896, optimizationProfiles#1016897, orderGroupSplitProfiles#1016898, supplierMinimumProfiles#1016899, multipleRestrictionProfiles#1016900, preferredUomSource#1016901, handlingOfUnfulfilledDemands#1016902, negligibleQuantitiesThreshold#1016903, eventtype#1016904], false
(1574) Repartition
Arguments: 37, true
(1575) Filter
Arguments: (marketUnit#1016884 <=> STEPHI_MU)
(1576) Project
Arguments: [marketUnit#1016884, description#1016885, articleHierarchy#1016886, defaultCurrency#1016887, responsibilities#1016888, replenishmentTypes#1016889, distributionCenters#1016890, assignedArticleHierarchyNodes#1016891, minOrderQtySetting#1016892, listingCheck#1016893, odsSelection#1016894, demandProfiles#1016895, constraintProfiles#1016896, optimizationProfiles#1016897, orderGroupSplitProfiles#1016898, supplierMinimumProfiles#1016899, multipleRestrictionProfiles#1016900, preferredUomSource#1016901, handlingOfUnfulfilledDemands#1016902, negligibleQuantitiesThreshold#1016903, eventtype#1016904]
(1577) Project
Arguments: [distributionCenters#1016890]
(1578) Generate
Arguments: explode(distributionCenters#1016890), false, [distributionCenters#1016905]
(1579) Project
Arguments: [distributionCenters#1016905]
(1580) Generate
Arguments: explode(distributionCenters#1016905.storageLocations), false, [storageLocations#1016906]
(1581) Project
Arguments: [distributionCenters#1016905.id AS plantId#1016907, distributionCenters#1016905.internalRefUUID AS plantUuid#1016908, storageLocations#1016906]
(1582) Project
Arguments: [plantId#1016907, plantUuid#1016908, storageLocations#1016906.id AS storageLocId#1016909, storageLocations#1016906.internalRefUUID AS storageLocUuid#1016910]
(1583) LogicalRelation
Arguments: parquet, [product#1016911, plant#1016912, orderDateTime#1016913, planningStartDateTime#1016914], false
(1584) RepartitionByExpression
Arguments: [product#1016911, plant#1016912], 37
(1585) Project
Arguments: [product#1016911, plant#1016912, orderDateTime#1016913]
(1586) LogicalRelation
Arguments: parquet, [systemId#1016915, internalUUID#1016916, plant#1016917, product#1016918, blockedForReplenishmentStartingFrom#1016919, productionAspect#1016920, salesPlant#1016921, listing#1016922, sourceOfSupplyCategory#1016923], false
(1587) Repartition
Arguments: 37, true
(1588) Project
Arguments: [systemId#1016915, internalUUID#1016916, plant#1016917, product#1016918, blockedForReplenishmentStartingFrom#1016919, productionAspect#1016920, salesPlant#1016921, listing#1016922, sourceOfSupplyCategory#1016923, struct(systemId, systemId#1016915, internalUUID, internalUUID#1016916, plant, plant#1016917, product, product#1016918, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1016919, productionAspect, productionAspect#1016920, salesPlant, salesPlant#1016921, listing, listing#1016922, sourceOfSupplyCategory, sourceOfSupplyCategory#1016923) AS productPlant#1016924]
(1589) Project
Arguments: [productPlant#1016924]
(1590) Join
Arguments: LeftOuter, ((product#1016911 <=> productPlant#1016924.product.internalRefUUID) AND (plant#1016912 <=> productPlant#1016924.plant.internalRefUUID))
(1591) Project
Arguments: [product#1016911, plant#1016912, orderDateTime#1016913, productPlant#1016924]
(1592) LogicalRelation
Arguments: parquet, [systemId#1016925, internalUUID#1016926, id#1016927, displayId#1016928, name#1016929, baseUnitOfMeasure#1016930, unitOfMeasures#1016931, unitOfMeasureConversions#1016932, productionAspect#1016933, salesAspect#1016934, procurementAspect#1016935, productGroup#1016936], false
(1593) Repartition
Arguments: 37, true
(1594) Join
Arguments: LeftOuter, (product#1016911 = internalUUID#1016926)
(1595) Project
Arguments: [product#1016911, plant#1016912, orderDateTime#1016913, productPlant#1016924, systemId#1016925, internalUUID#1016926, id#1016927, displayId#1016928, name#1016929, baseUnitOfMeasure#1016930, unitOfMeasures#1016931, unitOfMeasureConversions#1016932, productionAspect#1016933, salesAspect#1016934, procurementAspect#1016935, productGroup#1016936, filter(unitOfMeasureConversions#1016932, lambdafunction((((lambda u#1012565.measurementUnit1.code = productPlant#1016924.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1012565.measurementUnit1.internalRefUUID = productPlant#1016924.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1012565.measurementUnit2.code = baseUnitOfMeasure#1016930.code) AND (lambda u#1012565.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1016930.internalRefUUID))), lambda u#1012565, false)) AS filteredUnitOfMeasureConversions#1016937]
(1596) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1016937.quantityNumerator), true, [quantityNumerator#1016938]
(1597) Project
Arguments: [product#1016911, plant#1016912, orderDateTime#1016913, productPlant#1016924, systemId#1016925, internalUUID#1016926, id#1016927, displayId#1016928, name#1016929, baseUnitOfMeasure#1016930, unitOfMeasures#1016931, unitOfMeasureConversions#1016932, productionAspect#1016933, salesAspect#1016934, procurementAspect#1016935, productGroup#1016936, filteredUnitOfMeasureConversions#1016937, quantityNumerator#1016938]
(1598) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1016937.quantityDenominator), true, [quantityDenominator#1016939]
(1599) Project
Arguments: [product#1016911, plant#1016912, orderDateTime#1016913, productPlant#1016924, systemId#1016925, internalUUID#1016926, id#1016927, displayId#1016928, name#1016929, baseUnitOfMeasure#1016930, unitOfMeasures#1016931, unitOfMeasureConversions#1016932, productionAspect#1016933, salesAspect#1016934, procurementAspect#1016935, productGroup#1016936, filteredUnitOfMeasureConversions#1016937, quantityNumerator#1016938, quantityDenominator#1016939]
(1600) Project
Arguments: [product#1016911, plant#1016912, orderDateTime#1016913, productPlant#1016924, systemId#1016925, internalUUID#1016926, id#1016927, displayId#1016928, name#1016929, baseUnitOfMeasure#1016930, unitOfMeasures#1016931, unitOfMeasureConversions#1016932, productionAspect#1016933, salesAspect#1016934, procurementAspect#1016935, productGroup#1016936, filteredUnitOfMeasureConversions#1016937, quantityNumerator#1016938, quantityDenominator#1016939, (cast(quantityNumerator#1016938 as double) / cast(quantityDenominator#1016939 as double)) AS outboundUnit#1016940]
(1601) Project
Arguments: [product#1016911, plant#1016912, orderDateTime#1016913, productPlant#1016924, systemId#1016925, internalUUID#1016926, id#1016927, displayId#1016928, name#1016929, baseUnitOfMeasure#1016930, unitOfMeasures#1016931, unitOfMeasureConversions#1016932, productionAspect#1016933, salesAspect#1016934, procurementAspect#1016935, productGroup#1016936, filteredUnitOfMeasureConversions#1016937, quantityNumerator#1016938, quantityDenominator#1016939, CASE WHEN (isnull(outboundUnit#1016940) OR (outboundUnit#1016940 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1016940 END AS outboundUnit#1016941]
(1602) Project
Arguments: [product#1016911, plant#1016912, orderDateTime#1016913, productPlant#1016924, outboundUnit#1016941]
(1603) Project
Arguments: [plant#1016912]
(1604) Deduplicate
Arguments: [plant#1016912]
(1605) Join
Arguments: Inner, (plantUuid#1016908 = plant#1016912)
(1606) Project
Arguments: [plantId#1016907, plantUuid#1016908, storageLocId#1016909, storageLocUuid#1016910]
(1607) Join
Arguments: Inner, (plant#1016881.internalRefUUID <=> plantUuid#1016908)
(1608) Generate
Arguments: explode(filter(stockQuantities#1016883, lambdafunction(((lambda x#1012695.storageLocation.internalRefUuid = storageLocUuid#1016910) AND (lambda x#1012695.storageLocation.Id = storageLocId#1016909)), lambda x#1012695, false))), false, [stockQuantity#1016942]
(1609) Project
Arguments: [systemId#1016878, internalUUID#1016879, product#1016880, plant#1016881, calculationDateTime#1016882, stockQuantities#1016883, plantId#1016907, plantUuid#1016908, storageLocId#1016909, storageLocUuid#1016910, stockQuantity#1016942]
(1610) Aggregate
Arguments: [plantUuid#1016908, internalUUID#1016879, plant#1016881, product#1016880, systemId#1016878], [plantUuid#1016908, internalUUID#1016879, plant#1016881, product#1016880, systemId#1016878, first(calculationDateTime#1016882, false) AS calculationDateTime#1016943, collect_list(stockQuantity#1016942, 0, 0) AS stockQuantities#1016944]
(1611) Project
Arguments: [systemId#1016878, internalUUID#1016879, product#1016880, plant#1016881, calculationDateTime#1016943, stockQuantities#1016944]
(1612) Generate
Arguments: explode(stockQuantities#1016944), false, [stockQuantity#1016945]
(1613) Project
Arguments: [systemId#1016878, internalUUID#1016879, product#1016880, plant#1016881, calculationDateTime#1016943, stockQuantities#1016944, stockQuantity#1016945]
(1614) Project
Arguments: [plant#1016881.id AS plant#1016946, plant#1016881.internalRefUUID AS plantUuid#1016947, product#1016880.id AS product#1016948, product#1016880.internalRefUUID AS productUuid#1016949, calculationDateTime#1016943, stockQuantity#1016945.storagelocation.id AS storageLocId#1016950, stockQuantity#1016945.storagelocation.internalRefUUID AS storageLocUuid#1016951, stockQuantity#1016945.quantity.measure AS quantity#1016952, stockQuantity#1016945.specialStockIndicator.code AS specialStockIndicator#1016953, stockQuantity#1016945.stockType.code AS stockType#1016954]
(1615) Filter
Arguments: ((specialStockIndicator#1016953 = ) AND (stockType#1016954 = 01))
(1616) LogicalRelation
Arguments: parquet, [product#1016955, plant#1016956, orderDateTime#1016957, planningStartDateTime#1016958], false
(1617) RepartitionByExpression
Arguments: [product#1016955, plant#1016956], 37
(1618) Project
Arguments: [product#1016955, plant#1016956, orderDateTime#1016957]
(1619) LogicalRelation
Arguments: parquet, [systemId#1016959, internalUUID#1016960, plant#1016961, product#1016962, blockedForReplenishmentStartingFrom#1016963, productionAspect#1016964, salesPlant#1016965, listing#1016966, sourceOfSupplyCategory#1016967], false
(1620) Repartition
Arguments: 37, true
(1621) Project
Arguments: [systemId#1016959, internalUUID#1016960, plant#1016961, product#1016962, blockedForReplenishmentStartingFrom#1016963, productionAspect#1016964, salesPlant#1016965, listing#1016966, sourceOfSupplyCategory#1016967, struct(systemId, systemId#1016959, internalUUID, internalUUID#1016960, plant, plant#1016961, product, product#1016962, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1016963, productionAspect, productionAspect#1016964, salesPlant, salesPlant#1016965, listing, listing#1016966, sourceOfSupplyCategory, sourceOfSupplyCategory#1016967) AS productPlant#1016968]
(1622) Project
Arguments: [productPlant#1016968]
(1623) Join
Arguments: LeftOuter, ((product#1016955 <=> productPlant#1016968.product.internalRefUUID) AND (plant#1016956 <=> productPlant#1016968.plant.internalRefUUID))
(1624) Project
Arguments: [product#1016955, plant#1016956, orderDateTime#1016957, productPlant#1016968]
(1625) LogicalRelation
Arguments: parquet, [systemId#1016969, internalUUID#1016970, id#1016971, displayId#1016972, name#1016973, baseUnitOfMeasure#1016974, unitOfMeasures#1016975, unitOfMeasureConversions#1016976, productionAspect#1016977, salesAspect#1016978, procurementAspect#1016979, productGroup#1016980], false
(1626) Repartition
Arguments: 37, true
(1627) Join
Arguments: LeftOuter, (product#1016955 = internalUUID#1016970)
(1628) Project
Arguments: [product#1016955, plant#1016956, orderDateTime#1016957, productPlant#1016968, systemId#1016969, internalUUID#1016970, id#1016971, displayId#1016972, name#1016973, baseUnitOfMeasure#1016974, unitOfMeasures#1016975, unitOfMeasureConversions#1016976, productionAspect#1016977, salesAspect#1016978, procurementAspect#1016979, productGroup#1016980, filter(unitOfMeasureConversions#1016976, lambdafunction((((lambda u#1012565.measurementUnit1.code = productPlant#1016968.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1012565.measurementUnit1.internalRefUUID = productPlant#1016968.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1012565.measurementUnit2.code = baseUnitOfMeasure#1016974.code) AND (lambda u#1012565.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1016974.internalRefUUID))), lambda u#1012565, false)) AS filteredUnitOfMeasureConversions#1016981]
(1629) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1016981.quantityNumerator), true, [quantityNumerator#1016982]
(1630) Project
Arguments: [product#1016955, plant#1016956, orderDateTime#1016957, productPlant#1016968, systemId#1016969, internalUUID#1016970, id#1016971, displayId#1016972, name#1016973, baseUnitOfMeasure#1016974, unitOfMeasures#1016975, unitOfMeasureConversions#1016976, productionAspect#1016977, salesAspect#1016978, procurementAspect#1016979, productGroup#1016980, filteredUnitOfMeasureConversions#1016981, quantityNumerator#1016982]
(1631) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1016981.quantityDenominator), true, [quantityDenominator#1016983]
(1632) Project
Arguments: [product#1016955, plant#1016956, orderDateTime#1016957, productPlant#1016968, systemId#1016969, internalUUID#1016970, id#1016971, displayId#1016972, name#1016973, baseUnitOfMeasure#1016974, unitOfMeasures#1016975, unitOfMeasureConversions#1016976, productionAspect#1016977, salesAspect#1016978, procurementAspect#1016979, productGroup#1016980, filteredUnitOfMeasureConversions#1016981, quantityNumerator#1016982, quantityDenominator#1016983]
(1633) Project
Arguments: [product#1016955, plant#1016956, orderDateTime#1016957, productPlant#1016968, systemId#1016969, internalUUID#1016970, id#1016971, displayId#1016972, name#1016973, baseUnitOfMeasure#1016974, unitOfMeasures#1016975, unitOfMeasureConversions#1016976, productionAspect#1016977, salesAspect#1016978, procurementAspect#1016979, productGroup#1016980, filteredUnitOfMeasureConversions#1016981, quantityNumerator#1016982, quantityDenominator#1016983, (cast(quantityNumerator#1016982 as double) / cast(quantityDenominator#1016983 as double)) AS outboundUnit#1016984]
(1634) Project
Arguments: [product#1016955, plant#1016956, orderDateTime#1016957, productPlant#1016968, systemId#1016969, internalUUID#1016970, id#1016971, displayId#1016972, name#1016973, baseUnitOfMeasure#1016974, unitOfMeasures#1016975, unitOfMeasureConversions#1016976, productionAspect#1016977, salesAspect#1016978, procurementAspect#1016979, productGroup#1016980, filteredUnitOfMeasureConversions#1016981, quantityNumerator#1016982, quantityDenominator#1016983, CASE WHEN (isnull(outboundUnit#1016984) OR (outboundUnit#1016984 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1016984 END AS outboundUnit#1016985]
(1635) Project
Arguments: [product#1016955, plant#1016956, orderDateTime#1016957, productPlant#1016968, outboundUnit#1016985]
(1636) Join
Arguments: Inner, ((plantUuid#1016947 = plant#1016956) AND (productUuid#1016949 = product#1016955))
(1637) Filter
Arguments: (calculationDateTime#1016943 <= orderDateTime#1016957)
(1638) Project
Arguments: [plantUuid#1016947 AS plant#1016986, productUuid#1016949 AS product#1016987, storageLocId#1016950, calculationDateTime#1016943, quantity#1016952]
(1639) Aggregate
Arguments: [plant#1016986, product#1016987, storageLocId#1016950], [plant#1016986, product#1016987, storageLocId#1016950, max(calculationDateTime#1016943) AS max_calc_datetime#1016988]
(1640) Join
Arguments: Inner, ((((plant#1016876 <=> plant#1016986) AND (product#1016877 <=> product#1016987)) AND (storageLocId#1016840 <=> storageLocId#1016950)) AND (calculationDateTime#1016833 <=> max_calc_datetime#1016988))
(1641) Project
Arguments: [plant#1016876, product#1016877, storageLocId#1016840, calculationDateTime#1016833, quantity#1016842]
(1642) Aggregate
Arguments: [product#1016877, plant#1016876], [product#1016877, plant#1016876, sum(quantity#1016842) AS quantitySum#1016989, min(calculationDateTime#1016833) AS minCalculationDateTime#1016990]
(1643) Project
Arguments: [product#1016877, plant#1016876, quantitySum#1016989, minCalculationDateTime#1016990, round(quantitySum#1016989, 0) AS roundedQuantitySum#1016991]
(1644) Join
Arguments: LeftOuter, ((plant#1016738 = plant#1016876) AND (product#1016737 = product#1016877))
(1645) Project
Arguments: [product#1016737, plant#1016738, orderDateTime#1016739, productPlant#1016750, outboundUnit#1016767, roundedQuantitySum#1016991, minCalculationDateTime#1016990]
(1646) Project
Arguments: [product#1016737, plant#1016738, orderDateTime#1016739, productPlant#1016750, outboundUnit#1016767, roundedQuantitySum#1016991, minCalculationDateTime#1016990, CASE WHEN isnotnull(minCalculationDateTime#1016990) THEN minCalculationDateTime#1016990 ELSE orderDateTime#1016739 END AS stockDatetime#1016992]
(1647) Project
Arguments: [product#1016737, plant#1016738, orderDateTime#1016739, productPlant#1016750, outboundUnit#1016767, roundedQuantitySum#1016991, minCalculationDateTime#1016990, stockDatetime#1016992, CASE WHEN isnotnull(roundedQuantitySum#1016991) THEN array(roundedQuantitySum#1016991) ELSE array(0.0) END AS stockBatchQuantities#1016993]
(1648) Project
Arguments: [product#1016737, plant#1016738, orderDateTime#1016739, productPlant#1016750, outboundUnit#1016767, roundedQuantitySum#1016991, minCalculationDateTime#1016990, stockDatetime#1016992, stockBatchQuantities#1016993, array(2199-01-01 00:00:00) AS stockBatchShelfLifeEndDatetimes#1016994]
(1649) Project
Arguments: [product#1016737, plant#1016738, orderDateTime#1016739, productPlant#1016750, outboundUnit#1016767, roundedQuantitySum#1016991, stockDatetime#1016992, stockBatchQuantities#1016993, stockBatchShelfLifeEndDatetimes#1016994]
(1650) Project
Arguments: [product#1016737, plant#1016738, orderDateTime#1016739, productPlant#1016750, outboundUnit#1016767, stockDatetime#1016992, stockBatchQuantities#1016993, stockBatchShelfLifeEndDatetimes#1016994]
(1651) LogicalRelation
Arguments: parquet, [product#1016995, plant#1016996, orderDateTime#1016997, planningStartDateTime#1016998], false
(1652) RepartitionByExpression
Arguments: [product#1016995, plant#1016996], 37
(1653) Project
Arguments: [product#1016995, plant#1016996, orderDateTime#1016997]
(1654) LogicalRelation
Arguments: parquet, [systemId#1016999, internalUUID#1017000, plant#1017001, product#1017002, blockedForReplenishmentStartingFrom#1017003, productionAspect#1017004, salesPlant#1017005, listing#1017006, sourceOfSupplyCategory#1017007], false
(1655) Repartition
Arguments: 37, true
(1656) Project
Arguments: [systemId#1016999, internalUUID#1017000, plant#1017001, product#1017002, blockedForReplenishmentStartingFrom#1017003, productionAspect#1017004, salesPlant#1017005, listing#1017006, sourceOfSupplyCategory#1017007, struct(systemId, systemId#1016999, internalUUID, internalUUID#1017000, plant, plant#1017001, product, product#1017002, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1017003, productionAspect, productionAspect#1017004, salesPlant, salesPlant#1017005, listing, listing#1017006, sourceOfSupplyCategory, sourceOfSupplyCategory#1017007) AS productPlant#1017008]
(1657) Project
Arguments: [productPlant#1017008]
(1658) Join
Arguments: LeftOuter, ((product#1016995 <=> productPlant#1017008.product.internalRefUUID) AND (plant#1016996 <=> productPlant#1017008.plant.internalRefUUID))
(1659) Project
Arguments: [product#1016995, plant#1016996, orderDateTime#1016997, productPlant#1017008]
(1660) LogicalRelation
Arguments: parquet, [systemId#1017009, internalUUID#1017010, id#1017011, displayId#1017012, name#1017013, baseUnitOfMeasure#1017014, unitOfMeasures#1017015, unitOfMeasureConversions#1017016, productionAspect#1017017, salesAspect#1017018, procurementAspect#1017019, productGroup#1017020], false
(1661) Repartition
Arguments: 37, true
(1662) Join
Arguments: LeftOuter, (product#1016995 = internalUUID#1017010)
(1663) Project
Arguments: [product#1016995, plant#1016996, orderDateTime#1016997, productPlant#1017008, systemId#1017009, internalUUID#1017010, id#1017011, displayId#1017012, name#1017013, baseUnitOfMeasure#1017014, unitOfMeasures#1017015, unitOfMeasureConversions#1017016, productionAspect#1017017, salesAspect#1017018, procurementAspect#1017019, productGroup#1017020, filter(unitOfMeasureConversions#1017016, lambdafunction((((lambda u#1012565.measurementUnit1.code = productPlant#1017008.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1012565.measurementUnit1.internalRefUUID = productPlant#1017008.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1012565.measurementUnit2.code = baseUnitOfMeasure#1017014.code) AND (lambda u#1012565.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1017014.internalRefUUID))), lambda u#1012565, false)) AS filteredUnitOfMeasureConversions#1017021]
(1664) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1017021.quantityNumerator), true, [quantityNumerator#1017022]
(1665) Project
Arguments: [product#1016995, plant#1016996, orderDateTime#1016997, productPlant#1017008, systemId#1017009, internalUUID#1017010, id#1017011, displayId#1017012, name#1017013, baseUnitOfMeasure#1017014, unitOfMeasures#1017015, unitOfMeasureConversions#1017016, productionAspect#1017017, salesAspect#1017018, procurementAspect#1017019, productGroup#1017020, filteredUnitOfMeasureConversions#1017021, quantityNumerator#1017022]
(1666) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1017021.quantityDenominator), true, [quantityDenominator#1017023]
(1667) Project
Arguments: [product#1016995, plant#1016996, orderDateTime#1016997, productPlant#1017008, systemId#1017009, internalUUID#1017010, id#1017011, displayId#1017012, name#1017013, baseUnitOfMeasure#1017014, unitOfMeasures#1017015, unitOfMeasureConversions#1017016, productionAspect#1017017, salesAspect#1017018, procurementAspect#1017019, productGroup#1017020, filteredUnitOfMeasureConversions#1017021, quantityNumerator#1017022, quantityDenominator#1017023]
(1668) Project
Arguments: [product#1016995, plant#1016996, orderDateTime#1016997, productPlant#1017008, systemId#1017009, internalUUID#1017010, id#1017011, displayId#1017012, name#1017013, baseUnitOfMeasure#1017014, unitOfMeasures#1017015, unitOfMeasureConversions#1017016, productionAspect#1017017, salesAspect#1017018, procurementAspect#1017019, productGroup#1017020, filteredUnitOfMeasureConversions#1017021, quantityNumerator#1017022, quantityDenominator#1017023, (cast(quantityNumerator#1017022 as double) / cast(quantityDenominator#1017023 as double)) AS outboundUnit#1017024]
(1669) Project
Arguments: [product#1016995, plant#1016996, orderDateTime#1016997, productPlant#1017008, systemId#1017009, internalUUID#1017010, id#1017011, displayId#1017012, name#1017013, baseUnitOfMeasure#1017014, unitOfMeasures#1017015, unitOfMeasureConversions#1017016, productionAspect#1017017, salesAspect#1017018, procurementAspect#1017019, productGroup#1017020, filteredUnitOfMeasureConversions#1017021, quantityNumerator#1017022, quantityDenominator#1017023, CASE WHEN (isnull(outboundUnit#1017024) OR (outboundUnit#1017024 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1017024 END AS outboundUnit#1017025]
(1670) Project
Arguments: [product#1016995, plant#1016996, orderDateTime#1016997, productPlant#1017008, outboundUnit#1017025]
(1671) LogicalRelation
Arguments: parquet, [systemId#1017026, internalUUID#1017027, product#1017028, plant#1017029, calculationDateTime#1017030, stockQuantities#1017031], false
(1672) Repartition
Arguments: 37, true
(1673) LogicalRelation
Arguments: parquet, [marketUnit#1017032, description#1017033, articleHierarchy#1017034, defaultCurrency#1017035, responsibilities#1017036, replenishmentTypes#1017037, distributionCenters#1017038, assignedArticleHierarchyNodes#1017039, minOrderQtySetting#1017040, listingCheck#1017041, odsSelection#1017042, demandProfiles#1017043, constraintProfiles#1017044, optimizationProfiles#1017045, orderGroupSplitProfiles#1017046, supplierMinimumProfiles#1017047, multipleRestrictionProfiles#1017048, preferredUomSource#1017049, handlingOfUnfulfilledDemands#1017050, negligibleQuantitiesThreshold#1017051, eventtype#1017052], false
(1674) Repartition
Arguments: 37, true
(1675) Filter
Arguments: (marketUnit#1017032 <=> STEPHI_MU)
(1676) Project
Arguments: [marketUnit#1017032, description#1017033, articleHierarchy#1017034, defaultCurrency#1017035, responsibilities#1017036, replenishmentTypes#1017037, distributionCenters#1017038, assignedArticleHierarchyNodes#1017039, minOrderQtySetting#1017040, listingCheck#1017041, odsSelection#1017042, demandProfiles#1017043, constraintProfiles#1017044, optimizationProfiles#1017045, orderGroupSplitProfiles#1017046, supplierMinimumProfiles#1017047, multipleRestrictionProfiles#1017048, preferredUomSource#1017049, handlingOfUnfulfilledDemands#1017050, negligibleQuantitiesThreshold#1017051, eventtype#1017052]
(1677) Project
Arguments: [distributionCenters#1017038]
(1678) Generate
Arguments: explode(distributionCenters#1017038), false, [distributionCenters#1017053]
(1679) Project
Arguments: [distributionCenters#1017053]
(1680) Generate
Arguments: explode(distributionCenters#1017053.storageLocations), false, [storageLocations#1017054]
(1681) Project
Arguments: [distributionCenters#1017053.id AS plantId#1017055, distributionCenters#1017053.internalRefUUID AS plantUuid#1017056, storageLocations#1017054]
(1682) Project
Arguments: [plantId#1017055, plantUuid#1017056, storageLocations#1017054.id AS storageLocId#1017057, storageLocations#1017054.internalRefUUID AS storageLocUuid#1017058]
(1683) LogicalRelation
Arguments: parquet, [product#1017059, plant#1017060, orderDateTime#1017061, planningStartDateTime#1017062], false
(1684) RepartitionByExpression
Arguments: [product#1017059, plant#1017060], 37
(1685) Project
Arguments: [product#1017059, plant#1017060, orderDateTime#1017061]
(1686) LogicalRelation
Arguments: parquet, [systemId#1017063, internalUUID#1017064, plant#1017065, product#1017066, blockedForReplenishmentStartingFrom#1017067, productionAspect#1017068, salesPlant#1017069, listing#1017070, sourceOfSupplyCategory#1017071], false
(1687) Repartition
Arguments: 37, true
(1688) Project
Arguments: [systemId#1017063, internalUUID#1017064, plant#1017065, product#1017066, blockedForReplenishmentStartingFrom#1017067, productionAspect#1017068, salesPlant#1017069, listing#1017070, sourceOfSupplyCategory#1017071, struct(systemId, systemId#1017063, internalUUID, internalUUID#1017064, plant, plant#1017065, product, product#1017066, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1017067, productionAspect, productionAspect#1017068, salesPlant, salesPlant#1017069, listing, listing#1017070, sourceOfSupplyCategory, sourceOfSupplyCategory#1017071) AS productPlant#1017072]
(1689) Project
Arguments: [productPlant#1017072]
(1690) Join
Arguments: LeftOuter, ((product#1017059 <=> productPlant#1017072.product.internalRefUUID) AND (plant#1017060 <=> productPlant#1017072.plant.internalRefUUID))
(1691) Project
Arguments: [product#1017059, plant#1017060, orderDateTime#1017061, productPlant#1017072]
(1692) LogicalRelation
Arguments: parquet, [systemId#1017073, internalUUID#1017074, id#1017075, displayId#1017076, name#1017077, baseUnitOfMeasure#1017078, unitOfMeasures#1017079, unitOfMeasureConversions#1017080, productionAspect#1017081, salesAspect#1017082, procurementAspect#1017083, productGroup#1017084], false
(1693) Repartition
Arguments: 37, true
(1694) Join
Arguments: LeftOuter, (product#1017059 = internalUUID#1017074)
(1695) Project
Arguments: [product#1017059, plant#1017060, orderDateTime#1017061, productPlant#1017072, systemId#1017073, internalUUID#1017074, id#1017075, displayId#1017076, name#1017077, baseUnitOfMeasure#1017078, unitOfMeasures#1017079, unitOfMeasureConversions#1017080, productionAspect#1017081, salesAspect#1017082, procurementAspect#1017083, productGroup#1017084, filter(unitOfMeasureConversions#1017080, lambdafunction((((lambda u#1012565.measurementUnit1.code = productPlant#1017072.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1012565.measurementUnit1.internalRefUUID = productPlant#1017072.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1012565.measurementUnit2.code = baseUnitOfMeasure#1017078.code) AND (lambda u#1012565.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1017078.internalRefUUID))), lambda u#1012565, false)) AS filteredUnitOfMeasureConversions#1017085]
(1696) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1017085.quantityNumerator), true, [quantityNumerator#1017086]
(1697) Project
Arguments: [product#1017059, plant#1017060, orderDateTime#1017061, productPlant#1017072, systemId#1017073, internalUUID#1017074, id#1017075, displayId#1017076, name#1017077, baseUnitOfMeasure#1017078, unitOfMeasures#1017079, unitOfMeasureConversions#1017080, productionAspect#1017081, salesAspect#1017082, procurementAspect#1017083, productGroup#1017084, filteredUnitOfMeasureConversions#1017085, quantityNumerator#1017086]
(1698) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1017085.quantityDenominator), true, [quantityDenominator#1017087]
(1699) Project
Arguments: [product#1017059, plant#1017060, orderDateTime#1017061, productPlant#1017072, systemId#1017073, internalUUID#1017074, id#1017075, displayId#1017076, name#1017077, baseUnitOfMeasure#1017078, unitOfMeasures#1017079, unitOfMeasureConversions#1017080, productionAspect#1017081, salesAspect#1017082, procurementAspect#1017083, productGroup#1017084, filteredUnitOfMeasureConversions#1017085, quantityNumerator#1017086, quantityDenominator#1017087]
(1700) Project
Arguments: [product#1017059, plant#1017060, orderDateTime#1017061, productPlant#1017072, systemId#1017073, internalUUID#1017074, id#1017075, displayId#1017076, name#1017077, baseUnitOfMeasure#1017078, unitOfMeasures#1017079, unitOfMeasureConversions#1017080, productionAspect#1017081, salesAspect#1017082, procurementAspect#1017083, productGroup#1017084, filteredUnitOfMeasureConversions#1017085, quantityNumerator#1017086, quantityDenominator#1017087, (cast(quantityNumerator#1017086 as double) / cast(quantityDenominator#1017087 as double)) AS outboundUnit#1017088]
(1701) Project
Arguments: [product#1017059, plant#1017060, orderDateTime#1017061, productPlant#1017072, systemId#1017073, internalUUID#1017074, id#1017075, displayId#1017076, name#1017077, baseUnitOfMeasure#1017078, unitOfMeasures#1017079, unitOfMeasureConversions#1017080, productionAspect#1017081, salesAspect#1017082, procurementAspect#1017083, productGroup#1017084, filteredUnitOfMeasureConversions#1017085, quantityNumerator#1017086, quantityDenominator#1017087, CASE WHEN (isnull(outboundUnit#1017088) OR (outboundUnit#1017088 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1017088 END AS outboundUnit#1017089]
(1702) Project
Arguments: [product#1017059, plant#1017060, orderDateTime#1017061, productPlant#1017072, outboundUnit#1017089]
(1703) Project
Arguments: [plant#1017060]
(1704) Deduplicate
Arguments: [plant#1017060]
(1705) Join
Arguments: Inner, (plantUuid#1017056 = plant#1017060)
(1706) Project
Arguments: [plantId#1017055, plantUuid#1017056, storageLocId#1017057, storageLocUuid#1017058]
(1707) Join
Arguments: Inner, (plant#1017029.internalRefUUID <=> plantUuid#1017056)
(1708) Generate
Arguments: explode(filter(stockQuantities#1017031, lambdafunction(((lambda x#1012695.storageLocation.internalRefUuid = storageLocUuid#1017058) AND (lambda x#1012695.storageLocation.Id = storageLocId#1017057)), lambda x#1012695, false))), false, [stockQuantity#1017090]
(1709) Project
Arguments: [systemId#1017026, internalUUID#1017027, product#1017028, plant#1017029, calculationDateTime#1017030, stockQuantities#1017031, plantId#1017055, plantUuid#1017056, storageLocId#1017057, storageLocUuid#1017058, stockQuantity#1017090]
(1710) Aggregate
Arguments: [plantUuid#1017056, internalUUID#1017027, plant#1017029, product#1017028, systemId#1017026], [plantUuid#1017056, internalUUID#1017027, plant#1017029, product#1017028, systemId#1017026, first(calculationDateTime#1017030, false) AS calculationDateTime#1017091, collect_list(stockQuantity#1017090, 0, 0) AS stockQuantities#1017092]
(1711) Project
Arguments: [systemId#1017026, internalUUID#1017027, product#1017028, plant#1017029, calculationDateTime#1017091, stockQuantities#1017092]
(1712) Generate
Arguments: explode(stockQuantities#1017092), false, [stockQuantity#1017093]
(1713) Project
Arguments: [systemId#1017026, internalUUID#1017027, product#1017028, plant#1017029, calculationDateTime#1017091, stockQuantities#1017092, stockQuantity#1017093]
(1714) Project
Arguments: [plant#1017029.id AS plant#1017094, plant#1017029.internalRefUUID AS plantUuid#1017095, product#1017028.id AS product#1017096, product#1017028.internalRefUUID AS productUuid#1017097, calculationDateTime#1017091, stockQuantity#1017093.storagelocation.id AS storageLocId#1017098, stockQuantity#1017093.storagelocation.internalRefUUID AS storageLocUuid#1017099, stockQuantity#1017093.quantity.measure AS quantity#1017100, stockQuantity#1017093.specialStockIndicator.code AS specialStockIndicator#1017101, stockQuantity#1017093.stockType.code AS stockType#1017102]
(1715) Filter
Arguments: ((specialStockIndicator#1017101 = ) AND (stockType#1017102 = 01))
(1716) LogicalRelation
Arguments: parquet, [product#1017103, plant#1017104, orderDateTime#1017105, planningStartDateTime#1017106], false
(1717) RepartitionByExpression
Arguments: [product#1017103, plant#1017104], 37
(1718) Project
Arguments: [product#1017103, plant#1017104, orderDateTime#1017105]
(1719) LogicalRelation
Arguments: parquet, [systemId#1017107, internalUUID#1017108, plant#1017109, product#1017110, blockedForReplenishmentStartingFrom#1017111, productionAspect#1017112, salesPlant#1017113, listing#1017114, sourceOfSupplyCategory#1017115], false
(1720) Repartition
Arguments: 37, true
(1721) Project
Arguments: [systemId#1017107, internalUUID#1017108, plant#1017109, product#1017110, blockedForReplenishmentStartingFrom#1017111, productionAspect#1017112, salesPlant#1017113, listing#1017114, sourceOfSupplyCategory#1017115, struct(systemId, systemId#1017107, internalUUID, internalUUID#1017108, plant, plant#1017109, product, product#1017110, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1017111, productionAspect, productionAspect#1017112, salesPlant, salesPlant#1017113, listing, listing#1017114, sourceOfSupplyCategory, sourceOfSupplyCategory#1017115) AS productPlant#1017116]
(1722) Project
Arguments: [productPlant#1017116]
(1723) Join
Arguments: LeftOuter, ((product#1017103 <=> productPlant#1017116.product.internalRefUUID) AND (plant#1017104 <=> productPlant#1017116.plant.internalRefUUID))
(1724) Project
Arguments: [product#1017103, plant#1017104, orderDateTime#1017105, productPlant#1017116]
(1725) LogicalRelation
Arguments: parquet, [systemId#1017117, internalUUID#1017118, id#1017119, displayId#1017120, name#1017121, baseUnitOfMeasure#1017122, unitOfMeasures#1017123, unitOfMeasureConversions#1017124, productionAspect#1017125, salesAspect#1017126, procurementAspect#1017127, productGroup#1017128], false
(1726) Repartition
Arguments: 37, true
(1727) Join
Arguments: LeftOuter, (product#1017103 = internalUUID#1017118)
(1728) Project
Arguments: [product#1017103, plant#1017104, orderDateTime#1017105, productPlant#1017116, systemId#1017117, internalUUID#1017118, id#1017119, displayId#1017120, name#1017121, baseUnitOfMeasure#1017122, unitOfMeasures#1017123, unitOfMeasureConversions#1017124, productionAspect#1017125, salesAspect#1017126, procurementAspect#1017127, productGroup#1017128, filter(unitOfMeasureConversions#1017124, lambdafunction((((lambda u#1012565.measurementUnit1.code = productPlant#1017116.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1012565.measurementUnit1.internalRefUUID = productPlant#1017116.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1012565.measurementUnit2.code = baseUnitOfMeasure#1017122.code) AND (lambda u#1012565.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1017122.internalRefUUID))), lambda u#1012565, false)) AS filteredUnitOfMeasureConversions#1017129]
(1729) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1017129.quantityNumerator), true, [quantityNumerator#1017130]
(1730) Project
Arguments: [product#1017103, plant#1017104, orderDateTime#1017105, productPlant#1017116, systemId#1017117, internalUUID#1017118, id#1017119, displayId#1017120, name#1017121, baseUnitOfMeasure#1017122, unitOfMeasures#1017123, unitOfMeasureConversions#1017124, productionAspect#1017125, salesAspect#1017126, procurementAspect#1017127, productGroup#1017128, filteredUnitOfMeasureConversions#1017129, quantityNumerator#1017130]
(1731) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1017129.quantityDenominator), true, [quantityDenominator#1017131]
(1732) Project
Arguments: [product#1017103, plant#1017104, orderDateTime#1017105, productPlant#1017116, systemId#1017117, internalUUID#1017118, id#1017119, displayId#1017120, name#1017121, baseUnitOfMeasure#1017122, unitOfMeasures#1017123, unitOfMeasureConversions#1017124, productionAspect#1017125, salesAspect#1017126, procurementAspect#1017127, productGroup#1017128, filteredUnitOfMeasureConversions#1017129, quantityNumerator#1017130, quantityDenominator#1017131]
(1733) Project
Arguments: [product#1017103, plant#1017104, orderDateTime#1017105, productPlant#1017116, systemId#1017117, internalUUID#1017118, id#1017119, displayId#1017120, name#1017121, baseUnitOfMeasure#1017122, unitOfMeasures#1017123, unitOfMeasureConversions#1017124, productionAspect#1017125, salesAspect#1017126, procurementAspect#1017127, productGroup#1017128, filteredUnitOfMeasureConversions#1017129, quantityNumerator#1017130, quantityDenominator#1017131, (cast(quantityNumerator#1017130 as double) / cast(quantityDenominator#1017131 as double)) AS outboundUnit#1017132]
(1734) Project
Arguments: [product#1017103, plant#1017104, orderDateTime#1017105, productPlant#1017116, systemId#1017117, internalUUID#1017118, id#1017119, displayId#1017120, name#1017121, baseUnitOfMeasure#1017122, unitOfMeasures#1017123, unitOfMeasureConversions#1017124, productionAspect#1017125, salesAspect#1017126, procurementAspect#1017127, productGroup#1017128, filteredUnitOfMeasureConversions#1017129, quantityNumerator#1017130, quantityDenominator#1017131, CASE WHEN (isnull(outboundUnit#1017132) OR (outboundUnit#1017132 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1017132 END AS outboundUnit#1017133]
(1735) Project
Arguments: [product#1017103, plant#1017104, orderDateTime#1017105, productPlant#1017116, outboundUnit#1017133]
(1736) Join
Arguments: Inner, ((plantUuid#1017095 = plant#1017104) AND (productUuid#1017097 = product#1017103))
(1737) Filter
Arguments: (calculationDateTime#1017091 <= orderDateTime#1017105)
(1738) Project
Arguments: [plantUuid#1017095 AS plant#1017134, productUuid#1017097 AS product#1017135, storageLocId#1017098, calculationDateTime#1017091, quantity#1017100]
(1739) LogicalRelation
Arguments: parquet, [systemId#1017136, internalUUID#1017137, product#1017138, plant#1017139, calculationDateTime#1017140, stockQuantities#1017141], false
(1740) Repartition
Arguments: 37, true
(1741) LogicalRelation
Arguments: parquet, [marketUnit#1017142, description#1017143, articleHierarchy#1017144, defaultCurrency#1017145, responsibilities#1017146, replenishmentTypes#1017147, distributionCenters#1017148, assignedArticleHierarchyNodes#1017149, minOrderQtySetting#1017150, listingCheck#1017151, odsSelection#1017152, demandProfiles#1017153, constraintProfiles#1017154, optimizationProfiles#1017155, orderGroupSplitProfiles#1017156, supplierMinimumProfiles#1017157, multipleRestrictionProfiles#1017158, preferredUomSource#1017159, handlingOfUnfulfilledDemands#1017160, negligibleQuantitiesThreshold#1017161, eventtype#1017162], false
(1742) Repartition
Arguments: 37, true
(1743) Filter
Arguments: (marketUnit#1017142 <=> STEPHI_MU)
(1744) Project
Arguments: [marketUnit#1017142, description#1017143, articleHierarchy#1017144, defaultCurrency#1017145, responsibilities#1017146, replenishmentTypes#1017147, distributionCenters#1017148, assignedArticleHierarchyNodes#1017149, minOrderQtySetting#1017150, listingCheck#1017151, odsSelection#1017152, demandProfiles#1017153, constraintProfiles#1017154, optimizationProfiles#1017155, orderGroupSplitProfiles#1017156, supplierMinimumProfiles#1017157, multipleRestrictionProfiles#1017158, preferredUomSource#1017159, handlingOfUnfulfilledDemands#1017160, negligibleQuantitiesThreshold#1017161, eventtype#1017162]
(1745) Project
Arguments: [distributionCenters#1017148]
(1746) Generate
Arguments: explode(distributionCenters#1017148), false, [distributionCenters#1017163]
(1747) Project
Arguments: [distributionCenters#1017163]
(1748) Generate
Arguments: explode(distributionCenters#1017163.storageLocations), false, [storageLocations#1017164]
(1749) Project
Arguments: [distributionCenters#1017163.id AS plantId#1017165, distributionCenters#1017163.internalRefUUID AS plantUuid#1017166, storageLocations#1017164]
(1750) Project
Arguments: [plantId#1017165, plantUuid#1017166, storageLocations#1017164.id AS storageLocId#1017167, storageLocations#1017164.internalRefUUID AS storageLocUuid#1017168]
(1751) LogicalRelation
Arguments: parquet, [product#1017169, plant#1017170, orderDateTime#1017171, planningStartDateTime#1017172], false
(1752) RepartitionByExpression
Arguments: [product#1017169, plant#1017170], 37
(1753) Project
Arguments: [product#1017169, plant#1017170, orderDateTime#1017171]
(1754) LogicalRelation
Arguments: parquet, [systemId#1017173, internalUUID#1017174, plant#1017175, product#1017176, blockedForReplenishmentStartingFrom#1017177, productionAspect#1017178, salesPlant#1017179, listing#1017180, sourceOfSupplyCategory#1017181], false
(1755) Repartition
Arguments: 37, true
(1756) Project
Arguments: [systemId#1017173, internalUUID#1017174, plant#1017175, product#1017176, blockedForReplenishmentStartingFrom#1017177, productionAspect#1017178, salesPlant#1017179, listing#1017180, sourceOfSupplyCategory#1017181, struct(systemId, systemId#1017173, internalUUID, internalUUID#1017174, plant, plant#1017175, product, product#1017176, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1017177, productionAspect, productionAspect#1017178, salesPlant, salesPlant#1017179, listing, listing#1017180, sourceOfSupplyCategory, sourceOfSupplyCategory#1017181) AS productPlant#1017182]
(1757) Project
Arguments: [productPlant#1017182]
(1758) Join
Arguments: LeftOuter, ((product#1017169 <=> productPlant#1017182.product.internalRefUUID) AND (plant#1017170 <=> productPlant#1017182.plant.internalRefUUID))
(1759) Project
Arguments: [product#1017169, plant#1017170, orderDateTime#1017171, productPlant#1017182]
(1760) LogicalRelation
Arguments: parquet, [systemId#1017183, internalUUID#1017184, id#1017185, displayId#1017186, name#1017187, baseUnitOfMeasure#1017188, unitOfMeasures#1017189, unitOfMeasureConversions#1017190, productionAspect#1017191, salesAspect#1017192, procurementAspect#1017193, productGroup#1017194], false
(1761) Repartition
Arguments: 37, true
(1762) Join
Arguments: LeftOuter, (product#1017169 = internalUUID#1017184)
(1763) Project
Arguments: [product#1017169, plant#1017170, orderDateTime#1017171, productPlant#1017182, systemId#1017183, internalUUID#1017184, id#1017185, displayId#1017186, name#1017187, baseUnitOfMeasure#1017188, unitOfMeasures#1017189, unitOfMeasureConversions#1017190, productionAspect#1017191, salesAspect#1017192, procurementAspect#1017193, productGroup#1017194, filter(unitOfMeasureConversions#1017190, lambdafunction((((lambda u#1012565.measurementUnit1.code = productPlant#1017182.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1012565.measurementUnit1.internalRefUUID = productPlant#1017182.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1012565.measurementUnit2.code = baseUnitOfMeasure#1017188.code) AND (lambda u#1012565.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1017188.internalRefUUID))), lambda u#1012565, false)) AS filteredUnitOfMeasureConversions#1017195]
(1764) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1017195.quantityNumerator), true, [quantityNumerator#1017196]
(1765) Project
Arguments: [product#1017169, plant#1017170, orderDateTime#1017171, productPlant#1017182, systemId#1017183, internalUUID#1017184, id#1017185, displayId#1017186, name#1017187, baseUnitOfMeasure#1017188, unitOfMeasures#1017189, unitOfMeasureConversions#1017190, productionAspect#1017191, salesAspect#1017192, procurementAspect#1017193, productGroup#1017194, filteredUnitOfMeasureConversions#1017195, quantityNumerator#1017196]
(1766) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1017195.quantityDenominator), true, [quantityDenominator#1017197]
(1767) Project
Arguments: [product#1017169, plant#1017170, orderDateTime#1017171, productPlant#1017182, systemId#1017183, internalUUID#1017184, id#1017185, displayId#1017186, name#1017187, baseUnitOfMeasure#1017188, unitOfMeasures#1017189, unitOfMeasureConversions#1017190, productionAspect#1017191, salesAspect#1017192, procurementAspect#1017193, productGroup#1017194, filteredUnitOfMeasureConversions#1017195, quantityNumerator#1017196, quantityDenominator#1017197]
(1768) Project
Arguments: [product#1017169, plant#1017170, orderDateTime#1017171, productPlant#1017182, systemId#1017183, internalUUID#1017184, id#1017185, displayId#1017186, name#1017187, baseUnitOfMeasure#1017188, unitOfMeasures#1017189, unitOfMeasureConversions#1017190, productionAspect#1017191, salesAspect#1017192, procurementAspect#1017193, productGroup#1017194, filteredUnitOfMeasureConversions#1017195, quantityNumerator#1017196, quantityDenominator#1017197, (cast(quantityNumerator#1017196 as double) / cast(quantityDenominator#1017197 as double)) AS outboundUnit#1017198]
(1769) Project
Arguments: [product#1017169, plant#1017170, orderDateTime#1017171, productPlant#1017182, systemId#1017183, internalUUID#1017184, id#1017185, displayId#1017186, name#1017187, baseUnitOfMeasure#1017188, unitOfMeasures#1017189, unitOfMeasureConversions#1017190, productionAspect#1017191, salesAspect#1017192, procurementAspect#1017193, productGroup#1017194, filteredUnitOfMeasureConversions#1017195, quantityNumerator#1017196, quantityDenominator#1017197, CASE WHEN (isnull(outboundUnit#1017198) OR (outboundUnit#1017198 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1017198 END AS outboundUnit#1017199]
(1770) Project
Arguments: [product#1017169, plant#1017170, orderDateTime#1017171, productPlant#1017182, outboundUnit#1017199]
(1771) Project
Arguments: [plant#1017170]
(1772) Deduplicate
Arguments: [plant#1017170]
(1773) Join
Arguments: Inner, (plantUuid#1017166 = plant#1017170)
(1774) Project
Arguments: [plantId#1017165, plantUuid#1017166, storageLocId#1017167, storageLocUuid#1017168]
(1775) Join
Arguments: Inner, (plant#1017139.internalRefUUID <=> plantUuid#1017166)
(1776) Generate
Arguments: explode(filter(stockQuantities#1017141, lambdafunction(((lambda x#1012695.storageLocation.internalRefUuid = storageLocUuid#1017168) AND (lambda x#1012695.storageLocation.Id = storageLocId#1017167)), lambda x#1012695, false))), false, [stockQuantity#1017200]
(1777) Project
Arguments: [systemId#1017136, internalUUID#1017137, product#1017138, plant#1017139, calculationDateTime#1017140, stockQuantities#1017141, plantId#1017165, plantUuid#1017166, storageLocId#1017167, storageLocUuid#1017168, stockQuantity#1017200]
(1778) Aggregate
Arguments: [plantUuid#1017166, internalUUID#1017137, plant#1017139, product#1017138, systemId#1017136], [plantUuid#1017166, internalUUID#1017137, plant#1017139, product#1017138, systemId#1017136, first(calculationDateTime#1017140, false) AS calculationDateTime#1017201, collect_list(stockQuantity#1017200, 0, 0) AS stockQuantities#1017202]
(1779) Project
Arguments: [systemId#1017136, internalUUID#1017137, product#1017138, plant#1017139, calculationDateTime#1017201, stockQuantities#1017202]
(1780) Generate
Arguments: explode(stockQuantities#1017202), false, [stockQuantity#1017203]
(1781) Project
Arguments: [systemId#1017136, internalUUID#1017137, product#1017138, plant#1017139, calculationDateTime#1017201, stockQuantities#1017202, stockQuantity#1017203]
(1782) Project
Arguments: [plant#1017139.id AS plant#1017204, plant#1017139.internalRefUUID AS plantUuid#1017205, product#1017138.id AS product#1017206, product#1017138.internalRefUUID AS productUuid#1017207, calculationDateTime#1017201, stockQuantity#1017203.storagelocation.id AS storageLocId#1017208, stockQuantity#1017203.storagelocation.internalRefUUID AS storageLocUuid#1017209, stockQuantity#1017203.quantity.measure AS quantity#1017210, stockQuantity#1017203.specialStockIndicator.code AS specialStockIndicator#1017211, stockQuantity#1017203.stockType.code AS stockType#1017212]
(1783) Filter
Arguments: ((specialStockIndicator#1017211 = ) AND (stockType#1017212 = 01))
(1784) LogicalRelation
Arguments: parquet, [product#1017213, plant#1017214, orderDateTime#1017215, planningStartDateTime#1017216], false
(1785) RepartitionByExpression
Arguments: [product#1017213, plant#1017214], 37
(1786) Project
Arguments: [product#1017213, plant#1017214, orderDateTime#1017215]
(1787) LogicalRelation
Arguments: parquet, [systemId#1017217, internalUUID#1017218, plant#1017219, product#1017220, blockedForReplenishmentStartingFrom#1017221, productionAspect#1017222, salesPlant#1017223, listing#1017224, sourceOfSupplyCategory#1017225], false
(1788) Repartition
Arguments: 37, true
(1789) Project
Arguments: [systemId#1017217, internalUUID#1017218, plant#1017219, product#1017220, blockedForReplenishmentStartingFrom#1017221, productionAspect#1017222, salesPlant#1017223, listing#1017224, sourceOfSupplyCategory#1017225, struct(systemId, systemId#1017217, internalUUID, internalUUID#1017218, plant, plant#1017219, product, product#1017220, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1017221, productionAspect, productionAspect#1017222, salesPlant, salesPlant#1017223, listing, listing#1017224, sourceOfSupplyCategory, sourceOfSupplyCategory#1017225) AS productPlant#1017226]
(1790) Project
Arguments: [productPlant#1017226]
(1791) Join
Arguments: LeftOuter, ((product#1017213 <=> productPlant#1017226.product.internalRefUUID) AND (plant#1017214 <=> productPlant#1017226.plant.internalRefUUID))
(1792) Project
Arguments: [product#1017213, plant#1017214, orderDateTime#1017215, productPlant#1017226]
(1793) LogicalRelation
Arguments: parquet, [systemId#1017227, internalUUID#1017228, id#1017229, displayId#1017230, name#1017231, baseUnitOfMeasure#1017232, unitOfMeasures#1017233, unitOfMeasureConversions#1017234, productionAspect#1017235, salesAspect#1017236, procurementAspect#1017237, productGroup#1017238], false
(1794) Repartition
Arguments: 37, true
(1795) Join
Arguments: LeftOuter, (product#1017213 = internalUUID#1017228)
(1796) Project
Arguments: [product#1017213, plant#1017214, orderDateTime#1017215, productPlant#1017226, systemId#1017227, internalUUID#1017228, id#1017229, displayId#1017230, name#1017231, baseUnitOfMeasure#1017232, unitOfMeasures#1017233, unitOfMeasureConversions#1017234, productionAspect#1017235, salesAspect#1017236, procurementAspect#1017237, productGroup#1017238, filter(unitOfMeasureConversions#1017234, lambdafunction((((lambda u#1012565.measurementUnit1.code = productPlant#1017226.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1012565.measurementUnit1.internalRefUUID = productPlant#1017226.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1012565.measurementUnit2.code = baseUnitOfMeasure#1017232.code) AND (lambda u#1012565.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1017232.internalRefUUID))), lambda u#1012565, false)) AS filteredUnitOfMeasureConversions#1017239]
(1797) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1017239.quantityNumerator), true, [quantityNumerator#1017240]
(1798) Project
Arguments: [product#1017213, plant#1017214, orderDateTime#1017215, productPlant#1017226, systemId#1017227, internalUUID#1017228, id#1017229, displayId#1017230, name#1017231, baseUnitOfMeasure#1017232, unitOfMeasures#1017233, unitOfMeasureConversions#1017234, productionAspect#1017235, salesAspect#1017236, procurementAspect#1017237, productGroup#1017238, filteredUnitOfMeasureConversions#1017239, quantityNumerator#1017240]
(1799) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1017239.quantityDenominator), true, [quantityDenominator#1017241]
(1800) Project
Arguments: [product#1017213, plant#1017214, orderDateTime#1017215, productPlant#1017226, systemId#1017227, internalUUID#1017228, id#1017229, displayId#1017230, name#1017231, baseUnitOfMeasure#1017232, unitOfMeasures#1017233, unitOfMeasureConversions#1017234, productionAspect#1017235, salesAspect#1017236, procurementAspect#1017237, productGroup#1017238, filteredUnitOfMeasureConversions#1017239, quantityNumerator#1017240, quantityDenominator#1017241]
(1801) Project
Arguments: [product#1017213, plant#1017214, orderDateTime#1017215, productPlant#1017226, systemId#1017227, internalUUID#1017228, id#1017229, displayId#1017230, name#1017231, baseUnitOfMeasure#1017232, unitOfMeasures#1017233, unitOfMeasureConversions#1017234, productionAspect#1017235, salesAspect#1017236, procurementAspect#1017237, productGroup#1017238, filteredUnitOfMeasureConversions#1017239, quantityNumerator#1017240, quantityDenominator#1017241, (cast(quantityNumerator#1017240 as double) / cast(quantityDenominator#1017241 as double)) AS outboundUnit#1017242]
(1802) Project
Arguments: [product#1017213, plant#1017214, orderDateTime#1017215, productPlant#1017226, systemId#1017227, internalUUID#1017228, id#1017229, displayId#1017230, name#1017231, baseUnitOfMeasure#1017232, unitOfMeasures#1017233, unitOfMeasureConversions#1017234, productionAspect#1017235, salesAspect#1017236, procurementAspect#1017237, productGroup#1017238, filteredUnitOfMeasureConversions#1017239, quantityNumerator#1017240, quantityDenominator#1017241, CASE WHEN (isnull(outboundUnit#1017242) OR (outboundUnit#1017242 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1017242 END AS outboundUnit#1017243]
(1803) Project
Arguments: [product#1017213, plant#1017214, orderDateTime#1017215, productPlant#1017226, outboundUnit#1017243]
(1804) Join
Arguments: Inner, ((plantUuid#1017205 = plant#1017214) AND (productUuid#1017207 = product#1017213))
(1805) Filter
Arguments: (calculationDateTime#1017201 <= orderDateTime#1017215)
(1806) Project
Arguments: [plantUuid#1017205 AS plant#1017244, productUuid#1017207 AS product#1017245, storageLocId#1017208, calculationDateTime#1017201, quantity#1017210]
(1807) Aggregate
Arguments: [plant#1017244, product#1017245, storageLocId#1017208], [plant#1017244, product#1017245, storageLocId#1017208, max(calculationDateTime#1017201) AS max_calc_datetime#1017246]
(1808) Join
Arguments: Inner, ((((plant#1017134 <=> plant#1017244) AND (product#1017135 <=> product#1017245)) AND (storageLocId#1017098 <=> storageLocId#1017208)) AND (calculationDateTime#1017091 <=> max_calc_datetime#1017246))
(1809) Project
Arguments: [plant#1017134, product#1017135, storageLocId#1017098, calculationDateTime#1017091, quantity#1017100]
(1810) Aggregate
Arguments: [product#1017135, plant#1017134], [product#1017135, plant#1017134, sum(quantity#1017100) AS quantitySum#1017247, min(calculationDateTime#1017091) AS minCalculationDateTime#1017248]
(1811) Project
Arguments: [product#1017135, plant#1017134, quantitySum#1017247, minCalculationDateTime#1017248, round(quantitySum#1017247, 0) AS roundedQuantitySum#1017249]
(1812) Join
Arguments: LeftOuter, ((plant#1016996 = plant#1017134) AND (product#1016995 = product#1017135))
(1813) Project
Arguments: [product#1016995, plant#1016996, orderDateTime#1016997, productPlant#1017008, outboundUnit#1017025, roundedQuantitySum#1017249, minCalculationDateTime#1017248]
(1814) Project
Arguments: [product#1016995, plant#1016996, orderDateTime#1016997, productPlant#1017008, outboundUnit#1017025, roundedQuantitySum#1017249, minCalculationDateTime#1017248, CASE WHEN isnotnull(minCalculationDateTime#1017248) THEN minCalculationDateTime#1017248 ELSE orderDateTime#1016997 END AS stockDatetime#1017250]
(1815) Project
Arguments: [product#1016995, plant#1016996, orderDateTime#1016997, productPlant#1017008, outboundUnit#1017025, roundedQuantitySum#1017249, minCalculationDateTime#1017248, stockDatetime#1017250, CASE WHEN isnotnull(roundedQuantitySum#1017249) THEN array(roundedQuantitySum#1017249) ELSE array(0.0) END AS stockBatchQuantities#1017251]
(1816) Project
Arguments: [product#1016995, plant#1016996, orderDateTime#1016997, productPlant#1017008, outboundUnit#1017025, roundedQuantitySum#1017249, minCalculationDateTime#1017248, stockDatetime#1017250, stockBatchQuantities#1017251, array(2199-01-01 00:00:00) AS stockBatchShelfLifeEndDatetimes#1017252]
(1817) Project
Arguments: [product#1016995, plant#1016996, orderDateTime#1016997, productPlant#1017008, outboundUnit#1017025, roundedQuantitySum#1017249, stockDatetime#1017250, stockBatchQuantities#1017251, stockBatchShelfLifeEndDatetimes#1017252]
(1818) Project
Arguments: [product#1016995, plant#1016996, orderDateTime#1016997, productPlant#1017008, outboundUnit#1017025, stockDatetime#1017250, stockBatchQuantities#1017251, stockBatchShelfLifeEndDatetimes#1017252]
(1819) LogicalRelation
Arguments: parquet, [product#1017253, plant#1017254, demandChannel#1017255, demandStream#1017256, considerVariance#1017257, demandTimeBuckets#1017258, demandPointInTimeStart#1017259, demandPointInTimeEnd#1017260, demandPointInTime#1017261], false
(1820) Join
Arguments: LeftOuter, ((plant#1017254 <=> plant#1016996) AND (product#1017253 <=> product#1016995))
(1821) Project
Arguments: [product#1016995, plant#1016996, orderDateTime#1016997, productPlant#1017008, outboundUnit#1017025, stockDatetime#1017250, stockBatchQuantities#1017251, stockBatchShelfLifeEndDatetimes#1017252, product#1017253, plant#1017254, demandChannel#1017255, demandStream#1017256, considerVariance#1017257, demandTimeBuckets#1017258, demandPointInTimeStart#1017259, demandPointInTimeEnd#1017260, demandPointInTime#1017261, CASE WHEN isnotnull(product#1017253) THEN struct(demandChannel, demandChannel#1017255, demandStream, demandStream#1017256, considerVariance, considerVariance#1017257, demandTimeBuckets, demandTimeBuckets#1017258, demandPointInTimeStart, demandPointInTimeStart#1017259, demandPointInTimeEnd, demandPointInTimeEnd#1017260, demandPointInTime, demandPointInTime#1017261) 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#1017262]
(1822) Aggregate
Arguments: [product#1016995, plant#1016996, orderDateTime#1016997, productPlant#1017008, outboundUnit#1017025, stockDatetime#1017250, stockBatchQuantities#1017251, stockBatchShelfLifeEndDatetimes#1017252], [product#1016995, plant#1016996, orderDateTime#1016997, productPlant#1017008, outboundUnit#1017025, stockDatetime#1017250, stockBatchQuantities#1017251, stockBatchShelfLifeEndDatetimes#1017252, collect_list(rawDemands#1017262, 0, 0) AS rawDemands#1017263]
(1823) SubqueryAlias
Arguments: wl
(1824) LogicalRelation
Arguments: parquet, [systemId#1017264, internalUUID#1017265, id#1017266, displayId#1017267, name#1017268, category#1017269, companyCode#1017270, address#1017271, mainDistributionChain#1017272, mainPurchasingOrganization#1017273, validPurchasingOrganizations#1017274, productGroup#1017275], false
(1825) Repartition
Arguments: 37, true
(1826) Project
Arguments: [systemId#1017264, internalUUID#1017265, id#1017266, displayId#1017267, name#1017268, category#1017269, companyCode#1017270, address#1017271, mainDistributionChain#1017272, mainPurchasingOrganization#1017273, validPurchasingOrganizations#1017274, productGroup#1017275, address#1017271.timezone.code AS timezonecode#1017276]
(1827) Join
Arguments: LeftOuter, (plant#1016996 <=> internalUUID#1017265)
(1828) Project
Arguments: [product#1016995, plant#1016996, orderDateTime#1016997, productPlant#1017008, outboundUnit#1017025, stockDatetime#1017250, stockBatchQuantities#1017251, stockBatchShelfLifeEndDatetimes#1017252, rawDemands#1017263, systemId#1017264, internalUUID#1017265, id#1017266, displayId#1017267, name#1017268, category#1017269, companyCode#1017270, address#1017271, mainDistributionChain#1017272, mainPurchasingOrganization#1017273, validPurchasingOrganizations#1017274, productGroup#1017275, CASE WHEN isnotnull(timezonecode#1017276) THEN timezonecode#1017276 ELSE UTC END AS timezonecode#1017277]
(1829) Project
Arguments: [product#1016995, plant#1016996, orderDateTime#1016997, productPlant#1017008, outboundUnit#1017025, stockDatetime#1017250, stockBatchQuantities#1017251, stockBatchShelfLifeEndDatetimes#1017252, rawDemands#1017263, timezonecode#1017277]
(1830) DeserializeToObject
Arguments: createexternalrow(invoke(product#1016995.toString()), invoke(plant#1016996.toString()), static_invoke(DateTimeUtils.toJavaTimestamp(orderDateTime#1016997)), if (isnull(productPlant#1017008)) null else createexternalrow(invoke(productPlant#1017008.systemId.toString()), invoke(productPlant#1017008.internalUUID.toString()), if (isnull(productPlant#1017008.plant)) null else createexternalrow(invoke(productPlant#1017008.plant.internalRefUUID.toString()), invoke(productPlant#1017008.plant.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), if (isnull(productPlant#1017008.product)) null else createexternalrow(invoke(productPlant#1017008.product.internalRefUUID.toString()), invoke(productPlant#1017008.product.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(DateTimeUtils.toJavaDate(productPlant#1017008.blockedForReplenishmentStartingFrom)), if (isnull(productPlant#1017008.productionAspect)) null else createexternalrow(if (isnull(productPlant#1017008.productionAspect.productMovementPlants)) null else createexternalrow(if (isnull(productPlant#1017008.productionAspect.productMovementPlants.unitOfIssue)) null else createexternalrow(invoke(productPlant#1017008.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID.toString()), invoke(productPlant#1017008.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#1017008.productionAspect.productPlanningPlants)) null else createexternalrow(if (isnull(productPlant#1017008.productionAspect.productPlanningPlants.mrpType)) null else createexternalrow(invoke(productPlant#1017008.productionAspect.productPlanningPlants.mrpType.internalRefUUID.toString()), invoke(productPlant#1017008.productionAspect.productPlanningPlants.mrpType.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1017008.productionAspect.productPlanningPlants.abcIndicator)) null else createexternalrow(invoke(productPlant#1017008.productionAspect.productPlanningPlants.abcIndicator.internalRefUUID.toString()), invoke(productPlant#1017008.productionAspect.productPlanningPlants.abcIndicator.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1017008.productionAspect.productPlanningPlants.mrpController)) null else createexternalrow(invoke(productPlant#1017008.productionAspect.productPlanningPlants.mrpController.internalRefUUID.toString()), invoke(productPlant#1017008.productionAspect.productPlanningPlants.mrpController.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(java.lang.Double.valueOf(productPlant#1017008.productionAspect.productPlanningPlants.minimumLotSize)), if (isnull(productPlant#1017008.productionAspect.productPlanningPlants.logisticalRoundingProfile)) null else createexternalrow(invoke(productPlant#1017008.productionAspect.productPlanningPlants.logisticalRoundingProfile.internalRefUUID.toString()), invoke(productPlant#1017008.productionAspect.productPlanningPlants.logisticalRoundingProfile.logisticalRoundingProfile.toString()), StructField(internalRefUUID,StringType,true), StructField(logisticalRoundingProfile,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(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)),true)), if (isnull(productPlant#1017008.salesPlant)) null else createexternalrow(if (isnull(productPlant#1017008.salesPlant.loadingGroup)) null else createexternalrow(invoke(productPlant#1017008.salesPlant.loadingGroup.internalRefUUID.toString()), invoke(productPlant#1017008.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, 80503), if (isnull(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 80503))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 80503).validFrom)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 80503).validTo)), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 80503).isListed)), StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true)), productPlant#1017008.listing, Some(class scala.collection.mutable.ArraySeq)), if (isnull(productPlant#1017008.sourceOfSupplyCategory)) null else createexternalrow(invoke(productPlant#1017008.sourceOfSupplyCategory.internalRefUUID.toString()), invoke(productPlant#1017008.sourceOfSupplyCategory.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), 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)),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), StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), static_invoke(java.lang.Double.valueOf(outboundUnit#1017025)), static_invoke(DateTimeUtils.toJavaTimestamp(stockDatetime#1017250)), mapobjects(lambdavariable(MapObject, DoubleType, true, 80504), static_invoke(java.lang.Double.valueOf(cast(lambdavariable(MapObject, DoubleType, true, 80504) as double))), stockBatchQuantities#1017251, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, false, 80505), assertnotnull(static_invoke(DateTimeUtils.toJavaTimestamp(cast(lambdavariable(MapObject, TimestampType, false, 80505) as timestamp)))), stockBatchShelfLifeEndDatetimes#1017252, 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, 80506), 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, 80506))) 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, 80506).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, 80506).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, 80506).considerVariance)), mapobjects(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 80507), if (isnull(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 80507))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 80507).demandStartDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 80507).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 80507).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, 80506).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, 80506).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, 80506).demandPointInTimeEnd)), mapobjects(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 80508), if (isnull(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 80508))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 80508).demandDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 80508).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 80508).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, 80506).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#1017263, Some(class scala.collection.mutable.ArraySeq)), invoke(timezonecode#1017277.toString()), 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)),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),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),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), StructField(timezonecode,StringType,true)), obj#1014043: org.apache.spark.sql.Row
(1831) MapElements
Arguments: com.sap.s4hana.eureka.business.crporderquantitykpiservice.core.business.datasnapshot.DemandTransformatorImpl$$Lambda/0x0000000801fc3d98@2aab4875, 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)),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),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),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), StructField(timezonecode,StringType,true)], obj#1014048: org.apache.spark.sql.Row
(1832) 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#1017278, 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#1017279, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(2))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80493), assertnotnull(if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80494), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80494), DoubleType, ObjectType(class java.lang.Double)).doubleValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80495), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80495), DoubleType, ObjectType(class java.lang.Double)).doubleValue()), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80496), assertnotnull(static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80496), TimestampType, ObjectType(class java.sql.Timestamp))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80497), assertnotnull(static_invoke(UTF8String.fromString(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80497), StringType, ObjectType(class java.lang.String))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80498), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80498), IntegerType, ObjectType(class java.lang.Integer)).intValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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#1017280, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(3))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80499), assertnotnull(if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80500), assertnotnull(static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80500), TimestampType, ObjectType(class java.sql.Timestamp))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80501), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80501), DoubleType, ObjectType(class java.lang.Double)).doubleValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80502), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80502), DoubleType, ObjectType(class java.lang.Double)).doubleValue()), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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#1017281]
(1833) Join
Arguments: LeftOuter, ((plant#1017279 <=> plant#1016738) AND (product#1017278 <=> product#1016737))
(1834) Project
Arguments: [product#1016737, plant#1016738, orderDateTime#1016739, productPlant#1016750, outboundUnit#1016767, stockDatetime#1016992, stockBatchQuantities#1016993, stockBatchShelfLifeEndDatetimes#1016994, plant#1017279, dayBucketDemands#1017280, pointInTimeDemands#1017281]
(1835) Project
Arguments: [product#1016737, plant#1016738, orderDateTime#1016739, productPlant#1016750, outboundUnit#1016767, stockDatetime#1016992, stockBatchQuantities#1016993, stockBatchShelfLifeEndDatetimes#1016994, dayBucketDemands#1017280, pointInTimeDemands#1017281]
(1836) LogicalRelation
Arguments: parquet, [marketUnit#1017282, description#1017283, articleHierarchy#1017284, defaultCurrency#1017285, responsibilities#1017286, replenishmentTypes#1017287, distributionCenters#1017288, assignedArticleHierarchyNodes#1017289, minOrderQtySetting#1017290, listingCheck#1017291, odsSelection#1017292, demandProfiles#1017293, constraintProfiles#1017294, optimizationProfiles#1017295, orderGroupSplitProfiles#1017296, supplierMinimumProfiles#1017297, multipleRestrictionProfiles#1017298, preferredUomSource#1017299, handlingOfUnfulfilledDemands#1017300, negligibleQuantitiesThreshold#1017301, eventtype#1017302], false
(1837) Repartition
Arguments: 37, true
(1838) Filter
Arguments: (marketUnit#1017282 <=> STEPHI_MU)
(1839) Project
Arguments: [marketUnit#1017282, description#1017283, articleHierarchy#1017284, defaultCurrency#1017285, responsibilities#1017286, replenishmentTypes#1017287, distributionCenters#1017288, assignedArticleHierarchyNodes#1017289, minOrderQtySetting#1017290, listingCheck#1017291, odsSelection#1017292, demandProfiles#1017293, constraintProfiles#1017294, optimizationProfiles#1017295, orderGroupSplitProfiles#1017296, supplierMinimumProfiles#1017297, multipleRestrictionProfiles#1017298, preferredUomSource#1017299, handlingOfUnfulfilledDemands#1017300, negligibleQuantitiesThreshold#1017301, eventtype#1017302]
(1840) Project
Arguments: [distributionCenters#1017288]
(1841) Generate
Arguments: explode(distributionCenters#1017288), false, [distributionCenters#1017303]
(1842) Project
Arguments: [distributionCenters#1017303]
(1843) Generate
Arguments: explode(distributionCenters#1017303.storageLocations), false, [storageLocations#1017304]
(1844) Project
Arguments: [distributionCenters#1017303.id AS plantId#1017305, distributionCenters#1017303.internalRefUUID AS plantUuid#1017306, storageLocations#1017304]
(1845) Project
Arguments: [plantId#1017305, plantUuid#1017306, storageLocations#1017304.id AS storageLocId#1017307, storageLocations#1017304.internalRefUUID AS storageLocUuid#1017308]
(1846) LogicalRelation
Arguments: parquet, [product#1017309, plant#1017310, orderDateTime#1017311, planningStartDateTime#1017312], false
(1847) RepartitionByExpression
Arguments: [product#1017309, plant#1017310], 37
(1848) Project
Arguments: [product#1017309, plant#1017310, orderDateTime#1017311]
(1849) LogicalRelation
Arguments: parquet, [systemId#1017313, internalUUID#1017314, plant#1017315, product#1017316, blockedForReplenishmentStartingFrom#1017317, productionAspect#1017318, salesPlant#1017319, listing#1017320, sourceOfSupplyCategory#1017321], false
(1850) Repartition
Arguments: 37, true
(1851) Project
Arguments: [systemId#1017313, internalUUID#1017314, plant#1017315, product#1017316, blockedForReplenishmentStartingFrom#1017317, productionAspect#1017318, salesPlant#1017319, listing#1017320, sourceOfSupplyCategory#1017321, struct(systemId, systemId#1017313, internalUUID, internalUUID#1017314, plant, plant#1017315, product, product#1017316, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1017317, productionAspect, productionAspect#1017318, salesPlant, salesPlant#1017319, listing, listing#1017320, sourceOfSupplyCategory, sourceOfSupplyCategory#1017321) AS productPlant#1017322]
(1852) Project
Arguments: [productPlant#1017322]
(1853) Join
Arguments: LeftOuter, ((product#1017309 <=> productPlant#1017322.product.internalRefUUID) AND (plant#1017310 <=> productPlant#1017322.plant.internalRefUUID))
(1854) Project
Arguments: [product#1017309, plant#1017310, orderDateTime#1017311, productPlant#1017322]
(1855) LogicalRelation
Arguments: parquet, [systemId#1017323, internalUUID#1017324, id#1017325, displayId#1017326, name#1017327, baseUnitOfMeasure#1017328, unitOfMeasures#1017329, unitOfMeasureConversions#1017330, productionAspect#1017331, salesAspect#1017332, procurementAspect#1017333, productGroup#1017334], false
(1856) Repartition
Arguments: 37, true
(1857) Join
Arguments: LeftOuter, (product#1017309 = internalUUID#1017324)
(1858) Project
Arguments: [product#1017309, plant#1017310, orderDateTime#1017311, productPlant#1017322, systemId#1017323, internalUUID#1017324, id#1017325, displayId#1017326, name#1017327, baseUnitOfMeasure#1017328, unitOfMeasures#1017329, unitOfMeasureConversions#1017330, productionAspect#1017331, salesAspect#1017332, procurementAspect#1017333, productGroup#1017334, filter(unitOfMeasureConversions#1017330, lambdafunction((((lambda u#1012565.measurementUnit1.code = productPlant#1017322.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1012565.measurementUnit1.internalRefUUID = productPlant#1017322.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1012565.measurementUnit2.code = baseUnitOfMeasure#1017328.code) AND (lambda u#1012565.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1017328.internalRefUUID))), lambda u#1012565, false)) AS filteredUnitOfMeasureConversions#1017335]
(1859) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1017335.quantityNumerator), true, [quantityNumerator#1017336]
(1860) Project
Arguments: [product#1017309, plant#1017310, orderDateTime#1017311, productPlant#1017322, systemId#1017323, internalUUID#1017324, id#1017325, displayId#1017326, name#1017327, baseUnitOfMeasure#1017328, unitOfMeasures#1017329, unitOfMeasureConversions#1017330, productionAspect#1017331, salesAspect#1017332, procurementAspect#1017333, productGroup#1017334, filteredUnitOfMeasureConversions#1017335, quantityNumerator#1017336]
(1861) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1017335.quantityDenominator), true, [quantityDenominator#1017337]
(1862) Project
Arguments: [product#1017309, plant#1017310, orderDateTime#1017311, productPlant#1017322, systemId#1017323, internalUUID#1017324, id#1017325, displayId#1017326, name#1017327, baseUnitOfMeasure#1017328, unitOfMeasures#1017329, unitOfMeasureConversions#1017330, productionAspect#1017331, salesAspect#1017332, procurementAspect#1017333, productGroup#1017334, filteredUnitOfMeasureConversions#1017335, quantityNumerator#1017336, quantityDenominator#1017337]
(1863) Project
Arguments: [product#1017309, plant#1017310, orderDateTime#1017311, productPlant#1017322, systemId#1017323, internalUUID#1017324, id#1017325, displayId#1017326, name#1017327, baseUnitOfMeasure#1017328, unitOfMeasures#1017329, unitOfMeasureConversions#1017330, productionAspect#1017331, salesAspect#1017332, procurementAspect#1017333, productGroup#1017334, filteredUnitOfMeasureConversions#1017335, quantityNumerator#1017336, quantityDenominator#1017337, (cast(quantityNumerator#1017336 as double) / cast(quantityDenominator#1017337 as double)) AS outboundUnit#1017338]
(1864) Project
Arguments: [product#1017309, plant#1017310, orderDateTime#1017311, productPlant#1017322, systemId#1017323, internalUUID#1017324, id#1017325, displayId#1017326, name#1017327, baseUnitOfMeasure#1017328, unitOfMeasures#1017329, unitOfMeasureConversions#1017330, productionAspect#1017331, salesAspect#1017332, procurementAspect#1017333, productGroup#1017334, filteredUnitOfMeasureConversions#1017335, quantityNumerator#1017336, quantityDenominator#1017337, CASE WHEN (isnull(outboundUnit#1017338) OR (outboundUnit#1017338 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1017338 END AS outboundUnit#1017339]
(1865) Project
Arguments: [product#1017309, plant#1017310, orderDateTime#1017311, productPlant#1017322, outboundUnit#1017339]
(1866) Project
Arguments: [plant#1017310]
(1867) Deduplicate
Arguments: [plant#1017310]
(1868) Join
Arguments: Inner, (plantUuid#1017306 = plant#1017310)
(1869) Project
Arguments: [plantId#1017305, plantUuid#1017306, storageLocId#1017307, storageLocUuid#1017308]
(1870) Project
Arguments: [plantId#1017305, plantUuid#1017306 AS plant#1017340, storageLocId#1017307, storageLocUuid#1017308]
(1871) Join
Arguments: Inner, (plant#1016738 = plant#1017340)
(1872) Project
Arguments: [plant#1016738, product#1016737, orderDateTime#1016739, productPlant#1016750, outboundUnit#1016767, stockDatetime#1016992, stockBatchQuantities#1016993, stockBatchShelfLifeEndDatetimes#1016994, dayBucketDemands#1017280, pointInTimeDemands#1017281, plantId#1017305, storageLocId#1017307, storageLocUuid#1017308, plant#1017340]
(1873) LocalRelation
Arguments: <empty>, [systemId#1017341, internalUUID#1017342, id#1017343, isMarkedForDeletion#1017344, supplier#1017345, status#1017346, items#1017347]
(1874) Generate
Arguments: explode(items#1017347), false, [item#1017348]
(1875) Project
Arguments: [id#1017343, internalUUID#1017342, isMarkedForDeletion#1017344, supplier#1017345.internalRefUUID AS supplierUuid#1017349, item#1017348]
(1876) Filter
Arguments: (((NOT isMarkedForDeletion#1017344 AND NOT item#1017348.deletionIndicator) AND NOT item#1017348.completeIndicator) AND NOT item#1017348.returnIndicator)
(1877) Project
Arguments: [id#1017343, internalUUID#1017342, supplierUuid#1017349, item#1017348.plant.internalRefUUID AS plant#1017350, item#1017348.product.internalRefUUID AS product#1017351, item#1017348.storageLocation.internalRefUUID AS storageLocUuid#1017352, item#1017348.quantityUnit.code AS quantityUom#1017353, item#1017348.quantityUnit.internalRefUUID AS quantityUomUuid#1017354, item#1017348.quantityNumerator AS quantityNumerator#1017355, item#1017348.quantityDenominator AS quantityDenominator#1017356, item#1017348.scheduleLines AS scheduleLines#1017357, item#1017348.confirmations AS confirmations#1017358]
(1878) Join
Arguments: Inner, (((product#1016737 = product#1017351) AND (plant#1016738 = plant#1017350)) AND (storageLocUuid#1017308 = storageLocUuid#1017352))
(1879) Project
Arguments: [product#1016737, plant#1016738, storageLocUuid#1017308, orderDateTime#1016739, productPlant#1016750, outboundUnit#1016767, stockDatetime#1016992, stockBatchQuantities#1016993, stockBatchShelfLifeEndDatetimes#1016994, dayBucketDemands#1017280, pointInTimeDemands#1017281, plantId#1017305, storageLocId#1017307, id#1017343, internalUUID#1017342, supplierUuid#1017349, quantityUom#1017353, quantityUomUuid#1017354, quantityNumerator#1017355, quantityDenominator#1017356, scheduleLines#1017357, confirmations#1017358, product#1017351, plant#1017350, storageLocUuid#1017352, ... 1 more fields]
(1880) Project
Arguments: [id#1017343, internalUUID#1017342, supplierUuid#1017349, plant#1017350, product#1017351, storageLocUuid#1017352, quantityUom#1017353, quantityUomUuid#1017354, quantityNumerator#1017355, quantityDenominator#1017356, scheduleLines#1017357, confirmations#1017358, stockDatetime#1016992]
(1881) Project
Arguments: [id#1017343, internalUUID#1017342, supplierUuid#1017349, plant#1017350, product#1017351, storageLocUuid#1017352, quantityUom#1017353, quantityUomUuid#1017354, quantityNumerator#1017355, quantityDenominator#1017356, scheduleLines#1017357, confirmations#1017358, stockDatetime#1016992, array_size(filter(confirmations#1017358, lambdafunction((((lambda x_150#1014440.deletionIndicator = false) AND (lambda x_150#1014440.isRelevantForConfirmation = true)) AND isnotnull(lambda x_150#1014440.confirmedDeliveryAt)), lambda x_150#1014440, false))) AS _w0#1017359]
(1882) Window
Arguments: [sum(_w0#1017359) windowspecdefinition(internalUUID#1017342, specifiedwindowframe(RowFrame, unboundedpreceding$(), unboundedfollowing$())) AS _we0#1017360L], [internalUUID#1017342]
(1883) Project
Arguments: [id#1017343, internalUUID#1017342, supplierUuid#1017349, plant#1017350, product#1017351, storageLocUuid#1017352, quantityUom#1017353, quantityUomUuid#1017354, quantityNumerator#1017355, quantityDenominator#1017356, scheduleLines#1017357, confirmations#1017358, stockDatetime#1016992, _w0#1017359, _we0#1017360L, filter(transform(CASE WHEN (_we0#1017360L > cast(0 as bigint)) THEN transform(filter(confirmations#1017358, lambdafunction((((lambda x_150#1014441.deletionIndicator = false) AND (lambda x_150#1014441.isRelevantForConfirmation = true)) AND isnotnull(lambda x_150#1014441.confirmedDeliveryAt)), lambda x_150#1014441, false)), lambdafunction(struct(openQty, greatest((lambda x_151#1014444.confirmedQuantity - coalesce(lambda x_151#1014444.mrpRelevantQuantity, 0.0)), 0.0), availabilityDatetime, lambda x_151#1014444.confirmedDeliveryAt), lambda x_151#1014444, false)) ELSE transform(scheduleLines#1017357, lambdafunction(struct(openQty, greatest((lambda x_149#1014442.quantity - coalesce(lambda x_149#1014442.receivedQuantity, 0.0)), 0.0), availabilityDatetime, lambda x_149#1014442.deliveryAt), lambda x_149#1014442, false)) END, lambdafunction(struct(documentId, id#1017343, documentUuid, internalUUID#1017342, openQty, lambda x_152#1014445.openQty, openQtyInBaseUnit, ((lambda x_152#1014445.openQty * quantityNumerator#1017355) / quantityDenominator#1017356), qtyUom, quantityUom#1017353, qtyUomUuid, quantityUomUuid#1017354, availabilityDatetime, lambda x_152#1014445.availabilityDatetime, shelfLifeEndDatetime, 2199-01-01 00:00:00), lambda x_152#1014445, false)), lambdafunction(NOT (lambda x_153#1014446.openQty = 0.0), lambda x_153#1014446, false)) AS openGoodsMovements#1017361]
(1884) Project
Arguments: [id#1017343, internalUUID#1017342, supplierUuid#1017349, plant#1017350, product#1017351, storageLocUuid#1017352, quantityUom#1017353, quantityUomUuid#1017354, quantityNumerator#1017355, quantityDenominator#1017356, scheduleLines#1017357, confirmations#1017358, stockDatetime#1016992, openGoodsMovements#1017361]
(1885) Aggregate
Arguments: [product#1017351, plant#1017350], [product#1017351, plant#1017350, flatten(collect_list(openGoodsMovements#1017361, 0, 0)) AS openGoodsMovements#1017362]
(1886) Filter
Arguments: (array_size(openGoodsMovements#1017362) > 0)
(1887) LogicalRelation
Arguments: parquet, [product#1017363, plant#1017364, orderDateTime#1017365, planningStartDateTime#1017366], false
(1888) RepartitionByExpression
Arguments: [product#1017363, plant#1017364], 37
(1889) Project
Arguments: [product#1017363, plant#1017364, orderDateTime#1017365]
(1890) LogicalRelation
Arguments: parquet, [systemId#1017367, internalUUID#1017368, plant#1017369, product#1017370, blockedForReplenishmentStartingFrom#1017371, productionAspect#1017372, salesPlant#1017373, listing#1017374, sourceOfSupplyCategory#1017375], false
(1891) Repartition
Arguments: 37, true
(1892) Project
Arguments: [systemId#1017367, internalUUID#1017368, plant#1017369, product#1017370, blockedForReplenishmentStartingFrom#1017371, productionAspect#1017372, salesPlant#1017373, listing#1017374, sourceOfSupplyCategory#1017375, struct(systemId, systemId#1017367, internalUUID, internalUUID#1017368, plant, plant#1017369, product, product#1017370, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1017371, productionAspect, productionAspect#1017372, salesPlant, salesPlant#1017373, listing, listing#1017374, sourceOfSupplyCategory, sourceOfSupplyCategory#1017375) AS productPlant#1017376]
(1893) Project
Arguments: [productPlant#1017376]
(1894) Join
Arguments: LeftOuter, ((product#1017363 <=> productPlant#1017376.product.internalRefUUID) AND (plant#1017364 <=> productPlant#1017376.plant.internalRefUUID))
(1895) Project
Arguments: [product#1017363, plant#1017364, orderDateTime#1017365, productPlant#1017376]
(1896) LogicalRelation
Arguments: parquet, [systemId#1017377, internalUUID#1017378, id#1017379, displayId#1017380, name#1017381, baseUnitOfMeasure#1017382, unitOfMeasures#1017383, unitOfMeasureConversions#1017384, productionAspect#1017385, salesAspect#1017386, procurementAspect#1017387, productGroup#1017388], false
(1897) Repartition
Arguments: 37, true
(1898) Join
Arguments: LeftOuter, (product#1017363 = internalUUID#1017378)
(1899) Project
Arguments: [product#1017363, plant#1017364, orderDateTime#1017365, productPlant#1017376, systemId#1017377, internalUUID#1017378, id#1017379, displayId#1017380, name#1017381, baseUnitOfMeasure#1017382, unitOfMeasures#1017383, unitOfMeasureConversions#1017384, productionAspect#1017385, salesAspect#1017386, procurementAspect#1017387, productGroup#1017388, filter(unitOfMeasureConversions#1017384, lambdafunction((((lambda u#1012565.measurementUnit1.code = productPlant#1017376.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1012565.measurementUnit1.internalRefUUID = productPlant#1017376.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1012565.measurementUnit2.code = baseUnitOfMeasure#1017382.code) AND (lambda u#1012565.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1017382.internalRefUUID))), lambda u#1012565, false)) AS filteredUnitOfMeasureConversions#1017389]
(1900) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1017389.quantityNumerator), true, [quantityNumerator#1017390]
(1901) Project
Arguments: [product#1017363, plant#1017364, orderDateTime#1017365, productPlant#1017376, systemId#1017377, internalUUID#1017378, id#1017379, displayId#1017380, name#1017381, baseUnitOfMeasure#1017382, unitOfMeasures#1017383, unitOfMeasureConversions#1017384, productionAspect#1017385, salesAspect#1017386, procurementAspect#1017387, productGroup#1017388, filteredUnitOfMeasureConversions#1017389, quantityNumerator#1017390]
(1902) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1017389.quantityDenominator), true, [quantityDenominator#1017391]
(1903) Project
Arguments: [product#1017363, plant#1017364, orderDateTime#1017365, productPlant#1017376, systemId#1017377, internalUUID#1017378, id#1017379, displayId#1017380, name#1017381, baseUnitOfMeasure#1017382, unitOfMeasures#1017383, unitOfMeasureConversions#1017384, productionAspect#1017385, salesAspect#1017386, procurementAspect#1017387, productGroup#1017388, filteredUnitOfMeasureConversions#1017389, quantityNumerator#1017390, quantityDenominator#1017391]
(1904) Project
Arguments: [product#1017363, plant#1017364, orderDateTime#1017365, productPlant#1017376, systemId#1017377, internalUUID#1017378, id#1017379, displayId#1017380, name#1017381, baseUnitOfMeasure#1017382, unitOfMeasures#1017383, unitOfMeasureConversions#1017384, productionAspect#1017385, salesAspect#1017386, procurementAspect#1017387, productGroup#1017388, filteredUnitOfMeasureConversions#1017389, quantityNumerator#1017390, quantityDenominator#1017391, (cast(quantityNumerator#1017390 as double) / cast(quantityDenominator#1017391 as double)) AS outboundUnit#1017392]
(1905) Project
Arguments: [product#1017363, plant#1017364, orderDateTime#1017365, productPlant#1017376, systemId#1017377, internalUUID#1017378, id#1017379, displayId#1017380, name#1017381, baseUnitOfMeasure#1017382, unitOfMeasures#1017383, unitOfMeasureConversions#1017384, productionAspect#1017385, salesAspect#1017386, procurementAspect#1017387, productGroup#1017388, filteredUnitOfMeasureConversions#1017389, quantityNumerator#1017390, quantityDenominator#1017391, CASE WHEN (isnull(outboundUnit#1017392) OR (outboundUnit#1017392 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1017392 END AS outboundUnit#1017393]
(1906) Project
Arguments: [product#1017363, plant#1017364, orderDateTime#1017365, productPlant#1017376, outboundUnit#1017393]
(1907) LogicalRelation
Arguments: parquet, [systemId#1017394, internalUUID#1017395, product#1017396, plant#1017397, calculationDateTime#1017398, stockQuantities#1017399], false
(1908) Repartition
Arguments: 37, true
(1909) LogicalRelation
Arguments: parquet, [marketUnit#1017400, description#1017401, articleHierarchy#1017402, defaultCurrency#1017403, responsibilities#1017404, replenishmentTypes#1017405, distributionCenters#1017406, assignedArticleHierarchyNodes#1017407, minOrderQtySetting#1017408, listingCheck#1017409, odsSelection#1017410, demandProfiles#1017411, constraintProfiles#1017412, optimizationProfiles#1017413, orderGroupSplitProfiles#1017414, supplierMinimumProfiles#1017415, multipleRestrictionProfiles#1017416, preferredUomSource#1017417, handlingOfUnfulfilledDemands#1017418, negligibleQuantitiesThreshold#1017419, eventtype#1017420], false
(1910) Repartition
Arguments: 37, true
(1911) Filter
Arguments: (marketUnit#1017400 <=> STEPHI_MU)
(1912) Project
Arguments: [marketUnit#1017400, description#1017401, articleHierarchy#1017402, defaultCurrency#1017403, responsibilities#1017404, replenishmentTypes#1017405, distributionCenters#1017406, assignedArticleHierarchyNodes#1017407, minOrderQtySetting#1017408, listingCheck#1017409, odsSelection#1017410, demandProfiles#1017411, constraintProfiles#1017412, optimizationProfiles#1017413, orderGroupSplitProfiles#1017414, supplierMinimumProfiles#1017415, multipleRestrictionProfiles#1017416, preferredUomSource#1017417, handlingOfUnfulfilledDemands#1017418, negligibleQuantitiesThreshold#1017419, eventtype#1017420]
(1913) Project
Arguments: [distributionCenters#1017406]
(1914) Generate
Arguments: explode(distributionCenters#1017406), false, [distributionCenters#1017421]
(1915) Project
Arguments: [distributionCenters#1017421]
(1916) Generate
Arguments: explode(distributionCenters#1017421.storageLocations), false, [storageLocations#1017422]
(1917) Project
Arguments: [distributionCenters#1017421.id AS plantId#1017423, distributionCenters#1017421.internalRefUUID AS plantUuid#1017424, storageLocations#1017422]
(1918) Project
Arguments: [plantId#1017423, plantUuid#1017424, storageLocations#1017422.id AS storageLocId#1017425, storageLocations#1017422.internalRefUUID AS storageLocUuid#1017426]
(1919) LogicalRelation
Arguments: parquet, [product#1017427, plant#1017428, orderDateTime#1017429, planningStartDateTime#1017430], false
(1920) RepartitionByExpression
Arguments: [product#1017427, plant#1017428], 37
(1921) Project
Arguments: [product#1017427, plant#1017428, orderDateTime#1017429]
(1922) LogicalRelation
Arguments: parquet, [systemId#1017431, internalUUID#1017432, plant#1017433, product#1017434, blockedForReplenishmentStartingFrom#1017435, productionAspect#1017436, salesPlant#1017437, listing#1017438, sourceOfSupplyCategory#1017439], false
(1923) Repartition
Arguments: 37, true
(1924) Project
Arguments: [systemId#1017431, internalUUID#1017432, plant#1017433, product#1017434, blockedForReplenishmentStartingFrom#1017435, productionAspect#1017436, salesPlant#1017437, listing#1017438, sourceOfSupplyCategory#1017439, struct(systemId, systemId#1017431, internalUUID, internalUUID#1017432, plant, plant#1017433, product, product#1017434, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1017435, productionAspect, productionAspect#1017436, salesPlant, salesPlant#1017437, listing, listing#1017438, sourceOfSupplyCategory, sourceOfSupplyCategory#1017439) AS productPlant#1017440]
(1925) Project
Arguments: [productPlant#1017440]
(1926) Join
Arguments: LeftOuter, ((product#1017427 <=> productPlant#1017440.product.internalRefUUID) AND (plant#1017428 <=> productPlant#1017440.plant.internalRefUUID))
(1927) Project
Arguments: [product#1017427, plant#1017428, orderDateTime#1017429, productPlant#1017440]
(1928) LogicalRelation
Arguments: parquet, [systemId#1017441, internalUUID#1017442, id#1017443, displayId#1017444, name#1017445, baseUnitOfMeasure#1017446, unitOfMeasures#1017447, unitOfMeasureConversions#1017448, productionAspect#1017449, salesAspect#1017450, procurementAspect#1017451, productGroup#1017452], false
(1929) Repartition
Arguments: 37, true
(1930) Join
Arguments: LeftOuter, (product#1017427 = internalUUID#1017442)
(1931) Project
Arguments: [product#1017427, plant#1017428, orderDateTime#1017429, productPlant#1017440, systemId#1017441, internalUUID#1017442, id#1017443, displayId#1017444, name#1017445, baseUnitOfMeasure#1017446, unitOfMeasures#1017447, unitOfMeasureConversions#1017448, productionAspect#1017449, salesAspect#1017450, procurementAspect#1017451, productGroup#1017452, filter(unitOfMeasureConversions#1017448, lambdafunction((((lambda u#1012565.measurementUnit1.code = productPlant#1017440.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1012565.measurementUnit1.internalRefUUID = productPlant#1017440.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1012565.measurementUnit2.code = baseUnitOfMeasure#1017446.code) AND (lambda u#1012565.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1017446.internalRefUUID))), lambda u#1012565, false)) AS filteredUnitOfMeasureConversions#1017453]
(1932) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1017453.quantityNumerator), true, [quantityNumerator#1017454]
(1933) Project
Arguments: [product#1017427, plant#1017428, orderDateTime#1017429, productPlant#1017440, systemId#1017441, internalUUID#1017442, id#1017443, displayId#1017444, name#1017445, baseUnitOfMeasure#1017446, unitOfMeasures#1017447, unitOfMeasureConversions#1017448, productionAspect#1017449, salesAspect#1017450, procurementAspect#1017451, productGroup#1017452, filteredUnitOfMeasureConversions#1017453, quantityNumerator#1017454]
(1934) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1017453.quantityDenominator), true, [quantityDenominator#1017455]
(1935) Project
Arguments: [product#1017427, plant#1017428, orderDateTime#1017429, productPlant#1017440, systemId#1017441, internalUUID#1017442, id#1017443, displayId#1017444, name#1017445, baseUnitOfMeasure#1017446, unitOfMeasures#1017447, unitOfMeasureConversions#1017448, productionAspect#1017449, salesAspect#1017450, procurementAspect#1017451, productGroup#1017452, filteredUnitOfMeasureConversions#1017453, quantityNumerator#1017454, quantityDenominator#1017455]
(1936) Project
Arguments: [product#1017427, plant#1017428, orderDateTime#1017429, productPlant#1017440, systemId#1017441, internalUUID#1017442, id#1017443, displayId#1017444, name#1017445, baseUnitOfMeasure#1017446, unitOfMeasures#1017447, unitOfMeasureConversions#1017448, productionAspect#1017449, salesAspect#1017450, procurementAspect#1017451, productGroup#1017452, filteredUnitOfMeasureConversions#1017453, quantityNumerator#1017454, quantityDenominator#1017455, (cast(quantityNumerator#1017454 as double) / cast(quantityDenominator#1017455 as double)) AS outboundUnit#1017456]
(1937) Project
Arguments: [product#1017427, plant#1017428, orderDateTime#1017429, productPlant#1017440, systemId#1017441, internalUUID#1017442, id#1017443, displayId#1017444, name#1017445, baseUnitOfMeasure#1017446, unitOfMeasures#1017447, unitOfMeasureConversions#1017448, productionAspect#1017449, salesAspect#1017450, procurementAspect#1017451, productGroup#1017452, filteredUnitOfMeasureConversions#1017453, quantityNumerator#1017454, quantityDenominator#1017455, CASE WHEN (isnull(outboundUnit#1017456) OR (outboundUnit#1017456 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1017456 END AS outboundUnit#1017457]
(1938) Project
Arguments: [product#1017427, plant#1017428, orderDateTime#1017429, productPlant#1017440, outboundUnit#1017457]
(1939) Project
Arguments: [plant#1017428]
(1940) Deduplicate
Arguments: [plant#1017428]
(1941) Join
Arguments: Inner, (plantUuid#1017424 = plant#1017428)
(1942) Project
Arguments: [plantId#1017423, plantUuid#1017424, storageLocId#1017425, storageLocUuid#1017426]
(1943) Join
Arguments: Inner, (plant#1017397.internalRefUUID <=> plantUuid#1017424)
(1944) Generate
Arguments: explode(filter(stockQuantities#1017399, lambdafunction(((lambda x#1012695.storageLocation.internalRefUuid = storageLocUuid#1017426) AND (lambda x#1012695.storageLocation.Id = storageLocId#1017425)), lambda x#1012695, false))), false, [stockQuantity#1017458]
(1945) Project
Arguments: [systemId#1017394, internalUUID#1017395, product#1017396, plant#1017397, calculationDateTime#1017398, stockQuantities#1017399, plantId#1017423, plantUuid#1017424, storageLocId#1017425, storageLocUuid#1017426, stockQuantity#1017458]
(1946) Aggregate
Arguments: [plantUuid#1017424, internalUUID#1017395, plant#1017397, product#1017396, systemId#1017394], [plantUuid#1017424, internalUUID#1017395, plant#1017397, product#1017396, systemId#1017394, first(calculationDateTime#1017398, false) AS calculationDateTime#1017459, collect_list(stockQuantity#1017458, 0, 0) AS stockQuantities#1017460]
(1947) Project
Arguments: [systemId#1017394, internalUUID#1017395, product#1017396, plant#1017397, calculationDateTime#1017459, stockQuantities#1017460]
(1948) Generate
Arguments: explode(stockQuantities#1017460), false, [stockQuantity#1017461]
(1949) Project
Arguments: [systemId#1017394, internalUUID#1017395, product#1017396, plant#1017397, calculationDateTime#1017459, stockQuantities#1017460, stockQuantity#1017461]
(1950) Project
Arguments: [plant#1017397.id AS plant#1017462, plant#1017397.internalRefUUID AS plantUuid#1017463, product#1017396.id AS product#1017464, product#1017396.internalRefUUID AS productUuid#1017465, calculationDateTime#1017459, stockQuantity#1017461.storagelocation.id AS storageLocId#1017466, stockQuantity#1017461.storagelocation.internalRefUUID AS storageLocUuid#1017467, stockQuantity#1017461.quantity.measure AS quantity#1017468, stockQuantity#1017461.specialStockIndicator.code AS specialStockIndicator#1017469, stockQuantity#1017461.stockType.code AS stockType#1017470]
(1951) Filter
Arguments: ((specialStockIndicator#1017469 = ) AND (stockType#1017470 = 01))
(1952) LogicalRelation
Arguments: parquet, [product#1017471, plant#1017472, orderDateTime#1017473, planningStartDateTime#1017474], false
(1953) RepartitionByExpression
Arguments: [product#1017471, plant#1017472], 37
(1954) Project
Arguments: [product#1017471, plant#1017472, orderDateTime#1017473]
(1955) LogicalRelation
Arguments: parquet, [systemId#1017475, internalUUID#1017476, plant#1017477, product#1017478, blockedForReplenishmentStartingFrom#1017479, productionAspect#1017480, salesPlant#1017481, listing#1017482, sourceOfSupplyCategory#1017483], false
(1956) Repartition
Arguments: 37, true
(1957) Project
Arguments: [systemId#1017475, internalUUID#1017476, plant#1017477, product#1017478, blockedForReplenishmentStartingFrom#1017479, productionAspect#1017480, salesPlant#1017481, listing#1017482, sourceOfSupplyCategory#1017483, struct(systemId, systemId#1017475, internalUUID, internalUUID#1017476, plant, plant#1017477, product, product#1017478, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1017479, productionAspect, productionAspect#1017480, salesPlant, salesPlant#1017481, listing, listing#1017482, sourceOfSupplyCategory, sourceOfSupplyCategory#1017483) AS productPlant#1017484]
(1958) Project
Arguments: [productPlant#1017484]
(1959) Join
Arguments: LeftOuter, ((product#1017471 <=> productPlant#1017484.product.internalRefUUID) AND (plant#1017472 <=> productPlant#1017484.plant.internalRefUUID))
(1960) Project
Arguments: [product#1017471, plant#1017472, orderDateTime#1017473, productPlant#1017484]
(1961) LogicalRelation
Arguments: parquet, [systemId#1017485, internalUUID#1017486, id#1017487, displayId#1017488, name#1017489, baseUnitOfMeasure#1017490, unitOfMeasures#1017491, unitOfMeasureConversions#1017492, productionAspect#1017493, salesAspect#1017494, procurementAspect#1017495, productGroup#1017496], false
(1962) Repartition
Arguments: 37, true
(1963) Join
Arguments: LeftOuter, (product#1017471 = internalUUID#1017486)
(1964) Project
Arguments: [product#1017471, plant#1017472, orderDateTime#1017473, productPlant#1017484, systemId#1017485, internalUUID#1017486, id#1017487, displayId#1017488, name#1017489, baseUnitOfMeasure#1017490, unitOfMeasures#1017491, unitOfMeasureConversions#1017492, productionAspect#1017493, salesAspect#1017494, procurementAspect#1017495, productGroup#1017496, filter(unitOfMeasureConversions#1017492, lambdafunction((((lambda u#1012565.measurementUnit1.code = productPlant#1017484.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1012565.measurementUnit1.internalRefUUID = productPlant#1017484.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1012565.measurementUnit2.code = baseUnitOfMeasure#1017490.code) AND (lambda u#1012565.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1017490.internalRefUUID))), lambda u#1012565, false)) AS filteredUnitOfMeasureConversions#1017497]
(1965) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1017497.quantityNumerator), true, [quantityNumerator#1017498]
(1966) Project
Arguments: [product#1017471, plant#1017472, orderDateTime#1017473, productPlant#1017484, systemId#1017485, internalUUID#1017486, id#1017487, displayId#1017488, name#1017489, baseUnitOfMeasure#1017490, unitOfMeasures#1017491, unitOfMeasureConversions#1017492, productionAspect#1017493, salesAspect#1017494, procurementAspect#1017495, productGroup#1017496, filteredUnitOfMeasureConversions#1017497, quantityNumerator#1017498]
(1967) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1017497.quantityDenominator), true, [quantityDenominator#1017499]
(1968) Project
Arguments: [product#1017471, plant#1017472, orderDateTime#1017473, productPlant#1017484, systemId#1017485, internalUUID#1017486, id#1017487, displayId#1017488, name#1017489, baseUnitOfMeasure#1017490, unitOfMeasures#1017491, unitOfMeasureConversions#1017492, productionAspect#1017493, salesAspect#1017494, procurementAspect#1017495, productGroup#1017496, filteredUnitOfMeasureConversions#1017497, quantityNumerator#1017498, quantityDenominator#1017499]
(1969) Project
Arguments: [product#1017471, plant#1017472, orderDateTime#1017473, productPlant#1017484, systemId#1017485, internalUUID#1017486, id#1017487, displayId#1017488, name#1017489, baseUnitOfMeasure#1017490, unitOfMeasures#1017491, unitOfMeasureConversions#1017492, productionAspect#1017493, salesAspect#1017494, procurementAspect#1017495, productGroup#1017496, filteredUnitOfMeasureConversions#1017497, quantityNumerator#1017498, quantityDenominator#1017499, (cast(quantityNumerator#1017498 as double) / cast(quantityDenominator#1017499 as double)) AS outboundUnit#1017500]
(1970) Project
Arguments: [product#1017471, plant#1017472, orderDateTime#1017473, productPlant#1017484, systemId#1017485, internalUUID#1017486, id#1017487, displayId#1017488, name#1017489, baseUnitOfMeasure#1017490, unitOfMeasures#1017491, unitOfMeasureConversions#1017492, productionAspect#1017493, salesAspect#1017494, procurementAspect#1017495, productGroup#1017496, filteredUnitOfMeasureConversions#1017497, quantityNumerator#1017498, quantityDenominator#1017499, CASE WHEN (isnull(outboundUnit#1017500) OR (outboundUnit#1017500 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1017500 END AS outboundUnit#1017501]
(1971) Project
Arguments: [product#1017471, plant#1017472, orderDateTime#1017473, productPlant#1017484, outboundUnit#1017501]
(1972) Join
Arguments: Inner, ((plantUuid#1017463 = plant#1017472) AND (productUuid#1017465 = product#1017471))
(1973) Filter
Arguments: (calculationDateTime#1017459 <= orderDateTime#1017473)
(1974) Project
Arguments: [plantUuid#1017463 AS plant#1017502, productUuid#1017465 AS product#1017503, storageLocId#1017466, calculationDateTime#1017459, quantity#1017468]
(1975) LogicalRelation
Arguments: parquet, [systemId#1017504, internalUUID#1017505, product#1017506, plant#1017507, calculationDateTime#1017508, stockQuantities#1017509], false
(1976) Repartition
Arguments: 37, true
(1977) LogicalRelation
Arguments: parquet, [marketUnit#1017510, description#1017511, articleHierarchy#1017512, defaultCurrency#1017513, responsibilities#1017514, replenishmentTypes#1017515, distributionCenters#1017516, assignedArticleHierarchyNodes#1017517, minOrderQtySetting#1017518, listingCheck#1017519, odsSelection#1017520, demandProfiles#1017521, constraintProfiles#1017522, optimizationProfiles#1017523, orderGroupSplitProfiles#1017524, supplierMinimumProfiles#1017525, multipleRestrictionProfiles#1017526, preferredUomSource#1017527, handlingOfUnfulfilledDemands#1017528, negligibleQuantitiesThreshold#1017529, eventtype#1017530], false
(1978) Repartition
Arguments: 37, true
(1979) Filter
Arguments: (marketUnit#1017510 <=> STEPHI_MU)
(1980) Project
Arguments: [marketUnit#1017510, description#1017511, articleHierarchy#1017512, defaultCurrency#1017513, responsibilities#1017514, replenishmentTypes#1017515, distributionCenters#1017516, assignedArticleHierarchyNodes#1017517, minOrderQtySetting#1017518, listingCheck#1017519, odsSelection#1017520, demandProfiles#1017521, constraintProfiles#1017522, optimizationProfiles#1017523, orderGroupSplitProfiles#1017524, supplierMinimumProfiles#1017525, multipleRestrictionProfiles#1017526, preferredUomSource#1017527, handlingOfUnfulfilledDemands#1017528, negligibleQuantitiesThreshold#1017529, eventtype#1017530]
(1981) Project
Arguments: [distributionCenters#1017516]
(1982) Generate
Arguments: explode(distributionCenters#1017516), false, [distributionCenters#1017531]
(1983) Project
Arguments: [distributionCenters#1017531]
(1984) Generate
Arguments: explode(distributionCenters#1017531.storageLocations), false, [storageLocations#1017532]
(1985) Project
Arguments: [distributionCenters#1017531.id AS plantId#1017533, distributionCenters#1017531.internalRefUUID AS plantUuid#1017534, storageLocations#1017532]
(1986) Project
Arguments: [plantId#1017533, plantUuid#1017534, storageLocations#1017532.id AS storageLocId#1017535, storageLocations#1017532.internalRefUUID AS storageLocUuid#1017536]
(1987) LogicalRelation
Arguments: parquet, [product#1017537, plant#1017538, orderDateTime#1017539, planningStartDateTime#1017540], false
(1988) RepartitionByExpression
Arguments: [product#1017537, plant#1017538], 37
(1989) Project
Arguments: [product#1017537, plant#1017538, orderDateTime#1017539]
(1990) LogicalRelation
Arguments: parquet, [systemId#1017541, internalUUID#1017542, plant#1017543, product#1017544, blockedForReplenishmentStartingFrom#1017545, productionAspect#1017546, salesPlant#1017547, listing#1017548, sourceOfSupplyCategory#1017549], false
(1991) Repartition
Arguments: 37, true
(1992) Project
Arguments: [systemId#1017541, internalUUID#1017542, plant#1017543, product#1017544, blockedForReplenishmentStartingFrom#1017545, productionAspect#1017546, salesPlant#1017547, listing#1017548, sourceOfSupplyCategory#1017549, struct(systemId, systemId#1017541, internalUUID, internalUUID#1017542, plant, plant#1017543, product, product#1017544, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1017545, productionAspect, productionAspect#1017546, salesPlant, salesPlant#1017547, listing, listing#1017548, sourceOfSupplyCategory, sourceOfSupplyCategory#1017549) AS productPlant#1017550]
(1993) Project
Arguments: [productPlant#1017550]
(1994) Join
Arguments: LeftOuter, ((product#1017537 <=> productPlant#1017550.product.internalRefUUID) AND (plant#1017538 <=> productPlant#1017550.plant.internalRefUUID))
(1995) Project
Arguments: [product#1017537, plant#1017538, orderDateTime#1017539, productPlant#1017550]
(1996) LogicalRelation
Arguments: parquet, [systemId#1017551, internalUUID#1017552, id#1017553, displayId#1017554, name#1017555, baseUnitOfMeasure#1017556, unitOfMeasures#1017557, unitOfMeasureConversions#1017558, productionAspect#1017559, salesAspect#1017560, procurementAspect#1017561, productGroup#1017562], false
(1997) Repartition
Arguments: 37, true
(1998) Join
Arguments: LeftOuter, (product#1017537 = internalUUID#1017552)
(1999) Project
Arguments: [product#1017537, plant#1017538, orderDateTime#1017539, productPlant#1017550, systemId#1017551, internalUUID#1017552, id#1017553, displayId#1017554, name#1017555, baseUnitOfMeasure#1017556, unitOfMeasures#1017557, unitOfMeasureConversions#1017558, productionAspect#1017559, salesAspect#1017560, procurementAspect#1017561, productGroup#1017562, filter(unitOfMeasureConversions#1017558, lambdafunction((((lambda u#1012565.measurementUnit1.code = productPlant#1017550.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1012565.measurementUnit1.internalRefUUID = productPlant#1017550.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1012565.measurementUnit2.code = baseUnitOfMeasure#1017556.code) AND (lambda u#1012565.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1017556.internalRefUUID))), lambda u#1012565, false)) AS filteredUnitOfMeasureConversions#1017563]
(2000) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1017563.quantityNumerator), true, [quantityNumerator#1017564]
(2001) Project
Arguments: [product#1017537, plant#1017538, orderDateTime#1017539, productPlant#1017550, systemId#1017551, internalUUID#1017552, id#1017553, displayId#1017554, name#1017555, baseUnitOfMeasure#1017556, unitOfMeasures#1017557, unitOfMeasureConversions#1017558, productionAspect#1017559, salesAspect#1017560, procurementAspect#1017561, productGroup#1017562, filteredUnitOfMeasureConversions#1017563, quantityNumerator#1017564]
(2002) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1017563.quantityDenominator), true, [quantityDenominator#1017565]
(2003) Project
Arguments: [product#1017537, plant#1017538, orderDateTime#1017539, productPlant#1017550, systemId#1017551, internalUUID#1017552, id#1017553, displayId#1017554, name#1017555, baseUnitOfMeasure#1017556, unitOfMeasures#1017557, unitOfMeasureConversions#1017558, productionAspect#1017559, salesAspect#1017560, procurementAspect#1017561, productGroup#1017562, filteredUnitOfMeasureConversions#1017563, quantityNumerator#1017564, quantityDenominator#1017565]
(2004) Project
Arguments: [product#1017537, plant#1017538, orderDateTime#1017539, productPlant#1017550, systemId#1017551, internalUUID#1017552, id#1017553, displayId#1017554, name#1017555, baseUnitOfMeasure#1017556, unitOfMeasures#1017557, unitOfMeasureConversions#1017558, productionAspect#1017559, salesAspect#1017560, procurementAspect#1017561, productGroup#1017562, filteredUnitOfMeasureConversions#1017563, quantityNumerator#1017564, quantityDenominator#1017565, (cast(quantityNumerator#1017564 as double) / cast(quantityDenominator#1017565 as double)) AS outboundUnit#1017566]
(2005) Project
Arguments: [product#1017537, plant#1017538, orderDateTime#1017539, productPlant#1017550, systemId#1017551, internalUUID#1017552, id#1017553, displayId#1017554, name#1017555, baseUnitOfMeasure#1017556, unitOfMeasures#1017557, unitOfMeasureConversions#1017558, productionAspect#1017559, salesAspect#1017560, procurementAspect#1017561, productGroup#1017562, filteredUnitOfMeasureConversions#1017563, quantityNumerator#1017564, quantityDenominator#1017565, CASE WHEN (isnull(outboundUnit#1017566) OR (outboundUnit#1017566 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1017566 END AS outboundUnit#1017567]
(2006) Project
Arguments: [product#1017537, plant#1017538, orderDateTime#1017539, productPlant#1017550, outboundUnit#1017567]
(2007) Project
Arguments: [plant#1017538]
(2008) Deduplicate
Arguments: [plant#1017538]
(2009) Join
Arguments: Inner, (plantUuid#1017534 = plant#1017538)
(2010) Project
Arguments: [plantId#1017533, plantUuid#1017534, storageLocId#1017535, storageLocUuid#1017536]
(2011) Join
Arguments: Inner, (plant#1017507.internalRefUUID <=> plantUuid#1017534)
(2012) Generate
Arguments: explode(filter(stockQuantities#1017509, lambdafunction(((lambda x#1012695.storageLocation.internalRefUuid = storageLocUuid#1017536) AND (lambda x#1012695.storageLocation.Id = storageLocId#1017535)), lambda x#1012695, false))), false, [stockQuantity#1017568]
(2013) Project
Arguments: [systemId#1017504, internalUUID#1017505, product#1017506, plant#1017507, calculationDateTime#1017508, stockQuantities#1017509, plantId#1017533, plantUuid#1017534, storageLocId#1017535, storageLocUuid#1017536, stockQuantity#1017568]
(2014) Aggregate
Arguments: [plantUuid#1017534, internalUUID#1017505, plant#1017507, product#1017506, systemId#1017504], [plantUuid#1017534, internalUUID#1017505, plant#1017507, product#1017506, systemId#1017504, first(calculationDateTime#1017508, false) AS calculationDateTime#1017569, collect_list(stockQuantity#1017568, 0, 0) AS stockQuantities#1017570]
(2015) Project
Arguments: [systemId#1017504, internalUUID#1017505, product#1017506, plant#1017507, calculationDateTime#1017569, stockQuantities#1017570]
(2016) Generate
Arguments: explode(stockQuantities#1017570), false, [stockQuantity#1017571]
(2017) Project
Arguments: [systemId#1017504, internalUUID#1017505, product#1017506, plant#1017507, calculationDateTime#1017569, stockQuantities#1017570, stockQuantity#1017571]
(2018) Project
Arguments: [plant#1017507.id AS plant#1017572, plant#1017507.internalRefUUID AS plantUuid#1017573, product#1017506.id AS product#1017574, product#1017506.internalRefUUID AS productUuid#1017575, calculationDateTime#1017569, stockQuantity#1017571.storagelocation.id AS storageLocId#1017576, stockQuantity#1017571.storagelocation.internalRefUUID AS storageLocUuid#1017577, stockQuantity#1017571.quantity.measure AS quantity#1017578, stockQuantity#1017571.specialStockIndicator.code AS specialStockIndicator#1017579, stockQuantity#1017571.stockType.code AS stockType#1017580]
(2019) Filter
Arguments: ((specialStockIndicator#1017579 = ) AND (stockType#1017580 = 01))
(2020) LogicalRelation
Arguments: parquet, [product#1017581, plant#1017582, orderDateTime#1017583, planningStartDateTime#1017584], false
(2021) RepartitionByExpression
Arguments: [product#1017581, plant#1017582], 37
(2022) Project
Arguments: [product#1017581, plant#1017582, orderDateTime#1017583]
(2023) LogicalRelation
Arguments: parquet, [systemId#1017585, internalUUID#1017586, plant#1017587, product#1017588, blockedForReplenishmentStartingFrom#1017589, productionAspect#1017590, salesPlant#1017591, listing#1017592, sourceOfSupplyCategory#1017593], false
(2024) Repartition
Arguments: 37, true
(2025) Project
Arguments: [systemId#1017585, internalUUID#1017586, plant#1017587, product#1017588, blockedForReplenishmentStartingFrom#1017589, productionAspect#1017590, salesPlant#1017591, listing#1017592, sourceOfSupplyCategory#1017593, struct(systemId, systemId#1017585, internalUUID, internalUUID#1017586, plant, plant#1017587, product, product#1017588, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1017589, productionAspect, productionAspect#1017590, salesPlant, salesPlant#1017591, listing, listing#1017592, sourceOfSupplyCategory, sourceOfSupplyCategory#1017593) AS productPlant#1017594]
(2026) Project
Arguments: [productPlant#1017594]
(2027) Join
Arguments: LeftOuter, ((product#1017581 <=> productPlant#1017594.product.internalRefUUID) AND (plant#1017582 <=> productPlant#1017594.plant.internalRefUUID))
(2028) Project
Arguments: [product#1017581, plant#1017582, orderDateTime#1017583, productPlant#1017594]
(2029) LogicalRelation
Arguments: parquet, [systemId#1017595, internalUUID#1017596, id#1017597, displayId#1017598, name#1017599, baseUnitOfMeasure#1017600, unitOfMeasures#1017601, unitOfMeasureConversions#1017602, productionAspect#1017603, salesAspect#1017604, procurementAspect#1017605, productGroup#1017606], false
(2030) Repartition
Arguments: 37, true
(2031) Join
Arguments: LeftOuter, (product#1017581 = internalUUID#1017596)
(2032) Project
Arguments: [product#1017581, plant#1017582, orderDateTime#1017583, productPlant#1017594, systemId#1017595, internalUUID#1017596, id#1017597, displayId#1017598, name#1017599, baseUnitOfMeasure#1017600, unitOfMeasures#1017601, unitOfMeasureConversions#1017602, productionAspect#1017603, salesAspect#1017604, procurementAspect#1017605, productGroup#1017606, filter(unitOfMeasureConversions#1017602, lambdafunction((((lambda u#1012565.measurementUnit1.code = productPlant#1017594.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1012565.measurementUnit1.internalRefUUID = productPlant#1017594.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1012565.measurementUnit2.code = baseUnitOfMeasure#1017600.code) AND (lambda u#1012565.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1017600.internalRefUUID))), lambda u#1012565, false)) AS filteredUnitOfMeasureConversions#1017607]
(2033) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1017607.quantityNumerator), true, [quantityNumerator#1017608]
(2034) Project
Arguments: [product#1017581, plant#1017582, orderDateTime#1017583, productPlant#1017594, systemId#1017595, internalUUID#1017596, id#1017597, displayId#1017598, name#1017599, baseUnitOfMeasure#1017600, unitOfMeasures#1017601, unitOfMeasureConversions#1017602, productionAspect#1017603, salesAspect#1017604, procurementAspect#1017605, productGroup#1017606, filteredUnitOfMeasureConversions#1017607, quantityNumerator#1017608]
(2035) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1017607.quantityDenominator), true, [quantityDenominator#1017609]
(2036) Project
Arguments: [product#1017581, plant#1017582, orderDateTime#1017583, productPlant#1017594, systemId#1017595, internalUUID#1017596, id#1017597, displayId#1017598, name#1017599, baseUnitOfMeasure#1017600, unitOfMeasures#1017601, unitOfMeasureConversions#1017602, productionAspect#1017603, salesAspect#1017604, procurementAspect#1017605, productGroup#1017606, filteredUnitOfMeasureConversions#1017607, quantityNumerator#1017608, quantityDenominator#1017609]
(2037) Project
Arguments: [product#1017581, plant#1017582, orderDateTime#1017583, productPlant#1017594, systemId#1017595, internalUUID#1017596, id#1017597, displayId#1017598, name#1017599, baseUnitOfMeasure#1017600, unitOfMeasures#1017601, unitOfMeasureConversions#1017602, productionAspect#1017603, salesAspect#1017604, procurementAspect#1017605, productGroup#1017606, filteredUnitOfMeasureConversions#1017607, quantityNumerator#1017608, quantityDenominator#1017609, (cast(quantityNumerator#1017608 as double) / cast(quantityDenominator#1017609 as double)) AS outboundUnit#1017610]
(2038) Project
Arguments: [product#1017581, plant#1017582, orderDateTime#1017583, productPlant#1017594, systemId#1017595, internalUUID#1017596, id#1017597, displayId#1017598, name#1017599, baseUnitOfMeasure#1017600, unitOfMeasures#1017601, unitOfMeasureConversions#1017602, productionAspect#1017603, salesAspect#1017604, procurementAspect#1017605, productGroup#1017606, filteredUnitOfMeasureConversions#1017607, quantityNumerator#1017608, quantityDenominator#1017609, CASE WHEN (isnull(outboundUnit#1017610) OR (outboundUnit#1017610 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1017610 END AS outboundUnit#1017611]
(2039) Project
Arguments: [product#1017581, plant#1017582, orderDateTime#1017583, productPlant#1017594, outboundUnit#1017611]
(2040) Join
Arguments: Inner, ((plantUuid#1017573 = plant#1017582) AND (productUuid#1017575 = product#1017581))
(2041) Filter
Arguments: (calculationDateTime#1017569 <= orderDateTime#1017583)
(2042) Project
Arguments: [plantUuid#1017573 AS plant#1017612, productUuid#1017575 AS product#1017613, storageLocId#1017576, calculationDateTime#1017569, quantity#1017578]
(2043) Aggregate
Arguments: [plant#1017612, product#1017613, storageLocId#1017576], [plant#1017612, product#1017613, storageLocId#1017576, max(calculationDateTime#1017569) AS max_calc_datetime#1017614]
(2044) Join
Arguments: Inner, ((((plant#1017502 <=> plant#1017612) AND (product#1017503 <=> product#1017613)) AND (storageLocId#1017466 <=> storageLocId#1017576)) AND (calculationDateTime#1017459 <=> max_calc_datetime#1017614))
(2045) Project
Arguments: [plant#1017502, product#1017503, storageLocId#1017466, calculationDateTime#1017459, quantity#1017468]
(2046) Aggregate
Arguments: [product#1017503, plant#1017502], [product#1017503, plant#1017502, sum(quantity#1017468) AS quantitySum#1017615, min(calculationDateTime#1017459) AS minCalculationDateTime#1017616]
(2047) Project
Arguments: [product#1017503, plant#1017502, quantitySum#1017615, minCalculationDateTime#1017616, round(quantitySum#1017615, 0) AS roundedQuantitySum#1017617]
(2048) Join
Arguments: LeftOuter, ((plant#1017364 = plant#1017502) AND (product#1017363 = product#1017503))
(2049) Project
Arguments: [product#1017363, plant#1017364, orderDateTime#1017365, productPlant#1017376, outboundUnit#1017393, roundedQuantitySum#1017617, minCalculationDateTime#1017616]
(2050) Project
Arguments: [product#1017363, plant#1017364, orderDateTime#1017365, productPlant#1017376, outboundUnit#1017393, roundedQuantitySum#1017617, minCalculationDateTime#1017616, CASE WHEN isnotnull(minCalculationDateTime#1017616) THEN minCalculationDateTime#1017616 ELSE orderDateTime#1017365 END AS stockDatetime#1017618]
(2051) Project
Arguments: [product#1017363, plant#1017364, orderDateTime#1017365, productPlant#1017376, outboundUnit#1017393, roundedQuantitySum#1017617, minCalculationDateTime#1017616, stockDatetime#1017618, CASE WHEN isnotnull(roundedQuantitySum#1017617) THEN array(roundedQuantitySum#1017617) ELSE array(0.0) END AS stockBatchQuantities#1017619]
(2052) Project
Arguments: [product#1017363, plant#1017364, orderDateTime#1017365, productPlant#1017376, outboundUnit#1017393, roundedQuantitySum#1017617, minCalculationDateTime#1017616, stockDatetime#1017618, stockBatchQuantities#1017619, array(2199-01-01 00:00:00) AS stockBatchShelfLifeEndDatetimes#1017620]
(2053) Project
Arguments: [product#1017363, plant#1017364, orderDateTime#1017365, productPlant#1017376, outboundUnit#1017393, roundedQuantitySum#1017617, stockDatetime#1017618, stockBatchQuantities#1017619, stockBatchShelfLifeEndDatetimes#1017620]
(2054) Project
Arguments: [product#1017363, plant#1017364, orderDateTime#1017365, productPlant#1017376, outboundUnit#1017393, stockDatetime#1017618, stockBatchQuantities#1017619, stockBatchShelfLifeEndDatetimes#1017620]
(2055) LogicalRelation
Arguments: parquet, [product#1017621, plant#1017622, orderDateTime#1017623, planningStartDateTime#1017624], false
(2056) RepartitionByExpression
Arguments: [product#1017621, plant#1017622], 37
(2057) Project
Arguments: [product#1017621, plant#1017622, orderDateTime#1017623]
(2058) LogicalRelation
Arguments: parquet, [systemId#1017625, internalUUID#1017626, plant#1017627, product#1017628, blockedForReplenishmentStartingFrom#1017629, productionAspect#1017630, salesPlant#1017631, listing#1017632, sourceOfSupplyCategory#1017633], false
(2059) Repartition
Arguments: 37, true
(2060) Project
Arguments: [systemId#1017625, internalUUID#1017626, plant#1017627, product#1017628, blockedForReplenishmentStartingFrom#1017629, productionAspect#1017630, salesPlant#1017631, listing#1017632, sourceOfSupplyCategory#1017633, struct(systemId, systemId#1017625, internalUUID, internalUUID#1017626, plant, plant#1017627, product, product#1017628, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1017629, productionAspect, productionAspect#1017630, salesPlant, salesPlant#1017631, listing, listing#1017632, sourceOfSupplyCategory, sourceOfSupplyCategory#1017633) AS productPlant#1017634]
(2061) Project
Arguments: [productPlant#1017634]
(2062) Join
Arguments: LeftOuter, ((product#1017621 <=> productPlant#1017634.product.internalRefUUID) AND (plant#1017622 <=> productPlant#1017634.plant.internalRefUUID))
(2063) Project
Arguments: [product#1017621, plant#1017622, orderDateTime#1017623, productPlant#1017634]
(2064) LogicalRelation
Arguments: parquet, [systemId#1017635, internalUUID#1017636, id#1017637, displayId#1017638, name#1017639, baseUnitOfMeasure#1017640, unitOfMeasures#1017641, unitOfMeasureConversions#1017642, productionAspect#1017643, salesAspect#1017644, procurementAspect#1017645, productGroup#1017646], false
(2065) Repartition
Arguments: 37, true
(2066) Join
Arguments: LeftOuter, (product#1017621 = internalUUID#1017636)
(2067) Project
Arguments: [product#1017621, plant#1017622, orderDateTime#1017623, productPlant#1017634, systemId#1017635, internalUUID#1017636, id#1017637, displayId#1017638, name#1017639, baseUnitOfMeasure#1017640, unitOfMeasures#1017641, unitOfMeasureConversions#1017642, productionAspect#1017643, salesAspect#1017644, procurementAspect#1017645, productGroup#1017646, filter(unitOfMeasureConversions#1017642, lambdafunction((((lambda u#1012565.measurementUnit1.code = productPlant#1017634.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1012565.measurementUnit1.internalRefUUID = productPlant#1017634.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1012565.measurementUnit2.code = baseUnitOfMeasure#1017640.code) AND (lambda u#1012565.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1017640.internalRefUUID))), lambda u#1012565, false)) AS filteredUnitOfMeasureConversions#1017647]
(2068) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1017647.quantityNumerator), true, [quantityNumerator#1017648]
(2069) Project
Arguments: [product#1017621, plant#1017622, orderDateTime#1017623, productPlant#1017634, systemId#1017635, internalUUID#1017636, id#1017637, displayId#1017638, name#1017639, baseUnitOfMeasure#1017640, unitOfMeasures#1017641, unitOfMeasureConversions#1017642, productionAspect#1017643, salesAspect#1017644, procurementAspect#1017645, productGroup#1017646, filteredUnitOfMeasureConversions#1017647, quantityNumerator#1017648]
(2070) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1017647.quantityDenominator), true, [quantityDenominator#1017649]
(2071) Project
Arguments: [product#1017621, plant#1017622, orderDateTime#1017623, productPlant#1017634, systemId#1017635, internalUUID#1017636, id#1017637, displayId#1017638, name#1017639, baseUnitOfMeasure#1017640, unitOfMeasures#1017641, unitOfMeasureConversions#1017642, productionAspect#1017643, salesAspect#1017644, procurementAspect#1017645, productGroup#1017646, filteredUnitOfMeasureConversions#1017647, quantityNumerator#1017648, quantityDenominator#1017649]
(2072) Project
Arguments: [product#1017621, plant#1017622, orderDateTime#1017623, productPlant#1017634, systemId#1017635, internalUUID#1017636, id#1017637, displayId#1017638, name#1017639, baseUnitOfMeasure#1017640, unitOfMeasures#1017641, unitOfMeasureConversions#1017642, productionAspect#1017643, salesAspect#1017644, procurementAspect#1017645, productGroup#1017646, filteredUnitOfMeasureConversions#1017647, quantityNumerator#1017648, quantityDenominator#1017649, (cast(quantityNumerator#1017648 as double) / cast(quantityDenominator#1017649 as double)) AS outboundUnit#1017650]
(2073) Project
Arguments: [product#1017621, plant#1017622, orderDateTime#1017623, productPlant#1017634, systemId#1017635, internalUUID#1017636, id#1017637, displayId#1017638, name#1017639, baseUnitOfMeasure#1017640, unitOfMeasures#1017641, unitOfMeasureConversions#1017642, productionAspect#1017643, salesAspect#1017644, procurementAspect#1017645, productGroup#1017646, filteredUnitOfMeasureConversions#1017647, quantityNumerator#1017648, quantityDenominator#1017649, CASE WHEN (isnull(outboundUnit#1017650) OR (outboundUnit#1017650 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1017650 END AS outboundUnit#1017651]
(2074) Project
Arguments: [product#1017621, plant#1017622, orderDateTime#1017623, productPlant#1017634, outboundUnit#1017651]
(2075) LogicalRelation
Arguments: parquet, [systemId#1017652, internalUUID#1017653, product#1017654, plant#1017655, calculationDateTime#1017656, stockQuantities#1017657], false
(2076) Repartition
Arguments: 37, true
(2077) LogicalRelation
Arguments: parquet, [marketUnit#1017658, description#1017659, articleHierarchy#1017660, defaultCurrency#1017661, responsibilities#1017662, replenishmentTypes#1017663, distributionCenters#1017664, assignedArticleHierarchyNodes#1017665, minOrderQtySetting#1017666, listingCheck#1017667, odsSelection#1017668, demandProfiles#1017669, constraintProfiles#1017670, optimizationProfiles#1017671, orderGroupSplitProfiles#1017672, supplierMinimumProfiles#1017673, multipleRestrictionProfiles#1017674, preferredUomSource#1017675, handlingOfUnfulfilledDemands#1017676, negligibleQuantitiesThreshold#1017677, eventtype#1017678], false
(2078) Repartition
Arguments: 37, true
(2079) Filter
Arguments: (marketUnit#1017658 <=> STEPHI_MU)
(2080) Project
Arguments: [marketUnit#1017658, description#1017659, articleHierarchy#1017660, defaultCurrency#1017661, responsibilities#1017662, replenishmentTypes#1017663, distributionCenters#1017664, assignedArticleHierarchyNodes#1017665, minOrderQtySetting#1017666, listingCheck#1017667, odsSelection#1017668, demandProfiles#1017669, constraintProfiles#1017670, optimizationProfiles#1017671, orderGroupSplitProfiles#1017672, supplierMinimumProfiles#1017673, multipleRestrictionProfiles#1017674, preferredUomSource#1017675, handlingOfUnfulfilledDemands#1017676, negligibleQuantitiesThreshold#1017677, eventtype#1017678]
(2081) Project
Arguments: [distributionCenters#1017664]
(2082) Generate
Arguments: explode(distributionCenters#1017664), false, [distributionCenters#1017679]
(2083) Project
Arguments: [distributionCenters#1017679]
(2084) Generate
Arguments: explode(distributionCenters#1017679.storageLocations), false, [storageLocations#1017680]
(2085) Project
Arguments: [distributionCenters#1017679.id AS plantId#1017681, distributionCenters#1017679.internalRefUUID AS plantUuid#1017682, storageLocations#1017680]
(2086) Project
Arguments: [plantId#1017681, plantUuid#1017682, storageLocations#1017680.id AS storageLocId#1017683, storageLocations#1017680.internalRefUUID AS storageLocUuid#1017684]
(2087) LogicalRelation
Arguments: parquet, [product#1017685, plant#1017686, orderDateTime#1017687, planningStartDateTime#1017688], false
(2088) RepartitionByExpression
Arguments: [product#1017685, plant#1017686], 37
(2089) Project
Arguments: [product#1017685, plant#1017686, orderDateTime#1017687]
(2090) LogicalRelation
Arguments: parquet, [systemId#1017689, internalUUID#1017690, plant#1017691, product#1017692, blockedForReplenishmentStartingFrom#1017693, productionAspect#1017694, salesPlant#1017695, listing#1017696, sourceOfSupplyCategory#1017697], false
(2091) Repartition
Arguments: 37, true
(2092) Project
Arguments: [systemId#1017689, internalUUID#1017690, plant#1017691, product#1017692, blockedForReplenishmentStartingFrom#1017693, productionAspect#1017694, salesPlant#1017695, listing#1017696, sourceOfSupplyCategory#1017697, struct(systemId, systemId#1017689, internalUUID, internalUUID#1017690, plant, plant#1017691, product, product#1017692, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1017693, productionAspect, productionAspect#1017694, salesPlant, salesPlant#1017695, listing, listing#1017696, sourceOfSupplyCategory, sourceOfSupplyCategory#1017697) AS productPlant#1017698]
(2093) Project
Arguments: [productPlant#1017698]
(2094) Join
Arguments: LeftOuter, ((product#1017685 <=> productPlant#1017698.product.internalRefUUID) AND (plant#1017686 <=> productPlant#1017698.plant.internalRefUUID))
(2095) Project
Arguments: [product#1017685, plant#1017686, orderDateTime#1017687, productPlant#1017698]
(2096) LogicalRelation
Arguments: parquet, [systemId#1017699, internalUUID#1017700, id#1017701, displayId#1017702, name#1017703, baseUnitOfMeasure#1017704, unitOfMeasures#1017705, unitOfMeasureConversions#1017706, productionAspect#1017707, salesAspect#1017708, procurementAspect#1017709, productGroup#1017710], false
(2097) Repartition
Arguments: 37, true
(2098) Join
Arguments: LeftOuter, (product#1017685 = internalUUID#1017700)
(2099) Project
Arguments: [product#1017685, plant#1017686, orderDateTime#1017687, productPlant#1017698, systemId#1017699, internalUUID#1017700, id#1017701, displayId#1017702, name#1017703, baseUnitOfMeasure#1017704, unitOfMeasures#1017705, unitOfMeasureConversions#1017706, productionAspect#1017707, salesAspect#1017708, procurementAspect#1017709, productGroup#1017710, filter(unitOfMeasureConversions#1017706, lambdafunction((((lambda u#1012565.measurementUnit1.code = productPlant#1017698.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1012565.measurementUnit1.internalRefUUID = productPlant#1017698.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1012565.measurementUnit2.code = baseUnitOfMeasure#1017704.code) AND (lambda u#1012565.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1017704.internalRefUUID))), lambda u#1012565, false)) AS filteredUnitOfMeasureConversions#1017711]
(2100) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1017711.quantityNumerator), true, [quantityNumerator#1017712]
(2101) Project
Arguments: [product#1017685, plant#1017686, orderDateTime#1017687, productPlant#1017698, systemId#1017699, internalUUID#1017700, id#1017701, displayId#1017702, name#1017703, baseUnitOfMeasure#1017704, unitOfMeasures#1017705, unitOfMeasureConversions#1017706, productionAspect#1017707, salesAspect#1017708, procurementAspect#1017709, productGroup#1017710, filteredUnitOfMeasureConversions#1017711, quantityNumerator#1017712]
(2102) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1017711.quantityDenominator), true, [quantityDenominator#1017713]
(2103) Project
Arguments: [product#1017685, plant#1017686, orderDateTime#1017687, productPlant#1017698, systemId#1017699, internalUUID#1017700, id#1017701, displayId#1017702, name#1017703, baseUnitOfMeasure#1017704, unitOfMeasures#1017705, unitOfMeasureConversions#1017706, productionAspect#1017707, salesAspect#1017708, procurementAspect#1017709, productGroup#1017710, filteredUnitOfMeasureConversions#1017711, quantityNumerator#1017712, quantityDenominator#1017713]
(2104) Project
Arguments: [product#1017685, plant#1017686, orderDateTime#1017687, productPlant#1017698, systemId#1017699, internalUUID#1017700, id#1017701, displayId#1017702, name#1017703, baseUnitOfMeasure#1017704, unitOfMeasures#1017705, unitOfMeasureConversions#1017706, productionAspect#1017707, salesAspect#1017708, procurementAspect#1017709, productGroup#1017710, filteredUnitOfMeasureConversions#1017711, quantityNumerator#1017712, quantityDenominator#1017713, (cast(quantityNumerator#1017712 as double) / cast(quantityDenominator#1017713 as double)) AS outboundUnit#1017714]
(2105) Project
Arguments: [product#1017685, plant#1017686, orderDateTime#1017687, productPlant#1017698, systemId#1017699, internalUUID#1017700, id#1017701, displayId#1017702, name#1017703, baseUnitOfMeasure#1017704, unitOfMeasures#1017705, unitOfMeasureConversions#1017706, productionAspect#1017707, salesAspect#1017708, procurementAspect#1017709, productGroup#1017710, filteredUnitOfMeasureConversions#1017711, quantityNumerator#1017712, quantityDenominator#1017713, CASE WHEN (isnull(outboundUnit#1017714) OR (outboundUnit#1017714 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1017714 END AS outboundUnit#1017715]
(2106) Project
Arguments: [product#1017685, plant#1017686, orderDateTime#1017687, productPlant#1017698, outboundUnit#1017715]
(2107) Project
Arguments: [plant#1017686]
(2108) Deduplicate
Arguments: [plant#1017686]
(2109) Join
Arguments: Inner, (plantUuid#1017682 = plant#1017686)
(2110) Project
Arguments: [plantId#1017681, plantUuid#1017682, storageLocId#1017683, storageLocUuid#1017684]
(2111) Join
Arguments: Inner, (plant#1017655.internalRefUUID <=> plantUuid#1017682)
(2112) Generate
Arguments: explode(filter(stockQuantities#1017657, lambdafunction(((lambda x#1012695.storageLocation.internalRefUuid = storageLocUuid#1017684) AND (lambda x#1012695.storageLocation.Id = storageLocId#1017683)), lambda x#1012695, false))), false, [stockQuantity#1017716]
(2113) Project
Arguments: [systemId#1017652, internalUUID#1017653, product#1017654, plant#1017655, calculationDateTime#1017656, stockQuantities#1017657, plantId#1017681, plantUuid#1017682, storageLocId#1017683, storageLocUuid#1017684, stockQuantity#1017716]
(2114) Aggregate
Arguments: [plantUuid#1017682, internalUUID#1017653, plant#1017655, product#1017654, systemId#1017652], [plantUuid#1017682, internalUUID#1017653, plant#1017655, product#1017654, systemId#1017652, first(calculationDateTime#1017656, false) AS calculationDateTime#1017717, collect_list(stockQuantity#1017716, 0, 0) AS stockQuantities#1017718]
(2115) Project
Arguments: [systemId#1017652, internalUUID#1017653, product#1017654, plant#1017655, calculationDateTime#1017717, stockQuantities#1017718]
(2116) Generate
Arguments: explode(stockQuantities#1017718), false, [stockQuantity#1017719]
(2117) Project
Arguments: [systemId#1017652, internalUUID#1017653, product#1017654, plant#1017655, calculationDateTime#1017717, stockQuantities#1017718, stockQuantity#1017719]
(2118) Project
Arguments: [plant#1017655.id AS plant#1017720, plant#1017655.internalRefUUID AS plantUuid#1017721, product#1017654.id AS product#1017722, product#1017654.internalRefUUID AS productUuid#1017723, calculationDateTime#1017717, stockQuantity#1017719.storagelocation.id AS storageLocId#1017724, stockQuantity#1017719.storagelocation.internalRefUUID AS storageLocUuid#1017725, stockQuantity#1017719.quantity.measure AS quantity#1017726, stockQuantity#1017719.specialStockIndicator.code AS specialStockIndicator#1017727, stockQuantity#1017719.stockType.code AS stockType#1017728]
(2119) Filter
Arguments: ((specialStockIndicator#1017727 = ) AND (stockType#1017728 = 01))
(2120) LogicalRelation
Arguments: parquet, [product#1017729, plant#1017730, orderDateTime#1017731, planningStartDateTime#1017732], false
(2121) RepartitionByExpression
Arguments: [product#1017729, plant#1017730], 37
(2122) Project
Arguments: [product#1017729, plant#1017730, orderDateTime#1017731]
(2123) LogicalRelation
Arguments: parquet, [systemId#1017733, internalUUID#1017734, plant#1017735, product#1017736, blockedForReplenishmentStartingFrom#1017737, productionAspect#1017738, salesPlant#1017739, listing#1017740, sourceOfSupplyCategory#1017741], false
(2124) Repartition
Arguments: 37, true
(2125) Project
Arguments: [systemId#1017733, internalUUID#1017734, plant#1017735, product#1017736, blockedForReplenishmentStartingFrom#1017737, productionAspect#1017738, salesPlant#1017739, listing#1017740, sourceOfSupplyCategory#1017741, struct(systemId, systemId#1017733, internalUUID, internalUUID#1017734, plant, plant#1017735, product, product#1017736, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1017737, productionAspect, productionAspect#1017738, salesPlant, salesPlant#1017739, listing, listing#1017740, sourceOfSupplyCategory, sourceOfSupplyCategory#1017741) AS productPlant#1017742]
(2126) Project
Arguments: [productPlant#1017742]
(2127) Join
Arguments: LeftOuter, ((product#1017729 <=> productPlant#1017742.product.internalRefUUID) AND (plant#1017730 <=> productPlant#1017742.plant.internalRefUUID))
(2128) Project
Arguments: [product#1017729, plant#1017730, orderDateTime#1017731, productPlant#1017742]
(2129) LogicalRelation
Arguments: parquet, [systemId#1017743, internalUUID#1017744, id#1017745, displayId#1017746, name#1017747, baseUnitOfMeasure#1017748, unitOfMeasures#1017749, unitOfMeasureConversions#1017750, productionAspect#1017751, salesAspect#1017752, procurementAspect#1017753, productGroup#1017754], false
(2130) Repartition
Arguments: 37, true
(2131) Join
Arguments: LeftOuter, (product#1017729 = internalUUID#1017744)
(2132) Project
Arguments: [product#1017729, plant#1017730, orderDateTime#1017731, productPlant#1017742, systemId#1017743, internalUUID#1017744, id#1017745, displayId#1017746, name#1017747, baseUnitOfMeasure#1017748, unitOfMeasures#1017749, unitOfMeasureConversions#1017750, productionAspect#1017751, salesAspect#1017752, procurementAspect#1017753, productGroup#1017754, filter(unitOfMeasureConversions#1017750, lambdafunction((((lambda u#1012565.measurementUnit1.code = productPlant#1017742.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1012565.measurementUnit1.internalRefUUID = productPlant#1017742.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1012565.measurementUnit2.code = baseUnitOfMeasure#1017748.code) AND (lambda u#1012565.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1017748.internalRefUUID))), lambda u#1012565, false)) AS filteredUnitOfMeasureConversions#1017755]
(2133) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1017755.quantityNumerator), true, [quantityNumerator#1017756]
(2134) Project
Arguments: [product#1017729, plant#1017730, orderDateTime#1017731, productPlant#1017742, systemId#1017743, internalUUID#1017744, id#1017745, displayId#1017746, name#1017747, baseUnitOfMeasure#1017748, unitOfMeasures#1017749, unitOfMeasureConversions#1017750, productionAspect#1017751, salesAspect#1017752, procurementAspect#1017753, productGroup#1017754, filteredUnitOfMeasureConversions#1017755, quantityNumerator#1017756]
(2135) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1017755.quantityDenominator), true, [quantityDenominator#1017757]
(2136) Project
Arguments: [product#1017729, plant#1017730, orderDateTime#1017731, productPlant#1017742, systemId#1017743, internalUUID#1017744, id#1017745, displayId#1017746, name#1017747, baseUnitOfMeasure#1017748, unitOfMeasures#1017749, unitOfMeasureConversions#1017750, productionAspect#1017751, salesAspect#1017752, procurementAspect#1017753, productGroup#1017754, filteredUnitOfMeasureConversions#1017755, quantityNumerator#1017756, quantityDenominator#1017757]
(2137) Project
Arguments: [product#1017729, plant#1017730, orderDateTime#1017731, productPlant#1017742, systemId#1017743, internalUUID#1017744, id#1017745, displayId#1017746, name#1017747, baseUnitOfMeasure#1017748, unitOfMeasures#1017749, unitOfMeasureConversions#1017750, productionAspect#1017751, salesAspect#1017752, procurementAspect#1017753, productGroup#1017754, filteredUnitOfMeasureConversions#1017755, quantityNumerator#1017756, quantityDenominator#1017757, (cast(quantityNumerator#1017756 as double) / cast(quantityDenominator#1017757 as double)) AS outboundUnit#1017758]
(2138) Project
Arguments: [product#1017729, plant#1017730, orderDateTime#1017731, productPlant#1017742, systemId#1017743, internalUUID#1017744, id#1017745, displayId#1017746, name#1017747, baseUnitOfMeasure#1017748, unitOfMeasures#1017749, unitOfMeasureConversions#1017750, productionAspect#1017751, salesAspect#1017752, procurementAspect#1017753, productGroup#1017754, filteredUnitOfMeasureConversions#1017755, quantityNumerator#1017756, quantityDenominator#1017757, CASE WHEN (isnull(outboundUnit#1017758) OR (outboundUnit#1017758 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1017758 END AS outboundUnit#1017759]
(2139) Project
Arguments: [product#1017729, plant#1017730, orderDateTime#1017731, productPlant#1017742, outboundUnit#1017759]
(2140) Join
Arguments: Inner, ((plantUuid#1017721 = plant#1017730) AND (productUuid#1017723 = product#1017729))
(2141) Filter
Arguments: (calculationDateTime#1017717 <= orderDateTime#1017731)
(2142) Project
Arguments: [plantUuid#1017721 AS plant#1017760, productUuid#1017723 AS product#1017761, storageLocId#1017724, calculationDateTime#1017717, quantity#1017726]
(2143) LogicalRelation
Arguments: parquet, [systemId#1017762, internalUUID#1017763, product#1017764, plant#1017765, calculationDateTime#1017766, stockQuantities#1017767], false
(2144) Repartition
Arguments: 37, true
(2145) LogicalRelation
Arguments: parquet, [marketUnit#1017768, description#1017769, articleHierarchy#1017770, defaultCurrency#1017771, responsibilities#1017772, replenishmentTypes#1017773, distributionCenters#1017774, assignedArticleHierarchyNodes#1017775, minOrderQtySetting#1017776, listingCheck#1017777, odsSelection#1017778, demandProfiles#1017779, constraintProfiles#1017780, optimizationProfiles#1017781, orderGroupSplitProfiles#1017782, supplierMinimumProfiles#1017783, multipleRestrictionProfiles#1017784, preferredUomSource#1017785, handlingOfUnfulfilledDemands#1017786, negligibleQuantitiesThreshold#1017787, eventtype#1017788], false
(2146) Repartition
Arguments: 37, true
(2147) Filter
Arguments: (marketUnit#1017768 <=> STEPHI_MU)
(2148) Project
Arguments: [marketUnit#1017768, description#1017769, articleHierarchy#1017770, defaultCurrency#1017771, responsibilities#1017772, replenishmentTypes#1017773, distributionCenters#1017774, assignedArticleHierarchyNodes#1017775, minOrderQtySetting#1017776, listingCheck#1017777, odsSelection#1017778, demandProfiles#1017779, constraintProfiles#1017780, optimizationProfiles#1017781, orderGroupSplitProfiles#1017782, supplierMinimumProfiles#1017783, multipleRestrictionProfiles#1017784, preferredUomSource#1017785, handlingOfUnfulfilledDemands#1017786, negligibleQuantitiesThreshold#1017787, eventtype#1017788]
(2149) Project
Arguments: [distributionCenters#1017774]
(2150) Generate
Arguments: explode(distributionCenters#1017774), false, [distributionCenters#1017789]
(2151) Project
Arguments: [distributionCenters#1017789]
(2152) Generate
Arguments: explode(distributionCenters#1017789.storageLocations), false, [storageLocations#1017790]
(2153) Project
Arguments: [distributionCenters#1017789.id AS plantId#1017791, distributionCenters#1017789.internalRefUUID AS plantUuid#1017792, storageLocations#1017790]
(2154) Project
Arguments: [plantId#1017791, plantUuid#1017792, storageLocations#1017790.id AS storageLocId#1017793, storageLocations#1017790.internalRefUUID AS storageLocUuid#1017794]
(2155) LogicalRelation
Arguments: parquet, [product#1017795, plant#1017796, orderDateTime#1017797, planningStartDateTime#1017798], false
(2156) RepartitionByExpression
Arguments: [product#1017795, plant#1017796], 37
(2157) Project
Arguments: [product#1017795, plant#1017796, orderDateTime#1017797]
(2158) LogicalRelation
Arguments: parquet, [systemId#1017799, internalUUID#1017800, plant#1017801, product#1017802, blockedForReplenishmentStartingFrom#1017803, productionAspect#1017804, salesPlant#1017805, listing#1017806, sourceOfSupplyCategory#1017807], false
(2159) Repartition
Arguments: 37, true
(2160) Project
Arguments: [systemId#1017799, internalUUID#1017800, plant#1017801, product#1017802, blockedForReplenishmentStartingFrom#1017803, productionAspect#1017804, salesPlant#1017805, listing#1017806, sourceOfSupplyCategory#1017807, struct(systemId, systemId#1017799, internalUUID, internalUUID#1017800, plant, plant#1017801, product, product#1017802, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1017803, productionAspect, productionAspect#1017804, salesPlant, salesPlant#1017805, listing, listing#1017806, sourceOfSupplyCategory, sourceOfSupplyCategory#1017807) AS productPlant#1017808]
(2161) Project
Arguments: [productPlant#1017808]
(2162) Join
Arguments: LeftOuter, ((product#1017795 <=> productPlant#1017808.product.internalRefUUID) AND (plant#1017796 <=> productPlant#1017808.plant.internalRefUUID))
(2163) Project
Arguments: [product#1017795, plant#1017796, orderDateTime#1017797, productPlant#1017808]
(2164) LogicalRelation
Arguments: parquet, [systemId#1017809, internalUUID#1017810, id#1017811, displayId#1017812, name#1017813, baseUnitOfMeasure#1017814, unitOfMeasures#1017815, unitOfMeasureConversions#1017816, productionAspect#1017817, salesAspect#1017818, procurementAspect#1017819, productGroup#1017820], false
(2165) Repartition
Arguments: 37, true
(2166) Join
Arguments: LeftOuter, (product#1017795 = internalUUID#1017810)
(2167) Project
Arguments: [product#1017795, plant#1017796, orderDateTime#1017797, productPlant#1017808, systemId#1017809, internalUUID#1017810, id#1017811, displayId#1017812, name#1017813, baseUnitOfMeasure#1017814, unitOfMeasures#1017815, unitOfMeasureConversions#1017816, productionAspect#1017817, salesAspect#1017818, procurementAspect#1017819, productGroup#1017820, filter(unitOfMeasureConversions#1017816, lambdafunction((((lambda u#1012565.measurementUnit1.code = productPlant#1017808.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1012565.measurementUnit1.internalRefUUID = productPlant#1017808.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1012565.measurementUnit2.code = baseUnitOfMeasure#1017814.code) AND (lambda u#1012565.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1017814.internalRefUUID))), lambda u#1012565, false)) AS filteredUnitOfMeasureConversions#1017821]
(2168) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1017821.quantityNumerator), true, [quantityNumerator#1017822]
(2169) Project
Arguments: [product#1017795, plant#1017796, orderDateTime#1017797, productPlant#1017808, systemId#1017809, internalUUID#1017810, id#1017811, displayId#1017812, name#1017813, baseUnitOfMeasure#1017814, unitOfMeasures#1017815, unitOfMeasureConversions#1017816, productionAspect#1017817, salesAspect#1017818, procurementAspect#1017819, productGroup#1017820, filteredUnitOfMeasureConversions#1017821, quantityNumerator#1017822]
(2170) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1017821.quantityDenominator), true, [quantityDenominator#1017823]
(2171) Project
Arguments: [product#1017795, plant#1017796, orderDateTime#1017797, productPlant#1017808, systemId#1017809, internalUUID#1017810, id#1017811, displayId#1017812, name#1017813, baseUnitOfMeasure#1017814, unitOfMeasures#1017815, unitOfMeasureConversions#1017816, productionAspect#1017817, salesAspect#1017818, procurementAspect#1017819, productGroup#1017820, filteredUnitOfMeasureConversions#1017821, quantityNumerator#1017822, quantityDenominator#1017823]
(2172) Project
Arguments: [product#1017795, plant#1017796, orderDateTime#1017797, productPlant#1017808, systemId#1017809, internalUUID#1017810, id#1017811, displayId#1017812, name#1017813, baseUnitOfMeasure#1017814, unitOfMeasures#1017815, unitOfMeasureConversions#1017816, productionAspect#1017817, salesAspect#1017818, procurementAspect#1017819, productGroup#1017820, filteredUnitOfMeasureConversions#1017821, quantityNumerator#1017822, quantityDenominator#1017823, (cast(quantityNumerator#1017822 as double) / cast(quantityDenominator#1017823 as double)) AS outboundUnit#1017824]
(2173) Project
Arguments: [product#1017795, plant#1017796, orderDateTime#1017797, productPlant#1017808, systemId#1017809, internalUUID#1017810, id#1017811, displayId#1017812, name#1017813, baseUnitOfMeasure#1017814, unitOfMeasures#1017815, unitOfMeasureConversions#1017816, productionAspect#1017817, salesAspect#1017818, procurementAspect#1017819, productGroup#1017820, filteredUnitOfMeasureConversions#1017821, quantityNumerator#1017822, quantityDenominator#1017823, CASE WHEN (isnull(outboundUnit#1017824) OR (outboundUnit#1017824 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1017824 END AS outboundUnit#1017825]
(2174) Project
Arguments: [product#1017795, plant#1017796, orderDateTime#1017797, productPlant#1017808, outboundUnit#1017825]
(2175) Project
Arguments: [plant#1017796]
(2176) Deduplicate
Arguments: [plant#1017796]
(2177) Join
Arguments: Inner, (plantUuid#1017792 = plant#1017796)
(2178) Project
Arguments: [plantId#1017791, plantUuid#1017792, storageLocId#1017793, storageLocUuid#1017794]
(2179) Join
Arguments: Inner, (plant#1017765.internalRefUUID <=> plantUuid#1017792)
(2180) Generate
Arguments: explode(filter(stockQuantities#1017767, lambdafunction(((lambda x#1012695.storageLocation.internalRefUuid = storageLocUuid#1017794) AND (lambda x#1012695.storageLocation.Id = storageLocId#1017793)), lambda x#1012695, false))), false, [stockQuantity#1017826]
(2181) Project
Arguments: [systemId#1017762, internalUUID#1017763, product#1017764, plant#1017765, calculationDateTime#1017766, stockQuantities#1017767, plantId#1017791, plantUuid#1017792, storageLocId#1017793, storageLocUuid#1017794, stockQuantity#1017826]
(2182) Aggregate
Arguments: [plantUuid#1017792, internalUUID#1017763, plant#1017765, product#1017764, systemId#1017762], [plantUuid#1017792, internalUUID#1017763, plant#1017765, product#1017764, systemId#1017762, first(calculationDateTime#1017766, false) AS calculationDateTime#1017827, collect_list(stockQuantity#1017826, 0, 0) AS stockQuantities#1017828]
(2183) Project
Arguments: [systemId#1017762, internalUUID#1017763, product#1017764, plant#1017765, calculationDateTime#1017827, stockQuantities#1017828]
(2184) Generate
Arguments: explode(stockQuantities#1017828), false, [stockQuantity#1017829]
(2185) Project
Arguments: [systemId#1017762, internalUUID#1017763, product#1017764, plant#1017765, calculationDateTime#1017827, stockQuantities#1017828, stockQuantity#1017829]
(2186) Project
Arguments: [plant#1017765.id AS plant#1017830, plant#1017765.internalRefUUID AS plantUuid#1017831, product#1017764.id AS product#1017832, product#1017764.internalRefUUID AS productUuid#1017833, calculationDateTime#1017827, stockQuantity#1017829.storagelocation.id AS storageLocId#1017834, stockQuantity#1017829.storagelocation.internalRefUUID AS storageLocUuid#1017835, stockQuantity#1017829.quantity.measure AS quantity#1017836, stockQuantity#1017829.specialStockIndicator.code AS specialStockIndicator#1017837, stockQuantity#1017829.stockType.code AS stockType#1017838]
(2187) Filter
Arguments: ((specialStockIndicator#1017837 = ) AND (stockType#1017838 = 01))
(2188) LogicalRelation
Arguments: parquet, [product#1017839, plant#1017840, orderDateTime#1017841, planningStartDateTime#1017842], false
(2189) RepartitionByExpression
Arguments: [product#1017839, plant#1017840], 37
(2190) Project
Arguments: [product#1017839, plant#1017840, orderDateTime#1017841]
(2191) LogicalRelation
Arguments: parquet, [systemId#1017843, internalUUID#1017844, plant#1017845, product#1017846, blockedForReplenishmentStartingFrom#1017847, productionAspect#1017848, salesPlant#1017849, listing#1017850, sourceOfSupplyCategory#1017851], false
(2192) Repartition
Arguments: 37, true
(2193) Project
Arguments: [systemId#1017843, internalUUID#1017844, plant#1017845, product#1017846, blockedForReplenishmentStartingFrom#1017847, productionAspect#1017848, salesPlant#1017849, listing#1017850, sourceOfSupplyCategory#1017851, struct(systemId, systemId#1017843, internalUUID, internalUUID#1017844, plant, plant#1017845, product, product#1017846, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1017847, productionAspect, productionAspect#1017848, salesPlant, salesPlant#1017849, listing, listing#1017850, sourceOfSupplyCategory, sourceOfSupplyCategory#1017851) AS productPlant#1017852]
(2194) Project
Arguments: [productPlant#1017852]
(2195) Join
Arguments: LeftOuter, ((product#1017839 <=> productPlant#1017852.product.internalRefUUID) AND (plant#1017840 <=> productPlant#1017852.plant.internalRefUUID))
(2196) Project
Arguments: [product#1017839, plant#1017840, orderDateTime#1017841, productPlant#1017852]
(2197) LogicalRelation
Arguments: parquet, [systemId#1017853, internalUUID#1017854, id#1017855, displayId#1017856, name#1017857, baseUnitOfMeasure#1017858, unitOfMeasures#1017859, unitOfMeasureConversions#1017860, productionAspect#1017861, salesAspect#1017862, procurementAspect#1017863, productGroup#1017864], false
(2198) Repartition
Arguments: 37, true
(2199) Join
Arguments: LeftOuter, (product#1017839 = internalUUID#1017854)
(2200) Project
Arguments: [product#1017839, plant#1017840, orderDateTime#1017841, productPlant#1017852, systemId#1017853, internalUUID#1017854, id#1017855, displayId#1017856, name#1017857, baseUnitOfMeasure#1017858, unitOfMeasures#1017859, unitOfMeasureConversions#1017860, productionAspect#1017861, salesAspect#1017862, procurementAspect#1017863, productGroup#1017864, filter(unitOfMeasureConversions#1017860, lambdafunction((((lambda u#1012565.measurementUnit1.code = productPlant#1017852.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1012565.measurementUnit1.internalRefUUID = productPlant#1017852.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1012565.measurementUnit2.code = baseUnitOfMeasure#1017858.code) AND (lambda u#1012565.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1017858.internalRefUUID))), lambda u#1012565, false)) AS filteredUnitOfMeasureConversions#1017865]
(2201) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1017865.quantityNumerator), true, [quantityNumerator#1017866]
(2202) Project
Arguments: [product#1017839, plant#1017840, orderDateTime#1017841, productPlant#1017852, systemId#1017853, internalUUID#1017854, id#1017855, displayId#1017856, name#1017857, baseUnitOfMeasure#1017858, unitOfMeasures#1017859, unitOfMeasureConversions#1017860, productionAspect#1017861, salesAspect#1017862, procurementAspect#1017863, productGroup#1017864, filteredUnitOfMeasureConversions#1017865, quantityNumerator#1017866]
(2203) Generate
Arguments: explode(filteredUnitOfMeasureConversions#1017865.quantityDenominator), true, [quantityDenominator#1017867]
(2204) Project
Arguments: [product#1017839, plant#1017840, orderDateTime#1017841, productPlant#1017852, systemId#1017853, internalUUID#1017854, id#1017855, displayId#1017856, name#1017857, baseUnitOfMeasure#1017858, unitOfMeasures#1017859, unitOfMeasureConversions#1017860, productionAspect#1017861, salesAspect#1017862, procurementAspect#1017863, productGroup#1017864, filteredUnitOfMeasureConversions#1017865, quantityNumerator#1017866, quantityDenominator#1017867]
(2205) Project
Arguments: [product#1017839, plant#1017840, orderDateTime#1017841, productPlant#1017852, systemId#1017853, internalUUID#1017854, id#1017855, displayId#1017856, name#1017857, baseUnitOfMeasure#1017858, unitOfMeasures#1017859, unitOfMeasureConversions#1017860, productionAspect#1017861, salesAspect#1017862, procurementAspect#1017863, productGroup#1017864, filteredUnitOfMeasureConversions#1017865, quantityNumerator#1017866, quantityDenominator#1017867, (cast(quantityNumerator#1017866 as double) / cast(quantityDenominator#1017867 as double)) AS outboundUnit#1017868]
(2206) Project
Arguments: [product#1017839, plant#1017840, orderDateTime#1017841, productPlant#1017852, systemId#1017853, internalUUID#1017854, id#1017855, displayId#1017856, name#1017857, baseUnitOfMeasure#1017858, unitOfMeasures#1017859, unitOfMeasureConversions#1017860, productionAspect#1017861, salesAspect#1017862, procurementAspect#1017863, productGroup#1017864, filteredUnitOfMeasureConversions#1017865, quantityNumerator#1017866, quantityDenominator#1017867, CASE WHEN (isnull(outboundUnit#1017868) OR (outboundUnit#1017868 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#1017868 END AS outboundUnit#1017869]
(2207) Project
Arguments: [product#1017839, plant#1017840, orderDateTime#1017841, productPlant#1017852, outboundUnit#1017869]
(2208) Join
Arguments: Inner, ((plantUuid#1017831 = plant#1017840) AND (productUuid#1017833 = product#1017839))
(2209) Filter
Arguments: (calculationDateTime#1017827 <= orderDateTime#1017841)
(2210) Project
Arguments: [plantUuid#1017831 AS plant#1017870, productUuid#1017833 AS product#1017871, storageLocId#1017834, calculationDateTime#1017827, quantity#1017836]
(2211) Aggregate
Arguments: [plant#1017870, product#1017871, storageLocId#1017834], [plant#1017870, product#1017871, storageLocId#1017834, max(calculationDateTime#1017827) AS max_calc_datetime#1017872]
(2212) Join
Arguments: Inner, ((((plant#1017760 <=> plant#1017870) AND (product#1017761 <=> product#1017871)) AND (storageLocId#1017724 <=> storageLocId#1017834)) AND (calculationDateTime#1017717 <=> max_calc_datetime#1017872))
(2213) Project
Arguments: [plant#1017760, product#1017761, storageLocId#1017724, calculationDateTime#1017717, quantity#1017726]
(2214) Aggregate
Arguments: [product#1017761, plant#1017760], [product#1017761, plant#1017760, sum(quantity#1017726) AS quantitySum#1017873, min(calculationDateTime#1017717) AS minCalculationDateTime#1017874]
(2215) Project
Arguments: [product#1017761, plant#1017760, quantitySum#1017873, minCalculationDateTime#1017874, round(quantitySum#1017873, 0) AS roundedQuantitySum#1017875]
(2216) Join
Arguments: LeftOuter, ((plant#1017622 = plant#1017760) AND (product#1017621 = product#1017761))
(2217) Project
Arguments: [product#1017621, plant#1017622, orderDateTime#1017623, productPlant#1017634, outboundUnit#1017651, roundedQuantitySum#1017875, minCalculationDateTime#1017874]
(2218) Project
Arguments: [product#1017621, plant#1017622, orderDateTime#1017623, productPlant#1017634, outboundUnit#1017651, roundedQuantitySum#1017875, minCalculationDateTime#1017874, CASE WHEN isnotnull(minCalculationDateTime#1017874) THEN minCalculationDateTime#1017874 ELSE orderDateTime#1017623 END AS stockDatetime#1017876]
(2219) Project
Arguments: [product#1017621, plant#1017622, orderDateTime#1017623, productPlant#1017634, outboundUnit#1017651, roundedQuantitySum#1017875, minCalculationDateTime#1017874, stockDatetime#1017876, CASE WHEN isnotnull(roundedQuantitySum#1017875) THEN array(roundedQuantitySum#1017875) ELSE array(0.0) END AS stockBatchQuantities#1017877]
(2220) Project
Arguments: [product#1017621, plant#1017622, orderDateTime#1017623, productPlant#1017634, outboundUnit#1017651, roundedQuantitySum#1017875, minCalculationDateTime#1017874, stockDatetime#1017876, stockBatchQuantities#1017877, array(2199-01-01 00:00:00) AS stockBatchShelfLifeEndDatetimes#1017878]
(2221) Project
Arguments: [product#1017621, plant#1017622, orderDateTime#1017623, productPlant#1017634, outboundUnit#1017651, roundedQuantitySum#1017875, stockDatetime#1017876, stockBatchQuantities#1017877, stockBatchShelfLifeEndDatetimes#1017878]
(2222) Project
Arguments: [product#1017621, plant#1017622, orderDateTime#1017623, productPlant#1017634, outboundUnit#1017651, stockDatetime#1017876, stockBatchQuantities#1017877, stockBatchShelfLifeEndDatetimes#1017878]
(2223) LogicalRelation
Arguments: parquet, [product#1017879, plant#1017880, demandChannel#1017881, demandStream#1017882, considerVariance#1017883, demandTimeBuckets#1017884, demandPointInTimeStart#1017885, demandPointInTimeEnd#1017886, demandPointInTime#1017887], false
(2224) Join
Arguments: LeftOuter, ((plant#1017880 <=> plant#1017622) AND (product#1017879 <=> product#1017621))
(2225) Project
Arguments: [product#1017621, plant#1017622, orderDateTime#1017623, productPlant#1017634, outboundUnit#1017651, stockDatetime#1017876, stockBatchQuantities#1017877, stockBatchShelfLifeEndDatetimes#1017878, product#1017879, plant#1017880, demandChannel#1017881, demandStream#1017882, considerVariance#1017883, demandTimeBuckets#1017884, demandPointInTimeStart#1017885, demandPointInTimeEnd#1017886, demandPointInTime#1017887, CASE WHEN isnotnull(product#1017879) THEN struct(demandChannel, demandChannel#1017881, demandStream, demandStream#1017882, considerVariance, considerVariance#1017883, demandTimeBuckets, demandTimeBuckets#1017884, demandPointInTimeStart, demandPointInTimeStart#1017885, demandPointInTimeEnd, demandPointInTimeEnd#1017886, demandPointInTime, demandPointInTime#1017887) 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#1017888]
(2226) Aggregate
Arguments: [product#1017621, plant#1017622, orderDateTime#1017623, productPlant#1017634, outboundUnit#1017651, stockDatetime#1017876, stockBatchQuantities#1017877, stockBatchShelfLifeEndDatetimes#1017878], [product#1017621, plant#1017622, orderDateTime#1017623, productPlant#1017634, outboundUnit#1017651, stockDatetime#1017876, stockBatchQuantities#1017877, stockBatchShelfLifeEndDatetimes#1017878, collect_list(rawDemands#1017888, 0, 0) AS rawDemands#1017889]
(2227) SubqueryAlias
Arguments: wl
(2228) LogicalRelation
Arguments: parquet, [systemId#1017890, internalUUID#1017891, id#1017892, displayId#1017893, name#1017894, category#1017895, companyCode#1017896, address#1017897, mainDistributionChain#1017898, mainPurchasingOrganization#1017899, validPurchasingOrganizations#1017900, productGroup#1017901], false
(2229) Repartition
Arguments: 37, true
(2230) Project
Arguments: [systemId#1017890, internalUUID#1017891, id#1017892, displayId#1017893, name#1017894, category#1017895, companyCode#1017896, address#1017897, mainDistributionChain#1017898, mainPurchasingOrganization#1017899, validPurchasingOrganizations#1017900, productGroup#1017901, address#1017897.timezone.code AS timezonecode#1017902]
(2231) Join
Arguments: LeftOuter, (plant#1017622 <=> internalUUID#1017891)
(2232) Project
Arguments: [product#1017621, plant#1017622, orderDateTime#1017623, productPlant#1017634, outboundUnit#1017651, stockDatetime#1017876, stockBatchQuantities#1017877, stockBatchShelfLifeEndDatetimes#1017878, rawDemands#1017889, systemId#1017890, internalUUID#1017891, id#1017892, displayId#1017893, name#1017894, category#1017895, companyCode#1017896, address#1017897, mainDistributionChain#1017898, mainPurchasingOrganization#1017899, validPurchasingOrganizations#1017900, productGroup#1017901, CASE WHEN isnotnull(timezonecode#1017902) THEN timezonecode#1017902 ELSE UTC END AS timezonecode#1017903]
(2233) Project
Arguments: [product#1017621, plant#1017622, orderDateTime#1017623, productPlant#1017634, outboundUnit#1017651, stockDatetime#1017876, stockBatchQuantities#1017877, stockBatchShelfLifeEndDatetimes#1017878, rawDemands#1017889, timezonecode#1017903]
(2234) DeserializeToObject
Arguments: createexternalrow(invoke(product#1017621.toString()), invoke(plant#1017622.toString()), static_invoke(DateTimeUtils.toJavaTimestamp(orderDateTime#1017623)), if (isnull(productPlant#1017634)) null else createexternalrow(invoke(productPlant#1017634.systemId.toString()), invoke(productPlant#1017634.internalUUID.toString()), if (isnull(productPlant#1017634.plant)) null else createexternalrow(invoke(productPlant#1017634.plant.internalRefUUID.toString()), invoke(productPlant#1017634.plant.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), if (isnull(productPlant#1017634.product)) null else createexternalrow(invoke(productPlant#1017634.product.internalRefUUID.toString()), invoke(productPlant#1017634.product.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(DateTimeUtils.toJavaDate(productPlant#1017634.blockedForReplenishmentStartingFrom)), if (isnull(productPlant#1017634.productionAspect)) null else createexternalrow(if (isnull(productPlant#1017634.productionAspect.productMovementPlants)) null else createexternalrow(if (isnull(productPlant#1017634.productionAspect.productMovementPlants.unitOfIssue)) null else createexternalrow(invoke(productPlant#1017634.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID.toString()), invoke(productPlant#1017634.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#1017634.productionAspect.productPlanningPlants)) null else createexternalrow(if (isnull(productPlant#1017634.productionAspect.productPlanningPlants.mrpType)) null else createexternalrow(invoke(productPlant#1017634.productionAspect.productPlanningPlants.mrpType.internalRefUUID.toString()), invoke(productPlant#1017634.productionAspect.productPlanningPlants.mrpType.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1017634.productionAspect.productPlanningPlants.abcIndicator)) null else createexternalrow(invoke(productPlant#1017634.productionAspect.productPlanningPlants.abcIndicator.internalRefUUID.toString()), invoke(productPlant#1017634.productionAspect.productPlanningPlants.abcIndicator.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1017634.productionAspect.productPlanningPlants.mrpController)) null else createexternalrow(invoke(productPlant#1017634.productionAspect.productPlanningPlants.mrpController.internalRefUUID.toString()), invoke(productPlant#1017634.productionAspect.productPlanningPlants.mrpController.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(java.lang.Double.valueOf(productPlant#1017634.productionAspect.productPlanningPlants.minimumLotSize)), if (isnull(productPlant#1017634.productionAspect.productPlanningPlants.logisticalRoundingProfile)) null else createexternalrow(invoke(productPlant#1017634.productionAspect.productPlanningPlants.logisticalRoundingProfile.internalRefUUID.toString()), invoke(productPlant#1017634.productionAspect.productPlanningPlants.logisticalRoundingProfile.logisticalRoundingProfile.toString()), StructField(internalRefUUID,StringType,true), StructField(logisticalRoundingProfile,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(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)),true)), if (isnull(productPlant#1017634.salesPlant)) null else createexternalrow(if (isnull(productPlant#1017634.salesPlant.loadingGroup)) null else createexternalrow(invoke(productPlant#1017634.salesPlant.loadingGroup.internalRefUUID.toString()), invoke(productPlant#1017634.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, 80503), if (isnull(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 80503))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 80503).validFrom)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 80503).validTo)), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 80503).isListed)), StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true)), productPlant#1017634.listing, Some(class scala.collection.mutable.ArraySeq)), if (isnull(productPlant#1017634.sourceOfSupplyCategory)) null else createexternalrow(invoke(productPlant#1017634.sourceOfSupplyCategory.internalRefUUID.toString()), invoke(productPlant#1017634.sourceOfSupplyCategory.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), 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)),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), StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), static_invoke(java.lang.Double.valueOf(outboundUnit#1017651)), static_invoke(DateTimeUtils.toJavaTimestamp(stockDatetime#1017876)), mapobjects(lambdavariable(MapObject, DoubleType, true, 80504), static_invoke(java.lang.Double.valueOf(cast(lambdavariable(MapObject, DoubleType, true, 80504) as double))), stockBatchQuantities#1017877, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, false, 80505), assertnotnull(static_invoke(DateTimeUtils.toJavaTimestamp(cast(lambdavariable(MapObject, TimestampType, false, 80505) as timestamp)))), stockBatchShelfLifeEndDatetimes#1017878, 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, 80506), 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, 80506))) 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, 80506).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, 80506).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, 80506).considerVariance)), mapobjects(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 80507), if (isnull(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 80507))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 80507).demandStartDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 80507).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 80507).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, 80506).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, 80506).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, 80506).demandPointInTimeEnd)), mapobjects(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 80508), if (isnull(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 80508))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 80508).demandDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 80508).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 80508).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, 80506).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#1017889, Some(class scala.collection.mutable.ArraySeq)), invoke(timezonecode#1017903.toString()), 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)),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),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),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), StructField(timezonecode,StringType,true)), obj#1014043: org.apache.spark.sql.Row
(2235) MapElements
Arguments: com.sap.s4hana.eureka.business.crporderquantitykpiservice.core.business.datasnapshot.DemandTransformatorImpl$$Lambda/0x0000000801fc3d98@2aab4875, 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)),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),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),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), StructField(timezonecode,StringType,true)], obj#1014048: org.apache.spark.sql.Row
(2236) 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#1017904, 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#1017905, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(2))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80493), assertnotnull(if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80494), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80494), DoubleType, ObjectType(class java.lang.Double)).doubleValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80495), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80495), DoubleType, ObjectType(class java.lang.Double)).doubleValue()), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80496), assertnotnull(static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80496), TimestampType, ObjectType(class java.sql.Timestamp))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80497), assertnotnull(static_invoke(UTF8String.fromString(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80497), StringType, ObjectType(class java.lang.String))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 80498), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80498), IntegerType, ObjectType(class java.lang.Integer)).intValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80493), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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#1017906, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(3))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80499), assertnotnull(if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80500), assertnotnull(static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80500), TimestampType, ObjectType(class java.sql.Timestamp))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80501), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80501), DoubleType, ObjectType(class java.lang.Double)).doubleValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80502), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80502), DoubleType, ObjectType(class java.lang.Double)).doubleValue()), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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, 80499), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,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#1017907]
(2237) Join
Arguments: LeftOuter, ((plant#1017905 <=> plant#1017364) AND (product#1017904 <=> product#1017363))
(2238) Project
Arguments: [product#1017363, plant#1017364, orderDateTime#1017365, productPlant#1017376, outboundUnit#1017393, stockDatetime#1017618, stockBatchQuantities#1017619, stockBatchShelfLifeEndDatetimes#1017620, plant#1017905, dayBucketDemands#1017906, pointInTimeDemands#1017907]
(2239) Project
Arguments: [product#1017363, plant#1017364, orderDateTime#1017365, productPlant#1017376, outboundUnit#1017393, stockDatetime#1017618, stockBatchQuantities#1017619, stockBatchShelfLifeEndDatetimes#1017620, dayBucketDemands#1017906, pointInTimeDemands#1017907]
(2240) LocalRelation
Arguments: <empty>, [systemId#1017908, internalUUID#1017909, id#1017910, isMarkedForDeletion#1017911, supplier#1017912, status#1017913, items#1017914]
(2241) Generate
Arguments: explode(items#1017914), false, [item#1017915]
(2242) Project
Arguments: [id#1017910, internalUUID#1017909, isMarkedForDeletion#1017911, supplier#1017912.internalRefUUID AS supplierUuid#1017916, item#1017915]
(2243) Filter
Arguments: (((NOT isMarkedForDeletion#1017911 AND NOT item#1017915.deletionIndicator) AND NOT item#1017915.completeIndicator) AND NOT item#1017915.returnIndicator)
(2244) Project
Arguments: [id#1017910, internalUUID#1017909, supplierUuid#1017916, item#1017915.plant.internalRefUUID AS plant#1017917, item#1017915.product.internalRefUUID AS product#1017918, item#1017915.storageLocation.internalRefUUID AS storageLocUuid#1017919, item#1017915.quantityUnit.code AS quantityUom#1017920, item#1017915.quantityUnit.internalRefUUID AS quantityUomUuid#1017921, item#1017915.quantityNumerator AS quantityNumerator#1017922, item#1017915.quantityDenominator AS quantityDenominator#1017923, item#1017915.scheduleLines AS scheduleLines#1017924, item#1017915.confirmations AS confirmations#1017925]
(2245) Join
Arguments: Inner, ((product#1017363 <=> product#1017918) AND (plant#1017364 <=> supplierUuid#1017916))
(2246) Project
Arguments: [id#1017910, internalUUID#1017909, supplierUuid#1017916, plant#1017917, product#1017918, storageLocUuid#1017919, quantityUom#1017920, quantityUomUuid#1017921, quantityNumerator#1017922, quantityDenominator#1017923, scheduleLines#1017924, confirmations#1017925, stockDatetime#1017618, plant#1017364]
(2247) Project
Arguments: [id#1017910, internalUUID#1017909, supplierUuid#1017916, product#1017918, storageLocUuid#1017919, quantityUom#1017920, quantityUomUuid#1017921, quantityNumerator#1017922, quantityDenominator#1017923, scheduleLines#1017924, confirmations#1017925, stockDatetime#1017618, plant#1017364]
(2248) Project
Arguments: [id#1017910, internalUUID#1017909, supplierUuid#1017916, product#1017918, storageLocUuid#1017919, quantityUom#1017920, quantityUomUuid#1017921, quantityNumerator#1017922, quantityDenominator#1017923, scheduleLines#1017924, confirmations#1017925, stockDatetime#1017618, plant#1017364, filter(transform(filter(transform(scheduleLines#1017924, lambdafunction(struct(openQty, (greatest((lambda x_154#1014489.quantity - coalesce(lambda x_154#1014489.deliveredQuantity, 0.0)), 0.0) * -1.0), availabilityDatetime, coalesce(lambda x_154#1014489.productAvailabilityDateTime, lambda x_154#1014489.deliveryAt)), lambda x_154#1014489, false)), lambdafunction((lambda x_155#1014490.availabilityDatetime < stockDatetime#1017618), lambda x_155#1014490, false)), lambdafunction(struct(documentId, id#1017910, documentUuid, internalUUID#1017909, openQty, lambda x_156#1014491.openQty, openQtyInBaseUnit, ((lambda x_156#1014491.openQty * quantityNumerator#1017922) / quantityDenominator#1017923), qtyUom, quantityUom#1017920, qtyUomUuid, quantityUomUuid#1017921, availabilityDatetime, lambda x_156#1014491.availabilityDatetime, shelfLifeEndDatetime, 2199-01-01 00:00:00), lambda x_156#1014491, false)), lambdafunction(NOT (lambda x_157#1014492.openQty = 0.0), lambda x_157#1014492, false)) AS openGoodsMovements#1017926]
(2249) Aggregate
Arguments: [product#1017918, plant#1017364], [product#1017918, plant#1017364, flatten(collect_list(openGoodsMovements#1017926, 0, 0)) AS openGoodsMovements#1017927]
(2250) Filter
Arguments: (array_size(openGoodsMovements#1017927) > 0)
(2251) Union
Arguments: false, false
(2252) Aggregate
Arguments: [product#1017351, plant#1017350], [product#1017351, plant#1017350, flatten(collect_list(openGoodsMovements#1017362, 0, 0)) AS openGoodsMovements#1017928]
(2253) Join
Arguments: LeftOuter, ((product#1016192 = product#1017351) AND (plant#1016193 = plant#1017350))
(2254) Project
Arguments: [product#1016192, plant#1016193, orderDateTime#1016194, productPlant#1016205, outboundUnit#1016222, stockDatetime#1016447, stockBatchQuantities#1016448, stockBatchShelfLifeEndDatetimes#1016449, dayBucketDemands#1016735, pointInTimeDemands#1016736, openGoodsMovements#1017928]
(2255) Project
Arguments: [product#1016192, plant#1016193, orderDateTime#1016194, productPlant#1016205, outboundUnit#1016222, stockDatetime#1016447, stockBatchQuantities#1016448, stockBatchShelfLifeEndDatetimes#1016449, dayBucketDemands#1016735, pointInTimeDemands#1016736, coalesce(openGoodsMovements#1017928.openQtyInBaseUnit, cast(array() as array<double>)) AS openGoodsMovementQuantities#1017929, coalesce(openGoodsMovements#1017928.availabilityDatetime, cast(array() as array<timestamp>)) AS openGoodsMovementAvailabilityDatetimes#1017930, coalesce(openGoodsMovements#1017928.shelfLifeEndDatetime, cast(array() as array<timestamp>)) AS openGoodsMovementShelfLifeEndDatetimes#1017931]
(2256) Project
Arguments: [product#1016192, plant#1016193, orderDateTime#1016194, productPlant#1016205, outboundUnit#1016222, stockDatetime#1016447, stockBatchQuantities#1016448, stockBatchShelfLifeEndDatetimes#1016449, dayBucketDemands#1016735, pointInTimeDemands#1016736, openGoodsMovementQuantities#1017929, openGoodsMovementAvailabilityDatetimes#1017930, openGoodsMovementShelfLifeEndDatetimes#1017931, 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#1017932]
(2257) Project
Arguments: [product#1016192, plant#1016193, orderDateTime#1016194, productPlant#1016205, outboundUnit#1016222, stockDatetime#1016447, stockBatchQuantities#1016448, stockBatchShelfLifeEndDatetimes#1016449, dayBucketDemands#1016735, pointInTimeDemands#1016736, openGoodsMovementQuantities#1017929, openGoodsMovementAvailabilityDatetimes#1017930, openGoodsMovementShelfLifeEndDatetimes#1017931, configuration#1017932, productPlant#1016205.listing AS listing#1016134]
(2258) Project
Arguments: [product#1016192, plant#1016193, orderDateTime#1016194, productPlant#1016205, outboundUnit#1016222, stockDatetime#1016447, stockBatchQuantities#1016448, stockBatchShelfLifeEndDatetimes#1016449, dayBucketDemands#1016735, pointInTimeDemands#1016736, openGoodsMovementQuantities#1017929, openGoodsMovementAvailabilityDatetimes#1017930, openGoodsMovementShelfLifeEndDatetimes#1017931, configuration#1017932, CASE WHEN isnotnull(listing#1016134) THEN listing#1016134 ELSE cast(array() as array<struct<validFrom:timestamp,validTo:timestamp,isListed:boolean>>) END AS listing#1016136]
(2259) Project
Arguments: [product#1016192, plant#1016193, orderDateTime#1016194, productPlant#1016205, outboundUnit#1016222, stockDatetime#1016447, stockBatchQuantities#1016448, stockBatchShelfLifeEndDatetimes#1016449, dayBucketDemands#1016735, pointInTimeDemands#1016736, openGoodsMovementQuantities#1017929, openGoodsMovementAvailabilityDatetimes#1017930, openGoodsMovementShelfLifeEndDatetimes#1017931, configuration#1017932, filter(listing#1016136, lambdafunction((lambda listing#1016138.isListed = true), lambda listing#1016138, false)) AS listing#1016137]
(2260) Project
Arguments: [product#1016192, plant#1016193, orderDateTime#1016194, productPlant#1016205, outboundUnit#1016222, stockDatetime#1016447, stockBatchQuantities#1016448, stockBatchShelfLifeEndDatetimes#1016449, dayBucketDemands#1016735, pointInTimeDemands#1016736, openGoodsMovementQuantities#1017929, openGoodsMovementAvailabilityDatetimes#1017930, openGoodsMovementShelfLifeEndDatetimes#1017931, configuration#1017932, array_sort(listing#1016137, lambdafunction(if ((isnull(lambda left#1016140) AND isnull(lambda right#1016141))) 0 else if (isnull(lambda left#1016140)) 1 else if (isnull(lambda right#1016141)) -1 else if ((lambda left#1016140 < lambda right#1016141)) -1 else if ((lambda left#1016140 > lambda right#1016141)) 1 else 0, lambda left#1016140, lambda right#1016141, false), false) AS listing#1016139]
(2261) DeserializeToObject
Arguments: createexternalrow(invoke(product#1016192.toString()), invoke(plant#1016193.toString()), static_invoke(DateTimeUtils.toJavaTimestamp(orderDateTime#1016194)), if (isnull(productPlant#1016205)) null else createexternalrow(invoke(productPlant#1016205.systemId.toString()), invoke(productPlant#1016205.internalUUID.toString()), if (isnull(productPlant#1016205.plant)) null else createexternalrow(invoke(productPlant#1016205.plant.internalRefUUID.toString()), invoke(productPlant#1016205.plant.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), if (isnull(productPlant#1016205.product)) null else createexternalrow(invoke(productPlant#1016205.product.internalRefUUID.toString()), invoke(productPlant#1016205.product.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(DateTimeUtils.toJavaDate(productPlant#1016205.blockedForReplenishmentStartingFrom)), if (isnull(productPlant#1016205.productionAspect)) null else createexternalrow(if (isnull(productPlant#1016205.productionAspect.productMovementPlants)) null else createexternalrow(if (isnull(productPlant#1016205.productionAspect.productMovementPlants.unitOfIssue)) null else createexternalrow(invoke(productPlant#1016205.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID.toString()), invoke(productPlant#1016205.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#1016205.productionAspect.productPlanningPlants)) null else createexternalrow(if (isnull(productPlant#1016205.productionAspect.productPlanningPlants.mrpType)) null else createexternalrow(invoke(productPlant#1016205.productionAspect.productPlanningPlants.mrpType.internalRefUUID.toString()), invoke(productPlant#1016205.productionAspect.productPlanningPlants.mrpType.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1016205.productionAspect.productPlanningPlants.abcIndicator)) null else createexternalrow(invoke(productPlant#1016205.productionAspect.productPlanningPlants.abcIndicator.internalRefUUID.toString()), invoke(productPlant#1016205.productionAspect.productPlanningPlants.abcIndicator.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1016205.productionAspect.productPlanningPlants.mrpController)) null else createexternalrow(invoke(productPlant#1016205.productionAspect.productPlanningPlants.mrpController.internalRefUUID.toString()), invoke(productPlant#1016205.productionAspect.productPlanningPlants.mrpController.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(java.lang.Double.valueOf(productPlant#1016205.productionAspect.productPlanningPlants.minimumLotSize)), if (isnull(productPlant#1016205.productionAspect.productPlanningPlants.logisticalRoundingProfile)) null else createexternalrow(invoke(productPlant#1016205.productionAspect.productPlanningPlants.logisticalRoundingProfile.internalRefUUID.toString()), invoke(productPlant#1016205.productionAspect.productPlanningPlants.logisticalRoundingProfile.logisticalRoundingProfile.toString()), StructField(internalRefUUID,StringType,true), StructField(logisticalRoundingProfile,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(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)),true)), if (isnull(productPlant#1016205.salesPlant)) null else createexternalrow(if (isnull(productPlant#1016205.salesPlant.loadingGroup)) null else createexternalrow(invoke(productPlant#1016205.salesPlant.loadingGroup.internalRefUUID.toString()), invoke(productPlant#1016205.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, 80688), if (isnull(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 80688))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 80688).validFrom)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 80688).validTo)), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 80688).isListed)), StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true)), productPlant#1016205.listing, Some(class scala.collection.mutable.ArraySeq)), if (isnull(productPlant#1016205.sourceOfSupplyCategory)) null else createexternalrow(invoke(productPlant#1016205.sourceOfSupplyCategory.internalRefUUID.toString()), invoke(productPlant#1016205.sourceOfSupplyCategory.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), 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)),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), StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), static_invoke(java.lang.Double.valueOf(outboundUnit#1016222)), static_invoke(DateTimeUtils.toJavaTimestamp(stockDatetime#1016447)), mapobjects(lambdavariable(MapObject, DoubleType, true, 80689), static_invoke(java.lang.Double.valueOf(cast(lambdavariable(MapObject, DoubleType, true, 80689) as double))), stockBatchQuantities#1016448, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, false, 80690), assertnotnull(static_invoke(DateTimeUtils.toJavaTimestamp(cast(lambdavariable(MapObject, TimestampType, false, 80690) as timestamp)))), stockBatchShelfLifeEndDatetimes#1016449, 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, 80691), 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, 80691))) 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, 80691).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, 80691).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, 80691).considerVariance)), mapobjects(lambdavariable(MapObject, DoubleType, false, 80692), assertnotnull(static_invoke(java.lang.Double.valueOf(cast(lambdavariable(MapObject, DoubleType, false, 80692) 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, 80691).demandValues, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, DoubleType, true, 80693), static_invoke(java.lang.Double.valueOf(cast(lambdavariable(MapObject, DoubleType, true, 80693) 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, 80691).demandVariances, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, false, 80694), assertnotnull(static_invoke(DateTimeUtils.toJavaTimestamp(cast(lambdavariable(MapObject, TimestampType, false, 80694) 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, 80691).anchorDatetimes, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, StringType, false, 80695), assertnotnull(invoke(cast(lambdavariable(MapObject, StringType, false, 80695) 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, 80691).anchorWeekdays, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, IntegerType, false, 80696), assertnotnull(static_invoke(java.lang.Integer.valueOf(cast(lambdavariable(MapObject, IntegerType, false, 80696) 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, 80691).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#1016735, 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, 80697), 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, 80697))) 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, 80697).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, 80697).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, 80697).considerVariance)), mapobjects(lambdavariable(MapObject, TimestampType, false, 80698), assertnotnull(static_invoke(DateTimeUtils.toJavaTimestamp(cast(lambdavariable(MapObject, TimestampType, false, 80698) 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, 80697).demandDatetimes, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, DoubleType, false, 80699), assertnotnull(static_invoke(java.lang.Double.valueOf(cast(lambdavariable(MapObject, DoubleType, false, 80699) 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, 80697).demandValues, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, DoubleType, true, 80700), static_invoke(java.lang.Double.valueOf(cast(lambdavariable(MapObject, DoubleType, true, 80700) 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, 80697).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, 80697).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, 80697).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#1016736, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, DoubleType, true, 80701), static_invoke(java.lang.Double.valueOf(cast(lambdavariable(MapObject, DoubleType, true, 80701) as double))), openGoodsMovementQuantities#1017929, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, true, 80702), static_invoke(DateTimeUtils.toJavaTimestamp(cast(lambdavariable(MapObject, TimestampType, true, 80702) as timestamp))), openGoodsMovementAvailabilityDatetimes#1017930, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, false, 80703), assertnotnull(static_invoke(DateTimeUtils.toJavaTimestamp(cast(lambdavariable(MapObject, TimestampType, false, 80703) as timestamp)))), openGoodsMovementShelfLifeEndDatetimes#1017931, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, StructField(configurationValidityDatetime,TimestampType,false), StructField(configurationName,StringType,false), StructField(configurationValue,StringType,false), false, 80704), assertnotnull(if (isnull(lambdavariable(MapObject, StructField(configurationValidityDatetime,TimestampType,false), StructField(configurationName,StringType,false), StructField(configurationValue,StringType,false), false, 80704))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(configurationValidityDatetime,TimestampType,false), StructField(configurationName,StringType,false), StructField(configurationValue,StringType,false), false, 80704).configurationValidityDatetime)), invoke(lambdavariable(MapObject, StructField(configurationValidityDatetime,TimestampType,false), StructField(configurationName,StringType,false), StructField(configurationValue,StringType,false), false, 80704).configurationName.toString()), invoke(lambdavariable(MapObject, StructField(configurationValidityDatetime,TimestampType,false), StructField(configurationName,StringType,false), StructField(configurationValue,StringType,false), false, 80704).configurationValue.toString()), StructField(configurationValidityDatetime,TimestampType,false), StructField(configurationName,StringType,false), StructField(configurationValue,StringType,false))), configuration#1017932, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 80705), if (isnull(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 80705))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 80705).validFrom)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 80705).validTo)), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 80705).isListed)), StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true)), listing#1016139, 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)),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),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),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), ... 5 more fields), obj#1016172: org.apache.spark.sql.Row
(2262) MapElements
Arguments: com.sap.s4hana.eureka.business.crporderquantitykpiservice.core.business.datasnapshot.ListingSnapshotEnhancementImpl$$Lambda/0x0000000801ff9ec8@c142349, 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)),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),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),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#1016179: org.apache.spark.sql.Row
(2263) 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#1016186, 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#1016187, assertnotnull(mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80684), static_invoke(UTF8String.fromString(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80684), 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#1016188, assertnotnull(mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80685), static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80685), 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#1016189, assertnotnull(mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80686), static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80686), 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#1016190, 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, 80687), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 80687), 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#1016191]
(2264) Join
Arguments: LeftOuter, ((product#1012489 = product#1016186) AND (plant#1012490 = plant#1016187))
(2265) Project
Arguments: [product#1012489, plant#1012490, orderDateTime#1012491, productPlant#1012526, outboundUnit#1012577, stockDatetime#1012937, stockBatchQuantities#1012938, stockBatchShelfLifeEndDatetimes#1012939, dayBucketDemands#1014055, pointInTimeDemands#1014056, openGoodsMovementQuantities#1015702, openGoodsMovementAvailabilityDatetimes#1015703, openGoodsMovementShelfLifeEndDatetimes#1015704, configuration#1015995, timeDependentSettingsName#1016188, timeDependentSettingsStartDatetime#1016189, timeDependentSettingsEndDatetime#1016190, timeDependentSettingsValue#1016191]
(2266) Project
Arguments: [product#1012489, plant#1012490, orderDateTime#1012491, productPlant#1012526, outboundUnit#1012577, stockDatetime#1012937, stockBatchQuantities#1012938, stockBatchShelfLifeEndDatetimes#1012939, dayBucketDemands#1014055, pointInTimeDemands#1014056, openGoodsMovementQuantities#1015702, openGoodsMovementAvailabilityDatetimes#1015703, openGoodsMovementShelfLifeEndDatetimes#1015704, configuration#1015995, CASE WHEN isnotnull(timeDependentSettingsName#1016188) THEN timeDependentSettingsName#1016188 ELSE cast(array() as array<string>) END AS timeDependentSettingsName#1018057, timeDependentSettingsStartDatetime#1016189, timeDependentSettingsEndDatetime#1016190, timeDependentSettingsValue#1016191]
(2267) Project
Arguments: [product#1012489, plant#1012490, orderDateTime#1012491, productPlant#1012526, outboundUnit#1012577, stockDatetime#1012937, stockBatchQuantities#1012938, stockBatchShelfLifeEndDatetimes#1012939, dayBucketDemands#1014055, pointInTimeDemands#1014056, openGoodsMovementQuantities#1015702, openGoodsMovementAvailabilityDatetimes#1015703, openGoodsMovementShelfLifeEndDatetimes#1015704, configuration#1015995, timeDependentSettingsName#1018057, CASE WHEN isnotnull(timeDependentSettingsStartDatetime#1016189) THEN timeDependentSettingsStartDatetime#1016189 ELSE cast(array() as array<timestamp>) END AS timeDependentSettingsStartDatetime#1018058, timeDependentSettingsEndDatetime#1016190, timeDependentSettingsValue#1016191]
(2268) Project
Arguments: [product#1012489, plant#1012490, orderDateTime#1012491, productPlant#1012526, outboundUnit#1012577, stockDatetime#1012937, stockBatchQuantities#1012938, stockBatchShelfLifeEndDatetimes#1012939, dayBucketDemands#1014055, pointInTimeDemands#1014056, openGoodsMovementQuantities#1015702, openGoodsMovementAvailabilityDatetimes#1015703, openGoodsMovementShelfLifeEndDatetimes#1015704, configuration#1015995, timeDependentSettingsName#1018057, timeDependentSettingsStartDatetime#1018058, CASE WHEN isnotnull(timeDependentSettingsEndDatetime#1016190) THEN timeDependentSettingsEndDatetime#1016190 ELSE cast(array() as array<timestamp>) END AS timeDependentSettingsEndDatetime#1018059, timeDependentSettingsValue#1016191]
(2269) Project
Arguments: [product#1012489, plant#1012490, orderDateTime#1012491, productPlant#1012526, outboundUnit#1012577, stockDatetime#1012937, stockBatchQuantities#1012938, stockBatchShelfLifeEndDatetimes#1012939, dayBucketDemands#1014055, pointInTimeDemands#1014056, openGoodsMovementQuantities#1015702, openGoodsMovementAvailabilityDatetimes#1015703, openGoodsMovementShelfLifeEndDatetimes#1015704, configuration#1015995, timeDependentSettingsName#1018057, timeDependentSettingsStartDatetime#1018058, timeDependentSettingsEndDatetime#1018059, CASE WHEN isnotnull(timeDependentSettingsValue#1016191) THEN timeDependentSettingsValue#1016191 ELSE cast(array() as array<double>) END AS timeDependentSettingsValue#1018060]
(2270) Project
Arguments: [product#1012489, plant#1012490, orderDateTime#1012491, outboundUnit#1012577, stockDatetime#1012937, stockBatchQuantities#1012938, stockBatchShelfLifeEndDatetimes#1012939, dayBucketDemands#1014055, pointInTimeDemands#1014056, openGoodsMovementQuantities#1015702, openGoodsMovementAvailabilityDatetimes#1015703, openGoodsMovementShelfLifeEndDatetimes#1015704, configuration#1015995, timeDependentSettingsName#1018057, timeDependentSettingsStartDatetime#1018058, timeDependentSettingsEndDatetime#1018059, timeDependentSettingsValue#1018060]
(2271) Project
Arguments: [product#1012489, plant#1012490, outboundUnit#1012577, stockDatetime#1012937, stockBatchQuantities#1012938, stockBatchShelfLifeEndDatetimes#1012939, dayBucketDemands#1014055, pointInTimeDemands#1014056, openGoodsMovementQuantities#1015702, openGoodsMovementAvailabilityDatetimes#1015703, openGoodsMovementShelfLifeEndDatetimes#1015704, configuration#1015995, timeDependentSettingsName#1018057, timeDependentSettingsStartDatetime#1018058, timeDependentSettingsEndDatetime#1018059, timeDependentSettingsValue#1018060]