== 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@3d4e5abf, [path=hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-quantity-kpi-service/internal/data-snapshot/10000000539/0_1_10000000539], Overwrite
(3) LogicalRelation
Arguments: parquet, [product#13791972, plant#13791973, orderDateTime#13791974, planningStartDateTime#13791975], false
(4) RepartitionByExpression
Arguments: [product#13791972, plant#13791973], 37
(5) Project
Arguments: [product#13791972, plant#13791973, orderDateTime#13791974]
(6) LogicalRelation
Arguments: parquet, [systemId#13791999, internalUUID#13792000, plant#13792001, product#13792002, blockedForReplenishmentStartingFrom#13792003, productionAspect#13792004, salesPlant#13792005, listing#13792006, sourceOfSupplyCategory#13792007], false
(7) Repartition
Arguments: 37, true
(8) Project
Arguments: [systemId#13791999, internalUUID#13792000, plant#13792001, product#13792002, blockedForReplenishmentStartingFrom#13792003, productionAspect#13792004, salesPlant#13792005, listing#13792006, sourceOfSupplyCategory#13792007, struct(systemId, systemId#13791999, internalUUID, internalUUID#13792000, plant, plant#13792001, product, product#13792002, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#13792003, productionAspect, productionAspect#13792004, salesPlant, salesPlant#13792005, listing, listing#13792006, sourceOfSupplyCategory, sourceOfSupplyCategory#13792007) AS productPlant#13792009]
(9) Project
Arguments: [productPlant#13792009]
(10) Join
Arguments: LeftOuter, ((product#13791972 <=> productPlant#13792009.product.internalRefUUID) AND (plant#13791973 <=> productPlant#13792009.plant.internalRefUUID))
(11) Project
Arguments: [product#13791972, plant#13791973, orderDateTime#13791974, productPlant#13792009]
(12) LogicalRelation
Arguments: parquet, [systemId#13792034, internalUUID#13792035, id#13792036, displayId#13792037, name#13792038, baseUnitOfMeasure#13792039, unitOfMeasures#13792040, unitOfMeasureConversions#13792041, productionAspect#13792042, salesAspect#13792043, procurementAspect#13792044, productGroup#13792045], false
(13) Repartition
Arguments: 37, true
(14) Join
Arguments: LeftOuter, (product#13791972 = internalUUID#13792035)
(15) Project
Arguments: [product#13791972, plant#13791973, orderDateTime#13791974, productPlant#13792009, systemId#13792034, internalUUID#13792035, id#13792036, displayId#13792037, name#13792038, baseUnitOfMeasure#13792039, unitOfMeasures#13792040, unitOfMeasureConversions#13792041, productionAspect#13792042, salesAspect#13792043, procurementAspect#13792044, productGroup#13792045, filter(unitOfMeasureConversions#13792041, lambdafunction((((lambda u#13792048.measurementUnit1.code = productPlant#13792009.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#13792048.measurementUnit1.internalRefUUID = productPlant#13792009.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#13792048.measurementUnit2.code = baseUnitOfMeasure#13792039.code) AND (lambda u#13792048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#13792039.internalRefUUID))), lambda u#13792048, false)) AS filteredUnitOfMeasureConversions#13792047]
(16) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13792047.quantityNumerator), true, [quantityNumerator#13792055]
(17) Project
Arguments: [product#13791972, plant#13791973, orderDateTime#13791974, productPlant#13792009, systemId#13792034, internalUUID#13792035, id#13792036, displayId#13792037, name#13792038, baseUnitOfMeasure#13792039, unitOfMeasures#13792040, unitOfMeasureConversions#13792041, productionAspect#13792042, salesAspect#13792043, procurementAspect#13792044, productGroup#13792045, filteredUnitOfMeasureConversions#13792047, quantityNumerator#13792055]
(18) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13792047.quantityDenominator), true, [quantityDenominator#13792058]
(19) Project
Arguments: [product#13791972, plant#13791973, orderDateTime#13791974, productPlant#13792009, systemId#13792034, internalUUID#13792035, id#13792036, displayId#13792037, name#13792038, baseUnitOfMeasure#13792039, unitOfMeasures#13792040, unitOfMeasureConversions#13792041, productionAspect#13792042, salesAspect#13792043, procurementAspect#13792044, productGroup#13792045, filteredUnitOfMeasureConversions#13792047, quantityNumerator#13792055, quantityDenominator#13792058]
(20) Project
Arguments: [product#13791972, plant#13791973, orderDateTime#13791974, productPlant#13792009, systemId#13792034, internalUUID#13792035, id#13792036, displayId#13792037, name#13792038, baseUnitOfMeasure#13792039, unitOfMeasures#13792040, unitOfMeasureConversions#13792041, productionAspect#13792042, salesAspect#13792043, procurementAspect#13792044, productGroup#13792045, filteredUnitOfMeasureConversions#13792047, quantityNumerator#13792055, quantityDenominator#13792058, (cast(quantityNumerator#13792055 as double) / cast(quantityDenominator#13792058 as double)) AS outboundUnit#13792059]
(21) Project
Arguments: [product#13791972, plant#13791973, orderDateTime#13791974, productPlant#13792009, systemId#13792034, internalUUID#13792035, id#13792036, displayId#13792037, name#13792038, baseUnitOfMeasure#13792039, unitOfMeasures#13792040, unitOfMeasureConversions#13792041, productionAspect#13792042, salesAspect#13792043, procurementAspect#13792044, productGroup#13792045, filteredUnitOfMeasureConversions#13792047, quantityNumerator#13792055, quantityDenominator#13792058, CASE WHEN (isnull(outboundUnit#13792059) OR (outboundUnit#13792059 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#13792059 END AS outboundUnit#13792060]
(22) Project
Arguments: [product#13791972, plant#13791973, orderDateTime#13791974, productPlant#13792009, outboundUnit#13792060]
(23) LogicalRelation
Arguments: parquet, [systemId#13792119, internalUUID#13792120, product#13792121, plant#13792122, calculationDateTime#13792123, stockQuantities#13792124], false
(24) Repartition
Arguments: 37, true
(25) LogicalRelation
Arguments: parquet, [marketUnit#13792061, description#13792062, articleHierarchy#13792063, defaultCurrency#13792064, responsibilities#13792065, replenishmentTypes#13792066, distributionCenters#13792067, assignedArticleHierarchyNodes#13792068, minOrderQtySetting#13792069, listingCheck#13792070, odsSelection#13792071, demandProfiles#13792072, constraintProfiles#13792073, optimizationProfiles#13792074, orderGroupSplitProfiles#13792075, supplierMinimumProfiles#13792076, multipleRestrictionProfiles#13792077, preferredUomSource#13792078, handlingOfUnfulfilledDemands#13792079, negligibleQuantitiesThreshold#13792080, eventtype#13792081, minOrderQtySettingInternal#13792082], false
(26) Repartition
Arguments: 37, true
(27) Filter
Arguments: (marketUnit#13792061 <=> AUTO_ALL_ProdLoc)
(28) Project
Arguments: [marketUnit#13792061, description#13792062, articleHierarchy#13792063, defaultCurrency#13792064, responsibilities#13792065, replenishmentTypes#13792066, distributionCenters#13792067, assignedArticleHierarchyNodes#13792068, minOrderQtySetting#13792069, listingCheck#13792070, odsSelection#13792071, demandProfiles#13792072, constraintProfiles#13792073, optimizationProfiles#13792074, orderGroupSplitProfiles#13792075, supplierMinimumProfiles#13792076, multipleRestrictionProfiles#13792077, preferredUomSource#13792078, handlingOfUnfulfilledDemands#13792079, negligibleQuantitiesThreshold#13792080, eventtype#13792081, minOrderQtySettingInternal#13792082]
(29) Project
Arguments: [distributionCenters#13792067]
(30) Generate
Arguments: explode(distributionCenters#13792067), false, [distributionCenters#13792085]
(31) Project
Arguments: [distributionCenters#13792085]
(32) Generate
Arguments: explode(distributionCenters#13792085.storageLocations), false, [storageLocations#13792092]
(33) Project
Arguments: [distributionCenters#13792085.id AS plantId#13792086, distributionCenters#13792085.internalRefUUID AS plantUuid#13792087, storageLocations#13792092]
(34) Project
Arguments: [plantId#13792086, plantUuid#13792087, storageLocations#13792092.id AS storageLocId#13792093, storageLocations#13792092.internalRefUUID AS storageLocUuid#13792094]
(35) LogicalRelation
Arguments: parquet, [product#13792337, plant#13792338, orderDateTime#13792339, planningStartDateTime#13792340], false
(36) RepartitionByExpression
Arguments: [product#13792337, plant#13792338], 37
(37) Project
Arguments: [product#13792337, plant#13792338, orderDateTime#13792339]
(38) LogicalRelation
Arguments: parquet, [systemId#13792341, internalUUID#13792342, plant#13792343, product#13792344, blockedForReplenishmentStartingFrom#13792345, productionAspect#13792346, salesPlant#13792347, listing#13792348, sourceOfSupplyCategory#13792349], false
(39) Repartition
Arguments: 37, true
(40) Project
Arguments: [systemId#13792341, internalUUID#13792342, plant#13792343, product#13792344, blockedForReplenishmentStartingFrom#13792345, productionAspect#13792346, salesPlant#13792347, listing#13792348, sourceOfSupplyCategory#13792349, struct(systemId, systemId#13792341, internalUUID, internalUUID#13792342, plant, plant#13792343, product, product#13792344, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#13792345, productionAspect, productionAspect#13792346, salesPlant, salesPlant#13792347, listing, listing#13792348, sourceOfSupplyCategory, sourceOfSupplyCategory#13792349) AS productPlant#13792350]
(41) Project
Arguments: [productPlant#13792350]
(42) Join
Arguments: LeftOuter, ((product#13792337 <=> productPlant#13792350.product.internalRefUUID) AND (plant#13792338 <=> productPlant#13792350.plant.internalRefUUID))
(43) Project
Arguments: [product#13792337, plant#13792338, orderDateTime#13792339, productPlant#13792350]
(44) LogicalRelation
Arguments: parquet, [systemId#13792351, internalUUID#13792352, id#13792353, displayId#13792354, name#13792355, baseUnitOfMeasure#13792356, unitOfMeasures#13792357, unitOfMeasureConversions#13792358, productionAspect#13792359, salesAspect#13792360, procurementAspect#13792361, productGroup#13792362], false
(45) Repartition
Arguments: 37, true
(46) Join
Arguments: LeftOuter, (product#13792337 = internalUUID#13792352)
(47) Project
Arguments: [product#13792337, plant#13792338, orderDateTime#13792339, productPlant#13792350, systemId#13792351, internalUUID#13792352, id#13792353, displayId#13792354, name#13792355, baseUnitOfMeasure#13792356, unitOfMeasures#13792357, unitOfMeasureConversions#13792358, productionAspect#13792359, salesAspect#13792360, procurementAspect#13792361, productGroup#13792362, filter(unitOfMeasureConversions#13792358, lambdafunction((((lambda u#13792048.measurementUnit1.code = productPlant#13792350.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#13792048.measurementUnit1.internalRefUUID = productPlant#13792350.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#13792048.measurementUnit2.code = baseUnitOfMeasure#13792356.code) AND (lambda u#13792048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#13792356.internalRefUUID))), lambda u#13792048, false)) AS filteredUnitOfMeasureConversions#13792363]
(48) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13792363.quantityNumerator), true, [quantityNumerator#13792364]
(49) Project
Arguments: [product#13792337, plant#13792338, orderDateTime#13792339, productPlant#13792350, systemId#13792351, internalUUID#13792352, id#13792353, displayId#13792354, name#13792355, baseUnitOfMeasure#13792356, unitOfMeasures#13792357, unitOfMeasureConversions#13792358, productionAspect#13792359, salesAspect#13792360, procurementAspect#13792361, productGroup#13792362, filteredUnitOfMeasureConversions#13792363, quantityNumerator#13792364]
(50) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13792363.quantityDenominator), true, [quantityDenominator#13792365]
(51) Project
Arguments: [product#13792337, plant#13792338, orderDateTime#13792339, productPlant#13792350, systemId#13792351, internalUUID#13792352, id#13792353, displayId#13792354, name#13792355, baseUnitOfMeasure#13792356, unitOfMeasures#13792357, unitOfMeasureConversions#13792358, productionAspect#13792359, salesAspect#13792360, procurementAspect#13792361, productGroup#13792362, filteredUnitOfMeasureConversions#13792363, quantityNumerator#13792364, quantityDenominator#13792365]
(52) Project
Arguments: [product#13792337, plant#13792338, orderDateTime#13792339, productPlant#13792350, systemId#13792351, internalUUID#13792352, id#13792353, displayId#13792354, name#13792355, baseUnitOfMeasure#13792356, unitOfMeasures#13792357, unitOfMeasureConversions#13792358, productionAspect#13792359, salesAspect#13792360, procurementAspect#13792361, productGroup#13792362, filteredUnitOfMeasureConversions#13792363, quantityNumerator#13792364, quantityDenominator#13792365, (cast(quantityNumerator#13792364 as double) / cast(quantityDenominator#13792365 as double)) AS outboundUnit#13792366]
(53) Project
Arguments: [product#13792337, plant#13792338, orderDateTime#13792339, productPlant#13792350, systemId#13792351, internalUUID#13792352, id#13792353, displayId#13792354, name#13792355, baseUnitOfMeasure#13792356, unitOfMeasures#13792357, unitOfMeasureConversions#13792358, productionAspect#13792359, salesAspect#13792360, procurementAspect#13792361, productGroup#13792362, filteredUnitOfMeasureConversions#13792363, quantityNumerator#13792364, quantityDenominator#13792365, CASE WHEN (isnull(outboundUnit#13792366) OR (outboundUnit#13792366 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#13792366 END AS outboundUnit#13792367]
(54) Project
Arguments: [product#13792337, plant#13792338, orderDateTime#13792339, productPlant#13792350, outboundUnit#13792367]
(55) Project
Arguments: [plant#13792338]
(56) Deduplicate
Arguments: [plant#13792338]
(57) Join
Arguments: Inner, (plantUuid#13792087 = plant#13792338)
(58) Project
Arguments: [plantId#13792086, plantUuid#13792087, storageLocId#13792093, storageLocUuid#13792094]
(59) Join
Arguments: Inner, (plant#13792122.internalRefUUID <=> plantUuid#13792087)
(60) Generate
Arguments: explode(filter(stockQuantities#13792124, lambdafunction(((lambda x#13792128.storageLocation.internalRefUuid = storageLocUuid#13792094) AND (lambda x#13792128.storageLocation.Id = storageLocId#13792093)), lambda x#13792128, false))), false, [stockQuantity#13792129]
(61) Project
Arguments: [systemId#13792119, internalUUID#13792120, product#13792121, plant#13792122, calculationDateTime#13792123, stockQuantities#13792124, plantId#13792086, plantUuid#13792087, storageLocId#13792093, storageLocUuid#13792094, stockQuantity#13792129]
(62) Aggregate
Arguments: [plantUuid#13792087, internalUUID#13792120, plant#13792122, product#13792121, systemId#13792119], [plantUuid#13792087, internalUUID#13792120, plant#13792122, product#13792121, systemId#13792119, first(calculationDateTime#13792123, false) AS calculationDateTime#13792130, collect_list(stockQuantity#13792129, 0, 0) AS stockQuantities#13792131]
(63) Project
Arguments: [systemId#13792119, internalUUID#13792120, product#13792121, plant#13792122, calculationDateTime#13792130, stockQuantities#13792131]
(64) Generate
Arguments: explode(stockQuantities#13792131), false, [stockQuantity#13792146]
(65) Project
Arguments: [systemId#13792119, internalUUID#13792120, product#13792121, plant#13792122, calculationDateTime#13792130, stockQuantities#13792131, stockQuantity#13792146]
(66) Project
Arguments: [plant#13792122.id AS plant#13792147, plant#13792122.internalRefUUID AS plantUuid#13792148, product#13792121.id AS product#13792149, product#13792121.internalRefUUID AS productUuid#13792150, calculationDateTime#13792130, stockQuantity#13792146.storagelocation.id AS storageLocId#13792151, stockQuantity#13792146.storagelocation.internalRefUUID AS storageLocUuid#13792152, stockQuantity#13792146.quantity.measure AS quantity#13792153, stockQuantity#13792146.specialStockIndicator.code AS specialStockIndicator#13792154, stockQuantity#13792146.stockType.code AS stockType#13792155]
(67) Filter
Arguments: ((specialStockIndicator#13792154 = ) AND (stockType#13792155 = 01))
(68) LogicalRelation
Arguments: parquet, [product#13792165, plant#13792166, orderDateTime#13792167, planningStartDateTime#13792168], false
(69) RepartitionByExpression
Arguments: [product#13792165, plant#13792166], 37
(70) Project
Arguments: [product#13792165, plant#13792166, orderDateTime#13792167]
(71) LogicalRelation
Arguments: parquet, [systemId#13792169, internalUUID#13792170, plant#13792171, product#13792172, blockedForReplenishmentStartingFrom#13792173, productionAspect#13792174, salesPlant#13792175, listing#13792176, sourceOfSupplyCategory#13792177], false
(72) Repartition
Arguments: 37, true
(73) Project
Arguments: [systemId#13792169, internalUUID#13792170, plant#13792171, product#13792172, blockedForReplenishmentStartingFrom#13792173, productionAspect#13792174, salesPlant#13792175, listing#13792176, sourceOfSupplyCategory#13792177, struct(systemId, systemId#13792169, internalUUID, internalUUID#13792170, plant, plant#13792171, product, product#13792172, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#13792173, productionAspect, productionAspect#13792174, salesPlant, salesPlant#13792175, listing, listing#13792176, sourceOfSupplyCategory, sourceOfSupplyCategory#13792177) AS productPlant#13792178]
(74) Project
Arguments: [productPlant#13792178]
(75) Join
Arguments: LeftOuter, ((product#13792165 <=> productPlant#13792178.product.internalRefUUID) AND (plant#13792166 <=> productPlant#13792178.plant.internalRefUUID))
(76) Project
Arguments: [product#13792165, plant#13792166, orderDateTime#13792167, productPlant#13792178]
(77) LogicalRelation
Arguments: parquet, [systemId#13792179, internalUUID#13792180, id#13792181, displayId#13792182, name#13792183, baseUnitOfMeasure#13792184, unitOfMeasures#13792185, unitOfMeasureConversions#13792186, productionAspect#13792187, salesAspect#13792188, procurementAspect#13792189, productGroup#13792190], false
(78) Repartition
Arguments: 37, true
(79) Join
Arguments: LeftOuter, (product#13792165 = internalUUID#13792180)
(80) Project
Arguments: [product#13792165, plant#13792166, orderDateTime#13792167, productPlant#13792178, systemId#13792179, internalUUID#13792180, id#13792181, displayId#13792182, name#13792183, baseUnitOfMeasure#13792184, unitOfMeasures#13792185, unitOfMeasureConversions#13792186, productionAspect#13792187, salesAspect#13792188, procurementAspect#13792189, productGroup#13792190, filter(unitOfMeasureConversions#13792186, lambdafunction((((lambda u#13792048.measurementUnit1.code = productPlant#13792178.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#13792048.measurementUnit1.internalRefUUID = productPlant#13792178.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#13792048.measurementUnit2.code = baseUnitOfMeasure#13792184.code) AND (lambda u#13792048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#13792184.internalRefUUID))), lambda u#13792048, false)) AS filteredUnitOfMeasureConversions#13792191]
(81) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13792191.quantityNumerator), true, [quantityNumerator#13792192]
(82) Project
Arguments: [product#13792165, plant#13792166, orderDateTime#13792167, productPlant#13792178, systemId#13792179, internalUUID#13792180, id#13792181, displayId#13792182, name#13792183, baseUnitOfMeasure#13792184, unitOfMeasures#13792185, unitOfMeasureConversions#13792186, productionAspect#13792187, salesAspect#13792188, procurementAspect#13792189, productGroup#13792190, filteredUnitOfMeasureConversions#13792191, quantityNumerator#13792192]
(83) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13792191.quantityDenominator), true, [quantityDenominator#13792193]
(84) Project
Arguments: [product#13792165, plant#13792166, orderDateTime#13792167, productPlant#13792178, systemId#13792179, internalUUID#13792180, id#13792181, displayId#13792182, name#13792183, baseUnitOfMeasure#13792184, unitOfMeasures#13792185, unitOfMeasureConversions#13792186, productionAspect#13792187, salesAspect#13792188, procurementAspect#13792189, productGroup#13792190, filteredUnitOfMeasureConversions#13792191, quantityNumerator#13792192, quantityDenominator#13792193]
(85) Project
Arguments: [product#13792165, plant#13792166, orderDateTime#13792167, productPlant#13792178, systemId#13792179, internalUUID#13792180, id#13792181, displayId#13792182, name#13792183, baseUnitOfMeasure#13792184, unitOfMeasures#13792185, unitOfMeasureConversions#13792186, productionAspect#13792187, salesAspect#13792188, procurementAspect#13792189, productGroup#13792190, filteredUnitOfMeasureConversions#13792191, quantityNumerator#13792192, quantityDenominator#13792193, (cast(quantityNumerator#13792192 as double) / cast(quantityDenominator#13792193 as double)) AS outboundUnit#13792194]
(86) Project
Arguments: [product#13792165, plant#13792166, orderDateTime#13792167, productPlant#13792178, systemId#13792179, internalUUID#13792180, id#13792181, displayId#13792182, name#13792183, baseUnitOfMeasure#13792184, unitOfMeasures#13792185, unitOfMeasureConversions#13792186, productionAspect#13792187, salesAspect#13792188, procurementAspect#13792189, productGroup#13792190, filteredUnitOfMeasureConversions#13792191, quantityNumerator#13792192, quantityDenominator#13792193, CASE WHEN (isnull(outboundUnit#13792194) OR (outboundUnit#13792194 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#13792194 END AS outboundUnit#13792195]
(87) Project
Arguments: [product#13792165, plant#13792166, orderDateTime#13792167, productPlant#13792178, outboundUnit#13792195]
(88) Join
Arguments: Inner, ((plantUuid#13792148 = plant#13792166) AND (productUuid#13792150 = product#13792165))
(89) Filter
Arguments: (calculationDateTime#13792130 <= orderDateTime#13792167)
(90) Project
Arguments: [plantUuid#13792148 AS plant#13792199, productUuid#13792150 AS product#13792200, storageLocId#13792151, calculationDateTime#13792130, quantity#13792153]
(91) LogicalRelation
Arguments: parquet, [systemId#13792208, internalUUID#13792209, product#13792210, plant#13792211, calculationDateTime#13792212, stockQuantities#13792213], false
(92) Repartition
Arguments: 37, true
(93) LogicalRelation
Arguments: parquet, [marketUnit#13792214, description#13792215, articleHierarchy#13792216, defaultCurrency#13792217, responsibilities#13792218, replenishmentTypes#13792219, distributionCenters#13792220, assignedArticleHierarchyNodes#13792221, minOrderQtySetting#13792222, listingCheck#13792223, odsSelection#13792224, demandProfiles#13792225, constraintProfiles#13792226, optimizationProfiles#13792227, orderGroupSplitProfiles#13792228, supplierMinimumProfiles#13792229, multipleRestrictionProfiles#13792230, preferredUomSource#13792231, handlingOfUnfulfilledDemands#13792232, negligibleQuantitiesThreshold#13792233, eventtype#13792234, minOrderQtySettingInternal#13792235], false
(94) Repartition
Arguments: 37, true
(95) Filter
Arguments: (marketUnit#13792214 <=> AUTO_ALL_ProdLoc)
(96) Project
Arguments: [marketUnit#13792214, description#13792215, articleHierarchy#13792216, defaultCurrency#13792217, responsibilities#13792218, replenishmentTypes#13792219, distributionCenters#13792220, assignedArticleHierarchyNodes#13792221, minOrderQtySetting#13792222, listingCheck#13792223, odsSelection#13792224, demandProfiles#13792225, constraintProfiles#13792226, optimizationProfiles#13792227, orderGroupSplitProfiles#13792228, supplierMinimumProfiles#13792229, multipleRestrictionProfiles#13792230, preferredUomSource#13792231, handlingOfUnfulfilledDemands#13792232, negligibleQuantitiesThreshold#13792233, eventtype#13792234, minOrderQtySettingInternal#13792235]
(97) Project
Arguments: [distributionCenters#13792220]
(98) Generate
Arguments: explode(distributionCenters#13792220), false, [distributionCenters#13792236]
(99) Project
Arguments: [distributionCenters#13792236]
(100) Generate
Arguments: explode(distributionCenters#13792236.storageLocations), false, [storageLocations#13792237]
(101) Project
Arguments: [distributionCenters#13792236.id AS plantId#13792238, distributionCenters#13792236.internalRefUUID AS plantUuid#13792239, storageLocations#13792237]
(102) Project
Arguments: [plantId#13792238, plantUuid#13792239, storageLocations#13792237.id AS storageLocId#13792240, storageLocations#13792237.internalRefUUID AS storageLocUuid#13792241]
(103) LogicalRelation
Arguments: parquet, [product#13792242, plant#13792243, orderDateTime#13792244, planningStartDateTime#13792245], false
(104) RepartitionByExpression
Arguments: [product#13792242, plant#13792243], 37
(105) Project
Arguments: [product#13792242, plant#13792243, orderDateTime#13792244]
(106) LogicalRelation
Arguments: parquet, [systemId#13792246, internalUUID#13792247, plant#13792248, product#13792249, blockedForReplenishmentStartingFrom#13792250, productionAspect#13792251, salesPlant#13792252, listing#13792253, sourceOfSupplyCategory#13792254], false
(107) Repartition
Arguments: 37, true
(108) Project
Arguments: [systemId#13792246, internalUUID#13792247, plant#13792248, product#13792249, blockedForReplenishmentStartingFrom#13792250, productionAspect#13792251, salesPlant#13792252, listing#13792253, sourceOfSupplyCategory#13792254, struct(systemId, systemId#13792246, internalUUID, internalUUID#13792247, plant, plant#13792248, product, product#13792249, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#13792250, productionAspect, productionAspect#13792251, salesPlant, salesPlant#13792252, listing, listing#13792253, sourceOfSupplyCategory, sourceOfSupplyCategory#13792254) AS productPlant#13792255]
(109) Project
Arguments: [productPlant#13792255]
(110) Join
Arguments: LeftOuter, ((product#13792242 <=> productPlant#13792255.product.internalRefUUID) AND (plant#13792243 <=> productPlant#13792255.plant.internalRefUUID))
(111) Project
Arguments: [product#13792242, plant#13792243, orderDateTime#13792244, productPlant#13792255]
(112) LogicalRelation
Arguments: parquet, [systemId#13792256, internalUUID#13792257, id#13792258, displayId#13792259, name#13792260, baseUnitOfMeasure#13792261, unitOfMeasures#13792262, unitOfMeasureConversions#13792263, productionAspect#13792264, salesAspect#13792265, procurementAspect#13792266, productGroup#13792267], false
(113) Repartition
Arguments: 37, true
(114) Join
Arguments: LeftOuter, (product#13792242 = internalUUID#13792257)
(115) Project
Arguments: [product#13792242, plant#13792243, orderDateTime#13792244, productPlant#13792255, systemId#13792256, internalUUID#13792257, id#13792258, displayId#13792259, name#13792260, baseUnitOfMeasure#13792261, unitOfMeasures#13792262, unitOfMeasureConversions#13792263, productionAspect#13792264, salesAspect#13792265, procurementAspect#13792266, productGroup#13792267, filter(unitOfMeasureConversions#13792263, lambdafunction((((lambda u#13792048.measurementUnit1.code = productPlant#13792255.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#13792048.measurementUnit1.internalRefUUID = productPlant#13792255.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#13792048.measurementUnit2.code = baseUnitOfMeasure#13792261.code) AND (lambda u#13792048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#13792261.internalRefUUID))), lambda u#13792048, false)) AS filteredUnitOfMeasureConversions#13792268]
(116) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13792268.quantityNumerator), true, [quantityNumerator#13792269]
(117) Project
Arguments: [product#13792242, plant#13792243, orderDateTime#13792244, productPlant#13792255, systemId#13792256, internalUUID#13792257, id#13792258, displayId#13792259, name#13792260, baseUnitOfMeasure#13792261, unitOfMeasures#13792262, unitOfMeasureConversions#13792263, productionAspect#13792264, salesAspect#13792265, procurementAspect#13792266, productGroup#13792267, filteredUnitOfMeasureConversions#13792268, quantityNumerator#13792269]
(118) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13792268.quantityDenominator), true, [quantityDenominator#13792270]
(119) Project
Arguments: [product#13792242, plant#13792243, orderDateTime#13792244, productPlant#13792255, systemId#13792256, internalUUID#13792257, id#13792258, displayId#13792259, name#13792260, baseUnitOfMeasure#13792261, unitOfMeasures#13792262, unitOfMeasureConversions#13792263, productionAspect#13792264, salesAspect#13792265, procurementAspect#13792266, productGroup#13792267, filteredUnitOfMeasureConversions#13792268, quantityNumerator#13792269, quantityDenominator#13792270]
(120) Project
Arguments: [product#13792242, plant#13792243, orderDateTime#13792244, productPlant#13792255, systemId#13792256, internalUUID#13792257, id#13792258, displayId#13792259, name#13792260, baseUnitOfMeasure#13792261, unitOfMeasures#13792262, unitOfMeasureConversions#13792263, productionAspect#13792264, salesAspect#13792265, procurementAspect#13792266, productGroup#13792267, filteredUnitOfMeasureConversions#13792268, quantityNumerator#13792269, quantityDenominator#13792270, (cast(quantityNumerator#13792269 as double) / cast(quantityDenominator#13792270 as double)) AS outboundUnit#13792271]
(121) Project
Arguments: [product#13792242, plant#13792243, orderDateTime#13792244, productPlant#13792255, systemId#13792256, internalUUID#13792257, id#13792258, displayId#13792259, name#13792260, baseUnitOfMeasure#13792261, unitOfMeasures#13792262, unitOfMeasureConversions#13792263, productionAspect#13792264, salesAspect#13792265, procurementAspect#13792266, productGroup#13792267, filteredUnitOfMeasureConversions#13792268, quantityNumerator#13792269, quantityDenominator#13792270, CASE WHEN (isnull(outboundUnit#13792271) OR (outboundUnit#13792271 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#13792271 END AS outboundUnit#13792272]
(122) Project
Arguments: [product#13792242, plant#13792243, orderDateTime#13792244, productPlant#13792255, outboundUnit#13792272]
(123) Project
Arguments: [plant#13792243]
(124) Deduplicate
Arguments: [plant#13792243]
(125) Join
Arguments: Inner, (plantUuid#13792239 = plant#13792243)
(126) Project
Arguments: [plantId#13792238, plantUuid#13792239, storageLocId#13792240, storageLocUuid#13792241]
(127) Join
Arguments: Inner, (plant#13792211.internalRefUUID <=> plantUuid#13792239)
(128) Generate
Arguments: explode(filter(stockQuantities#13792213, lambdafunction(((lambda x#13792128.storageLocation.internalRefUuid = storageLocUuid#13792241) AND (lambda x#13792128.storageLocation.Id = storageLocId#13792240)), lambda x#13792128, false))), false, [stockQuantity#13792273]
(129) Project
Arguments: [systemId#13792208, internalUUID#13792209, product#13792210, plant#13792211, calculationDateTime#13792212, stockQuantities#13792213, plantId#13792238, plantUuid#13792239, storageLocId#13792240, storageLocUuid#13792241, stockQuantity#13792273]
(130) Aggregate
Arguments: [plantUuid#13792239, internalUUID#13792209, plant#13792211, product#13792210, systemId#13792208], [plantUuid#13792239, internalUUID#13792209, plant#13792211, product#13792210, systemId#13792208, first(calculationDateTime#13792212, false) AS calculationDateTime#13792274, collect_list(stockQuantity#13792273, 0, 0) AS stockQuantities#13792275]
(131) Project
Arguments: [systemId#13792208, internalUUID#13792209, product#13792210, plant#13792211, calculationDateTime#13792274, stockQuantities#13792275]
(132) Generate
Arguments: explode(stockQuantities#13792275), false, [stockQuantity#13792276]
(133) Project
Arguments: [systemId#13792208, internalUUID#13792209, product#13792210, plant#13792211, calculationDateTime#13792274, stockQuantities#13792275, stockQuantity#13792276]
(134) Project
Arguments: [plant#13792211.id AS plant#13792277, plant#13792211.internalRefUUID AS plantUuid#13792278, product#13792210.id AS product#13792279, product#13792210.internalRefUUID AS productUuid#13792280, calculationDateTime#13792274, stockQuantity#13792276.storagelocation.id AS storageLocId#13792281, stockQuantity#13792276.storagelocation.internalRefUUID AS storageLocUuid#13792282, stockQuantity#13792276.quantity.measure AS quantity#13792283, stockQuantity#13792276.specialStockIndicator.code AS specialStockIndicator#13792284, stockQuantity#13792276.stockType.code AS stockType#13792285]
(135) Filter
Arguments: ((specialStockIndicator#13792284 = ) AND (stockType#13792285 = 01))
(136) LogicalRelation
Arguments: parquet, [product#13792286, plant#13792287, orderDateTime#13792288, planningStartDateTime#13792289], false
(137) RepartitionByExpression
Arguments: [product#13792286, plant#13792287], 37
(138) Project
Arguments: [product#13792286, plant#13792287, orderDateTime#13792288]
(139) LogicalRelation
Arguments: parquet, [systemId#13792290, internalUUID#13792291, plant#13792292, product#13792293, blockedForReplenishmentStartingFrom#13792294, productionAspect#13792295, salesPlant#13792296, listing#13792297, sourceOfSupplyCategory#13792298], false
(140) Repartition
Arguments: 37, true
(141) Project
Arguments: [systemId#13792290, internalUUID#13792291, plant#13792292, product#13792293, blockedForReplenishmentStartingFrom#13792294, productionAspect#13792295, salesPlant#13792296, listing#13792297, sourceOfSupplyCategory#13792298, struct(systemId, systemId#13792290, internalUUID, internalUUID#13792291, plant, plant#13792292, product, product#13792293, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#13792294, productionAspect, productionAspect#13792295, salesPlant, salesPlant#13792296, listing, listing#13792297, sourceOfSupplyCategory, sourceOfSupplyCategory#13792298) AS productPlant#13792299]
(142) Project
Arguments: [productPlant#13792299]
(143) Join
Arguments: LeftOuter, ((product#13792286 <=> productPlant#13792299.product.internalRefUUID) AND (plant#13792287 <=> productPlant#13792299.plant.internalRefUUID))
(144) Project
Arguments: [product#13792286, plant#13792287, orderDateTime#13792288, productPlant#13792299]
(145) LogicalRelation
Arguments: parquet, [systemId#13792300, internalUUID#13792301, id#13792302, displayId#13792303, name#13792304, baseUnitOfMeasure#13792305, unitOfMeasures#13792306, unitOfMeasureConversions#13792307, productionAspect#13792308, salesAspect#13792309, procurementAspect#13792310, productGroup#13792311], false
(146) Repartition
Arguments: 37, true
(147) Join
Arguments: LeftOuter, (product#13792286 = internalUUID#13792301)
(148) Project
Arguments: [product#13792286, plant#13792287, orderDateTime#13792288, productPlant#13792299, systemId#13792300, internalUUID#13792301, id#13792302, displayId#13792303, name#13792304, baseUnitOfMeasure#13792305, unitOfMeasures#13792306, unitOfMeasureConversions#13792307, productionAspect#13792308, salesAspect#13792309, procurementAspect#13792310, productGroup#13792311, filter(unitOfMeasureConversions#13792307, lambdafunction((((lambda u#13792048.measurementUnit1.code = productPlant#13792299.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#13792048.measurementUnit1.internalRefUUID = productPlant#13792299.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#13792048.measurementUnit2.code = baseUnitOfMeasure#13792305.code) AND (lambda u#13792048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#13792305.internalRefUUID))), lambda u#13792048, false)) AS filteredUnitOfMeasureConversions#13792312]
(149) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13792312.quantityNumerator), true, [quantityNumerator#13792313]
(150) Project
Arguments: [product#13792286, plant#13792287, orderDateTime#13792288, productPlant#13792299, systemId#13792300, internalUUID#13792301, id#13792302, displayId#13792303, name#13792304, baseUnitOfMeasure#13792305, unitOfMeasures#13792306, unitOfMeasureConversions#13792307, productionAspect#13792308, salesAspect#13792309, procurementAspect#13792310, productGroup#13792311, filteredUnitOfMeasureConversions#13792312, quantityNumerator#13792313]
(151) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13792312.quantityDenominator), true, [quantityDenominator#13792314]
(152) Project
Arguments: [product#13792286, plant#13792287, orderDateTime#13792288, productPlant#13792299, systemId#13792300, internalUUID#13792301, id#13792302, displayId#13792303, name#13792304, baseUnitOfMeasure#13792305, unitOfMeasures#13792306, unitOfMeasureConversions#13792307, productionAspect#13792308, salesAspect#13792309, procurementAspect#13792310, productGroup#13792311, filteredUnitOfMeasureConversions#13792312, quantityNumerator#13792313, quantityDenominator#13792314]
(153) Project
Arguments: [product#13792286, plant#13792287, orderDateTime#13792288, productPlant#13792299, systemId#13792300, internalUUID#13792301, id#13792302, displayId#13792303, name#13792304, baseUnitOfMeasure#13792305, unitOfMeasures#13792306, unitOfMeasureConversions#13792307, productionAspect#13792308, salesAspect#13792309, procurementAspect#13792310, productGroup#13792311, filteredUnitOfMeasureConversions#13792312, quantityNumerator#13792313, quantityDenominator#13792314, (cast(quantityNumerator#13792313 as double) / cast(quantityDenominator#13792314 as double)) AS outboundUnit#13792315]
(154) Project
Arguments: [product#13792286, plant#13792287, orderDateTime#13792288, productPlant#13792299, systemId#13792300, internalUUID#13792301, id#13792302, displayId#13792303, name#13792304, baseUnitOfMeasure#13792305, unitOfMeasures#13792306, unitOfMeasureConversions#13792307, productionAspect#13792308, salesAspect#13792309, procurementAspect#13792310, productGroup#13792311, filteredUnitOfMeasureConversions#13792312, quantityNumerator#13792313, quantityDenominator#13792314, CASE WHEN (isnull(outboundUnit#13792315) OR (outboundUnit#13792315 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#13792315 END AS outboundUnit#13792316]
(155) Project
Arguments: [product#13792286, plant#13792287, orderDateTime#13792288, productPlant#13792299, outboundUnit#13792316]
(156) Join
Arguments: Inner, ((plantUuid#13792278 = plant#13792287) AND (productUuid#13792280 = product#13792286))
(157) Filter
Arguments: (calculationDateTime#13792274 <= orderDateTime#13792288)
(158) Project
Arguments: [plantUuid#13792278 AS plant#13792317, productUuid#13792280 AS product#13792318, storageLocId#13792281, calculationDateTime#13792274, quantity#13792283]
(159) Aggregate
Arguments: [plant#13792317, product#13792318, storageLocId#13792281], [plant#13792317, product#13792318, storageLocId#13792281, max(calculationDateTime#13792274) AS max_calc_datetime#13792201]
(160) Join
Arguments: Inner, ((((plant#13792199 <=> plant#13792317) AND (product#13792200 <=> product#13792318)) AND (storageLocId#13792151 <=> storageLocId#13792281)) AND (calculationDateTime#13792130 <=> max_calc_datetime#13792201))
(161) Project
Arguments: [plant#13792199, product#13792200, storageLocId#13792151, calculationDateTime#13792130, quantity#13792153]
(162) Aggregate
Arguments: [product#13792200, plant#13792199], [product#13792200, plant#13792199, sum(quantity#13792153) AS quantitySum#13792327, min(calculationDateTime#13792130) AS minCalculationDateTime#13792328]
(163) Project
Arguments: [product#13792200, plant#13792199, quantitySum#13792327, minCalculationDateTime#13792328, round(quantitySum#13792327, 0) AS roundedQuantitySum#13792336]
(164) Join
Arguments: LeftOuter, ((plant#13791973 = plant#13792199) AND (product#13791972 = product#13792200))
(165) Project
Arguments: [product#13791972, plant#13791973, orderDateTime#13791974, productPlant#13792009, outboundUnit#13792060, roundedQuantitySum#13792336, minCalculationDateTime#13792328]
(166) Project
Arguments: [product#13791972, plant#13791973, orderDateTime#13791974, productPlant#13792009, outboundUnit#13792060, roundedQuantitySum#13792336, minCalculationDateTime#13792328, CASE WHEN isnotnull(minCalculationDateTime#13792328) THEN minCalculationDateTime#13792328 ELSE orderDateTime#13791974 END AS stockDatetime#13792371]
(167) Project
Arguments: [product#13791972, plant#13791973, orderDateTime#13791974, productPlant#13792009, outboundUnit#13792060, roundedQuantitySum#13792336, minCalculationDateTime#13792328, stockDatetime#13792371, CASE WHEN isnotnull(roundedQuantitySum#13792336) THEN array(roundedQuantitySum#13792336) ELSE array(0.0) END AS stockBatchQuantities#13792372]
(168) Project
Arguments: [product#13791972, plant#13791973, orderDateTime#13791974, productPlant#13792009, outboundUnit#13792060, roundedQuantitySum#13792336, minCalculationDateTime#13792328, stockDatetime#13792371, stockBatchQuantities#13792372, array(2199-01-01 00:00:00) AS stockBatchShelfLifeEndDatetimes#13792373]
(169) Project
Arguments: [product#13791972, plant#13791973, orderDateTime#13791974, productPlant#13792009, outboundUnit#13792060, roundedQuantitySum#13792336, stockDatetime#13792371, stockBatchQuantities#13792372, stockBatchShelfLifeEndDatetimes#13792373]
(170) Project
Arguments: [product#13791972, plant#13791973, orderDateTime#13791974, productPlant#13792009, outboundUnit#13792060, stockDatetime#13792371, stockBatchQuantities#13792372, stockBatchShelfLifeEndDatetimes#13792373]
(171) LogicalRelation
Arguments: parquet, [product#13793491, plant#13793492, orderDateTime#13793493, planningStartDateTime#13793494], false
(172) RepartitionByExpression
Arguments: [product#13793491, plant#13793492], 37
(173) Project
Arguments: [product#13793491, plant#13793492, orderDateTime#13793493]
(174) LogicalRelation
Arguments: parquet, [systemId#13793495, internalUUID#13793496, plant#13793497, product#13793498, blockedForReplenishmentStartingFrom#13793499, productionAspect#13793500, salesPlant#13793501, listing#13793502, sourceOfSupplyCategory#13793503], false
(175) Repartition
Arguments: 37, true
(176) Project
Arguments: [systemId#13793495, internalUUID#13793496, plant#13793497, product#13793498, blockedForReplenishmentStartingFrom#13793499, productionAspect#13793500, salesPlant#13793501, listing#13793502, sourceOfSupplyCategory#13793503, struct(systemId, systemId#13793495, internalUUID, internalUUID#13793496, plant, plant#13793497, product, product#13793498, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#13793499, productionAspect, productionAspect#13793500, salesPlant, salesPlant#13793501, listing, listing#13793502, sourceOfSupplyCategory, sourceOfSupplyCategory#13793503) AS productPlant#13793504]
(177) Project
Arguments: [productPlant#13793504]
(178) Join
Arguments: LeftOuter, ((product#13793491 <=> productPlant#13793504.product.internalRefUUID) AND (plant#13793492 <=> productPlant#13793504.plant.internalRefUUID))
(179) Project
Arguments: [product#13793491, plant#13793492, orderDateTime#13793493, productPlant#13793504]
(180) LogicalRelation
Arguments: parquet, [systemId#13793505, internalUUID#13793506, id#13793507, displayId#13793508, name#13793509, baseUnitOfMeasure#13793510, unitOfMeasures#13793511, unitOfMeasureConversions#13793512, productionAspect#13793513, salesAspect#13793514, procurementAspect#13793515, productGroup#13793516], false
(181) Repartition
Arguments: 37, true
(182) Join
Arguments: LeftOuter, (product#13793491 = internalUUID#13793506)
(183) Project
Arguments: [product#13793491, plant#13793492, orderDateTime#13793493, productPlant#13793504, systemId#13793505, internalUUID#13793506, id#13793507, displayId#13793508, name#13793509, baseUnitOfMeasure#13793510, unitOfMeasures#13793511, unitOfMeasureConversions#13793512, productionAspect#13793513, salesAspect#13793514, procurementAspect#13793515, productGroup#13793516, filter(unitOfMeasureConversions#13793512, lambdafunction((((lambda u#13792048.measurementUnit1.code = productPlant#13793504.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#13792048.measurementUnit1.internalRefUUID = productPlant#13793504.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#13792048.measurementUnit2.code = baseUnitOfMeasure#13793510.code) AND (lambda u#13792048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#13793510.internalRefUUID))), lambda u#13792048, false)) AS filteredUnitOfMeasureConversions#13793517]
(184) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13793517.quantityNumerator), true, [quantityNumerator#13793518]
(185) Project
Arguments: [product#13793491, plant#13793492, orderDateTime#13793493, productPlant#13793504, systemId#13793505, internalUUID#13793506, id#13793507, displayId#13793508, name#13793509, baseUnitOfMeasure#13793510, unitOfMeasures#13793511, unitOfMeasureConversions#13793512, productionAspect#13793513, salesAspect#13793514, procurementAspect#13793515, productGroup#13793516, filteredUnitOfMeasureConversions#13793517, quantityNumerator#13793518]
(186) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13793517.quantityDenominator), true, [quantityDenominator#13793519]
(187) Project
Arguments: [product#13793491, plant#13793492, orderDateTime#13793493, productPlant#13793504, systemId#13793505, internalUUID#13793506, id#13793507, displayId#13793508, name#13793509, baseUnitOfMeasure#13793510, unitOfMeasures#13793511, unitOfMeasureConversions#13793512, productionAspect#13793513, salesAspect#13793514, procurementAspect#13793515, productGroup#13793516, filteredUnitOfMeasureConversions#13793517, quantityNumerator#13793518, quantityDenominator#13793519]
(188) Project
Arguments: [product#13793491, plant#13793492, orderDateTime#13793493, productPlant#13793504, systemId#13793505, internalUUID#13793506, id#13793507, displayId#13793508, name#13793509, baseUnitOfMeasure#13793510, unitOfMeasures#13793511, unitOfMeasureConversions#13793512, productionAspect#13793513, salesAspect#13793514, procurementAspect#13793515, productGroup#13793516, filteredUnitOfMeasureConversions#13793517, quantityNumerator#13793518, quantityDenominator#13793519, (cast(quantityNumerator#13793518 as double) / cast(quantityDenominator#13793519 as double)) AS outboundUnit#13793520]
(189) Project
Arguments: [product#13793491, plant#13793492, orderDateTime#13793493, productPlant#13793504, systemId#13793505, internalUUID#13793506, id#13793507, displayId#13793508, name#13793509, baseUnitOfMeasure#13793510, unitOfMeasures#13793511, unitOfMeasureConversions#13793512, productionAspect#13793513, salesAspect#13793514, procurementAspect#13793515, productGroup#13793516, filteredUnitOfMeasureConversions#13793517, quantityNumerator#13793518, quantityDenominator#13793519, CASE WHEN (isnull(outboundUnit#13793520) OR (outboundUnit#13793520 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#13793520 END AS outboundUnit#13793521]
(190) Project
Arguments: [product#13793491, plant#13793492, orderDateTime#13793493, productPlant#13793504, outboundUnit#13793521]
(191) LogicalRelation
Arguments: parquet, [systemId#13793522, internalUUID#13793523, product#13793524, plant#13793525, calculationDateTime#13793526, stockQuantities#13793527], false
(192) Repartition
Arguments: 37, true
(193) LogicalRelation
Arguments: parquet, [marketUnit#13793528, description#13793529, articleHierarchy#13793530, defaultCurrency#13793531, responsibilities#13793532, replenishmentTypes#13793533, distributionCenters#13793534, assignedArticleHierarchyNodes#13793535, minOrderQtySetting#13793536, listingCheck#13793537, odsSelection#13793538, demandProfiles#13793539, constraintProfiles#13793540, optimizationProfiles#13793541, orderGroupSplitProfiles#13793542, supplierMinimumProfiles#13793543, multipleRestrictionProfiles#13793544, preferredUomSource#13793545, handlingOfUnfulfilledDemands#13793546, negligibleQuantitiesThreshold#13793547, eventtype#13793548, minOrderQtySettingInternal#13793549], false
(194) Repartition
Arguments: 37, true
(195) Filter
Arguments: (marketUnit#13793528 <=> AUTO_ALL_ProdLoc)
(196) Project
Arguments: [marketUnit#13793528, description#13793529, articleHierarchy#13793530, defaultCurrency#13793531, responsibilities#13793532, replenishmentTypes#13793533, distributionCenters#13793534, assignedArticleHierarchyNodes#13793535, minOrderQtySetting#13793536, listingCheck#13793537, odsSelection#13793538, demandProfiles#13793539, constraintProfiles#13793540, optimizationProfiles#13793541, orderGroupSplitProfiles#13793542, supplierMinimumProfiles#13793543, multipleRestrictionProfiles#13793544, preferredUomSource#13793545, handlingOfUnfulfilledDemands#13793546, negligibleQuantitiesThreshold#13793547, eventtype#13793548, minOrderQtySettingInternal#13793549]
(197) Project
Arguments: [distributionCenters#13793534]
(198) Generate
Arguments: explode(distributionCenters#13793534), false, [distributionCenters#13793550]
(199) Project
Arguments: [distributionCenters#13793550]
(200) Generate
Arguments: explode(distributionCenters#13793550.storageLocations), false, [storageLocations#13793551]
(201) Project
Arguments: [distributionCenters#13793550.id AS plantId#13793552, distributionCenters#13793550.internalRefUUID AS plantUuid#13793553, storageLocations#13793551]
(202) Project
Arguments: [plantId#13793552, plantUuid#13793553, storageLocations#13793551.id AS storageLocId#13793554, storageLocations#13793551.internalRefUUID AS storageLocUuid#13793555]
(203) LogicalRelation
Arguments: parquet, [product#13793556, plant#13793557, orderDateTime#13793558, planningStartDateTime#13793559], false
(204) RepartitionByExpression
Arguments: [product#13793556, plant#13793557], 37
(205) Project
Arguments: [product#13793556, plant#13793557, orderDateTime#13793558]
(206) LogicalRelation
Arguments: parquet, [systemId#13793560, internalUUID#13793561, plant#13793562, product#13793563, blockedForReplenishmentStartingFrom#13793564, productionAspect#13793565, salesPlant#13793566, listing#13793567, sourceOfSupplyCategory#13793568], false
(207) Repartition
Arguments: 37, true
(208) Project
Arguments: [systemId#13793560, internalUUID#13793561, plant#13793562, product#13793563, blockedForReplenishmentStartingFrom#13793564, productionAspect#13793565, salesPlant#13793566, listing#13793567, sourceOfSupplyCategory#13793568, struct(systemId, systemId#13793560, internalUUID, internalUUID#13793561, plant, plant#13793562, product, product#13793563, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#13793564, productionAspect, productionAspect#13793565, salesPlant, salesPlant#13793566, listing, listing#13793567, sourceOfSupplyCategory, sourceOfSupplyCategory#13793568) AS productPlant#13793569]
(209) Project
Arguments: [productPlant#13793569]
(210) Join
Arguments: LeftOuter, ((product#13793556 <=> productPlant#13793569.product.internalRefUUID) AND (plant#13793557 <=> productPlant#13793569.plant.internalRefUUID))
(211) Project
Arguments: [product#13793556, plant#13793557, orderDateTime#13793558, productPlant#13793569]
(212) LogicalRelation
Arguments: parquet, [systemId#13793570, internalUUID#13793571, id#13793572, displayId#13793573, name#13793574, baseUnitOfMeasure#13793575, unitOfMeasures#13793576, unitOfMeasureConversions#13793577, productionAspect#13793578, salesAspect#13793579, procurementAspect#13793580, productGroup#13793581], false
(213) Repartition
Arguments: 37, true
(214) Join
Arguments: LeftOuter, (product#13793556 = internalUUID#13793571)
(215) Project
Arguments: [product#13793556, plant#13793557, orderDateTime#13793558, productPlant#13793569, systemId#13793570, internalUUID#13793571, id#13793572, displayId#13793573, name#13793574, baseUnitOfMeasure#13793575, unitOfMeasures#13793576, unitOfMeasureConversions#13793577, productionAspect#13793578, salesAspect#13793579, procurementAspect#13793580, productGroup#13793581, filter(unitOfMeasureConversions#13793577, lambdafunction((((lambda u#13792048.measurementUnit1.code = productPlant#13793569.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#13792048.measurementUnit1.internalRefUUID = productPlant#13793569.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#13792048.measurementUnit2.code = baseUnitOfMeasure#13793575.code) AND (lambda u#13792048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#13793575.internalRefUUID))), lambda u#13792048, false)) AS filteredUnitOfMeasureConversions#13793582]
(216) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13793582.quantityNumerator), true, [quantityNumerator#13793583]
(217) Project
Arguments: [product#13793556, plant#13793557, orderDateTime#13793558, productPlant#13793569, systemId#13793570, internalUUID#13793571, id#13793572, displayId#13793573, name#13793574, baseUnitOfMeasure#13793575, unitOfMeasures#13793576, unitOfMeasureConversions#13793577, productionAspect#13793578, salesAspect#13793579, procurementAspect#13793580, productGroup#13793581, filteredUnitOfMeasureConversions#13793582, quantityNumerator#13793583]
(218) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13793582.quantityDenominator), true, [quantityDenominator#13793584]
(219) Project
Arguments: [product#13793556, plant#13793557, orderDateTime#13793558, productPlant#13793569, systemId#13793570, internalUUID#13793571, id#13793572, displayId#13793573, name#13793574, baseUnitOfMeasure#13793575, unitOfMeasures#13793576, unitOfMeasureConversions#13793577, productionAspect#13793578, salesAspect#13793579, procurementAspect#13793580, productGroup#13793581, filteredUnitOfMeasureConversions#13793582, quantityNumerator#13793583, quantityDenominator#13793584]
(220) Project
Arguments: [product#13793556, plant#13793557, orderDateTime#13793558, productPlant#13793569, systemId#13793570, internalUUID#13793571, id#13793572, displayId#13793573, name#13793574, baseUnitOfMeasure#13793575, unitOfMeasures#13793576, unitOfMeasureConversions#13793577, productionAspect#13793578, salesAspect#13793579, procurementAspect#13793580, productGroup#13793581, filteredUnitOfMeasureConversions#13793582, quantityNumerator#13793583, quantityDenominator#13793584, (cast(quantityNumerator#13793583 as double) / cast(quantityDenominator#13793584 as double)) AS outboundUnit#13793585]
(221) Project
Arguments: [product#13793556, plant#13793557, orderDateTime#13793558, productPlant#13793569, systemId#13793570, internalUUID#13793571, id#13793572, displayId#13793573, name#13793574, baseUnitOfMeasure#13793575, unitOfMeasures#13793576, unitOfMeasureConversions#13793577, productionAspect#13793578, salesAspect#13793579, procurementAspect#13793580, productGroup#13793581, filteredUnitOfMeasureConversions#13793582, quantityNumerator#13793583, quantityDenominator#13793584, CASE WHEN (isnull(outboundUnit#13793585) OR (outboundUnit#13793585 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#13793585 END AS outboundUnit#13793586]
(222) Project
Arguments: [product#13793556, plant#13793557, orderDateTime#13793558, productPlant#13793569, outboundUnit#13793586]
(223) Project
Arguments: [plant#13793557]
(224) Deduplicate
Arguments: [plant#13793557]
(225) Join
Arguments: Inner, (plantUuid#13793553 = plant#13793557)
(226) Project
Arguments: [plantId#13793552, plantUuid#13793553, storageLocId#13793554, storageLocUuid#13793555]
(227) Join
Arguments: Inner, (plant#13793525.internalRefUUID <=> plantUuid#13793553)
(228) Generate
Arguments: explode(filter(stockQuantities#13793527, lambdafunction(((lambda x#13792128.storageLocation.internalRefUuid = storageLocUuid#13793555) AND (lambda x#13792128.storageLocation.Id = storageLocId#13793554)), lambda x#13792128, false))), false, [stockQuantity#13793587]
(229) Project
Arguments: [systemId#13793522, internalUUID#13793523, product#13793524, plant#13793525, calculationDateTime#13793526, stockQuantities#13793527, plantId#13793552, plantUuid#13793553, storageLocId#13793554, storageLocUuid#13793555, stockQuantity#13793587]
(230) Aggregate
Arguments: [plantUuid#13793553, internalUUID#13793523, plant#13793525, product#13793524, systemId#13793522], [plantUuid#13793553, internalUUID#13793523, plant#13793525, product#13793524, systemId#13793522, first(calculationDateTime#13793526, false) AS calculationDateTime#13793588, collect_list(stockQuantity#13793587, 0, 0) AS stockQuantities#13793589]
(231) Project
Arguments: [systemId#13793522, internalUUID#13793523, product#13793524, plant#13793525, calculationDateTime#13793588, stockQuantities#13793589]
(232) Generate
Arguments: explode(stockQuantities#13793589), false, [stockQuantity#13793590]
(233) Project
Arguments: [systemId#13793522, internalUUID#13793523, product#13793524, plant#13793525, calculationDateTime#13793588, stockQuantities#13793589, stockQuantity#13793590]
(234) Project
Arguments: [plant#13793525.id AS plant#13793591, plant#13793525.internalRefUUID AS plantUuid#13793592, product#13793524.id AS product#13793593, product#13793524.internalRefUUID AS productUuid#13793594, calculationDateTime#13793588, stockQuantity#13793590.storagelocation.id AS storageLocId#13793595, stockQuantity#13793590.storagelocation.internalRefUUID AS storageLocUuid#13793596, stockQuantity#13793590.quantity.measure AS quantity#13793597, stockQuantity#13793590.specialStockIndicator.code AS specialStockIndicator#13793598, stockQuantity#13793590.stockType.code AS stockType#13793599]
(235) Filter
Arguments: ((specialStockIndicator#13793598 = ) AND (stockType#13793599 = 01))
(236) LogicalRelation
Arguments: parquet, [product#13793600, plant#13793601, orderDateTime#13793602, planningStartDateTime#13793603], false
(237) RepartitionByExpression
Arguments: [product#13793600, plant#13793601], 37
(238) Project
Arguments: [product#13793600, plant#13793601, orderDateTime#13793602]
(239) LogicalRelation
Arguments: parquet, [systemId#13793604, internalUUID#13793605, plant#13793606, product#13793607, blockedForReplenishmentStartingFrom#13793608, productionAspect#13793609, salesPlant#13793610, listing#13793611, sourceOfSupplyCategory#13793612], false
(240) Repartition
Arguments: 37, true
(241) Project
Arguments: [systemId#13793604, internalUUID#13793605, plant#13793606, product#13793607, blockedForReplenishmentStartingFrom#13793608, productionAspect#13793609, salesPlant#13793610, listing#13793611, sourceOfSupplyCategory#13793612, struct(systemId, systemId#13793604, internalUUID, internalUUID#13793605, plant, plant#13793606, product, product#13793607, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#13793608, productionAspect, productionAspect#13793609, salesPlant, salesPlant#13793610, listing, listing#13793611, sourceOfSupplyCategory, sourceOfSupplyCategory#13793612) AS productPlant#13793613]
(242) Project
Arguments: [productPlant#13793613]
(243) Join
Arguments: LeftOuter, ((product#13793600 <=> productPlant#13793613.product.internalRefUUID) AND (plant#13793601 <=> productPlant#13793613.plant.internalRefUUID))
(244) Project
Arguments: [product#13793600, plant#13793601, orderDateTime#13793602, productPlant#13793613]
(245) LogicalRelation
Arguments: parquet, [systemId#13793614, internalUUID#13793615, id#13793616, displayId#13793617, name#13793618, baseUnitOfMeasure#13793619, unitOfMeasures#13793620, unitOfMeasureConversions#13793621, productionAspect#13793622, salesAspect#13793623, procurementAspect#13793624, productGroup#13793625], false
(246) Repartition
Arguments: 37, true
(247) Join
Arguments: LeftOuter, (product#13793600 = internalUUID#13793615)
(248) Project
Arguments: [product#13793600, plant#13793601, orderDateTime#13793602, productPlant#13793613, systemId#13793614, internalUUID#13793615, id#13793616, displayId#13793617, name#13793618, baseUnitOfMeasure#13793619, unitOfMeasures#13793620, unitOfMeasureConversions#13793621, productionAspect#13793622, salesAspect#13793623, procurementAspect#13793624, productGroup#13793625, filter(unitOfMeasureConversions#13793621, lambdafunction((((lambda u#13792048.measurementUnit1.code = productPlant#13793613.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#13792048.measurementUnit1.internalRefUUID = productPlant#13793613.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#13792048.measurementUnit2.code = baseUnitOfMeasure#13793619.code) AND (lambda u#13792048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#13793619.internalRefUUID))), lambda u#13792048, false)) AS filteredUnitOfMeasureConversions#13793626]
(249) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13793626.quantityNumerator), true, [quantityNumerator#13793627]
(250) Project
Arguments: [product#13793600, plant#13793601, orderDateTime#13793602, productPlant#13793613, systemId#13793614, internalUUID#13793615, id#13793616, displayId#13793617, name#13793618, baseUnitOfMeasure#13793619, unitOfMeasures#13793620, unitOfMeasureConversions#13793621, productionAspect#13793622, salesAspect#13793623, procurementAspect#13793624, productGroup#13793625, filteredUnitOfMeasureConversions#13793626, quantityNumerator#13793627]
(251) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13793626.quantityDenominator), true, [quantityDenominator#13793628]
(252) Project
Arguments: [product#13793600, plant#13793601, orderDateTime#13793602, productPlant#13793613, systemId#13793614, internalUUID#13793615, id#13793616, displayId#13793617, name#13793618, baseUnitOfMeasure#13793619, unitOfMeasures#13793620, unitOfMeasureConversions#13793621, productionAspect#13793622, salesAspect#13793623, procurementAspect#13793624, productGroup#13793625, filteredUnitOfMeasureConversions#13793626, quantityNumerator#13793627, quantityDenominator#13793628]
(253) Project
Arguments: [product#13793600, plant#13793601, orderDateTime#13793602, productPlant#13793613, systemId#13793614, internalUUID#13793615, id#13793616, displayId#13793617, name#13793618, baseUnitOfMeasure#13793619, unitOfMeasures#13793620, unitOfMeasureConversions#13793621, productionAspect#13793622, salesAspect#13793623, procurementAspect#13793624, productGroup#13793625, filteredUnitOfMeasureConversions#13793626, quantityNumerator#13793627, quantityDenominator#13793628, (cast(quantityNumerator#13793627 as double) / cast(quantityDenominator#13793628 as double)) AS outboundUnit#13793629]
(254) Project
Arguments: [product#13793600, plant#13793601, orderDateTime#13793602, productPlant#13793613, systemId#13793614, internalUUID#13793615, id#13793616, displayId#13793617, name#13793618, baseUnitOfMeasure#13793619, unitOfMeasures#13793620, unitOfMeasureConversions#13793621, productionAspect#13793622, salesAspect#13793623, procurementAspect#13793624, productGroup#13793625, filteredUnitOfMeasureConversions#13793626, quantityNumerator#13793627, quantityDenominator#13793628, CASE WHEN (isnull(outboundUnit#13793629) OR (outboundUnit#13793629 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#13793629 END AS outboundUnit#13793630]
(255) Project
Arguments: [product#13793600, plant#13793601, orderDateTime#13793602, productPlant#13793613, outboundUnit#13793630]
(256) Join
Arguments: Inner, ((plantUuid#13793592 = plant#13793601) AND (productUuid#13793594 = product#13793600))
(257) Filter
Arguments: (calculationDateTime#13793588 <= orderDateTime#13793602)
(258) Project
Arguments: [plantUuid#13793592 AS plant#13793631, productUuid#13793594 AS product#13793632, storageLocId#13793595, calculationDateTime#13793588, quantity#13793597]
(259) LogicalRelation
Arguments: parquet, [systemId#13793633, internalUUID#13793634, product#13793635, plant#13793636, calculationDateTime#13793637, stockQuantities#13793638], false
(260) Repartition
Arguments: 37, true
(261) LogicalRelation
Arguments: parquet, [marketUnit#13793639, description#13793640, articleHierarchy#13793641, defaultCurrency#13793642, responsibilities#13793643, replenishmentTypes#13793644, distributionCenters#13793645, assignedArticleHierarchyNodes#13793646, minOrderQtySetting#13793647, listingCheck#13793648, odsSelection#13793649, demandProfiles#13793650, constraintProfiles#13793651, optimizationProfiles#13793652, orderGroupSplitProfiles#13793653, supplierMinimumProfiles#13793654, multipleRestrictionProfiles#13793655, preferredUomSource#13793656, handlingOfUnfulfilledDemands#13793657, negligibleQuantitiesThreshold#13793658, eventtype#13793659, minOrderQtySettingInternal#13793660], false
(262) Repartition
Arguments: 37, true
(263) Filter
Arguments: (marketUnit#13793639 <=> AUTO_ALL_ProdLoc)
(264) Project
Arguments: [marketUnit#13793639, description#13793640, articleHierarchy#13793641, defaultCurrency#13793642, responsibilities#13793643, replenishmentTypes#13793644, distributionCenters#13793645, assignedArticleHierarchyNodes#13793646, minOrderQtySetting#13793647, listingCheck#13793648, odsSelection#13793649, demandProfiles#13793650, constraintProfiles#13793651, optimizationProfiles#13793652, orderGroupSplitProfiles#13793653, supplierMinimumProfiles#13793654, multipleRestrictionProfiles#13793655, preferredUomSource#13793656, handlingOfUnfulfilledDemands#13793657, negligibleQuantitiesThreshold#13793658, eventtype#13793659, minOrderQtySettingInternal#13793660]
(265) Project
Arguments: [distributionCenters#13793645]
(266) Generate
Arguments: explode(distributionCenters#13793645), false, [distributionCenters#13793661]
(267) Project
Arguments: [distributionCenters#13793661]
(268) Generate
Arguments: explode(distributionCenters#13793661.storageLocations), false, [storageLocations#13793662]
(269) Project
Arguments: [distributionCenters#13793661.id AS plantId#13793663, distributionCenters#13793661.internalRefUUID AS plantUuid#13793664, storageLocations#13793662]
(270) Project
Arguments: [plantId#13793663, plantUuid#13793664, storageLocations#13793662.id AS storageLocId#13793665, storageLocations#13793662.internalRefUUID AS storageLocUuid#13793666]
(271) LogicalRelation
Arguments: parquet, [product#13793667, plant#13793668, orderDateTime#13793669, planningStartDateTime#13793670], false
(272) RepartitionByExpression
Arguments: [product#13793667, plant#13793668], 37
(273) Project
Arguments: [product#13793667, plant#13793668, orderDateTime#13793669]
(274) LogicalRelation
Arguments: parquet, [systemId#13793671, internalUUID#13793672, plant#13793673, product#13793674, blockedForReplenishmentStartingFrom#13793675, productionAspect#13793676, salesPlant#13793677, listing#13793678, sourceOfSupplyCategory#13793679], false
(275) Repartition
Arguments: 37, true
(276) Project
Arguments: [systemId#13793671, internalUUID#13793672, plant#13793673, product#13793674, blockedForReplenishmentStartingFrom#13793675, productionAspect#13793676, salesPlant#13793677, listing#13793678, sourceOfSupplyCategory#13793679, struct(systemId, systemId#13793671, internalUUID, internalUUID#13793672, plant, plant#13793673, product, product#13793674, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#13793675, productionAspect, productionAspect#13793676, salesPlant, salesPlant#13793677, listing, listing#13793678, sourceOfSupplyCategory, sourceOfSupplyCategory#13793679) AS productPlant#13793680]
(277) Project
Arguments: [productPlant#13793680]
(278) Join
Arguments: LeftOuter, ((product#13793667 <=> productPlant#13793680.product.internalRefUUID) AND (plant#13793668 <=> productPlant#13793680.plant.internalRefUUID))
(279) Project
Arguments: [product#13793667, plant#13793668, orderDateTime#13793669, productPlant#13793680]
(280) LogicalRelation
Arguments: parquet, [systemId#13793681, internalUUID#13793682, id#13793683, displayId#13793684, name#13793685, baseUnitOfMeasure#13793686, unitOfMeasures#13793687, unitOfMeasureConversions#13793688, productionAspect#13793689, salesAspect#13793690, procurementAspect#13793691, productGroup#13793692], false
(281) Repartition
Arguments: 37, true
(282) Join
Arguments: LeftOuter, (product#13793667 = internalUUID#13793682)
(283) Project
Arguments: [product#13793667, plant#13793668, orderDateTime#13793669, productPlant#13793680, systemId#13793681, internalUUID#13793682, id#13793683, displayId#13793684, name#13793685, baseUnitOfMeasure#13793686, unitOfMeasures#13793687, unitOfMeasureConversions#13793688, productionAspect#13793689, salesAspect#13793690, procurementAspect#13793691, productGroup#13793692, filter(unitOfMeasureConversions#13793688, lambdafunction((((lambda u#13792048.measurementUnit1.code = productPlant#13793680.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#13792048.measurementUnit1.internalRefUUID = productPlant#13793680.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#13792048.measurementUnit2.code = baseUnitOfMeasure#13793686.code) AND (lambda u#13792048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#13793686.internalRefUUID))), lambda u#13792048, false)) AS filteredUnitOfMeasureConversions#13793693]
(284) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13793693.quantityNumerator), true, [quantityNumerator#13793694]
(285) Project
Arguments: [product#13793667, plant#13793668, orderDateTime#13793669, productPlant#13793680, systemId#13793681, internalUUID#13793682, id#13793683, displayId#13793684, name#13793685, baseUnitOfMeasure#13793686, unitOfMeasures#13793687, unitOfMeasureConversions#13793688, productionAspect#13793689, salesAspect#13793690, procurementAspect#13793691, productGroup#13793692, filteredUnitOfMeasureConversions#13793693, quantityNumerator#13793694]
(286) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13793693.quantityDenominator), true, [quantityDenominator#13793695]
(287) Project
Arguments: [product#13793667, plant#13793668, orderDateTime#13793669, productPlant#13793680, systemId#13793681, internalUUID#13793682, id#13793683, displayId#13793684, name#13793685, baseUnitOfMeasure#13793686, unitOfMeasures#13793687, unitOfMeasureConversions#13793688, productionAspect#13793689, salesAspect#13793690, procurementAspect#13793691, productGroup#13793692, filteredUnitOfMeasureConversions#13793693, quantityNumerator#13793694, quantityDenominator#13793695]
(288) Project
Arguments: [product#13793667, plant#13793668, orderDateTime#13793669, productPlant#13793680, systemId#13793681, internalUUID#13793682, id#13793683, displayId#13793684, name#13793685, baseUnitOfMeasure#13793686, unitOfMeasures#13793687, unitOfMeasureConversions#13793688, productionAspect#13793689, salesAspect#13793690, procurementAspect#13793691, productGroup#13793692, filteredUnitOfMeasureConversions#13793693, quantityNumerator#13793694, quantityDenominator#13793695, (cast(quantityNumerator#13793694 as double) / cast(quantityDenominator#13793695 as double)) AS outboundUnit#13793696]
(289) Project
Arguments: [product#13793667, plant#13793668, orderDateTime#13793669, productPlant#13793680, systemId#13793681, internalUUID#13793682, id#13793683, displayId#13793684, name#13793685, baseUnitOfMeasure#13793686, unitOfMeasures#13793687, unitOfMeasureConversions#13793688, productionAspect#13793689, salesAspect#13793690, procurementAspect#13793691, productGroup#13793692, filteredUnitOfMeasureConversions#13793693, quantityNumerator#13793694, quantityDenominator#13793695, CASE WHEN (isnull(outboundUnit#13793696) OR (outboundUnit#13793696 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#13793696 END AS outboundUnit#13793697]
(290) Project
Arguments: [product#13793667, plant#13793668, orderDateTime#13793669, productPlant#13793680, outboundUnit#13793697]
(291) Project
Arguments: [plant#13793668]
(292) Deduplicate
Arguments: [plant#13793668]
(293) Join
Arguments: Inner, (plantUuid#13793664 = plant#13793668)
(294) Project
Arguments: [plantId#13793663, plantUuid#13793664, storageLocId#13793665, storageLocUuid#13793666]
(295) Join
Arguments: Inner, (plant#13793636.internalRefUUID <=> plantUuid#13793664)
(296) Generate
Arguments: explode(filter(stockQuantities#13793638, lambdafunction(((lambda x#13792128.storageLocation.internalRefUuid = storageLocUuid#13793666) AND (lambda x#13792128.storageLocation.Id = storageLocId#13793665)), lambda x#13792128, false))), false, [stockQuantity#13793698]
(297) Project
Arguments: [systemId#13793633, internalUUID#13793634, product#13793635, plant#13793636, calculationDateTime#13793637, stockQuantities#13793638, plantId#13793663, plantUuid#13793664, storageLocId#13793665, storageLocUuid#13793666, stockQuantity#13793698]
(298) Aggregate
Arguments: [plantUuid#13793664, internalUUID#13793634, plant#13793636, product#13793635, systemId#13793633], [plantUuid#13793664, internalUUID#13793634, plant#13793636, product#13793635, systemId#13793633, first(calculationDateTime#13793637, false) AS calculationDateTime#13793699, collect_list(stockQuantity#13793698, 0, 0) AS stockQuantities#13793700]
(299) Project
Arguments: [systemId#13793633, internalUUID#13793634, product#13793635, plant#13793636, calculationDateTime#13793699, stockQuantities#13793700]
(300) Generate
Arguments: explode(stockQuantities#13793700), false, [stockQuantity#13793701]
(301) Project
Arguments: [systemId#13793633, internalUUID#13793634, product#13793635, plant#13793636, calculationDateTime#13793699, stockQuantities#13793700, stockQuantity#13793701]
(302) Project
Arguments: [plant#13793636.id AS plant#13793702, plant#13793636.internalRefUUID AS plantUuid#13793703, product#13793635.id AS product#13793704, product#13793635.internalRefUUID AS productUuid#13793705, calculationDateTime#13793699, stockQuantity#13793701.storagelocation.id AS storageLocId#13793706, stockQuantity#13793701.storagelocation.internalRefUUID AS storageLocUuid#13793707, stockQuantity#13793701.quantity.measure AS quantity#13793708, stockQuantity#13793701.specialStockIndicator.code AS specialStockIndicator#13793709, stockQuantity#13793701.stockType.code AS stockType#13793710]
(303) Filter
Arguments: ((specialStockIndicator#13793709 = ) AND (stockType#13793710 = 01))
(304) LogicalRelation
Arguments: parquet, [product#13793711, plant#13793712, orderDateTime#13793713, planningStartDateTime#13793714], false
(305) RepartitionByExpression
Arguments: [product#13793711, plant#13793712], 37
(306) Project
Arguments: [product#13793711, plant#13793712, orderDateTime#13793713]
(307) LogicalRelation
Arguments: parquet, [systemId#13793715, internalUUID#13793716, plant#13793717, product#13793718, blockedForReplenishmentStartingFrom#13793719, productionAspect#13793720, salesPlant#13793721, listing#13793722, sourceOfSupplyCategory#13793723], false
(308) Repartition
Arguments: 37, true
(309) Project
Arguments: [systemId#13793715, internalUUID#13793716, plant#13793717, product#13793718, blockedForReplenishmentStartingFrom#13793719, productionAspect#13793720, salesPlant#13793721, listing#13793722, sourceOfSupplyCategory#13793723, struct(systemId, systemId#13793715, internalUUID, internalUUID#13793716, plant, plant#13793717, product, product#13793718, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#13793719, productionAspect, productionAspect#13793720, salesPlant, salesPlant#13793721, listing, listing#13793722, sourceOfSupplyCategory, sourceOfSupplyCategory#13793723) AS productPlant#13793724]
(310) Project
Arguments: [productPlant#13793724]
(311) Join
Arguments: LeftOuter, ((product#13793711 <=> productPlant#13793724.product.internalRefUUID) AND (plant#13793712 <=> productPlant#13793724.plant.internalRefUUID))
(312) Project
Arguments: [product#13793711, plant#13793712, orderDateTime#13793713, productPlant#13793724]
(313) LogicalRelation
Arguments: parquet, [systemId#13793725, internalUUID#13793726, id#13793727, displayId#13793728, name#13793729, baseUnitOfMeasure#13793730, unitOfMeasures#13793731, unitOfMeasureConversions#13793732, productionAspect#13793733, salesAspect#13793734, procurementAspect#13793735, productGroup#13793736], false
(314) Repartition
Arguments: 37, true
(315) Join
Arguments: LeftOuter, (product#13793711 = internalUUID#13793726)
(316) Project
Arguments: [product#13793711, plant#13793712, orderDateTime#13793713, productPlant#13793724, systemId#13793725, internalUUID#13793726, id#13793727, displayId#13793728, name#13793729, baseUnitOfMeasure#13793730, unitOfMeasures#13793731, unitOfMeasureConversions#13793732, productionAspect#13793733, salesAspect#13793734, procurementAspect#13793735, productGroup#13793736, filter(unitOfMeasureConversions#13793732, lambdafunction((((lambda u#13792048.measurementUnit1.code = productPlant#13793724.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#13792048.measurementUnit1.internalRefUUID = productPlant#13793724.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#13792048.measurementUnit2.code = baseUnitOfMeasure#13793730.code) AND (lambda u#13792048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#13793730.internalRefUUID))), lambda u#13792048, false)) AS filteredUnitOfMeasureConversions#13793737]
(317) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13793737.quantityNumerator), true, [quantityNumerator#13793738]
(318) Project
Arguments: [product#13793711, plant#13793712, orderDateTime#13793713, productPlant#13793724, systemId#13793725, internalUUID#13793726, id#13793727, displayId#13793728, name#13793729, baseUnitOfMeasure#13793730, unitOfMeasures#13793731, unitOfMeasureConversions#13793732, productionAspect#13793733, salesAspect#13793734, procurementAspect#13793735, productGroup#13793736, filteredUnitOfMeasureConversions#13793737, quantityNumerator#13793738]
(319) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13793737.quantityDenominator), true, [quantityDenominator#13793739]
(320) Project
Arguments: [product#13793711, plant#13793712, orderDateTime#13793713, productPlant#13793724, systemId#13793725, internalUUID#13793726, id#13793727, displayId#13793728, name#13793729, baseUnitOfMeasure#13793730, unitOfMeasures#13793731, unitOfMeasureConversions#13793732, productionAspect#13793733, salesAspect#13793734, procurementAspect#13793735, productGroup#13793736, filteredUnitOfMeasureConversions#13793737, quantityNumerator#13793738, quantityDenominator#13793739]
(321) Project
Arguments: [product#13793711, plant#13793712, orderDateTime#13793713, productPlant#13793724, systemId#13793725, internalUUID#13793726, id#13793727, displayId#13793728, name#13793729, baseUnitOfMeasure#13793730, unitOfMeasures#13793731, unitOfMeasureConversions#13793732, productionAspect#13793733, salesAspect#13793734, procurementAspect#13793735, productGroup#13793736, filteredUnitOfMeasureConversions#13793737, quantityNumerator#13793738, quantityDenominator#13793739, (cast(quantityNumerator#13793738 as double) / cast(quantityDenominator#13793739 as double)) AS outboundUnit#13793740]
(322) Project
Arguments: [product#13793711, plant#13793712, orderDateTime#13793713, productPlant#13793724, systemId#13793725, internalUUID#13793726, id#13793727, displayId#13793728, name#13793729, baseUnitOfMeasure#13793730, unitOfMeasures#13793731, unitOfMeasureConversions#13793732, productionAspect#13793733, salesAspect#13793734, procurementAspect#13793735, productGroup#13793736, filteredUnitOfMeasureConversions#13793737, quantityNumerator#13793738, quantityDenominator#13793739, CASE WHEN (isnull(outboundUnit#13793740) OR (outboundUnit#13793740 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#13793740 END AS outboundUnit#13793741]
(323) Project
Arguments: [product#13793711, plant#13793712, orderDateTime#13793713, productPlant#13793724, outboundUnit#13793741]
(324) Join
Arguments: Inner, ((plantUuid#13793703 = plant#13793712) AND (productUuid#13793705 = product#13793711))
(325) Filter
Arguments: (calculationDateTime#13793699 <= orderDateTime#13793713)
(326) Project
Arguments: [plantUuid#13793703 AS plant#13793742, productUuid#13793705 AS product#13793743, storageLocId#13793706, calculationDateTime#13793699, quantity#13793708]
(327) Aggregate
Arguments: [plant#13793742, product#13793743, storageLocId#13793706], [plant#13793742, product#13793743, storageLocId#13793706, max(calculationDateTime#13793699) AS max_calc_datetime#13793744]
(328) Join
Arguments: Inner, ((((plant#13793631 <=> plant#13793742) AND (product#13793632 <=> product#13793743)) AND (storageLocId#13793595 <=> storageLocId#13793706)) AND (calculationDateTime#13793588 <=> max_calc_datetime#13793744))
(329) Project
Arguments: [plant#13793631, product#13793632, storageLocId#13793595, calculationDateTime#13793588, quantity#13793597]
(330) Aggregate
Arguments: [product#13793632, plant#13793631], [product#13793632, plant#13793631, sum(quantity#13793597) AS quantitySum#13793745, min(calculationDateTime#13793588) AS minCalculationDateTime#13793746]
(331) Project
Arguments: [product#13793632, plant#13793631, quantitySum#13793745, minCalculationDateTime#13793746, round(quantitySum#13793745, 0) AS roundedQuantitySum#13793747]
(332) Join
Arguments: LeftOuter, ((plant#13793492 = plant#13793631) AND (product#13793491 = product#13793632))
(333) Project
Arguments: [product#13793491, plant#13793492, orderDateTime#13793493, productPlant#13793504, outboundUnit#13793521, roundedQuantitySum#13793747, minCalculationDateTime#13793746]
(334) Project
Arguments: [product#13793491, plant#13793492, orderDateTime#13793493, productPlant#13793504, outboundUnit#13793521, roundedQuantitySum#13793747, minCalculationDateTime#13793746, CASE WHEN isnotnull(minCalculationDateTime#13793746) THEN minCalculationDateTime#13793746 ELSE orderDateTime#13793493 END AS stockDatetime#13793748]
(335) Project
Arguments: [product#13793491, plant#13793492, orderDateTime#13793493, productPlant#13793504, outboundUnit#13793521, roundedQuantitySum#13793747, minCalculationDateTime#13793746, stockDatetime#13793748, CASE WHEN isnotnull(roundedQuantitySum#13793747) THEN array(roundedQuantitySum#13793747) ELSE array(0.0) END AS stockBatchQuantities#13793749]
(336) Project
Arguments: [product#13793491, plant#13793492, orderDateTime#13793493, productPlant#13793504, outboundUnit#13793521, roundedQuantitySum#13793747, minCalculationDateTime#13793746, stockDatetime#13793748, stockBatchQuantities#13793749, array(2199-01-01 00:00:00) AS stockBatchShelfLifeEndDatetimes#13793750]
(337) Project
Arguments: [product#13793491, plant#13793492, orderDateTime#13793493, productPlant#13793504, outboundUnit#13793521, roundedQuantitySum#13793747, stockDatetime#13793748, stockBatchQuantities#13793749, stockBatchShelfLifeEndDatetimes#13793750]
(338) Project
Arguments: [product#13793491, plant#13793492, orderDateTime#13793493, productPlant#13793504, outboundUnit#13793521, stockDatetime#13793748, stockBatchQuantities#13793749, stockBatchShelfLifeEndDatetimes#13793750]
(339) LogicalRelation
Arguments: parquet, [product#13792374, plant#13792375, demandChannel#13792376, demandStream#13792377, considerVariance#13792378, demandTimeBuckets#13792379, demandPointInTimeStart#13792380, demandPointInTimeEnd#13792381, demandPointInTime#13792382], false
(340) Join
Arguments: LeftOuter, ((plant#13792375 <=> plant#13793492) AND (product#13792374 <=> product#13793491))
(341) Project
Arguments: [product#13793491, plant#13793492, orderDateTime#13793493, productPlant#13793504, outboundUnit#13793521, stockDatetime#13793748, stockBatchQuantities#13793749, stockBatchShelfLifeEndDatetimes#13793750, product#13792374, plant#13792375, demandChannel#13792376, demandStream#13792377, considerVariance#13792378, demandTimeBuckets#13792379, demandPointInTimeStart#13792380, demandPointInTimeEnd#13792381, demandPointInTime#13792382, CASE WHEN isnotnull(product#13792374) THEN struct(demandChannel, demandChannel#13792376, demandStream, demandStream#13792377, considerVariance, considerVariance#13792378, demandTimeBuckets, demandTimeBuckets#13792379, demandPointInTimeStart, demandPointInTimeStart#13792380, demandPointInTimeEnd, demandPointInTimeEnd#13792381, demandPointInTime, demandPointInTime#13792382) 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#13792384]
(342) Aggregate
Arguments: [product#13793491, plant#13793492, orderDateTime#13793493, productPlant#13793504, outboundUnit#13793521, stockDatetime#13793748, stockBatchQuantities#13793749, stockBatchShelfLifeEndDatetimes#13793750], [product#13793491, plant#13793492, orderDateTime#13793493, productPlant#13793504, outboundUnit#13793521, stockDatetime#13793748, stockBatchQuantities#13793749, stockBatchShelfLifeEndDatetimes#13793750, collect_list(rawDemands#13792384, 0, 0) AS rawDemands#13792385]
(343) SubqueryAlias
Arguments: wl
(344) LogicalRelation
Arguments: parquet, [systemId#13793441, internalUUID#13793442, id#13793443, displayId#13793444, name#13793445, category#13793446, companyCode#13793447, address#13793448, mainDistributionChain#13793449, mainPurchasingOrganization#13793450, validPurchasingOrganizations#13793451, productGroup#13793452], false
(345) Repartition
Arguments: 37, true
(346) Project
Arguments: [systemId#13793441, internalUUID#13793442, id#13793443, displayId#13793444, name#13793445, category#13793446, companyCode#13793447, address#13793448, mainDistributionChain#13793449, mainPurchasingOrganization#13793450, validPurchasingOrganizations#13793451, productGroup#13793452, address#13793448.timezone.code AS timezonecode#13793454]
(347) Join
Arguments: LeftOuter, (plant#13793492 <=> internalUUID#13793442)
(348) Project
Arguments: [product#13793491, plant#13793492, orderDateTime#13793493, productPlant#13793504, outboundUnit#13793521, stockDatetime#13793748, stockBatchQuantities#13793749, stockBatchShelfLifeEndDatetimes#13793750, rawDemands#13792385, systemId#13793441, internalUUID#13793442, id#13793443, displayId#13793444, name#13793445, category#13793446, companyCode#13793447, address#13793448, mainDistributionChain#13793449, mainPurchasingOrganization#13793450, validPurchasingOrganizations#13793451, productGroup#13793452, CASE WHEN isnotnull(timezonecode#13793454) THEN timezonecode#13793454 ELSE UTC END AS timezonecode#13793456]
(349) Project
Arguments: [product#13793491, plant#13793492, orderDateTime#13793493, productPlant#13793504, outboundUnit#13793521, stockDatetime#13793748, stockBatchQuantities#13793749, stockBatchShelfLifeEndDatetimes#13793750, rawDemands#13792385, timezonecode#13793456]
(350) DeserializeToObject
Arguments: createexternalrow(invoke(product#13793491.toString()), invoke(plant#13793492.toString()), static_invoke(DateTimeUtils.toJavaTimestamp(orderDateTime#13793493)), if (isnull(productPlant#13793504)) null else createexternalrow(invoke(productPlant#13793504.systemId.toString()), invoke(productPlant#13793504.internalUUID.toString()), if (isnull(productPlant#13793504.plant)) null else createexternalrow(invoke(productPlant#13793504.plant.internalRefUUID.toString()), invoke(productPlant#13793504.plant.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), if (isnull(productPlant#13793504.product)) null else createexternalrow(invoke(productPlant#13793504.product.internalRefUUID.toString()), invoke(productPlant#13793504.product.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(DateTimeUtils.toJavaDate(productPlant#13793504.blockedForReplenishmentStartingFrom)), if (isnull(productPlant#13793504.productionAspect)) null else createexternalrow(if (isnull(productPlant#13793504.productionAspect.productMovementPlants)) null else createexternalrow(if (isnull(productPlant#13793504.productionAspect.productMovementPlants.unitOfIssue)) null else createexternalrow(invoke(productPlant#13793504.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID.toString()), invoke(productPlant#13793504.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#13793504.productionAspect.productPlanningPlants)) null else createexternalrow(if (isnull(productPlant#13793504.productionAspect.productPlanningPlants.mrpType)) null else createexternalrow(invoke(productPlant#13793504.productionAspect.productPlanningPlants.mrpType.internalRefUUID.toString()), invoke(productPlant#13793504.productionAspect.productPlanningPlants.mrpType.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#13793504.productionAspect.productPlanningPlants.abcIndicator)) null else createexternalrow(invoke(productPlant#13793504.productionAspect.productPlanningPlants.abcIndicator.internalRefUUID.toString()), invoke(productPlant#13793504.productionAspect.productPlanningPlants.abcIndicator.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#13793504.productionAspect.productPlanningPlants.mrpController)) null else createexternalrow(invoke(productPlant#13793504.productionAspect.productPlanningPlants.mrpController.internalRefUUID.toString()), invoke(productPlant#13793504.productionAspect.productPlanningPlants.mrpController.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(java.lang.Double.valueOf(productPlant#13793504.productionAspect.productPlanningPlants.minimumLotSize)), if (isnull(productPlant#13793504.productionAspect.productPlanningPlants.logisticalRoundingProfile)) null else createexternalrow(invoke(productPlant#13793504.productionAspect.productPlanningPlants.logisticalRoundingProfile.internalRefUUID.toString()), invoke(productPlant#13793504.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#13793504.salesPlant)) null else createexternalrow(if (isnull(productPlant#13793504.salesPlant.loadingGroup)) null else createexternalrow(invoke(productPlant#13793504.salesPlant.loadingGroup.internalRefUUID.toString()), invoke(productPlant#13793504.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, 1728146), if (isnull(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 1728146))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 1728146).validFrom)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 1728146).validTo)), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 1728146).isListed)), StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true)), productPlant#13793504.listing, Some(class scala.collection.mutable.ArraySeq)), if (isnull(productPlant#13793504.sourceOfSupplyCategory)) null else createexternalrow(invoke(productPlant#13793504.sourceOfSupplyCategory.internalRefUUID.toString()), invoke(productPlant#13793504.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#13793521)), static_invoke(DateTimeUtils.toJavaTimestamp(stockDatetime#13793748)), mapobjects(lambdavariable(MapObject, DoubleType, true, 1728147), static_invoke(java.lang.Double.valueOf(cast(lambdavariable(MapObject, DoubleType, true, 1728147) as double))), stockBatchQuantities#13793749, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, false, 1728148), assertnotnull(static_invoke(DateTimeUtils.toJavaTimestamp(cast(lambdavariable(MapObject, TimestampType, false, 1728148) as timestamp)))), stockBatchShelfLifeEndDatetimes#13793750, 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, 1728149), 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, 1728149))) 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, 1728149).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, 1728149).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, 1728149).considerVariance)), mapobjects(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 1728150), if (isnull(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 1728150))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 1728150).demandStartDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 1728150).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 1728150).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, 1728149).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, 1728149).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, 1728149).demandPointInTimeEnd)), mapobjects(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 1728151), if (isnull(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 1728151))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 1728151).demandDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 1728151).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 1728151).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, 1728149).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#13792385, Some(class scala.collection.mutable.ArraySeq)), invoke(timezonecode#13793456.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#13793477: org.apache.spark.sql.Row
(351) MapElements
Arguments: com.sap.s4hana.eureka.business.crporderquantitykpiservice.core.business.datasnapshot.DemandTransformatorImpl$$Lambda/0x00000008020466f8@2bc6baae, 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#13793482: 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#13793487, 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#13793488, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(2))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728136), assertnotnull(if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728137), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728137), DoubleType, ObjectType(class java.lang.Double)).doubleValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728138), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728138), DoubleType, ObjectType(class java.lang.Double)).doubleValue()), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728139), assertnotnull(static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728139), TimestampType, ObjectType(class java.sql.Timestamp))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728140), assertnotnull(static_invoke(UTF8String.fromString(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728140), StringType, ObjectType(class java.lang.String))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728141), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728141), IntegerType, ObjectType(class java.lang.Integer)).intValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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#13793489, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(3))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728142), assertnotnull(if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728143), assertnotnull(static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728143), TimestampType, ObjectType(class java.sql.Timestamp))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728144), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728144), DoubleType, ObjectType(class java.lang.Double)).doubleValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728145), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728145), DoubleType, ObjectType(class java.lang.Double)).doubleValue()), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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#13793490]
(353) Join
Arguments: LeftOuter, ((plant#13793488 <=> plant#13791973) AND (product#13793487 <=> product#13791972))
(354) Project
Arguments: [product#13791972, plant#13791973, orderDateTime#13791974, productPlant#13792009, outboundUnit#13792060, stockDatetime#13792371, stockBatchQuantities#13792372, stockBatchShelfLifeEndDatetimes#13792373, plant#13793488, dayBucketDemands#13793489, pointInTimeDemands#13793490]
(355) Project
Arguments: [product#13791972, plant#13791973, orderDateTime#13791974, productPlant#13792009, outboundUnit#13792060, stockDatetime#13792371, stockBatchQuantities#13792372, stockBatchShelfLifeEndDatetimes#13792373, dayBucketDemands#13793489, pointInTimeDemands#13793490]
(356) LogicalRelation
Arguments: parquet, [product#13794558, plant#13794559, orderDateTime#13794560, planningStartDateTime#13794561], false
(357) RepartitionByExpression
Arguments: [product#13794558, plant#13794559], 37
(358) Project
Arguments: [product#13794558, plant#13794559, orderDateTime#13794560]
(359) LogicalRelation
Arguments: parquet, [systemId#13794562, internalUUID#13794563, plant#13794564, product#13794565, blockedForReplenishmentStartingFrom#13794566, productionAspect#13794567, salesPlant#13794568, listing#13794569, sourceOfSupplyCategory#13794570], false
(360) Repartition
Arguments: 37, true
(361) Project
Arguments: [systemId#13794562, internalUUID#13794563, plant#13794564, product#13794565, blockedForReplenishmentStartingFrom#13794566, productionAspect#13794567, salesPlant#13794568, listing#13794569, sourceOfSupplyCategory#13794570, struct(systemId, systemId#13794562, internalUUID, internalUUID#13794563, plant, plant#13794564, product, product#13794565, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#13794566, productionAspect, productionAspect#13794567, salesPlant, salesPlant#13794568, listing, listing#13794569, sourceOfSupplyCategory, sourceOfSupplyCategory#13794570) AS productPlant#13794571]
(362) Project
Arguments: [productPlant#13794571]
(363) Join
Arguments: LeftOuter, ((product#13794558 <=> productPlant#13794571.product.internalRefUUID) AND (plant#13794559 <=> productPlant#13794571.plant.internalRefUUID))
(364) Project
Arguments: [product#13794558, plant#13794559, orderDateTime#13794560, productPlant#13794571]
(365) LogicalRelation
Arguments: parquet, [systemId#13794572, internalUUID#13794573, id#13794574, displayId#13794575, name#13794576, baseUnitOfMeasure#13794577, unitOfMeasures#13794578, unitOfMeasureConversions#13794579, productionAspect#13794580, salesAspect#13794581, procurementAspect#13794582, productGroup#13794583], false
(366) Repartition
Arguments: 37, true
(367) Join
Arguments: LeftOuter, (product#13794558 = internalUUID#13794573)
(368) Project
Arguments: [product#13794558, plant#13794559, orderDateTime#13794560, productPlant#13794571, systemId#13794572, internalUUID#13794573, id#13794574, displayId#13794575, name#13794576, baseUnitOfMeasure#13794577, unitOfMeasures#13794578, unitOfMeasureConversions#13794579, productionAspect#13794580, salesAspect#13794581, procurementAspect#13794582, productGroup#13794583, filter(unitOfMeasureConversions#13794579, lambdafunction((((lambda u#13792048.measurementUnit1.code = productPlant#13794571.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#13792048.measurementUnit1.internalRefUUID = productPlant#13794571.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#13792048.measurementUnit2.code = baseUnitOfMeasure#13794577.code) AND (lambda u#13792048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#13794577.internalRefUUID))), lambda u#13792048, false)) AS filteredUnitOfMeasureConversions#13794584]
(369) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13794584.quantityNumerator), true, [quantityNumerator#13794585]
(370) Project
Arguments: [product#13794558, plant#13794559, orderDateTime#13794560, productPlant#13794571, systemId#13794572, internalUUID#13794573, id#13794574, displayId#13794575, name#13794576, baseUnitOfMeasure#13794577, unitOfMeasures#13794578, unitOfMeasureConversions#13794579, productionAspect#13794580, salesAspect#13794581, procurementAspect#13794582, productGroup#13794583, filteredUnitOfMeasureConversions#13794584, quantityNumerator#13794585]
(371) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13794584.quantityDenominator), true, [quantityDenominator#13794586]
(372) Project
Arguments: [product#13794558, plant#13794559, orderDateTime#13794560, productPlant#13794571, systemId#13794572, internalUUID#13794573, id#13794574, displayId#13794575, name#13794576, baseUnitOfMeasure#13794577, unitOfMeasures#13794578, unitOfMeasureConversions#13794579, productionAspect#13794580, salesAspect#13794581, procurementAspect#13794582, productGroup#13794583, filteredUnitOfMeasureConversions#13794584, quantityNumerator#13794585, quantityDenominator#13794586]
(373) Project
Arguments: [product#13794558, plant#13794559, orderDateTime#13794560, productPlant#13794571, systemId#13794572, internalUUID#13794573, id#13794574, displayId#13794575, name#13794576, baseUnitOfMeasure#13794577, unitOfMeasures#13794578, unitOfMeasureConversions#13794579, productionAspect#13794580, salesAspect#13794581, procurementAspect#13794582, productGroup#13794583, filteredUnitOfMeasureConversions#13794584, quantityNumerator#13794585, quantityDenominator#13794586, (cast(quantityNumerator#13794585 as double) / cast(quantityDenominator#13794586 as double)) AS outboundUnit#13794587]
(374) Project
Arguments: [product#13794558, plant#13794559, orderDateTime#13794560, productPlant#13794571, systemId#13794572, internalUUID#13794573, id#13794574, displayId#13794575, name#13794576, baseUnitOfMeasure#13794577, unitOfMeasures#13794578, unitOfMeasureConversions#13794579, productionAspect#13794580, salesAspect#13794581, procurementAspect#13794582, productGroup#13794583, filteredUnitOfMeasureConversions#13794584, quantityNumerator#13794585, quantityDenominator#13794586, CASE WHEN (isnull(outboundUnit#13794587) OR (outboundUnit#13794587 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#13794587 END AS outboundUnit#13794588]
(375) Project
Arguments: [product#13794558, plant#13794559, orderDateTime#13794560, productPlant#13794571, outboundUnit#13794588]
(376) LogicalRelation
Arguments: parquet, [systemId#13794589, internalUUID#13794590, product#13794591, plant#13794592, calculationDateTime#13794593, stockQuantities#13794594], false
(377) Repartition
Arguments: 37, true
(378) LogicalRelation
Arguments: parquet, [marketUnit#13794595, description#13794596, articleHierarchy#13794597, defaultCurrency#13794598, responsibilities#13794599, replenishmentTypes#13794600, distributionCenters#13794601, assignedArticleHierarchyNodes#13794602, minOrderQtySetting#13794603, listingCheck#13794604, odsSelection#13794605, demandProfiles#13794606, constraintProfiles#13794607, optimizationProfiles#13794608, orderGroupSplitProfiles#13794609, supplierMinimumProfiles#13794610, multipleRestrictionProfiles#13794611, preferredUomSource#13794612, handlingOfUnfulfilledDemands#13794613, negligibleQuantitiesThreshold#13794614, eventtype#13794615, minOrderQtySettingInternal#13794616], false
(379) Repartition
Arguments: 37, true
(380) Filter
Arguments: (marketUnit#13794595 <=> AUTO_ALL_ProdLoc)
(381) Project
Arguments: [marketUnit#13794595, description#13794596, articleHierarchy#13794597, defaultCurrency#13794598, responsibilities#13794599, replenishmentTypes#13794600, distributionCenters#13794601, assignedArticleHierarchyNodes#13794602, minOrderQtySetting#13794603, listingCheck#13794604, odsSelection#13794605, demandProfiles#13794606, constraintProfiles#13794607, optimizationProfiles#13794608, orderGroupSplitProfiles#13794609, supplierMinimumProfiles#13794610, multipleRestrictionProfiles#13794611, preferredUomSource#13794612, handlingOfUnfulfilledDemands#13794613, negligibleQuantitiesThreshold#13794614, eventtype#13794615, minOrderQtySettingInternal#13794616]
(382) Project
Arguments: [distributionCenters#13794601]
(383) Generate
Arguments: explode(distributionCenters#13794601), false, [distributionCenters#13794617]
(384) Project
Arguments: [distributionCenters#13794617]
(385) Generate
Arguments: explode(distributionCenters#13794617.storageLocations), false, [storageLocations#13794618]
(386) Project
Arguments: [distributionCenters#13794617.id AS plantId#13794619, distributionCenters#13794617.internalRefUUID AS plantUuid#13794620, storageLocations#13794618]
(387) Project
Arguments: [plantId#13794619, plantUuid#13794620, storageLocations#13794618.id AS storageLocId#13794621, storageLocations#13794618.internalRefUUID AS storageLocUuid#13794622]
(388) LogicalRelation
Arguments: parquet, [product#13794623, plant#13794624, orderDateTime#13794625, planningStartDateTime#13794626], false
(389) RepartitionByExpression
Arguments: [product#13794623, plant#13794624], 37
(390) Project
Arguments: [product#13794623, plant#13794624, orderDateTime#13794625]
(391) LogicalRelation
Arguments: parquet, [systemId#13794627, internalUUID#13794628, plant#13794629, product#13794630, blockedForReplenishmentStartingFrom#13794631, productionAspect#13794632, salesPlant#13794633, listing#13794634, sourceOfSupplyCategory#13794635], false
(392) Repartition
Arguments: 37, true
(393) Project
Arguments: [systemId#13794627, internalUUID#13794628, plant#13794629, product#13794630, blockedForReplenishmentStartingFrom#13794631, productionAspect#13794632, salesPlant#13794633, listing#13794634, sourceOfSupplyCategory#13794635, struct(systemId, systemId#13794627, internalUUID, internalUUID#13794628, plant, plant#13794629, product, product#13794630, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#13794631, productionAspect, productionAspect#13794632, salesPlant, salesPlant#13794633, listing, listing#13794634, sourceOfSupplyCategory, sourceOfSupplyCategory#13794635) AS productPlant#13794636]
(394) Project
Arguments: [productPlant#13794636]
(395) Join
Arguments: LeftOuter, ((product#13794623 <=> productPlant#13794636.product.internalRefUUID) AND (plant#13794624 <=> productPlant#13794636.plant.internalRefUUID))
(396) Project
Arguments: [product#13794623, plant#13794624, orderDateTime#13794625, productPlant#13794636]
(397) LogicalRelation
Arguments: parquet, [systemId#13794637, internalUUID#13794638, id#13794639, displayId#13794640, name#13794641, baseUnitOfMeasure#13794642, unitOfMeasures#13794643, unitOfMeasureConversions#13794644, productionAspect#13794645, salesAspect#13794646, procurementAspect#13794647, productGroup#13794648], false
(398) Repartition
Arguments: 37, true
(399) Join
Arguments: LeftOuter, (product#13794623 = internalUUID#13794638)
(400) Project
Arguments: [product#13794623, plant#13794624, orderDateTime#13794625, productPlant#13794636, systemId#13794637, internalUUID#13794638, id#13794639, displayId#13794640, name#13794641, baseUnitOfMeasure#13794642, unitOfMeasures#13794643, unitOfMeasureConversions#13794644, productionAspect#13794645, salesAspect#13794646, procurementAspect#13794647, productGroup#13794648, filter(unitOfMeasureConversions#13794644, lambdafunction((((lambda u#13792048.measurementUnit1.code = productPlant#13794636.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#13792048.measurementUnit1.internalRefUUID = productPlant#13794636.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#13792048.measurementUnit2.code = baseUnitOfMeasure#13794642.code) AND (lambda u#13792048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#13794642.internalRefUUID))), lambda u#13792048, false)) AS filteredUnitOfMeasureConversions#13794649]
(401) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13794649.quantityNumerator), true, [quantityNumerator#13794650]
(402) Project
Arguments: [product#13794623, plant#13794624, orderDateTime#13794625, productPlant#13794636, systemId#13794637, internalUUID#13794638, id#13794639, displayId#13794640, name#13794641, baseUnitOfMeasure#13794642, unitOfMeasures#13794643, unitOfMeasureConversions#13794644, productionAspect#13794645, salesAspect#13794646, procurementAspect#13794647, productGroup#13794648, filteredUnitOfMeasureConversions#13794649, quantityNumerator#13794650]
(403) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13794649.quantityDenominator), true, [quantityDenominator#13794651]
(404) Project
Arguments: [product#13794623, plant#13794624, orderDateTime#13794625, productPlant#13794636, systemId#13794637, internalUUID#13794638, id#13794639, displayId#13794640, name#13794641, baseUnitOfMeasure#13794642, unitOfMeasures#13794643, unitOfMeasureConversions#13794644, productionAspect#13794645, salesAspect#13794646, procurementAspect#13794647, productGroup#13794648, filteredUnitOfMeasureConversions#13794649, quantityNumerator#13794650, quantityDenominator#13794651]
(405) Project
Arguments: [product#13794623, plant#13794624, orderDateTime#13794625, productPlant#13794636, systemId#13794637, internalUUID#13794638, id#13794639, displayId#13794640, name#13794641, baseUnitOfMeasure#13794642, unitOfMeasures#13794643, unitOfMeasureConversions#13794644, productionAspect#13794645, salesAspect#13794646, procurementAspect#13794647, productGroup#13794648, filteredUnitOfMeasureConversions#13794649, quantityNumerator#13794650, quantityDenominator#13794651, (cast(quantityNumerator#13794650 as double) / cast(quantityDenominator#13794651 as double)) AS outboundUnit#13794652]
(406) Project
Arguments: [product#13794623, plant#13794624, orderDateTime#13794625, productPlant#13794636, systemId#13794637, internalUUID#13794638, id#13794639, displayId#13794640, name#13794641, baseUnitOfMeasure#13794642, unitOfMeasures#13794643, unitOfMeasureConversions#13794644, productionAspect#13794645, salesAspect#13794646, procurementAspect#13794647, productGroup#13794648, filteredUnitOfMeasureConversions#13794649, quantityNumerator#13794650, quantityDenominator#13794651, CASE WHEN (isnull(outboundUnit#13794652) OR (outboundUnit#13794652 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#13794652 END AS outboundUnit#13794653]
(407) Project
Arguments: [product#13794623, plant#13794624, orderDateTime#13794625, productPlant#13794636, outboundUnit#13794653]
(408) Project
Arguments: [plant#13794624]
(409) Deduplicate
Arguments: [plant#13794624]
(410) Join
Arguments: Inner, (plantUuid#13794620 = plant#13794624)
(411) Project
Arguments: [plantId#13794619, plantUuid#13794620, storageLocId#13794621, storageLocUuid#13794622]
(412) Join
Arguments: Inner, (plant#13794592.internalRefUUID <=> plantUuid#13794620)
(413) Generate
Arguments: explode(filter(stockQuantities#13794594, lambdafunction(((lambda x#13792128.storageLocation.internalRefUuid = storageLocUuid#13794622) AND (lambda x#13792128.storageLocation.Id = storageLocId#13794621)), lambda x#13792128, false))), false, [stockQuantity#13794654]
(414) Project
Arguments: [systemId#13794589, internalUUID#13794590, product#13794591, plant#13794592, calculationDateTime#13794593, stockQuantities#13794594, plantId#13794619, plantUuid#13794620, storageLocId#13794621, storageLocUuid#13794622, stockQuantity#13794654]
(415) Aggregate
Arguments: [plantUuid#13794620, internalUUID#13794590, plant#13794592, product#13794591, systemId#13794589], [plantUuid#13794620, internalUUID#13794590, plant#13794592, product#13794591, systemId#13794589, first(calculationDateTime#13794593, false) AS calculationDateTime#13794655, collect_list(stockQuantity#13794654, 0, 0) AS stockQuantities#13794656]
(416) Project
Arguments: [systemId#13794589, internalUUID#13794590, product#13794591, plant#13794592, calculationDateTime#13794655, stockQuantities#13794656]
(417) Generate
Arguments: explode(stockQuantities#13794656), false, [stockQuantity#13794657]
(418) Project
Arguments: [systemId#13794589, internalUUID#13794590, product#13794591, plant#13794592, calculationDateTime#13794655, stockQuantities#13794656, stockQuantity#13794657]
(419) Project
Arguments: [plant#13794592.id AS plant#13794658, plant#13794592.internalRefUUID AS plantUuid#13794659, product#13794591.id AS product#13794660, product#13794591.internalRefUUID AS productUuid#13794661, calculationDateTime#13794655, stockQuantity#13794657.storagelocation.id AS storageLocId#13794662, stockQuantity#13794657.storagelocation.internalRefUUID AS storageLocUuid#13794663, stockQuantity#13794657.quantity.measure AS quantity#13794664, stockQuantity#13794657.specialStockIndicator.code AS specialStockIndicator#13794665, stockQuantity#13794657.stockType.code AS stockType#13794666]
(420) Filter
Arguments: ((specialStockIndicator#13794665 = ) AND (stockType#13794666 = 01))
(421) LogicalRelation
Arguments: parquet, [product#13794667, plant#13794668, orderDateTime#13794669, planningStartDateTime#13794670], false
(422) RepartitionByExpression
Arguments: [product#13794667, plant#13794668], 37
(423) Project
Arguments: [product#13794667, plant#13794668, orderDateTime#13794669]
(424) LogicalRelation
Arguments: parquet, [systemId#13794671, internalUUID#13794672, plant#13794673, product#13794674, blockedForReplenishmentStartingFrom#13794675, productionAspect#13794676, salesPlant#13794677, listing#13794678, sourceOfSupplyCategory#13794679], false
(425) Repartition
Arguments: 37, true
(426) Project
Arguments: [systemId#13794671, internalUUID#13794672, plant#13794673, product#13794674, blockedForReplenishmentStartingFrom#13794675, productionAspect#13794676, salesPlant#13794677, listing#13794678, sourceOfSupplyCategory#13794679, struct(systemId, systemId#13794671, internalUUID, internalUUID#13794672, plant, plant#13794673, product, product#13794674, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#13794675, productionAspect, productionAspect#13794676, salesPlant, salesPlant#13794677, listing, listing#13794678, sourceOfSupplyCategory, sourceOfSupplyCategory#13794679) AS productPlant#13794680]
(427) Project
Arguments: [productPlant#13794680]
(428) Join
Arguments: LeftOuter, ((product#13794667 <=> productPlant#13794680.product.internalRefUUID) AND (plant#13794668 <=> productPlant#13794680.plant.internalRefUUID))
(429) Project
Arguments: [product#13794667, plant#13794668, orderDateTime#13794669, productPlant#13794680]
(430) LogicalRelation
Arguments: parquet, [systemId#13794681, internalUUID#13794682, id#13794683, displayId#13794684, name#13794685, baseUnitOfMeasure#13794686, unitOfMeasures#13794687, unitOfMeasureConversions#13794688, productionAspect#13794689, salesAspect#13794690, procurementAspect#13794691, productGroup#13794692], false
(431) Repartition
Arguments: 37, true
(432) Join
Arguments: LeftOuter, (product#13794667 = internalUUID#13794682)
(433) Project
Arguments: [product#13794667, plant#13794668, orderDateTime#13794669, productPlant#13794680, systemId#13794681, internalUUID#13794682, id#13794683, displayId#13794684, name#13794685, baseUnitOfMeasure#13794686, unitOfMeasures#13794687, unitOfMeasureConversions#13794688, productionAspect#13794689, salesAspect#13794690, procurementAspect#13794691, productGroup#13794692, filter(unitOfMeasureConversions#13794688, lambdafunction((((lambda u#13792048.measurementUnit1.code = productPlant#13794680.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#13792048.measurementUnit1.internalRefUUID = productPlant#13794680.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#13792048.measurementUnit2.code = baseUnitOfMeasure#13794686.code) AND (lambda u#13792048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#13794686.internalRefUUID))), lambda u#13792048, false)) AS filteredUnitOfMeasureConversions#13794693]
(434) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13794693.quantityNumerator), true, [quantityNumerator#13794694]
(435) Project
Arguments: [product#13794667, plant#13794668, orderDateTime#13794669, productPlant#13794680, systemId#13794681, internalUUID#13794682, id#13794683, displayId#13794684, name#13794685, baseUnitOfMeasure#13794686, unitOfMeasures#13794687, unitOfMeasureConversions#13794688, productionAspect#13794689, salesAspect#13794690, procurementAspect#13794691, productGroup#13794692, filteredUnitOfMeasureConversions#13794693, quantityNumerator#13794694]
(436) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13794693.quantityDenominator), true, [quantityDenominator#13794695]
(437) Project
Arguments: [product#13794667, plant#13794668, orderDateTime#13794669, productPlant#13794680, systemId#13794681, internalUUID#13794682, id#13794683, displayId#13794684, name#13794685, baseUnitOfMeasure#13794686, unitOfMeasures#13794687, unitOfMeasureConversions#13794688, productionAspect#13794689, salesAspect#13794690, procurementAspect#13794691, productGroup#13794692, filteredUnitOfMeasureConversions#13794693, quantityNumerator#13794694, quantityDenominator#13794695]
(438) Project
Arguments: [product#13794667, plant#13794668, orderDateTime#13794669, productPlant#13794680, systemId#13794681, internalUUID#13794682, id#13794683, displayId#13794684, name#13794685, baseUnitOfMeasure#13794686, unitOfMeasures#13794687, unitOfMeasureConversions#13794688, productionAspect#13794689, salesAspect#13794690, procurementAspect#13794691, productGroup#13794692, filteredUnitOfMeasureConversions#13794693, quantityNumerator#13794694, quantityDenominator#13794695, (cast(quantityNumerator#13794694 as double) / cast(quantityDenominator#13794695 as double)) AS outboundUnit#13794696]
(439) Project
Arguments: [product#13794667, plant#13794668, orderDateTime#13794669, productPlant#13794680, systemId#13794681, internalUUID#13794682, id#13794683, displayId#13794684, name#13794685, baseUnitOfMeasure#13794686, unitOfMeasures#13794687, unitOfMeasureConversions#13794688, productionAspect#13794689, salesAspect#13794690, procurementAspect#13794691, productGroup#13794692, filteredUnitOfMeasureConversions#13794693, quantityNumerator#13794694, quantityDenominator#13794695, CASE WHEN (isnull(outboundUnit#13794696) OR (outboundUnit#13794696 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#13794696 END AS outboundUnit#13794697]
(440) Project
Arguments: [product#13794667, plant#13794668, orderDateTime#13794669, productPlant#13794680, outboundUnit#13794697]
(441) Join
Arguments: Inner, ((plantUuid#13794659 = plant#13794668) AND (productUuid#13794661 = product#13794667))
(442) Filter
Arguments: (calculationDateTime#13794655 <= orderDateTime#13794669)
(443) Project
Arguments: [plantUuid#13794659 AS plant#13794698, productUuid#13794661 AS product#13794699, storageLocId#13794662, calculationDateTime#13794655, quantity#13794664]
(444) LogicalRelation
Arguments: parquet, [systemId#13794700, internalUUID#13794701, product#13794702, plant#13794703, calculationDateTime#13794704, stockQuantities#13794705], false
(445) Repartition
Arguments: 37, true
(446) LogicalRelation
Arguments: parquet, [marketUnit#13794706, description#13794707, articleHierarchy#13794708, defaultCurrency#13794709, responsibilities#13794710, replenishmentTypes#13794711, distributionCenters#13794712, assignedArticleHierarchyNodes#13794713, minOrderQtySetting#13794714, listingCheck#13794715, odsSelection#13794716, demandProfiles#13794717, constraintProfiles#13794718, optimizationProfiles#13794719, orderGroupSplitProfiles#13794720, supplierMinimumProfiles#13794721, multipleRestrictionProfiles#13794722, preferredUomSource#13794723, handlingOfUnfulfilledDemands#13794724, negligibleQuantitiesThreshold#13794725, eventtype#13794726, minOrderQtySettingInternal#13794727], false
(447) Repartition
Arguments: 37, true
(448) Filter
Arguments: (marketUnit#13794706 <=> AUTO_ALL_ProdLoc)
(449) Project
Arguments: [marketUnit#13794706, description#13794707, articleHierarchy#13794708, defaultCurrency#13794709, responsibilities#13794710, replenishmentTypes#13794711, distributionCenters#13794712, assignedArticleHierarchyNodes#13794713, minOrderQtySetting#13794714, listingCheck#13794715, odsSelection#13794716, demandProfiles#13794717, constraintProfiles#13794718, optimizationProfiles#13794719, orderGroupSplitProfiles#13794720, supplierMinimumProfiles#13794721, multipleRestrictionProfiles#13794722, preferredUomSource#13794723, handlingOfUnfulfilledDemands#13794724, negligibleQuantitiesThreshold#13794725, eventtype#13794726, minOrderQtySettingInternal#13794727]
(450) Project
Arguments: [distributionCenters#13794712]
(451) Generate
Arguments: explode(distributionCenters#13794712), false, [distributionCenters#13794728]
(452) Project
Arguments: [distributionCenters#13794728]
(453) Generate
Arguments: explode(distributionCenters#13794728.storageLocations), false, [storageLocations#13794729]
(454) Project
Arguments: [distributionCenters#13794728.id AS plantId#13794730, distributionCenters#13794728.internalRefUUID AS plantUuid#13794731, storageLocations#13794729]
(455) Project
Arguments: [plantId#13794730, plantUuid#13794731, storageLocations#13794729.id AS storageLocId#13794732, storageLocations#13794729.internalRefUUID AS storageLocUuid#13794733]
(456) LogicalRelation
Arguments: parquet, [product#13794734, plant#13794735, orderDateTime#13794736, planningStartDateTime#13794737], false
(457) RepartitionByExpression
Arguments: [product#13794734, plant#13794735], 37
(458) Project
Arguments: [product#13794734, plant#13794735, orderDateTime#13794736]
(459) LogicalRelation
Arguments: parquet, [systemId#13794738, internalUUID#13794739, plant#13794740, product#13794741, blockedForReplenishmentStartingFrom#13794742, productionAspect#13794743, salesPlant#13794744, listing#13794745, sourceOfSupplyCategory#13794746], false
(460) Repartition
Arguments: 37, true
(461) Project
Arguments: [systemId#13794738, internalUUID#13794739, plant#13794740, product#13794741, blockedForReplenishmentStartingFrom#13794742, productionAspect#13794743, salesPlant#13794744, listing#13794745, sourceOfSupplyCategory#13794746, struct(systemId, systemId#13794738, internalUUID, internalUUID#13794739, plant, plant#13794740, product, product#13794741, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#13794742, productionAspect, productionAspect#13794743, salesPlant, salesPlant#13794744, listing, listing#13794745, sourceOfSupplyCategory, sourceOfSupplyCategory#13794746) AS productPlant#13794747]
(462) Project
Arguments: [productPlant#13794747]
(463) Join
Arguments: LeftOuter, ((product#13794734 <=> productPlant#13794747.product.internalRefUUID) AND (plant#13794735 <=> productPlant#13794747.plant.internalRefUUID))
(464) Project
Arguments: [product#13794734, plant#13794735, orderDateTime#13794736, productPlant#13794747]
(465) LogicalRelation
Arguments: parquet, [systemId#13794748, internalUUID#13794749, id#13794750, displayId#13794751, name#13794752, baseUnitOfMeasure#13794753, unitOfMeasures#13794754, unitOfMeasureConversions#13794755, productionAspect#13794756, salesAspect#13794757, procurementAspect#13794758, productGroup#13794759], false
(466) Repartition
Arguments: 37, true
(467) Join
Arguments: LeftOuter, (product#13794734 = internalUUID#13794749)
(468) Project
Arguments: [product#13794734, plant#13794735, orderDateTime#13794736, productPlant#13794747, systemId#13794748, internalUUID#13794749, id#13794750, displayId#13794751, name#13794752, baseUnitOfMeasure#13794753, unitOfMeasures#13794754, unitOfMeasureConversions#13794755, productionAspect#13794756, salesAspect#13794757, procurementAspect#13794758, productGroup#13794759, filter(unitOfMeasureConversions#13794755, lambdafunction((((lambda u#13792048.measurementUnit1.code = productPlant#13794747.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#13792048.measurementUnit1.internalRefUUID = productPlant#13794747.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#13792048.measurementUnit2.code = baseUnitOfMeasure#13794753.code) AND (lambda u#13792048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#13794753.internalRefUUID))), lambda u#13792048, false)) AS filteredUnitOfMeasureConversions#13794760]
(469) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13794760.quantityNumerator), true, [quantityNumerator#13794761]
(470) Project
Arguments: [product#13794734, plant#13794735, orderDateTime#13794736, productPlant#13794747, systemId#13794748, internalUUID#13794749, id#13794750, displayId#13794751, name#13794752, baseUnitOfMeasure#13794753, unitOfMeasures#13794754, unitOfMeasureConversions#13794755, productionAspect#13794756, salesAspect#13794757, procurementAspect#13794758, productGroup#13794759, filteredUnitOfMeasureConversions#13794760, quantityNumerator#13794761]
(471) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13794760.quantityDenominator), true, [quantityDenominator#13794762]
(472) Project
Arguments: [product#13794734, plant#13794735, orderDateTime#13794736, productPlant#13794747, systemId#13794748, internalUUID#13794749, id#13794750, displayId#13794751, name#13794752, baseUnitOfMeasure#13794753, unitOfMeasures#13794754, unitOfMeasureConversions#13794755, productionAspect#13794756, salesAspect#13794757, procurementAspect#13794758, productGroup#13794759, filteredUnitOfMeasureConversions#13794760, quantityNumerator#13794761, quantityDenominator#13794762]
(473) Project
Arguments: [product#13794734, plant#13794735, orderDateTime#13794736, productPlant#13794747, systemId#13794748, internalUUID#13794749, id#13794750, displayId#13794751, name#13794752, baseUnitOfMeasure#13794753, unitOfMeasures#13794754, unitOfMeasureConversions#13794755, productionAspect#13794756, salesAspect#13794757, procurementAspect#13794758, productGroup#13794759, filteredUnitOfMeasureConversions#13794760, quantityNumerator#13794761, quantityDenominator#13794762, (cast(quantityNumerator#13794761 as double) / cast(quantityDenominator#13794762 as double)) AS outboundUnit#13794763]
(474) Project
Arguments: [product#13794734, plant#13794735, orderDateTime#13794736, productPlant#13794747, systemId#13794748, internalUUID#13794749, id#13794750, displayId#13794751, name#13794752, baseUnitOfMeasure#13794753, unitOfMeasures#13794754, unitOfMeasureConversions#13794755, productionAspect#13794756, salesAspect#13794757, procurementAspect#13794758, productGroup#13794759, filteredUnitOfMeasureConversions#13794760, quantityNumerator#13794761, quantityDenominator#13794762, CASE WHEN (isnull(outboundUnit#13794763) OR (outboundUnit#13794763 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#13794763 END AS outboundUnit#13794764]
(475) Project
Arguments: [product#13794734, plant#13794735, orderDateTime#13794736, productPlant#13794747, outboundUnit#13794764]
(476) Project
Arguments: [plant#13794735]
(477) Deduplicate
Arguments: [plant#13794735]
(478) Join
Arguments: Inner, (plantUuid#13794731 = plant#13794735)
(479) Project
Arguments: [plantId#13794730, plantUuid#13794731, storageLocId#13794732, storageLocUuid#13794733]
(480) Join
Arguments: Inner, (plant#13794703.internalRefUUID <=> plantUuid#13794731)
(481) Generate
Arguments: explode(filter(stockQuantities#13794705, lambdafunction(((lambda x#13792128.storageLocation.internalRefUuid = storageLocUuid#13794733) AND (lambda x#13792128.storageLocation.Id = storageLocId#13794732)), lambda x#13792128, false))), false, [stockQuantity#13794765]
(482) Project
Arguments: [systemId#13794700, internalUUID#13794701, product#13794702, plant#13794703, calculationDateTime#13794704, stockQuantities#13794705, plantId#13794730, plantUuid#13794731, storageLocId#13794732, storageLocUuid#13794733, stockQuantity#13794765]
(483) Aggregate
Arguments: [plantUuid#13794731, internalUUID#13794701, plant#13794703, product#13794702, systemId#13794700], [plantUuid#13794731, internalUUID#13794701, plant#13794703, product#13794702, systemId#13794700, first(calculationDateTime#13794704, false) AS calculationDateTime#13794766, collect_list(stockQuantity#13794765, 0, 0) AS stockQuantities#13794767]
(484) Project
Arguments: [systemId#13794700, internalUUID#13794701, product#13794702, plant#13794703, calculationDateTime#13794766, stockQuantities#13794767]
(485) Generate
Arguments: explode(stockQuantities#13794767), false, [stockQuantity#13794768]
(486) Project
Arguments: [systemId#13794700, internalUUID#13794701, product#13794702, plant#13794703, calculationDateTime#13794766, stockQuantities#13794767, stockQuantity#13794768]
(487) Project
Arguments: [plant#13794703.id AS plant#13794769, plant#13794703.internalRefUUID AS plantUuid#13794770, product#13794702.id AS product#13794771, product#13794702.internalRefUUID AS productUuid#13794772, calculationDateTime#13794766, stockQuantity#13794768.storagelocation.id AS storageLocId#13794773, stockQuantity#13794768.storagelocation.internalRefUUID AS storageLocUuid#13794774, stockQuantity#13794768.quantity.measure AS quantity#13794775, stockQuantity#13794768.specialStockIndicator.code AS specialStockIndicator#13794776, stockQuantity#13794768.stockType.code AS stockType#13794777]
(488) Filter
Arguments: ((specialStockIndicator#13794776 = ) AND (stockType#13794777 = 01))
(489) LogicalRelation
Arguments: parquet, [product#13794778, plant#13794779, orderDateTime#13794780, planningStartDateTime#13794781], false
(490) RepartitionByExpression
Arguments: [product#13794778, plant#13794779], 37
(491) Project
Arguments: [product#13794778, plant#13794779, orderDateTime#13794780]
(492) LogicalRelation
Arguments: parquet, [systemId#13794782, internalUUID#13794783, plant#13794784, product#13794785, blockedForReplenishmentStartingFrom#13794786, productionAspect#13794787, salesPlant#13794788, listing#13794789, sourceOfSupplyCategory#13794790], false
(493) Repartition
Arguments: 37, true
(494) Project
Arguments: [systemId#13794782, internalUUID#13794783, plant#13794784, product#13794785, blockedForReplenishmentStartingFrom#13794786, productionAspect#13794787, salesPlant#13794788, listing#13794789, sourceOfSupplyCategory#13794790, struct(systemId, systemId#13794782, internalUUID, internalUUID#13794783, plant, plant#13794784, product, product#13794785, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#13794786, productionAspect, productionAspect#13794787, salesPlant, salesPlant#13794788, listing, listing#13794789, sourceOfSupplyCategory, sourceOfSupplyCategory#13794790) AS productPlant#13794791]
(495) Project
Arguments: [productPlant#13794791]
(496) Join
Arguments: LeftOuter, ((product#13794778 <=> productPlant#13794791.product.internalRefUUID) AND (plant#13794779 <=> productPlant#13794791.plant.internalRefUUID))
(497) Project
Arguments: [product#13794778, plant#13794779, orderDateTime#13794780, productPlant#13794791]
(498) LogicalRelation
Arguments: parquet, [systemId#13794792, internalUUID#13794793, id#13794794, displayId#13794795, name#13794796, baseUnitOfMeasure#13794797, unitOfMeasures#13794798, unitOfMeasureConversions#13794799, productionAspect#13794800, salesAspect#13794801, procurementAspect#13794802, productGroup#13794803], false
(499) Repartition
Arguments: 37, true
(500) Join
Arguments: LeftOuter, (product#13794778 = internalUUID#13794793)
(501) Project
Arguments: [product#13794778, plant#13794779, orderDateTime#13794780, productPlant#13794791, systemId#13794792, internalUUID#13794793, id#13794794, displayId#13794795, name#13794796, baseUnitOfMeasure#13794797, unitOfMeasures#13794798, unitOfMeasureConversions#13794799, productionAspect#13794800, salesAspect#13794801, procurementAspect#13794802, productGroup#13794803, filter(unitOfMeasureConversions#13794799, lambdafunction((((lambda u#13792048.measurementUnit1.code = productPlant#13794791.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#13792048.measurementUnit1.internalRefUUID = productPlant#13794791.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#13792048.measurementUnit2.code = baseUnitOfMeasure#13794797.code) AND (lambda u#13792048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#13794797.internalRefUUID))), lambda u#13792048, false)) AS filteredUnitOfMeasureConversions#13794804]
(502) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13794804.quantityNumerator), true, [quantityNumerator#13794805]
(503) Project
Arguments: [product#13794778, plant#13794779, orderDateTime#13794780, productPlant#13794791, systemId#13794792, internalUUID#13794793, id#13794794, displayId#13794795, name#13794796, baseUnitOfMeasure#13794797, unitOfMeasures#13794798, unitOfMeasureConversions#13794799, productionAspect#13794800, salesAspect#13794801, procurementAspect#13794802, productGroup#13794803, filteredUnitOfMeasureConversions#13794804, quantityNumerator#13794805]
(504) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13794804.quantityDenominator), true, [quantityDenominator#13794806]
(505) Project
Arguments: [product#13794778, plant#13794779, orderDateTime#13794780, productPlant#13794791, systemId#13794792, internalUUID#13794793, id#13794794, displayId#13794795, name#13794796, baseUnitOfMeasure#13794797, unitOfMeasures#13794798, unitOfMeasureConversions#13794799, productionAspect#13794800, salesAspect#13794801, procurementAspect#13794802, productGroup#13794803, filteredUnitOfMeasureConversions#13794804, quantityNumerator#13794805, quantityDenominator#13794806]
(506) Project
Arguments: [product#13794778, plant#13794779, orderDateTime#13794780, productPlant#13794791, systemId#13794792, internalUUID#13794793, id#13794794, displayId#13794795, name#13794796, baseUnitOfMeasure#13794797, unitOfMeasures#13794798, unitOfMeasureConversions#13794799, productionAspect#13794800, salesAspect#13794801, procurementAspect#13794802, productGroup#13794803, filteredUnitOfMeasureConversions#13794804, quantityNumerator#13794805, quantityDenominator#13794806, (cast(quantityNumerator#13794805 as double) / cast(quantityDenominator#13794806 as double)) AS outboundUnit#13794807]
(507) Project
Arguments: [product#13794778, plant#13794779, orderDateTime#13794780, productPlant#13794791, systemId#13794792, internalUUID#13794793, id#13794794, displayId#13794795, name#13794796, baseUnitOfMeasure#13794797, unitOfMeasures#13794798, unitOfMeasureConversions#13794799, productionAspect#13794800, salesAspect#13794801, procurementAspect#13794802, productGroup#13794803, filteredUnitOfMeasureConversions#13794804, quantityNumerator#13794805, quantityDenominator#13794806, CASE WHEN (isnull(outboundUnit#13794807) OR (outboundUnit#13794807 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#13794807 END AS outboundUnit#13794808]
(508) Project
Arguments: [product#13794778, plant#13794779, orderDateTime#13794780, productPlant#13794791, outboundUnit#13794808]
(509) Join
Arguments: Inner, ((plantUuid#13794770 = plant#13794779) AND (productUuid#13794772 = product#13794778))
(510) Filter
Arguments: (calculationDateTime#13794766 <= orderDateTime#13794780)
(511) Project
Arguments: [plantUuid#13794770 AS plant#13794809, productUuid#13794772 AS product#13794810, storageLocId#13794773, calculationDateTime#13794766, quantity#13794775]
(512) Aggregate
Arguments: [plant#13794809, product#13794810, storageLocId#13794773], [plant#13794809, product#13794810, storageLocId#13794773, max(calculationDateTime#13794766) AS max_calc_datetime#13794811]
(513) Join
Arguments: Inner, ((((plant#13794698 <=> plant#13794809) AND (product#13794699 <=> product#13794810)) AND (storageLocId#13794662 <=> storageLocId#13794773)) AND (calculationDateTime#13794655 <=> max_calc_datetime#13794811))
(514) Project
Arguments: [plant#13794698, product#13794699, storageLocId#13794662, calculationDateTime#13794655, quantity#13794664]
(515) Aggregate
Arguments: [product#13794699, plant#13794698], [product#13794699, plant#13794698, sum(quantity#13794664) AS quantitySum#13794812, min(calculationDateTime#13794655) AS minCalculationDateTime#13794813]
(516) Project
Arguments: [product#13794699, plant#13794698, quantitySum#13794812, minCalculationDateTime#13794813, round(quantitySum#13794812, 0) AS roundedQuantitySum#13794814]
(517) Join
Arguments: LeftOuter, ((plant#13794559 = plant#13794698) AND (product#13794558 = product#13794699))
(518) Project
Arguments: [product#13794558, plant#13794559, orderDateTime#13794560, productPlant#13794571, outboundUnit#13794588, roundedQuantitySum#13794814, minCalculationDateTime#13794813]
(519) Project
Arguments: [product#13794558, plant#13794559, orderDateTime#13794560, productPlant#13794571, outboundUnit#13794588, roundedQuantitySum#13794814, minCalculationDateTime#13794813, CASE WHEN isnotnull(minCalculationDateTime#13794813) THEN minCalculationDateTime#13794813 ELSE orderDateTime#13794560 END AS stockDatetime#13794815]
(520) Project
Arguments: [product#13794558, plant#13794559, orderDateTime#13794560, productPlant#13794571, outboundUnit#13794588, roundedQuantitySum#13794814, minCalculationDateTime#13794813, stockDatetime#13794815, CASE WHEN isnotnull(roundedQuantitySum#13794814) THEN array(roundedQuantitySum#13794814) ELSE array(0.0) END AS stockBatchQuantities#13794816]
(521) Project
Arguments: [product#13794558, plant#13794559, orderDateTime#13794560, productPlant#13794571, outboundUnit#13794588, roundedQuantitySum#13794814, minCalculationDateTime#13794813, stockDatetime#13794815, stockBatchQuantities#13794816, array(2199-01-01 00:00:00) AS stockBatchShelfLifeEndDatetimes#13794817]
(522) Project
Arguments: [product#13794558, plant#13794559, orderDateTime#13794560, productPlant#13794571, outboundUnit#13794588, roundedQuantitySum#13794814, stockDatetime#13794815, stockBatchQuantities#13794816, stockBatchShelfLifeEndDatetimes#13794817]
(523) Project
Arguments: [product#13794558, plant#13794559, orderDateTime#13794560, productPlant#13794571, outboundUnit#13794588, stockDatetime#13794815, stockBatchQuantities#13794816, stockBatchShelfLifeEndDatetimes#13794817]
(524) LogicalRelation
Arguments: parquet, [product#13794818, plant#13794819, orderDateTime#13794820, planningStartDateTime#13794821], false
(525) RepartitionByExpression
Arguments: [product#13794818, plant#13794819], 37
(526) Project
Arguments: [product#13794818, plant#13794819, orderDateTime#13794820]
(527) LogicalRelation
Arguments: parquet, [systemId#13794822, internalUUID#13794823, plant#13794824, product#13794825, blockedForReplenishmentStartingFrom#13794826, productionAspect#13794827, salesPlant#13794828, listing#13794829, sourceOfSupplyCategory#13794830], false
(528) Repartition
Arguments: 37, true
(529) Project
Arguments: [systemId#13794822, internalUUID#13794823, plant#13794824, product#13794825, blockedForReplenishmentStartingFrom#13794826, productionAspect#13794827, salesPlant#13794828, listing#13794829, sourceOfSupplyCategory#13794830, struct(systemId, systemId#13794822, internalUUID, internalUUID#13794823, plant, plant#13794824, product, product#13794825, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#13794826, productionAspect, productionAspect#13794827, salesPlant, salesPlant#13794828, listing, listing#13794829, sourceOfSupplyCategory, sourceOfSupplyCategory#13794830) AS productPlant#13794831]
(530) Project
Arguments: [productPlant#13794831]
(531) Join
Arguments: LeftOuter, ((product#13794818 <=> productPlant#13794831.product.internalRefUUID) AND (plant#13794819 <=> productPlant#13794831.plant.internalRefUUID))
(532) Project
Arguments: [product#13794818, plant#13794819, orderDateTime#13794820, productPlant#13794831]
(533) LogicalRelation
Arguments: parquet, [systemId#13794832, internalUUID#13794833, id#13794834, displayId#13794835, name#13794836, baseUnitOfMeasure#13794837, unitOfMeasures#13794838, unitOfMeasureConversions#13794839, productionAspect#13794840, salesAspect#13794841, procurementAspect#13794842, productGroup#13794843], false
(534) Repartition
Arguments: 37, true
(535) Join
Arguments: LeftOuter, (product#13794818 = internalUUID#13794833)
(536) Project
Arguments: [product#13794818, plant#13794819, orderDateTime#13794820, productPlant#13794831, systemId#13794832, internalUUID#13794833, id#13794834, displayId#13794835, name#13794836, baseUnitOfMeasure#13794837, unitOfMeasures#13794838, unitOfMeasureConversions#13794839, productionAspect#13794840, salesAspect#13794841, procurementAspect#13794842, productGroup#13794843, filter(unitOfMeasureConversions#13794839, lambdafunction((((lambda u#13792048.measurementUnit1.code = productPlant#13794831.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#13792048.measurementUnit1.internalRefUUID = productPlant#13794831.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#13792048.measurementUnit2.code = baseUnitOfMeasure#13794837.code) AND (lambda u#13792048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#13794837.internalRefUUID))), lambda u#13792048, false)) AS filteredUnitOfMeasureConversions#13794844]
(537) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13794844.quantityNumerator), true, [quantityNumerator#13794845]
(538) Project
Arguments: [product#13794818, plant#13794819, orderDateTime#13794820, productPlant#13794831, systemId#13794832, internalUUID#13794833, id#13794834, displayId#13794835, name#13794836, baseUnitOfMeasure#13794837, unitOfMeasures#13794838, unitOfMeasureConversions#13794839, productionAspect#13794840, salesAspect#13794841, procurementAspect#13794842, productGroup#13794843, filteredUnitOfMeasureConversions#13794844, quantityNumerator#13794845]
(539) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13794844.quantityDenominator), true, [quantityDenominator#13794846]
(540) Project
Arguments: [product#13794818, plant#13794819, orderDateTime#13794820, productPlant#13794831, systemId#13794832, internalUUID#13794833, id#13794834, displayId#13794835, name#13794836, baseUnitOfMeasure#13794837, unitOfMeasures#13794838, unitOfMeasureConversions#13794839, productionAspect#13794840, salesAspect#13794841, procurementAspect#13794842, productGroup#13794843, filteredUnitOfMeasureConversions#13794844, quantityNumerator#13794845, quantityDenominator#13794846]
(541) Project
Arguments: [product#13794818, plant#13794819, orderDateTime#13794820, productPlant#13794831, systemId#13794832, internalUUID#13794833, id#13794834, displayId#13794835, name#13794836, baseUnitOfMeasure#13794837, unitOfMeasures#13794838, unitOfMeasureConversions#13794839, productionAspect#13794840, salesAspect#13794841, procurementAspect#13794842, productGroup#13794843, filteredUnitOfMeasureConversions#13794844, quantityNumerator#13794845, quantityDenominator#13794846, (cast(quantityNumerator#13794845 as double) / cast(quantityDenominator#13794846 as double)) AS outboundUnit#13794847]
(542) Project
Arguments: [product#13794818, plant#13794819, orderDateTime#13794820, productPlant#13794831, systemId#13794832, internalUUID#13794833, id#13794834, displayId#13794835, name#13794836, baseUnitOfMeasure#13794837, unitOfMeasures#13794838, unitOfMeasureConversions#13794839, productionAspect#13794840, salesAspect#13794841, procurementAspect#13794842, productGroup#13794843, filteredUnitOfMeasureConversions#13794844, quantityNumerator#13794845, quantityDenominator#13794846, CASE WHEN (isnull(outboundUnit#13794847) OR (outboundUnit#13794847 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#13794847 END AS outboundUnit#13794848]
(543) Project
Arguments: [product#13794818, plant#13794819, orderDateTime#13794820, productPlant#13794831, outboundUnit#13794848]
(544) LogicalRelation
Arguments: parquet, [systemId#13794849, internalUUID#13794850, product#13794851, plant#13794852, calculationDateTime#13794853, stockQuantities#13794854], false
(545) Repartition
Arguments: 37, true
(546) LogicalRelation
Arguments: parquet, [marketUnit#13794855, description#13794856, articleHierarchy#13794857, defaultCurrency#13794858, responsibilities#13794859, replenishmentTypes#13794860, distributionCenters#13794861, assignedArticleHierarchyNodes#13794862, minOrderQtySetting#13794863, listingCheck#13794864, odsSelection#13794865, demandProfiles#13794866, constraintProfiles#13794867, optimizationProfiles#13794868, orderGroupSplitProfiles#13794869, supplierMinimumProfiles#13794870, multipleRestrictionProfiles#13794871, preferredUomSource#13794872, handlingOfUnfulfilledDemands#13794873, negligibleQuantitiesThreshold#13794874, eventtype#13794875, minOrderQtySettingInternal#13794876], false
(547) Repartition
Arguments: 37, true
(548) Filter
Arguments: (marketUnit#13794855 <=> AUTO_ALL_ProdLoc)
(549) Project
Arguments: [marketUnit#13794855, description#13794856, articleHierarchy#13794857, defaultCurrency#13794858, responsibilities#13794859, replenishmentTypes#13794860, distributionCenters#13794861, assignedArticleHierarchyNodes#13794862, minOrderQtySetting#13794863, listingCheck#13794864, odsSelection#13794865, demandProfiles#13794866, constraintProfiles#13794867, optimizationProfiles#13794868, orderGroupSplitProfiles#13794869, supplierMinimumProfiles#13794870, multipleRestrictionProfiles#13794871, preferredUomSource#13794872, handlingOfUnfulfilledDemands#13794873, negligibleQuantitiesThreshold#13794874, eventtype#13794875, minOrderQtySettingInternal#13794876]
(550) Project
Arguments: [distributionCenters#13794861]
(551) Generate
Arguments: explode(distributionCenters#13794861), false, [distributionCenters#13794877]
(552) Project
Arguments: [distributionCenters#13794877]
(553) Generate
Arguments: explode(distributionCenters#13794877.storageLocations), false, [storageLocations#13794878]
(554) Project
Arguments: [distributionCenters#13794877.id AS plantId#13794879, distributionCenters#13794877.internalRefUUID AS plantUuid#13794880, storageLocations#13794878]
(555) Project
Arguments: [plantId#13794879, plantUuid#13794880, storageLocations#13794878.id AS storageLocId#13794881, storageLocations#13794878.internalRefUUID AS storageLocUuid#13794882]
(556) LogicalRelation
Arguments: parquet, [product#13794883, plant#13794884, orderDateTime#13794885, planningStartDateTime#13794886], false
(557) RepartitionByExpression
Arguments: [product#13794883, plant#13794884], 37
(558) Project
Arguments: [product#13794883, plant#13794884, orderDateTime#13794885]
(559) LogicalRelation
Arguments: parquet, [systemId#13794887, internalUUID#13794888, plant#13794889, product#13794890, blockedForReplenishmentStartingFrom#13794891, productionAspect#13794892, salesPlant#13794893, listing#13794894, sourceOfSupplyCategory#13794895], false
(560) Repartition
Arguments: 37, true
(561) Project
Arguments: [systemId#13794887, internalUUID#13794888, plant#13794889, product#13794890, blockedForReplenishmentStartingFrom#13794891, productionAspect#13794892, salesPlant#13794893, listing#13794894, sourceOfSupplyCategory#13794895, struct(systemId, systemId#13794887, internalUUID, internalUUID#13794888, plant, plant#13794889, product, product#13794890, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#13794891, productionAspect, productionAspect#13794892, salesPlant, salesPlant#13794893, listing, listing#13794894, sourceOfSupplyCategory, sourceOfSupplyCategory#13794895) AS productPlant#13794896]
(562) Project
Arguments: [productPlant#13794896]
(563) Join
Arguments: LeftOuter, ((product#13794883 <=> productPlant#13794896.product.internalRefUUID) AND (plant#13794884 <=> productPlant#13794896.plant.internalRefUUID))
(564) Project
Arguments: [product#13794883, plant#13794884, orderDateTime#13794885, productPlant#13794896]
(565) LogicalRelation
Arguments: parquet, [systemId#13794897, internalUUID#13794898, id#13794899, displayId#13794900, name#13794901, baseUnitOfMeasure#13794902, unitOfMeasures#13794903, unitOfMeasureConversions#13794904, productionAspect#13794905, salesAspect#13794906, procurementAspect#13794907, productGroup#13794908], false
(566) Repartition
Arguments: 37, true
(567) Join
Arguments: LeftOuter, (product#13794883 = internalUUID#13794898)
(568) Project
Arguments: [product#13794883, plant#13794884, orderDateTime#13794885, productPlant#13794896, systemId#13794897, internalUUID#13794898, id#13794899, displayId#13794900, name#13794901, baseUnitOfMeasure#13794902, unitOfMeasures#13794903, unitOfMeasureConversions#13794904, productionAspect#13794905, salesAspect#13794906, procurementAspect#13794907, productGroup#13794908, filter(unitOfMeasureConversions#13794904, lambdafunction((((lambda u#13792048.measurementUnit1.code = productPlant#13794896.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#13792048.measurementUnit1.internalRefUUID = productPlant#13794896.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#13792048.measurementUnit2.code = baseUnitOfMeasure#13794902.code) AND (lambda u#13792048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#13794902.internalRefUUID))), lambda u#13792048, false)) AS filteredUnitOfMeasureConversions#13794909]
(569) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13794909.quantityNumerator), true, [quantityNumerator#13794910]
(570) Project
Arguments: [product#13794883, plant#13794884, orderDateTime#13794885, productPlant#13794896, systemId#13794897, internalUUID#13794898, id#13794899, displayId#13794900, name#13794901, baseUnitOfMeasure#13794902, unitOfMeasures#13794903, unitOfMeasureConversions#13794904, productionAspect#13794905, salesAspect#13794906, procurementAspect#13794907, productGroup#13794908, filteredUnitOfMeasureConversions#13794909, quantityNumerator#13794910]
(571) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13794909.quantityDenominator), true, [quantityDenominator#13794911]
(572) Project
Arguments: [product#13794883, plant#13794884, orderDateTime#13794885, productPlant#13794896, systemId#13794897, internalUUID#13794898, id#13794899, displayId#13794900, name#13794901, baseUnitOfMeasure#13794902, unitOfMeasures#13794903, unitOfMeasureConversions#13794904, productionAspect#13794905, salesAspect#13794906, procurementAspect#13794907, productGroup#13794908, filteredUnitOfMeasureConversions#13794909, quantityNumerator#13794910, quantityDenominator#13794911]
(573) Project
Arguments: [product#13794883, plant#13794884, orderDateTime#13794885, productPlant#13794896, systemId#13794897, internalUUID#13794898, id#13794899, displayId#13794900, name#13794901, baseUnitOfMeasure#13794902, unitOfMeasures#13794903, unitOfMeasureConversions#13794904, productionAspect#13794905, salesAspect#13794906, procurementAspect#13794907, productGroup#13794908, filteredUnitOfMeasureConversions#13794909, quantityNumerator#13794910, quantityDenominator#13794911, (cast(quantityNumerator#13794910 as double) / cast(quantityDenominator#13794911 as double)) AS outboundUnit#13794912]
(574) Project
Arguments: [product#13794883, plant#13794884, orderDateTime#13794885, productPlant#13794896, systemId#13794897, internalUUID#13794898, id#13794899, displayId#13794900, name#13794901, baseUnitOfMeasure#13794902, unitOfMeasures#13794903, unitOfMeasureConversions#13794904, productionAspect#13794905, salesAspect#13794906, procurementAspect#13794907, productGroup#13794908, filteredUnitOfMeasureConversions#13794909, quantityNumerator#13794910, quantityDenominator#13794911, CASE WHEN (isnull(outboundUnit#13794912) OR (outboundUnit#13794912 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#13794912 END AS outboundUnit#13794913]
(575) Project
Arguments: [product#13794883, plant#13794884, orderDateTime#13794885, productPlant#13794896, outboundUnit#13794913]
(576) Project
Arguments: [plant#13794884]
(577) Deduplicate
Arguments: [plant#13794884]
(578) Join
Arguments: Inner, (plantUuid#13794880 = plant#13794884)
(579) Project
Arguments: [plantId#13794879, plantUuid#13794880, storageLocId#13794881, storageLocUuid#13794882]
(580) Join
Arguments: Inner, (plant#13794852.internalRefUUID <=> plantUuid#13794880)
(581) Generate
Arguments: explode(filter(stockQuantities#13794854, lambdafunction(((lambda x#13792128.storageLocation.internalRefUuid = storageLocUuid#13794882) AND (lambda x#13792128.storageLocation.Id = storageLocId#13794881)), lambda x#13792128, false))), false, [stockQuantity#13794914]
(582) Project
Arguments: [systemId#13794849, internalUUID#13794850, product#13794851, plant#13794852, calculationDateTime#13794853, stockQuantities#13794854, plantId#13794879, plantUuid#13794880, storageLocId#13794881, storageLocUuid#13794882, stockQuantity#13794914]
(583) Aggregate
Arguments: [plantUuid#13794880, internalUUID#13794850, plant#13794852, product#13794851, systemId#13794849], [plantUuid#13794880, internalUUID#13794850, plant#13794852, product#13794851, systemId#13794849, first(calculationDateTime#13794853, false) AS calculationDateTime#13794915, collect_list(stockQuantity#13794914, 0, 0) AS stockQuantities#13794916]
(584) Project
Arguments: [systemId#13794849, internalUUID#13794850, product#13794851, plant#13794852, calculationDateTime#13794915, stockQuantities#13794916]
(585) Generate
Arguments: explode(stockQuantities#13794916), false, [stockQuantity#13794917]
(586) Project
Arguments: [systemId#13794849, internalUUID#13794850, product#13794851, plant#13794852, calculationDateTime#13794915, stockQuantities#13794916, stockQuantity#13794917]
(587) Project
Arguments: [plant#13794852.id AS plant#13794918, plant#13794852.internalRefUUID AS plantUuid#13794919, product#13794851.id AS product#13794920, product#13794851.internalRefUUID AS productUuid#13794921, calculationDateTime#13794915, stockQuantity#13794917.storagelocation.id AS storageLocId#13794922, stockQuantity#13794917.storagelocation.internalRefUUID AS storageLocUuid#13794923, stockQuantity#13794917.quantity.measure AS quantity#13794924, stockQuantity#13794917.specialStockIndicator.code AS specialStockIndicator#13794925, stockQuantity#13794917.stockType.code AS stockType#13794926]
(588) Filter
Arguments: ((specialStockIndicator#13794925 = ) AND (stockType#13794926 = 01))
(589) LogicalRelation
Arguments: parquet, [product#13794927, plant#13794928, orderDateTime#13794929, planningStartDateTime#13794930], false
(590) RepartitionByExpression
Arguments: [product#13794927, plant#13794928], 37
(591) Project
Arguments: [product#13794927, plant#13794928, orderDateTime#13794929]
(592) LogicalRelation
Arguments: parquet, [systemId#13794931, internalUUID#13794932, plant#13794933, product#13794934, blockedForReplenishmentStartingFrom#13794935, productionAspect#13794936, salesPlant#13794937, listing#13794938, sourceOfSupplyCategory#13794939], false
(593) Repartition
Arguments: 37, true
(594) Project
Arguments: [systemId#13794931, internalUUID#13794932, plant#13794933, product#13794934, blockedForReplenishmentStartingFrom#13794935, productionAspect#13794936, salesPlant#13794937, listing#13794938, sourceOfSupplyCategory#13794939, struct(systemId, systemId#13794931, internalUUID, internalUUID#13794932, plant, plant#13794933, product, product#13794934, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#13794935, productionAspect, productionAspect#13794936, salesPlant, salesPlant#13794937, listing, listing#13794938, sourceOfSupplyCategory, sourceOfSupplyCategory#13794939) AS productPlant#13794940]
(595) Project
Arguments: [productPlant#13794940]
(596) Join
Arguments: LeftOuter, ((product#13794927 <=> productPlant#13794940.product.internalRefUUID) AND (plant#13794928 <=> productPlant#13794940.plant.internalRefUUID))
(597) Project
Arguments: [product#13794927, plant#13794928, orderDateTime#13794929, productPlant#13794940]
(598) LogicalRelation
Arguments: parquet, [systemId#13794941, internalUUID#13794942, id#13794943, displayId#13794944, name#13794945, baseUnitOfMeasure#13794946, unitOfMeasures#13794947, unitOfMeasureConversions#13794948, productionAspect#13794949, salesAspect#13794950, procurementAspect#13794951, productGroup#13794952], false
(599) Repartition
Arguments: 37, true
(600) Join
Arguments: LeftOuter, (product#13794927 = internalUUID#13794942)
(601) Project
Arguments: [product#13794927, plant#13794928, orderDateTime#13794929, productPlant#13794940, systemId#13794941, internalUUID#13794942, id#13794943, displayId#13794944, name#13794945, baseUnitOfMeasure#13794946, unitOfMeasures#13794947, unitOfMeasureConversions#13794948, productionAspect#13794949, salesAspect#13794950, procurementAspect#13794951, productGroup#13794952, filter(unitOfMeasureConversions#13794948, lambdafunction((((lambda u#13792048.measurementUnit1.code = productPlant#13794940.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#13792048.measurementUnit1.internalRefUUID = productPlant#13794940.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#13792048.measurementUnit2.code = baseUnitOfMeasure#13794946.code) AND (lambda u#13792048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#13794946.internalRefUUID))), lambda u#13792048, false)) AS filteredUnitOfMeasureConversions#13794953]
(602) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13794953.quantityNumerator), true, [quantityNumerator#13794954]
(603) Project
Arguments: [product#13794927, plant#13794928, orderDateTime#13794929, productPlant#13794940, systemId#13794941, internalUUID#13794942, id#13794943, displayId#13794944, name#13794945, baseUnitOfMeasure#13794946, unitOfMeasures#13794947, unitOfMeasureConversions#13794948, productionAspect#13794949, salesAspect#13794950, procurementAspect#13794951, productGroup#13794952, filteredUnitOfMeasureConversions#13794953, quantityNumerator#13794954]
(604) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13794953.quantityDenominator), true, [quantityDenominator#13794955]
(605) Project
Arguments: [product#13794927, plant#13794928, orderDateTime#13794929, productPlant#13794940, systemId#13794941, internalUUID#13794942, id#13794943, displayId#13794944, name#13794945, baseUnitOfMeasure#13794946, unitOfMeasures#13794947, unitOfMeasureConversions#13794948, productionAspect#13794949, salesAspect#13794950, procurementAspect#13794951, productGroup#13794952, filteredUnitOfMeasureConversions#13794953, quantityNumerator#13794954, quantityDenominator#13794955]
(606) Project
Arguments: [product#13794927, plant#13794928, orderDateTime#13794929, productPlant#13794940, systemId#13794941, internalUUID#13794942, id#13794943, displayId#13794944, name#13794945, baseUnitOfMeasure#13794946, unitOfMeasures#13794947, unitOfMeasureConversions#13794948, productionAspect#13794949, salesAspect#13794950, procurementAspect#13794951, productGroup#13794952, filteredUnitOfMeasureConversions#13794953, quantityNumerator#13794954, quantityDenominator#13794955, (cast(quantityNumerator#13794954 as double) / cast(quantityDenominator#13794955 as double)) AS outboundUnit#13794956]
(607) Project
Arguments: [product#13794927, plant#13794928, orderDateTime#13794929, productPlant#13794940, systemId#13794941, internalUUID#13794942, id#13794943, displayId#13794944, name#13794945, baseUnitOfMeasure#13794946, unitOfMeasures#13794947, unitOfMeasureConversions#13794948, productionAspect#13794949, salesAspect#13794950, procurementAspect#13794951, productGroup#13794952, filteredUnitOfMeasureConversions#13794953, quantityNumerator#13794954, quantityDenominator#13794955, CASE WHEN (isnull(outboundUnit#13794956) OR (outboundUnit#13794956 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#13794956 END AS outboundUnit#13794957]
(608) Project
Arguments: [product#13794927, plant#13794928, orderDateTime#13794929, productPlant#13794940, outboundUnit#13794957]
(609) Join
Arguments: Inner, ((plantUuid#13794919 = plant#13794928) AND (productUuid#13794921 = product#13794927))
(610) Filter
Arguments: (calculationDateTime#13794915 <= orderDateTime#13794929)
(611) Project
Arguments: [plantUuid#13794919 AS plant#13794958, productUuid#13794921 AS product#13794959, storageLocId#13794922, calculationDateTime#13794915, quantity#13794924]
(612) LogicalRelation
Arguments: parquet, [systemId#13794960, internalUUID#13794961, product#13794962, plant#13794963, calculationDateTime#13794964, stockQuantities#13794965], false
(613) Repartition
Arguments: 37, true
(614) LogicalRelation
Arguments: parquet, [marketUnit#13794966, description#13794967, articleHierarchy#13794968, defaultCurrency#13794969, responsibilities#13794970, replenishmentTypes#13794971, distributionCenters#13794972, assignedArticleHierarchyNodes#13794973, minOrderQtySetting#13794974, listingCheck#13794975, odsSelection#13794976, demandProfiles#13794977, constraintProfiles#13794978, optimizationProfiles#13794979, orderGroupSplitProfiles#13794980, supplierMinimumProfiles#13794981, multipleRestrictionProfiles#13794982, preferredUomSource#13794983, handlingOfUnfulfilledDemands#13794984, negligibleQuantitiesThreshold#13794985, eventtype#13794986, minOrderQtySettingInternal#13794987], false
(615) Repartition
Arguments: 37, true
(616) Filter
Arguments: (marketUnit#13794966 <=> AUTO_ALL_ProdLoc)
(617) Project
Arguments: [marketUnit#13794966, description#13794967, articleHierarchy#13794968, defaultCurrency#13794969, responsibilities#13794970, replenishmentTypes#13794971, distributionCenters#13794972, assignedArticleHierarchyNodes#13794973, minOrderQtySetting#13794974, listingCheck#13794975, odsSelection#13794976, demandProfiles#13794977, constraintProfiles#13794978, optimizationProfiles#13794979, orderGroupSplitProfiles#13794980, supplierMinimumProfiles#13794981, multipleRestrictionProfiles#13794982, preferredUomSource#13794983, handlingOfUnfulfilledDemands#13794984, negligibleQuantitiesThreshold#13794985, eventtype#13794986, minOrderQtySettingInternal#13794987]
(618) Project
Arguments: [distributionCenters#13794972]
(619) Generate
Arguments: explode(distributionCenters#13794972), false, [distributionCenters#13794988]
(620) Project
Arguments: [distributionCenters#13794988]
(621) Generate
Arguments: explode(distributionCenters#13794988.storageLocations), false, [storageLocations#13794989]
(622) Project
Arguments: [distributionCenters#13794988.id AS plantId#13794990, distributionCenters#13794988.internalRefUUID AS plantUuid#13794991, storageLocations#13794989]
(623) Project
Arguments: [plantId#13794990, plantUuid#13794991, storageLocations#13794989.id AS storageLocId#13794992, storageLocations#13794989.internalRefUUID AS storageLocUuid#13794993]
(624) LogicalRelation
Arguments: parquet, [product#13794994, plant#13794995, orderDateTime#13794996, planningStartDateTime#13794997], false
(625) RepartitionByExpression
Arguments: [product#13794994, plant#13794995], 37
(626) Project
Arguments: [product#13794994, plant#13794995, orderDateTime#13794996]
(627) LogicalRelation
Arguments: parquet, [systemId#13794998, internalUUID#13794999, plant#13795000, product#13795001, blockedForReplenishmentStartingFrom#13795002, productionAspect#13795003, salesPlant#13795004, listing#13795005, sourceOfSupplyCategory#13795006], false
(628) Repartition
Arguments: 37, true
(629) Project
Arguments: [systemId#13794998, internalUUID#13794999, plant#13795000, product#13795001, blockedForReplenishmentStartingFrom#13795002, productionAspect#13795003, salesPlant#13795004, listing#13795005, sourceOfSupplyCategory#13795006, struct(systemId, systemId#13794998, internalUUID, internalUUID#13794999, plant, plant#13795000, product, product#13795001, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#13795002, productionAspect, productionAspect#13795003, salesPlant, salesPlant#13795004, listing, listing#13795005, sourceOfSupplyCategory, sourceOfSupplyCategory#13795006) AS productPlant#13795007]
(630) Project
Arguments: [productPlant#13795007]
(631) Join
Arguments: LeftOuter, ((product#13794994 <=> productPlant#13795007.product.internalRefUUID) AND (plant#13794995 <=> productPlant#13795007.plant.internalRefUUID))
(632) Project
Arguments: [product#13794994, plant#13794995, orderDateTime#13794996, productPlant#13795007]
(633) LogicalRelation
Arguments: parquet, [systemId#13795008, internalUUID#13795009, id#13795010, displayId#13795011, name#13795012, baseUnitOfMeasure#13795013, unitOfMeasures#13795014, unitOfMeasureConversions#13795015, productionAspect#13795016, salesAspect#13795017, procurementAspect#13795018, productGroup#13795019], false
(634) Repartition
Arguments: 37, true
(635) Join
Arguments: LeftOuter, (product#13794994 = internalUUID#13795009)
(636) Project
Arguments: [product#13794994, plant#13794995, orderDateTime#13794996, productPlant#13795007, systemId#13795008, internalUUID#13795009, id#13795010, displayId#13795011, name#13795012, baseUnitOfMeasure#13795013, unitOfMeasures#13795014, unitOfMeasureConversions#13795015, productionAspect#13795016, salesAspect#13795017, procurementAspect#13795018, productGroup#13795019, filter(unitOfMeasureConversions#13795015, lambdafunction((((lambda u#13792048.measurementUnit1.code = productPlant#13795007.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#13792048.measurementUnit1.internalRefUUID = productPlant#13795007.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#13792048.measurementUnit2.code = baseUnitOfMeasure#13795013.code) AND (lambda u#13792048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#13795013.internalRefUUID))), lambda u#13792048, false)) AS filteredUnitOfMeasureConversions#13795020]
(637) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13795020.quantityNumerator), true, [quantityNumerator#13795021]
(638) Project
Arguments: [product#13794994, plant#13794995, orderDateTime#13794996, productPlant#13795007, systemId#13795008, internalUUID#13795009, id#13795010, displayId#13795011, name#13795012, baseUnitOfMeasure#13795013, unitOfMeasures#13795014, unitOfMeasureConversions#13795015, productionAspect#13795016, salesAspect#13795017, procurementAspect#13795018, productGroup#13795019, filteredUnitOfMeasureConversions#13795020, quantityNumerator#13795021]
(639) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13795020.quantityDenominator), true, [quantityDenominator#13795022]
(640) Project
Arguments: [product#13794994, plant#13794995, orderDateTime#13794996, productPlant#13795007, systemId#13795008, internalUUID#13795009, id#13795010, displayId#13795011, name#13795012, baseUnitOfMeasure#13795013, unitOfMeasures#13795014, unitOfMeasureConversions#13795015, productionAspect#13795016, salesAspect#13795017, procurementAspect#13795018, productGroup#13795019, filteredUnitOfMeasureConversions#13795020, quantityNumerator#13795021, quantityDenominator#13795022]
(641) Project
Arguments: [product#13794994, plant#13794995, orderDateTime#13794996, productPlant#13795007, systemId#13795008, internalUUID#13795009, id#13795010, displayId#13795011, name#13795012, baseUnitOfMeasure#13795013, unitOfMeasures#13795014, unitOfMeasureConversions#13795015, productionAspect#13795016, salesAspect#13795017, procurementAspect#13795018, productGroup#13795019, filteredUnitOfMeasureConversions#13795020, quantityNumerator#13795021, quantityDenominator#13795022, (cast(quantityNumerator#13795021 as double) / cast(quantityDenominator#13795022 as double)) AS outboundUnit#13795023]
(642) Project
Arguments: [product#13794994, plant#13794995, orderDateTime#13794996, productPlant#13795007, systemId#13795008, internalUUID#13795009, id#13795010, displayId#13795011, name#13795012, baseUnitOfMeasure#13795013, unitOfMeasures#13795014, unitOfMeasureConversions#13795015, productionAspect#13795016, salesAspect#13795017, procurementAspect#13795018, productGroup#13795019, filteredUnitOfMeasureConversions#13795020, quantityNumerator#13795021, quantityDenominator#13795022, CASE WHEN (isnull(outboundUnit#13795023) OR (outboundUnit#13795023 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#13795023 END AS outboundUnit#13795024]
(643) Project
Arguments: [product#13794994, plant#13794995, orderDateTime#13794996, productPlant#13795007, outboundUnit#13795024]
(644) Project
Arguments: [plant#13794995]
(645) Deduplicate
Arguments: [plant#13794995]
(646) Join
Arguments: Inner, (plantUuid#13794991 = plant#13794995)
(647) Project
Arguments: [plantId#13794990, plantUuid#13794991, storageLocId#13794992, storageLocUuid#13794993]
(648) Join
Arguments: Inner, (plant#13794963.internalRefUUID <=> plantUuid#13794991)
(649) Generate
Arguments: explode(filter(stockQuantities#13794965, lambdafunction(((lambda x#13792128.storageLocation.internalRefUuid = storageLocUuid#13794993) AND (lambda x#13792128.storageLocation.Id = storageLocId#13794992)), lambda x#13792128, false))), false, [stockQuantity#13795025]
(650) Project
Arguments: [systemId#13794960, internalUUID#13794961, product#13794962, plant#13794963, calculationDateTime#13794964, stockQuantities#13794965, plantId#13794990, plantUuid#13794991, storageLocId#13794992, storageLocUuid#13794993, stockQuantity#13795025]
(651) Aggregate
Arguments: [plantUuid#13794991, internalUUID#13794961, plant#13794963, product#13794962, systemId#13794960], [plantUuid#13794991, internalUUID#13794961, plant#13794963, product#13794962, systemId#13794960, first(calculationDateTime#13794964, false) AS calculationDateTime#13795026, collect_list(stockQuantity#13795025, 0, 0) AS stockQuantities#13795027]
(652) Project
Arguments: [systemId#13794960, internalUUID#13794961, product#13794962, plant#13794963, calculationDateTime#13795026, stockQuantities#13795027]
(653) Generate
Arguments: explode(stockQuantities#13795027), false, [stockQuantity#13795028]
(654) Project
Arguments: [systemId#13794960, internalUUID#13794961, product#13794962, plant#13794963, calculationDateTime#13795026, stockQuantities#13795027, stockQuantity#13795028]
(655) Project
Arguments: [plant#13794963.id AS plant#13795029, plant#13794963.internalRefUUID AS plantUuid#13795030, product#13794962.id AS product#13795031, product#13794962.internalRefUUID AS productUuid#13795032, calculationDateTime#13795026, stockQuantity#13795028.storagelocation.id AS storageLocId#13795033, stockQuantity#13795028.storagelocation.internalRefUUID AS storageLocUuid#13795034, stockQuantity#13795028.quantity.measure AS quantity#13795035, stockQuantity#13795028.specialStockIndicator.code AS specialStockIndicator#13795036, stockQuantity#13795028.stockType.code AS stockType#13795037]
(656) Filter
Arguments: ((specialStockIndicator#13795036 = ) AND (stockType#13795037 = 01))
(657) LogicalRelation
Arguments: parquet, [product#13795038, plant#13795039, orderDateTime#13795040, planningStartDateTime#13795041], false
(658) RepartitionByExpression
Arguments: [product#13795038, plant#13795039], 37
(659) Project
Arguments: [product#13795038, plant#13795039, orderDateTime#13795040]
(660) LogicalRelation
Arguments: parquet, [systemId#13795042, internalUUID#13795043, plant#13795044, product#13795045, blockedForReplenishmentStartingFrom#13795046, productionAspect#13795047, salesPlant#13795048, listing#13795049, sourceOfSupplyCategory#13795050], false
(661) Repartition
Arguments: 37, true
(662) Project
Arguments: [systemId#13795042, internalUUID#13795043, plant#13795044, product#13795045, blockedForReplenishmentStartingFrom#13795046, productionAspect#13795047, salesPlant#13795048, listing#13795049, sourceOfSupplyCategory#13795050, struct(systemId, systemId#13795042, internalUUID, internalUUID#13795043, plant, plant#13795044, product, product#13795045, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#13795046, productionAspect, productionAspect#13795047, salesPlant, salesPlant#13795048, listing, listing#13795049, sourceOfSupplyCategory, sourceOfSupplyCategory#13795050) AS productPlant#13795051]
(663) Project
Arguments: [productPlant#13795051]
(664) Join
Arguments: LeftOuter, ((product#13795038 <=> productPlant#13795051.product.internalRefUUID) AND (plant#13795039 <=> productPlant#13795051.plant.internalRefUUID))
(665) Project
Arguments: [product#13795038, plant#13795039, orderDateTime#13795040, productPlant#13795051]
(666) LogicalRelation
Arguments: parquet, [systemId#13795052, internalUUID#13795053, id#13795054, displayId#13795055, name#13795056, baseUnitOfMeasure#13795057, unitOfMeasures#13795058, unitOfMeasureConversions#13795059, productionAspect#13795060, salesAspect#13795061, procurementAspect#13795062, productGroup#13795063], false
(667) Repartition
Arguments: 37, true
(668) Join
Arguments: LeftOuter, (product#13795038 = internalUUID#13795053)
(669) Project
Arguments: [product#13795038, plant#13795039, orderDateTime#13795040, productPlant#13795051, systemId#13795052, internalUUID#13795053, id#13795054, displayId#13795055, name#13795056, baseUnitOfMeasure#13795057, unitOfMeasures#13795058, unitOfMeasureConversions#13795059, productionAspect#13795060, salesAspect#13795061, procurementAspect#13795062, productGroup#13795063, filter(unitOfMeasureConversions#13795059, lambdafunction((((lambda u#13792048.measurementUnit1.code = productPlant#13795051.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#13792048.measurementUnit1.internalRefUUID = productPlant#13795051.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#13792048.measurementUnit2.code = baseUnitOfMeasure#13795057.code) AND (lambda u#13792048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#13795057.internalRefUUID))), lambda u#13792048, false)) AS filteredUnitOfMeasureConversions#13795064]
(670) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13795064.quantityNumerator), true, [quantityNumerator#13795065]
(671) Project
Arguments: [product#13795038, plant#13795039, orderDateTime#13795040, productPlant#13795051, systemId#13795052, internalUUID#13795053, id#13795054, displayId#13795055, name#13795056, baseUnitOfMeasure#13795057, unitOfMeasures#13795058, unitOfMeasureConversions#13795059, productionAspect#13795060, salesAspect#13795061, procurementAspect#13795062, productGroup#13795063, filteredUnitOfMeasureConversions#13795064, quantityNumerator#13795065]
(672) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13795064.quantityDenominator), true, [quantityDenominator#13795066]
(673) Project
Arguments: [product#13795038, plant#13795039, orderDateTime#13795040, productPlant#13795051, systemId#13795052, internalUUID#13795053, id#13795054, displayId#13795055, name#13795056, baseUnitOfMeasure#13795057, unitOfMeasures#13795058, unitOfMeasureConversions#13795059, productionAspect#13795060, salesAspect#13795061, procurementAspect#13795062, productGroup#13795063, filteredUnitOfMeasureConversions#13795064, quantityNumerator#13795065, quantityDenominator#13795066]
(674) Project
Arguments: [product#13795038, plant#13795039, orderDateTime#13795040, productPlant#13795051, systemId#13795052, internalUUID#13795053, id#13795054, displayId#13795055, name#13795056, baseUnitOfMeasure#13795057, unitOfMeasures#13795058, unitOfMeasureConversions#13795059, productionAspect#13795060, salesAspect#13795061, procurementAspect#13795062, productGroup#13795063, filteredUnitOfMeasureConversions#13795064, quantityNumerator#13795065, quantityDenominator#13795066, (cast(quantityNumerator#13795065 as double) / cast(quantityDenominator#13795066 as double)) AS outboundUnit#13795067]
(675) Project
Arguments: [product#13795038, plant#13795039, orderDateTime#13795040, productPlant#13795051, systemId#13795052, internalUUID#13795053, id#13795054, displayId#13795055, name#13795056, baseUnitOfMeasure#13795057, unitOfMeasures#13795058, unitOfMeasureConversions#13795059, productionAspect#13795060, salesAspect#13795061, procurementAspect#13795062, productGroup#13795063, filteredUnitOfMeasureConversions#13795064, quantityNumerator#13795065, quantityDenominator#13795066, CASE WHEN (isnull(outboundUnit#13795067) OR (outboundUnit#13795067 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#13795067 END AS outboundUnit#13795068]
(676) Project
Arguments: [product#13795038, plant#13795039, orderDateTime#13795040, productPlant#13795051, outboundUnit#13795068]
(677) Join
Arguments: Inner, ((plantUuid#13795030 = plant#13795039) AND (productUuid#13795032 = product#13795038))
(678) Filter
Arguments: (calculationDateTime#13795026 <= orderDateTime#13795040)
(679) Project
Arguments: [plantUuid#13795030 AS plant#13795069, productUuid#13795032 AS product#13795070, storageLocId#13795033, calculationDateTime#13795026, quantity#13795035]
(680) Aggregate
Arguments: [plant#13795069, product#13795070, storageLocId#13795033], [plant#13795069, product#13795070, storageLocId#13795033, max(calculationDateTime#13795026) AS max_calc_datetime#13795071]
(681) Join
Arguments: Inner, ((((plant#13794958 <=> plant#13795069) AND (product#13794959 <=> product#13795070)) AND (storageLocId#13794922 <=> storageLocId#13795033)) AND (calculationDateTime#13794915 <=> max_calc_datetime#13795071))
(682) Project
Arguments: [plant#13794958, product#13794959, storageLocId#13794922, calculationDateTime#13794915, quantity#13794924]
(683) Aggregate
Arguments: [product#13794959, plant#13794958], [product#13794959, plant#13794958, sum(quantity#13794924) AS quantitySum#13795072, min(calculationDateTime#13794915) AS minCalculationDateTime#13795073]
(684) Project
Arguments: [product#13794959, plant#13794958, quantitySum#13795072, minCalculationDateTime#13795073, round(quantitySum#13795072, 0) AS roundedQuantitySum#13795074]
(685) Join
Arguments: LeftOuter, ((plant#13794819 = plant#13794958) AND (product#13794818 = product#13794959))
(686) Project
Arguments: [product#13794818, plant#13794819, orderDateTime#13794820, productPlant#13794831, outboundUnit#13794848, roundedQuantitySum#13795074, minCalculationDateTime#13795073]
(687) Project
Arguments: [product#13794818, plant#13794819, orderDateTime#13794820, productPlant#13794831, outboundUnit#13794848, roundedQuantitySum#13795074, minCalculationDateTime#13795073, CASE WHEN isnotnull(minCalculationDateTime#13795073) THEN minCalculationDateTime#13795073 ELSE orderDateTime#13794820 END AS stockDatetime#13795075]
(688) Project
Arguments: [product#13794818, plant#13794819, orderDateTime#13794820, productPlant#13794831, outboundUnit#13794848, roundedQuantitySum#13795074, minCalculationDateTime#13795073, stockDatetime#13795075, CASE WHEN isnotnull(roundedQuantitySum#13795074) THEN array(roundedQuantitySum#13795074) ELSE array(0.0) END AS stockBatchQuantities#13795076]
(689) Project
Arguments: [product#13794818, plant#13794819, orderDateTime#13794820, productPlant#13794831, outboundUnit#13794848, roundedQuantitySum#13795074, minCalculationDateTime#13795073, stockDatetime#13795075, stockBatchQuantities#13795076, array(2199-01-01 00:00:00) AS stockBatchShelfLifeEndDatetimes#13795077]
(690) Project
Arguments: [product#13794818, plant#13794819, orderDateTime#13794820, productPlant#13794831, outboundUnit#13794848, roundedQuantitySum#13795074, stockDatetime#13795075, stockBatchQuantities#13795076, stockBatchShelfLifeEndDatetimes#13795077]
(691) Project
Arguments: [product#13794818, plant#13794819, orderDateTime#13794820, productPlant#13794831, outboundUnit#13794848, stockDatetime#13795075, stockBatchQuantities#13795076, stockBatchShelfLifeEndDatetimes#13795077]
(692) LogicalRelation
Arguments: parquet, [product#13795078, plant#13795079, demandChannel#13795080, demandStream#13795081, considerVariance#13795082, demandTimeBuckets#13795083, demandPointInTimeStart#13795084, demandPointInTimeEnd#13795085, demandPointInTime#13795086], false
(693) Join
Arguments: LeftOuter, ((plant#13795079 <=> plant#13794819) AND (product#13795078 <=> product#13794818))
(694) Project
Arguments: [product#13794818, plant#13794819, orderDateTime#13794820, productPlant#13794831, outboundUnit#13794848, stockDatetime#13795075, stockBatchQuantities#13795076, stockBatchShelfLifeEndDatetimes#13795077, product#13795078, plant#13795079, demandChannel#13795080, demandStream#13795081, considerVariance#13795082, demandTimeBuckets#13795083, demandPointInTimeStart#13795084, demandPointInTimeEnd#13795085, demandPointInTime#13795086, CASE WHEN isnotnull(product#13795078) THEN struct(demandChannel, demandChannel#13795080, demandStream, demandStream#13795081, considerVariance, considerVariance#13795082, demandTimeBuckets, demandTimeBuckets#13795083, demandPointInTimeStart, demandPointInTimeStart#13795084, demandPointInTimeEnd, demandPointInTimeEnd#13795085, demandPointInTime, demandPointInTime#13795086) 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#13795087]
(695) Aggregate
Arguments: [product#13794818, plant#13794819, orderDateTime#13794820, productPlant#13794831, outboundUnit#13794848, stockDatetime#13795075, stockBatchQuantities#13795076, stockBatchShelfLifeEndDatetimes#13795077], [product#13794818, plant#13794819, orderDateTime#13794820, productPlant#13794831, outboundUnit#13794848, stockDatetime#13795075, stockBatchQuantities#13795076, stockBatchShelfLifeEndDatetimes#13795077, collect_list(rawDemands#13795087, 0, 0) AS rawDemands#13795088]
(696) SubqueryAlias
Arguments: wl
(697) LogicalRelation
Arguments: parquet, [systemId#13795089, internalUUID#13795090, id#13795091, displayId#13795092, name#13795093, category#13795094, companyCode#13795095, address#13795096, mainDistributionChain#13795097, mainPurchasingOrganization#13795098, validPurchasingOrganizations#13795099, productGroup#13795100], false
(698) Repartition
Arguments: 37, true
(699) Project
Arguments: [systemId#13795089, internalUUID#13795090, id#13795091, displayId#13795092, name#13795093, category#13795094, companyCode#13795095, address#13795096, mainDistributionChain#13795097, mainPurchasingOrganization#13795098, validPurchasingOrganizations#13795099, productGroup#13795100, address#13795096.timezone.code AS timezonecode#13795101]
(700) Join
Arguments: LeftOuter, (plant#13794819 <=> internalUUID#13795090)
(701) Project
Arguments: [product#13794818, plant#13794819, orderDateTime#13794820, productPlant#13794831, outboundUnit#13794848, stockDatetime#13795075, stockBatchQuantities#13795076, stockBatchShelfLifeEndDatetimes#13795077, rawDemands#13795088, systemId#13795089, internalUUID#13795090, id#13795091, displayId#13795092, name#13795093, category#13795094, companyCode#13795095, address#13795096, mainDistributionChain#13795097, mainPurchasingOrganization#13795098, validPurchasingOrganizations#13795099, productGroup#13795100, CASE WHEN isnotnull(timezonecode#13795101) THEN timezonecode#13795101 ELSE UTC END AS timezonecode#13795102]
(702) Project
Arguments: [product#13794818, plant#13794819, orderDateTime#13794820, productPlant#13794831, outboundUnit#13794848, stockDatetime#13795075, stockBatchQuantities#13795076, stockBatchShelfLifeEndDatetimes#13795077, rawDemands#13795088, timezonecode#13795102]
(703) DeserializeToObject
Arguments: createexternalrow(invoke(product#13794818.toString()), invoke(plant#13794819.toString()), static_invoke(DateTimeUtils.toJavaTimestamp(orderDateTime#13794820)), if (isnull(productPlant#13794831)) null else createexternalrow(invoke(productPlant#13794831.systemId.toString()), invoke(productPlant#13794831.internalUUID.toString()), if (isnull(productPlant#13794831.plant)) null else createexternalrow(invoke(productPlant#13794831.plant.internalRefUUID.toString()), invoke(productPlant#13794831.plant.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), if (isnull(productPlant#13794831.product)) null else createexternalrow(invoke(productPlant#13794831.product.internalRefUUID.toString()), invoke(productPlant#13794831.product.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(DateTimeUtils.toJavaDate(productPlant#13794831.blockedForReplenishmentStartingFrom)), if (isnull(productPlant#13794831.productionAspect)) null else createexternalrow(if (isnull(productPlant#13794831.productionAspect.productMovementPlants)) null else createexternalrow(if (isnull(productPlant#13794831.productionAspect.productMovementPlants.unitOfIssue)) null else createexternalrow(invoke(productPlant#13794831.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID.toString()), invoke(productPlant#13794831.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#13794831.productionAspect.productPlanningPlants)) null else createexternalrow(if (isnull(productPlant#13794831.productionAspect.productPlanningPlants.mrpType)) null else createexternalrow(invoke(productPlant#13794831.productionAspect.productPlanningPlants.mrpType.internalRefUUID.toString()), invoke(productPlant#13794831.productionAspect.productPlanningPlants.mrpType.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#13794831.productionAspect.productPlanningPlants.abcIndicator)) null else createexternalrow(invoke(productPlant#13794831.productionAspect.productPlanningPlants.abcIndicator.internalRefUUID.toString()), invoke(productPlant#13794831.productionAspect.productPlanningPlants.abcIndicator.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#13794831.productionAspect.productPlanningPlants.mrpController)) null else createexternalrow(invoke(productPlant#13794831.productionAspect.productPlanningPlants.mrpController.internalRefUUID.toString()), invoke(productPlant#13794831.productionAspect.productPlanningPlants.mrpController.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(java.lang.Double.valueOf(productPlant#13794831.productionAspect.productPlanningPlants.minimumLotSize)), if (isnull(productPlant#13794831.productionAspect.productPlanningPlants.logisticalRoundingProfile)) null else createexternalrow(invoke(productPlant#13794831.productionAspect.productPlanningPlants.logisticalRoundingProfile.internalRefUUID.toString()), invoke(productPlant#13794831.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#13794831.salesPlant)) null else createexternalrow(if (isnull(productPlant#13794831.salesPlant.loadingGroup)) null else createexternalrow(invoke(productPlant#13794831.salesPlant.loadingGroup.internalRefUUID.toString()), invoke(productPlant#13794831.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, 1728146), if (isnull(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 1728146))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 1728146).validFrom)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 1728146).validTo)), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 1728146).isListed)), StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true)), productPlant#13794831.listing, Some(class scala.collection.mutable.ArraySeq)), if (isnull(productPlant#13794831.sourceOfSupplyCategory)) null else createexternalrow(invoke(productPlant#13794831.sourceOfSupplyCategory.internalRefUUID.toString()), invoke(productPlant#13794831.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#13794848)), static_invoke(DateTimeUtils.toJavaTimestamp(stockDatetime#13795075)), mapobjects(lambdavariable(MapObject, DoubleType, true, 1728147), static_invoke(java.lang.Double.valueOf(cast(lambdavariable(MapObject, DoubleType, true, 1728147) as double))), stockBatchQuantities#13795076, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, false, 1728148), assertnotnull(static_invoke(DateTimeUtils.toJavaTimestamp(cast(lambdavariable(MapObject, TimestampType, false, 1728148) as timestamp)))), stockBatchShelfLifeEndDatetimes#13795077, 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, 1728149), 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, 1728149))) 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, 1728149).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, 1728149).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, 1728149).considerVariance)), mapobjects(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 1728150), if (isnull(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 1728150))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 1728150).demandStartDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 1728150).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 1728150).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, 1728149).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, 1728149).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, 1728149).demandPointInTimeEnd)), mapobjects(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 1728151), if (isnull(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 1728151))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 1728151).demandDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 1728151).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 1728151).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, 1728149).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#13795088, Some(class scala.collection.mutable.ArraySeq)), invoke(timezonecode#13795102.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#13793477: org.apache.spark.sql.Row
(704) MapElements
Arguments: com.sap.s4hana.eureka.business.crporderquantitykpiservice.core.business.datasnapshot.DemandTransformatorImpl$$Lambda/0x00000008020466f8@2bc6baae, 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#13793482: 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#13795103, 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#13795104, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(2))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728136), assertnotnull(if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728137), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728137), DoubleType, ObjectType(class java.lang.Double)).doubleValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728138), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728138), DoubleType, ObjectType(class java.lang.Double)).doubleValue()), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728139), assertnotnull(static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728139), TimestampType, ObjectType(class java.sql.Timestamp))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728140), assertnotnull(static_invoke(UTF8String.fromString(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728140), StringType, ObjectType(class java.lang.String))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728141), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728141), IntegerType, ObjectType(class java.lang.Integer)).intValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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#13795105, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(3))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728142), assertnotnull(if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728143), assertnotnull(static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728143), TimestampType, ObjectType(class java.sql.Timestamp))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728144), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728144), DoubleType, ObjectType(class java.lang.Double)).doubleValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728145), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728145), DoubleType, ObjectType(class java.lang.Double)).doubleValue()), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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#13795106]
(706) Join
Arguments: LeftOuter, ((plant#13795104 <=> plant#13794559) AND (product#13795103 <=> product#13794558))
(707) Project
Arguments: [product#13794558, plant#13794559, orderDateTime#13794560, productPlant#13794571, outboundUnit#13794588, stockDatetime#13794815, stockBatchQuantities#13794816, stockBatchShelfLifeEndDatetimes#13794817, plant#13795104, dayBucketDemands#13795105, pointInTimeDemands#13795106]
(708) Project
Arguments: [product#13794558, plant#13794559, orderDateTime#13794560, productPlant#13794571, outboundUnit#13794588, stockDatetime#13794815, stockBatchQuantities#13794816, stockBatchShelfLifeEndDatetimes#13794817, dayBucketDemands#13795105, pointInTimeDemands#13795106]
(709) LogicalRelation
Arguments: parquet, [marketUnit#13793803, description#13793804, articleHierarchy#13793805, defaultCurrency#13793806, responsibilities#13793807, replenishmentTypes#13793808, distributionCenters#13793809, assignedArticleHierarchyNodes#13793810, minOrderQtySetting#13793811, listingCheck#13793812, odsSelection#13793813, demandProfiles#13793814, constraintProfiles#13793815, optimizationProfiles#13793816, orderGroupSplitProfiles#13793817, supplierMinimumProfiles#13793818, multipleRestrictionProfiles#13793819, preferredUomSource#13793820, handlingOfUnfulfilledDemands#13793821, negligibleQuantitiesThreshold#13793822, eventtype#13793823, minOrderQtySettingInternal#13793824], false
(710) Repartition
Arguments: 37, true
(711) Filter
Arguments: (marketUnit#13793803 <=> AUTO_ALL_ProdLoc)
(712) Project
Arguments: [marketUnit#13793803, description#13793804, articleHierarchy#13793805, defaultCurrency#13793806, responsibilities#13793807, replenishmentTypes#13793808, distributionCenters#13793809, assignedArticleHierarchyNodes#13793810, minOrderQtySetting#13793811, listingCheck#13793812, odsSelection#13793813, demandProfiles#13793814, constraintProfiles#13793815, optimizationProfiles#13793816, orderGroupSplitProfiles#13793817, supplierMinimumProfiles#13793818, multipleRestrictionProfiles#13793819, preferredUomSource#13793820, handlingOfUnfulfilledDemands#13793821, negligibleQuantitiesThreshold#13793822, eventtype#13793823, minOrderQtySettingInternal#13793824]
(713) Project
Arguments: [distributionCenters#13793809]
(714) Generate
Arguments: explode(distributionCenters#13793809), false, [distributionCenters#13793825]
(715) Project
Arguments: [distributionCenters#13793825]
(716) Generate
Arguments: explode(distributionCenters#13793825.storageLocations), false, [storageLocations#13793826]
(717) Project
Arguments: [distributionCenters#13793825.id AS plantId#13793827, distributionCenters#13793825.internalRefUUID AS plantUuid#13793828, storageLocations#13793826]
(718) Project
Arguments: [plantId#13793827, plantUuid#13793828, storageLocations#13793826.id AS storageLocId#13793829, storageLocations#13793826.internalRefUUID AS storageLocUuid#13793830]
(719) LogicalRelation
Arguments: parquet, [product#13793831, plant#13793832, orderDateTime#13793833, planningStartDateTime#13793834], false
(720) RepartitionByExpression
Arguments: [product#13793831, plant#13793832], 37
(721) Project
Arguments: [product#13793831, plant#13793832, orderDateTime#13793833]
(722) LogicalRelation
Arguments: parquet, [systemId#13793835, internalUUID#13793836, plant#13793837, product#13793838, blockedForReplenishmentStartingFrom#13793839, productionAspect#13793840, salesPlant#13793841, listing#13793842, sourceOfSupplyCategory#13793843], false
(723) Repartition
Arguments: 37, true
(724) Project
Arguments: [systemId#13793835, internalUUID#13793836, plant#13793837, product#13793838, blockedForReplenishmentStartingFrom#13793839, productionAspect#13793840, salesPlant#13793841, listing#13793842, sourceOfSupplyCategory#13793843, struct(systemId, systemId#13793835, internalUUID, internalUUID#13793836, plant, plant#13793837, product, product#13793838, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#13793839, productionAspect, productionAspect#13793840, salesPlant, salesPlant#13793841, listing, listing#13793842, sourceOfSupplyCategory, sourceOfSupplyCategory#13793843) AS productPlant#13793844]
(725) Project
Arguments: [productPlant#13793844]
(726) Join
Arguments: LeftOuter, ((product#13793831 <=> productPlant#13793844.product.internalRefUUID) AND (plant#13793832 <=> productPlant#13793844.plant.internalRefUUID))
(727) Project
Arguments: [product#13793831, plant#13793832, orderDateTime#13793833, productPlant#13793844]
(728) LogicalRelation
Arguments: parquet, [systemId#13793845, internalUUID#13793846, id#13793847, displayId#13793848, name#13793849, baseUnitOfMeasure#13793850, unitOfMeasures#13793851, unitOfMeasureConversions#13793852, productionAspect#13793853, salesAspect#13793854, procurementAspect#13793855, productGroup#13793856], false
(729) Repartition
Arguments: 37, true
(730) Join
Arguments: LeftOuter, (product#13793831 = internalUUID#13793846)
(731) Project
Arguments: [product#13793831, plant#13793832, orderDateTime#13793833, productPlant#13793844, systemId#13793845, internalUUID#13793846, id#13793847, displayId#13793848, name#13793849, baseUnitOfMeasure#13793850, unitOfMeasures#13793851, unitOfMeasureConversions#13793852, productionAspect#13793853, salesAspect#13793854, procurementAspect#13793855, productGroup#13793856, filter(unitOfMeasureConversions#13793852, lambdafunction((((lambda u#13792048.measurementUnit1.code = productPlant#13793844.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#13792048.measurementUnit1.internalRefUUID = productPlant#13793844.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#13792048.measurementUnit2.code = baseUnitOfMeasure#13793850.code) AND (lambda u#13792048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#13793850.internalRefUUID))), lambda u#13792048, false)) AS filteredUnitOfMeasureConversions#13793857]
(732) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13793857.quantityNumerator), true, [quantityNumerator#13793858]
(733) Project
Arguments: [product#13793831, plant#13793832, orderDateTime#13793833, productPlant#13793844, systemId#13793845, internalUUID#13793846, id#13793847, displayId#13793848, name#13793849, baseUnitOfMeasure#13793850, unitOfMeasures#13793851, unitOfMeasureConversions#13793852, productionAspect#13793853, salesAspect#13793854, procurementAspect#13793855, productGroup#13793856, filteredUnitOfMeasureConversions#13793857, quantityNumerator#13793858]
(734) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13793857.quantityDenominator), true, [quantityDenominator#13793859]
(735) Project
Arguments: [product#13793831, plant#13793832, orderDateTime#13793833, productPlant#13793844, systemId#13793845, internalUUID#13793846, id#13793847, displayId#13793848, name#13793849, baseUnitOfMeasure#13793850, unitOfMeasures#13793851, unitOfMeasureConversions#13793852, productionAspect#13793853, salesAspect#13793854, procurementAspect#13793855, productGroup#13793856, filteredUnitOfMeasureConversions#13793857, quantityNumerator#13793858, quantityDenominator#13793859]
(736) Project
Arguments: [product#13793831, plant#13793832, orderDateTime#13793833, productPlant#13793844, systemId#13793845, internalUUID#13793846, id#13793847, displayId#13793848, name#13793849, baseUnitOfMeasure#13793850, unitOfMeasures#13793851, unitOfMeasureConversions#13793852, productionAspect#13793853, salesAspect#13793854, procurementAspect#13793855, productGroup#13793856, filteredUnitOfMeasureConversions#13793857, quantityNumerator#13793858, quantityDenominator#13793859, (cast(quantityNumerator#13793858 as double) / cast(quantityDenominator#13793859 as double)) AS outboundUnit#13793860]
(737) Project
Arguments: [product#13793831, plant#13793832, orderDateTime#13793833, productPlant#13793844, systemId#13793845, internalUUID#13793846, id#13793847, displayId#13793848, name#13793849, baseUnitOfMeasure#13793850, unitOfMeasures#13793851, unitOfMeasureConversions#13793852, productionAspect#13793853, salesAspect#13793854, procurementAspect#13793855, productGroup#13793856, filteredUnitOfMeasureConversions#13793857, quantityNumerator#13793858, quantityDenominator#13793859, CASE WHEN (isnull(outboundUnit#13793860) OR (outboundUnit#13793860 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#13793860 END AS outboundUnit#13793861]
(738) Project
Arguments: [product#13793831, plant#13793832, orderDateTime#13793833, productPlant#13793844, outboundUnit#13793861]
(739) Project
Arguments: [plant#13793832]
(740) Deduplicate
Arguments: [plant#13793832]
(741) Join
Arguments: Inner, (plantUuid#13793828 = plant#13793832)
(742) Project
Arguments: [plantId#13793827, plantUuid#13793828, storageLocId#13793829, storageLocUuid#13793830]
(743) Project
Arguments: [plantId#13793827, plantUuid#13793828 AS plant#13793802, storageLocId#13793829, storageLocUuid#13793830]
(744) Join
Arguments: Inner, (plant#13794559 = plant#13793802)
(745) Project
Arguments: [plant#13794559, product#13794558, orderDateTime#13794560, productPlant#13794571, outboundUnit#13794588, stockDatetime#13794815, stockBatchQuantities#13794816, stockBatchShelfLifeEndDatetimes#13794817, dayBucketDemands#13795105, pointInTimeDemands#13795106, plantId#13793827, storageLocId#13793829, storageLocUuid#13793830, plant#13793802]
(746) LocalRelation
Arguments: <empty>, [systemId#13793770, internalUUID#13793771, id#13793772, isMarkedForDeletion#13793773, supplier#13793774, status#13793775, items#13793776]
(747) Generate
Arguments: explode(items#13793776), false, [item#13793780]
(748) Project
Arguments: [id#13793772, internalUUID#13793771, isMarkedForDeletion#13793773, supplier#13793774.internalRefUUID AS supplierUuid#13793777, item#13793780]
(749) Filter
Arguments: (((NOT isMarkedForDeletion#13793773 AND NOT item#13793780.deletionIndicator) AND NOT item#13793780.completeIndicator) AND NOT item#13793780.returnIndicator)
(750) Project
Arguments: [id#13793772, internalUUID#13793771, supplierUuid#13793777, item#13793780.plant.internalRefUUID AS plant#13793784, item#13793780.product.internalRefUUID AS product#13793785, item#13793780.storageLocation.internalRefUUID AS storageLocUuid#13793786, item#13793780.quantityUnit.code AS quantityUom#13793787, item#13793780.quantityUnit.internalRefUUID AS quantityUomUuid#13793788, item#13793780.quantityNumerator AS quantityNumerator#13793789, item#13793780.quantityDenominator AS quantityDenominator#13793790, item#13793780.scheduleLines AS scheduleLines#13793791, item#13793780.confirmations AS confirmations#13793792]
(751) Join
Arguments: Inner, (((product#13794558 = product#13793785) AND (plant#13794559 = plant#13793784)) AND (storageLocUuid#13793830 = storageLocUuid#13793786))
(752) Project
Arguments: [product#13794558, plant#13794559, storageLocUuid#13793830, orderDateTime#13794560, productPlant#13794571, outboundUnit#13794588, stockDatetime#13794815, stockBatchQuantities#13794816, stockBatchShelfLifeEndDatetimes#13794817, dayBucketDemands#13795105, pointInTimeDemands#13795106, plantId#13793827, storageLocId#13793829, id#13793772, internalUUID#13793771, supplierUuid#13793777, quantityUom#13793787, quantityUomUuid#13793788, quantityNumerator#13793789, quantityDenominator#13793790, scheduleLines#13793791, confirmations#13793792, product#13793785, plant#13793784, storageLocUuid#13793786, ... 1 more fields]
(753) Project
Arguments: [id#13793772, internalUUID#13793771, supplierUuid#13793777, plant#13793784, product#13793785, storageLocUuid#13793786, quantityUom#13793787, quantityUomUuid#13793788, quantityNumerator#13793789, quantityDenominator#13793790, scheduleLines#13793791, confirmations#13793792, stockDatetime#13794815]
(754) Project
Arguments: [id#13793772, internalUUID#13793771, supplierUuid#13793777, plant#13793784, product#13793785, storageLocUuid#13793786, quantityUom#13793787, quantityUomUuid#13793788, quantityNumerator#13793789, quantityDenominator#13793790, scheduleLines#13793791, confirmations#13793792, stockDatetime#13794815, array_size(filter(confirmations#13793792, lambdafunction((((lambda x_1019#13793877.deletionIndicator = false) AND (lambda x_1019#13793877.isRelevantForConfirmation = true)) AND isnotnull(lambda x_1019#13793877.confirmedDeliveryAt)), lambda x_1019#13793877, false))) AS _w0#13793884]
(755) Window
Arguments: [sum(_w0#13793884) windowspecdefinition(internalUUID#13793771, specifiedwindowframe(RowFrame, unboundedpreceding$(), unboundedfollowing$())) AS _we0#13793885L], [internalUUID#13793771]
(756) Project
Arguments: [id#13793772, internalUUID#13793771, supplierUuid#13793777, plant#13793784, product#13793785, storageLocUuid#13793786, quantityUom#13793787, quantityUomUuid#13793788, quantityNumerator#13793789, quantityDenominator#13793790, scheduleLines#13793791, confirmations#13793792, stockDatetime#13794815, _w0#13793884, _we0#13793885L, filter(transform(CASE WHEN (_we0#13793885L > cast(0 as bigint)) THEN transform(filter(confirmations#13793792, lambdafunction((((lambda x_1019#13793878.deletionIndicator = false) AND (lambda x_1019#13793878.isRelevantForConfirmation = true)) AND isnotnull(lambda x_1019#13793878.confirmedDeliveryAt)), lambda x_1019#13793878, false)), lambdafunction(struct(openQty, greatest((lambda x_1020#13793881.confirmedQuantity - coalesce(lambda x_1020#13793881.mrpRelevantQuantity, 0.0)), 0.0), availabilityDatetime, lambda x_1020#13793881.confirmedDeliveryAt), lambda x_1020#13793881, false)) ELSE transform(scheduleLines#13793791, lambdafunction(struct(openQty, greatest((lambda x_1018#13793879.quantity - coalesce(lambda x_1018#13793879.receivedQuantity, 0.0)), 0.0), availabilityDatetime, lambda x_1018#13793879.deliveryAt), lambda x_1018#13793879, false)) END, lambdafunction(struct(documentId, id#13793772, documentUuid, internalUUID#13793771, openQty, lambda x_1021#13793882.openQty, openQtyInBaseUnit, ((lambda x_1021#13793882.openQty * quantityNumerator#13793789) / quantityDenominator#13793790), qtyUom, quantityUom#13793787, qtyUomUuid, quantityUomUuid#13793788, availabilityDatetime, lambda x_1021#13793882.availabilityDatetime, shelfLifeEndDatetime, 2199-01-01 00:00:00), lambda x_1021#13793882, false)), lambdafunction(NOT (lambda x_1022#13793883.openQty = 0.0), lambda x_1022#13793883, false)) AS openGoodsMovements#13793876]
(757) Project
Arguments: [id#13793772, internalUUID#13793771, supplierUuid#13793777, plant#13793784, product#13793785, storageLocUuid#13793786, quantityUom#13793787, quantityUomUuid#13793788, quantityNumerator#13793789, quantityDenominator#13793790, scheduleLines#13793791, confirmations#13793792, stockDatetime#13794815, openGoodsMovements#13793876]
(758) Aggregate
Arguments: [product#13793785, plant#13793784], [product#13793785, plant#13793784, flatten(collect_list(openGoodsMovements#13793876, 0, 0)) AS openGoodsMovements#13793886]
(759) Filter
Arguments: (array_size(openGoodsMovements#13793886) > 0)
(760) LogicalRelation
Arguments: parquet, [product#13793946, plant#13793947, orderDateTime#13793948, planningStartDateTime#13793949], false
(761) RepartitionByExpression
Arguments: [product#13793946, plant#13793947], 37
(762) Project
Arguments: [product#13793946, plant#13793947, orderDateTime#13793948]
(763) LogicalRelation
Arguments: parquet, [systemId#13793950, internalUUID#13793951, plant#13793952, product#13793953, blockedForReplenishmentStartingFrom#13793954, productionAspect#13793955, salesPlant#13793956, listing#13793957, sourceOfSupplyCategory#13793958], false
(764) Repartition
Arguments: 37, true
(765) Project
Arguments: [systemId#13793950, internalUUID#13793951, plant#13793952, product#13793953, blockedForReplenishmentStartingFrom#13793954, productionAspect#13793955, salesPlant#13793956, listing#13793957, sourceOfSupplyCategory#13793958, struct(systemId, systemId#13793950, internalUUID, internalUUID#13793951, plant, plant#13793952, product, product#13793953, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#13793954, productionAspect, productionAspect#13793955, salesPlant, salesPlant#13793956, listing, listing#13793957, sourceOfSupplyCategory, sourceOfSupplyCategory#13793958) AS productPlant#13793959]
(766) Project
Arguments: [productPlant#13793959]
(767) Join
Arguments: LeftOuter, ((product#13793946 <=> productPlant#13793959.product.internalRefUUID) AND (plant#13793947 <=> productPlant#13793959.plant.internalRefUUID))
(768) Project
Arguments: [product#13793946, plant#13793947, orderDateTime#13793948, productPlant#13793959]
(769) LogicalRelation
Arguments: parquet, [systemId#13793960, internalUUID#13793961, id#13793962, displayId#13793963, name#13793964, baseUnitOfMeasure#13793965, unitOfMeasures#13793966, unitOfMeasureConversions#13793967, productionAspect#13793968, salesAspect#13793969, procurementAspect#13793970, productGroup#13793971], false
(770) Repartition
Arguments: 37, true
(771) Join
Arguments: LeftOuter, (product#13793946 = internalUUID#13793961)
(772) Project
Arguments: [product#13793946, plant#13793947, orderDateTime#13793948, productPlant#13793959, systemId#13793960, internalUUID#13793961, id#13793962, displayId#13793963, name#13793964, baseUnitOfMeasure#13793965, unitOfMeasures#13793966, unitOfMeasureConversions#13793967, productionAspect#13793968, salesAspect#13793969, procurementAspect#13793970, productGroup#13793971, filter(unitOfMeasureConversions#13793967, lambdafunction((((lambda u#13792048.measurementUnit1.code = productPlant#13793959.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#13792048.measurementUnit1.internalRefUUID = productPlant#13793959.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#13792048.measurementUnit2.code = baseUnitOfMeasure#13793965.code) AND (lambda u#13792048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#13793965.internalRefUUID))), lambda u#13792048, false)) AS filteredUnitOfMeasureConversions#13793972]
(773) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13793972.quantityNumerator), true, [quantityNumerator#13793973]
(774) Project
Arguments: [product#13793946, plant#13793947, orderDateTime#13793948, productPlant#13793959, systemId#13793960, internalUUID#13793961, id#13793962, displayId#13793963, name#13793964, baseUnitOfMeasure#13793965, unitOfMeasures#13793966, unitOfMeasureConversions#13793967, productionAspect#13793968, salesAspect#13793969, procurementAspect#13793970, productGroup#13793971, filteredUnitOfMeasureConversions#13793972, quantityNumerator#13793973]
(775) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13793972.quantityDenominator), true, [quantityDenominator#13793974]
(776) Project
Arguments: [product#13793946, plant#13793947, orderDateTime#13793948, productPlant#13793959, systemId#13793960, internalUUID#13793961, id#13793962, displayId#13793963, name#13793964, baseUnitOfMeasure#13793965, unitOfMeasures#13793966, unitOfMeasureConversions#13793967, productionAspect#13793968, salesAspect#13793969, procurementAspect#13793970, productGroup#13793971, filteredUnitOfMeasureConversions#13793972, quantityNumerator#13793973, quantityDenominator#13793974]
(777) Project
Arguments: [product#13793946, plant#13793947, orderDateTime#13793948, productPlant#13793959, systemId#13793960, internalUUID#13793961, id#13793962, displayId#13793963, name#13793964, baseUnitOfMeasure#13793965, unitOfMeasures#13793966, unitOfMeasureConversions#13793967, productionAspect#13793968, salesAspect#13793969, procurementAspect#13793970, productGroup#13793971, filteredUnitOfMeasureConversions#13793972, quantityNumerator#13793973, quantityDenominator#13793974, (cast(quantityNumerator#13793973 as double) / cast(quantityDenominator#13793974 as double)) AS outboundUnit#13793975]
(778) Project
Arguments: [product#13793946, plant#13793947, orderDateTime#13793948, productPlant#13793959, systemId#13793960, internalUUID#13793961, id#13793962, displayId#13793963, name#13793964, baseUnitOfMeasure#13793965, unitOfMeasures#13793966, unitOfMeasureConversions#13793967, productionAspect#13793968, salesAspect#13793969, procurementAspect#13793970, productGroup#13793971, filteredUnitOfMeasureConversions#13793972, quantityNumerator#13793973, quantityDenominator#13793974, CASE WHEN (isnull(outboundUnit#13793975) OR (outboundUnit#13793975 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#13793975 END AS outboundUnit#13793976]
(779) Project
Arguments: [product#13793946, plant#13793947, orderDateTime#13793948, productPlant#13793959, outboundUnit#13793976]
(780) LogicalRelation
Arguments: parquet, [systemId#13793977, internalUUID#13793978, product#13793979, plant#13793980, calculationDateTime#13793981, stockQuantities#13793982], false
(781) Repartition
Arguments: 37, true
(782) LogicalRelation
Arguments: parquet, [marketUnit#13793983, description#13793984, articleHierarchy#13793985, defaultCurrency#13793986, responsibilities#13793987, replenishmentTypes#13793988, distributionCenters#13793989, assignedArticleHierarchyNodes#13793990, minOrderQtySetting#13793991, listingCheck#13793992, odsSelection#13793993, demandProfiles#13793994, constraintProfiles#13793995, optimizationProfiles#13793996, orderGroupSplitProfiles#13793997, supplierMinimumProfiles#13793998, multipleRestrictionProfiles#13793999, preferredUomSource#13794000, handlingOfUnfulfilledDemands#13794001, negligibleQuantitiesThreshold#13794002, eventtype#13794003, minOrderQtySettingInternal#13794004], false
(783) Repartition
Arguments: 37, true
(784) Filter
Arguments: (marketUnit#13793983 <=> AUTO_ALL_ProdLoc)
(785) Project
Arguments: [marketUnit#13793983, description#13793984, articleHierarchy#13793985, defaultCurrency#13793986, responsibilities#13793987, replenishmentTypes#13793988, distributionCenters#13793989, assignedArticleHierarchyNodes#13793990, minOrderQtySetting#13793991, listingCheck#13793992, odsSelection#13793993, demandProfiles#13793994, constraintProfiles#13793995, optimizationProfiles#13793996, orderGroupSplitProfiles#13793997, supplierMinimumProfiles#13793998, multipleRestrictionProfiles#13793999, preferredUomSource#13794000, handlingOfUnfulfilledDemands#13794001, negligibleQuantitiesThreshold#13794002, eventtype#13794003, minOrderQtySettingInternal#13794004]
(786) Project
Arguments: [distributionCenters#13793989]
(787) Generate
Arguments: explode(distributionCenters#13793989), false, [distributionCenters#13794005]
(788) Project
Arguments: [distributionCenters#13794005]
(789) Generate
Arguments: explode(distributionCenters#13794005.storageLocations), false, [storageLocations#13794006]
(790) Project
Arguments: [distributionCenters#13794005.id AS plantId#13794007, distributionCenters#13794005.internalRefUUID AS plantUuid#13794008, storageLocations#13794006]
(791) Project
Arguments: [plantId#13794007, plantUuid#13794008, storageLocations#13794006.id AS storageLocId#13794009, storageLocations#13794006.internalRefUUID AS storageLocUuid#13794010]
(792) LogicalRelation
Arguments: parquet, [product#13794011, plant#13794012, orderDateTime#13794013, planningStartDateTime#13794014], false
(793) RepartitionByExpression
Arguments: [product#13794011, plant#13794012], 37
(794) Project
Arguments: [product#13794011, plant#13794012, orderDateTime#13794013]
(795) LogicalRelation
Arguments: parquet, [systemId#13794015, internalUUID#13794016, plant#13794017, product#13794018, blockedForReplenishmentStartingFrom#13794019, productionAspect#13794020, salesPlant#13794021, listing#13794022, sourceOfSupplyCategory#13794023], false
(796) Repartition
Arguments: 37, true
(797) Project
Arguments: [systemId#13794015, internalUUID#13794016, plant#13794017, product#13794018, blockedForReplenishmentStartingFrom#13794019, productionAspect#13794020, salesPlant#13794021, listing#13794022, sourceOfSupplyCategory#13794023, struct(systemId, systemId#13794015, internalUUID, internalUUID#13794016, plant, plant#13794017, product, product#13794018, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#13794019, productionAspect, productionAspect#13794020, salesPlant, salesPlant#13794021, listing, listing#13794022, sourceOfSupplyCategory, sourceOfSupplyCategory#13794023) AS productPlant#13794024]
(798) Project
Arguments: [productPlant#13794024]
(799) Join
Arguments: LeftOuter, ((product#13794011 <=> productPlant#13794024.product.internalRefUUID) AND (plant#13794012 <=> productPlant#13794024.plant.internalRefUUID))
(800) Project
Arguments: [product#13794011, plant#13794012, orderDateTime#13794013, productPlant#13794024]
(801) LogicalRelation
Arguments: parquet, [systemId#13794025, internalUUID#13794026, id#13794027, displayId#13794028, name#13794029, baseUnitOfMeasure#13794030, unitOfMeasures#13794031, unitOfMeasureConversions#13794032, productionAspect#13794033, salesAspect#13794034, procurementAspect#13794035, productGroup#13794036], false
(802) Repartition
Arguments: 37, true
(803) Join
Arguments: LeftOuter, (product#13794011 = internalUUID#13794026)
(804) Project
Arguments: [product#13794011, plant#13794012, orderDateTime#13794013, productPlant#13794024, systemId#13794025, internalUUID#13794026, id#13794027, displayId#13794028, name#13794029, baseUnitOfMeasure#13794030, unitOfMeasures#13794031, unitOfMeasureConversions#13794032, productionAspect#13794033, salesAspect#13794034, procurementAspect#13794035, productGroup#13794036, filter(unitOfMeasureConversions#13794032, lambdafunction((((lambda u#13792048.measurementUnit1.code = productPlant#13794024.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#13792048.measurementUnit1.internalRefUUID = productPlant#13794024.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#13792048.measurementUnit2.code = baseUnitOfMeasure#13794030.code) AND (lambda u#13792048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#13794030.internalRefUUID))), lambda u#13792048, false)) AS filteredUnitOfMeasureConversions#13794037]
(805) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13794037.quantityNumerator), true, [quantityNumerator#13794038]
(806) Project
Arguments: [product#13794011, plant#13794012, orderDateTime#13794013, productPlant#13794024, systemId#13794025, internalUUID#13794026, id#13794027, displayId#13794028, name#13794029, baseUnitOfMeasure#13794030, unitOfMeasures#13794031, unitOfMeasureConversions#13794032, productionAspect#13794033, salesAspect#13794034, procurementAspect#13794035, productGroup#13794036, filteredUnitOfMeasureConversions#13794037, quantityNumerator#13794038]
(807) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13794037.quantityDenominator), true, [quantityDenominator#13794039]
(808) Project
Arguments: [product#13794011, plant#13794012, orderDateTime#13794013, productPlant#13794024, systemId#13794025, internalUUID#13794026, id#13794027, displayId#13794028, name#13794029, baseUnitOfMeasure#13794030, unitOfMeasures#13794031, unitOfMeasureConversions#13794032, productionAspect#13794033, salesAspect#13794034, procurementAspect#13794035, productGroup#13794036, filteredUnitOfMeasureConversions#13794037, quantityNumerator#13794038, quantityDenominator#13794039]
(809) Project
Arguments: [product#13794011, plant#13794012, orderDateTime#13794013, productPlant#13794024, systemId#13794025, internalUUID#13794026, id#13794027, displayId#13794028, name#13794029, baseUnitOfMeasure#13794030, unitOfMeasures#13794031, unitOfMeasureConversions#13794032, productionAspect#13794033, salesAspect#13794034, procurementAspect#13794035, productGroup#13794036, filteredUnitOfMeasureConversions#13794037, quantityNumerator#13794038, quantityDenominator#13794039, (cast(quantityNumerator#13794038 as double) / cast(quantityDenominator#13794039 as double)) AS outboundUnit#13794040]
(810) Project
Arguments: [product#13794011, plant#13794012, orderDateTime#13794013, productPlant#13794024, systemId#13794025, internalUUID#13794026, id#13794027, displayId#13794028, name#13794029, baseUnitOfMeasure#13794030, unitOfMeasures#13794031, unitOfMeasureConversions#13794032, productionAspect#13794033, salesAspect#13794034, procurementAspect#13794035, productGroup#13794036, filteredUnitOfMeasureConversions#13794037, quantityNumerator#13794038, quantityDenominator#13794039, CASE WHEN (isnull(outboundUnit#13794040) OR (outboundUnit#13794040 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#13794040 END AS outboundUnit#13794041]
(811) Project
Arguments: [product#13794011, plant#13794012, orderDateTime#13794013, productPlant#13794024, outboundUnit#13794041]
(812) Project
Arguments: [plant#13794012]
(813) Deduplicate
Arguments: [plant#13794012]
(814) Join
Arguments: Inner, (plantUuid#13794008 = plant#13794012)
(815) Project
Arguments: [plantId#13794007, plantUuid#13794008, storageLocId#13794009, storageLocUuid#13794010]
(816) Join
Arguments: Inner, (plant#13793980.internalRefUUID <=> plantUuid#13794008)
(817) Generate
Arguments: explode(filter(stockQuantities#13793982, lambdafunction(((lambda x#13792128.storageLocation.internalRefUuid = storageLocUuid#13794010) AND (lambda x#13792128.storageLocation.Id = storageLocId#13794009)), lambda x#13792128, false))), false, [stockQuantity#13794042]
(818) Project
Arguments: [systemId#13793977, internalUUID#13793978, product#13793979, plant#13793980, calculationDateTime#13793981, stockQuantities#13793982, plantId#13794007, plantUuid#13794008, storageLocId#13794009, storageLocUuid#13794010, stockQuantity#13794042]
(819) Aggregate
Arguments: [plantUuid#13794008, internalUUID#13793978, plant#13793980, product#13793979, systemId#13793977], [plantUuid#13794008, internalUUID#13793978, plant#13793980, product#13793979, systemId#13793977, first(calculationDateTime#13793981, false) AS calculationDateTime#13794043, collect_list(stockQuantity#13794042, 0, 0) AS stockQuantities#13794044]
(820) Project
Arguments: [systemId#13793977, internalUUID#13793978, product#13793979, plant#13793980, calculationDateTime#13794043, stockQuantities#13794044]
(821) Generate
Arguments: explode(stockQuantities#13794044), false, [stockQuantity#13794045]
(822) Project
Arguments: [systemId#13793977, internalUUID#13793978, product#13793979, plant#13793980, calculationDateTime#13794043, stockQuantities#13794044, stockQuantity#13794045]
(823) Project
Arguments: [plant#13793980.id AS plant#13794046, plant#13793980.internalRefUUID AS plantUuid#13794047, product#13793979.id AS product#13794048, product#13793979.internalRefUUID AS productUuid#13794049, calculationDateTime#13794043, stockQuantity#13794045.storagelocation.id AS storageLocId#13794050, stockQuantity#13794045.storagelocation.internalRefUUID AS storageLocUuid#13794051, stockQuantity#13794045.quantity.measure AS quantity#13794052, stockQuantity#13794045.specialStockIndicator.code AS specialStockIndicator#13794053, stockQuantity#13794045.stockType.code AS stockType#13794054]
(824) Filter
Arguments: ((specialStockIndicator#13794053 = ) AND (stockType#13794054 = 01))
(825) LogicalRelation
Arguments: parquet, [product#13794055, plant#13794056, orderDateTime#13794057, planningStartDateTime#13794058], false
(826) RepartitionByExpression
Arguments: [product#13794055, plant#13794056], 37
(827) Project
Arguments: [product#13794055, plant#13794056, orderDateTime#13794057]
(828) LogicalRelation
Arguments: parquet, [systemId#13794059, internalUUID#13794060, plant#13794061, product#13794062, blockedForReplenishmentStartingFrom#13794063, productionAspect#13794064, salesPlant#13794065, listing#13794066, sourceOfSupplyCategory#13794067], false
(829) Repartition
Arguments: 37, true
(830) Project
Arguments: [systemId#13794059, internalUUID#13794060, plant#13794061, product#13794062, blockedForReplenishmentStartingFrom#13794063, productionAspect#13794064, salesPlant#13794065, listing#13794066, sourceOfSupplyCategory#13794067, struct(systemId, systemId#13794059, internalUUID, internalUUID#13794060, plant, plant#13794061, product, product#13794062, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#13794063, productionAspect, productionAspect#13794064, salesPlant, salesPlant#13794065, listing, listing#13794066, sourceOfSupplyCategory, sourceOfSupplyCategory#13794067) AS productPlant#13794068]
(831) Project
Arguments: [productPlant#13794068]
(832) Join
Arguments: LeftOuter, ((product#13794055 <=> productPlant#13794068.product.internalRefUUID) AND (plant#13794056 <=> productPlant#13794068.plant.internalRefUUID))
(833) Project
Arguments: [product#13794055, plant#13794056, orderDateTime#13794057, productPlant#13794068]
(834) LogicalRelation
Arguments: parquet, [systemId#13794069, internalUUID#13794070, id#13794071, displayId#13794072, name#13794073, baseUnitOfMeasure#13794074, unitOfMeasures#13794075, unitOfMeasureConversions#13794076, productionAspect#13794077, salesAspect#13794078, procurementAspect#13794079, productGroup#13794080], false
(835) Repartition
Arguments: 37, true
(836) Join
Arguments: LeftOuter, (product#13794055 = internalUUID#13794070)
(837) Project
Arguments: [product#13794055, plant#13794056, orderDateTime#13794057, productPlant#13794068, systemId#13794069, internalUUID#13794070, id#13794071, displayId#13794072, name#13794073, baseUnitOfMeasure#13794074, unitOfMeasures#13794075, unitOfMeasureConversions#13794076, productionAspect#13794077, salesAspect#13794078, procurementAspect#13794079, productGroup#13794080, filter(unitOfMeasureConversions#13794076, lambdafunction((((lambda u#13792048.measurementUnit1.code = productPlant#13794068.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#13792048.measurementUnit1.internalRefUUID = productPlant#13794068.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#13792048.measurementUnit2.code = baseUnitOfMeasure#13794074.code) AND (lambda u#13792048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#13794074.internalRefUUID))), lambda u#13792048, false)) AS filteredUnitOfMeasureConversions#13794081]
(838) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13794081.quantityNumerator), true, [quantityNumerator#13794082]
(839) Project
Arguments: [product#13794055, plant#13794056, orderDateTime#13794057, productPlant#13794068, systemId#13794069, internalUUID#13794070, id#13794071, displayId#13794072, name#13794073, baseUnitOfMeasure#13794074, unitOfMeasures#13794075, unitOfMeasureConversions#13794076, productionAspect#13794077, salesAspect#13794078, procurementAspect#13794079, productGroup#13794080, filteredUnitOfMeasureConversions#13794081, quantityNumerator#13794082]
(840) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13794081.quantityDenominator), true, [quantityDenominator#13794083]
(841) Project
Arguments: [product#13794055, plant#13794056, orderDateTime#13794057, productPlant#13794068, systemId#13794069, internalUUID#13794070, id#13794071, displayId#13794072, name#13794073, baseUnitOfMeasure#13794074, unitOfMeasures#13794075, unitOfMeasureConversions#13794076, productionAspect#13794077, salesAspect#13794078, procurementAspect#13794079, productGroup#13794080, filteredUnitOfMeasureConversions#13794081, quantityNumerator#13794082, quantityDenominator#13794083]
(842) Project
Arguments: [product#13794055, plant#13794056, orderDateTime#13794057, productPlant#13794068, systemId#13794069, internalUUID#13794070, id#13794071, displayId#13794072, name#13794073, baseUnitOfMeasure#13794074, unitOfMeasures#13794075, unitOfMeasureConversions#13794076, productionAspect#13794077, salesAspect#13794078, procurementAspect#13794079, productGroup#13794080, filteredUnitOfMeasureConversions#13794081, quantityNumerator#13794082, quantityDenominator#13794083, (cast(quantityNumerator#13794082 as double) / cast(quantityDenominator#13794083 as double)) AS outboundUnit#13794084]
(843) Project
Arguments: [product#13794055, plant#13794056, orderDateTime#13794057, productPlant#13794068, systemId#13794069, internalUUID#13794070, id#13794071, displayId#13794072, name#13794073, baseUnitOfMeasure#13794074, unitOfMeasures#13794075, unitOfMeasureConversions#13794076, productionAspect#13794077, salesAspect#13794078, procurementAspect#13794079, productGroup#13794080, filteredUnitOfMeasureConversions#13794081, quantityNumerator#13794082, quantityDenominator#13794083, CASE WHEN (isnull(outboundUnit#13794084) OR (outboundUnit#13794084 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#13794084 END AS outboundUnit#13794085]
(844) Project
Arguments: [product#13794055, plant#13794056, orderDateTime#13794057, productPlant#13794068, outboundUnit#13794085]
(845) Join
Arguments: Inner, ((plantUuid#13794047 = plant#13794056) AND (productUuid#13794049 = product#13794055))
(846) Filter
Arguments: (calculationDateTime#13794043 <= orderDateTime#13794057)
(847) Project
Arguments: [plantUuid#13794047 AS plant#13794086, productUuid#13794049 AS product#13794087, storageLocId#13794050, calculationDateTime#13794043, quantity#13794052]
(848) LogicalRelation
Arguments: parquet, [systemId#13794088, internalUUID#13794089, product#13794090, plant#13794091, calculationDateTime#13794092, stockQuantities#13794093], false
(849) Repartition
Arguments: 37, true
(850) LogicalRelation
Arguments: parquet, [marketUnit#13794094, description#13794095, articleHierarchy#13794096, defaultCurrency#13794097, responsibilities#13794098, replenishmentTypes#13794099, distributionCenters#13794100, assignedArticleHierarchyNodes#13794101, minOrderQtySetting#13794102, listingCheck#13794103, odsSelection#13794104, demandProfiles#13794105, constraintProfiles#13794106, optimizationProfiles#13794107, orderGroupSplitProfiles#13794108, supplierMinimumProfiles#13794109, multipleRestrictionProfiles#13794110, preferredUomSource#13794111, handlingOfUnfulfilledDemands#13794112, negligibleQuantitiesThreshold#13794113, eventtype#13794114, minOrderQtySettingInternal#13794115], false
(851) Repartition
Arguments: 37, true
(852) Filter
Arguments: (marketUnit#13794094 <=> AUTO_ALL_ProdLoc)
(853) Project
Arguments: [marketUnit#13794094, description#13794095, articleHierarchy#13794096, defaultCurrency#13794097, responsibilities#13794098, replenishmentTypes#13794099, distributionCenters#13794100, assignedArticleHierarchyNodes#13794101, minOrderQtySetting#13794102, listingCheck#13794103, odsSelection#13794104, demandProfiles#13794105, constraintProfiles#13794106, optimizationProfiles#13794107, orderGroupSplitProfiles#13794108, supplierMinimumProfiles#13794109, multipleRestrictionProfiles#13794110, preferredUomSource#13794111, handlingOfUnfulfilledDemands#13794112, negligibleQuantitiesThreshold#13794113, eventtype#13794114, minOrderQtySettingInternal#13794115]
(854) Project
Arguments: [distributionCenters#13794100]
(855) Generate
Arguments: explode(distributionCenters#13794100), false, [distributionCenters#13794116]
(856) Project
Arguments: [distributionCenters#13794116]
(857) Generate
Arguments: explode(distributionCenters#13794116.storageLocations), false, [storageLocations#13794117]
(858) Project
Arguments: [distributionCenters#13794116.id AS plantId#13794118, distributionCenters#13794116.internalRefUUID AS plantUuid#13794119, storageLocations#13794117]
(859) Project
Arguments: [plantId#13794118, plantUuid#13794119, storageLocations#13794117.id AS storageLocId#13794120, storageLocations#13794117.internalRefUUID AS storageLocUuid#13794121]
(860) LogicalRelation
Arguments: parquet, [product#13794122, plant#13794123, orderDateTime#13794124, planningStartDateTime#13794125], false
(861) RepartitionByExpression
Arguments: [product#13794122, plant#13794123], 37
(862) Project
Arguments: [product#13794122, plant#13794123, orderDateTime#13794124]
(863) LogicalRelation
Arguments: parquet, [systemId#13794126, internalUUID#13794127, plant#13794128, product#13794129, blockedForReplenishmentStartingFrom#13794130, productionAspect#13794131, salesPlant#13794132, listing#13794133, sourceOfSupplyCategory#13794134], false
(864) Repartition
Arguments: 37, true
(865) Project
Arguments: [systemId#13794126, internalUUID#13794127, plant#13794128, product#13794129, blockedForReplenishmentStartingFrom#13794130, productionAspect#13794131, salesPlant#13794132, listing#13794133, sourceOfSupplyCategory#13794134, struct(systemId, systemId#13794126, internalUUID, internalUUID#13794127, plant, plant#13794128, product, product#13794129, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#13794130, productionAspect, productionAspect#13794131, salesPlant, salesPlant#13794132, listing, listing#13794133, sourceOfSupplyCategory, sourceOfSupplyCategory#13794134) AS productPlant#13794135]
(866) Project
Arguments: [productPlant#13794135]
(867) Join
Arguments: LeftOuter, ((product#13794122 <=> productPlant#13794135.product.internalRefUUID) AND (plant#13794123 <=> productPlant#13794135.plant.internalRefUUID))
(868) Project
Arguments: [product#13794122, plant#13794123, orderDateTime#13794124, productPlant#13794135]
(869) LogicalRelation
Arguments: parquet, [systemId#13794136, internalUUID#13794137, id#13794138, displayId#13794139, name#13794140, baseUnitOfMeasure#13794141, unitOfMeasures#13794142, unitOfMeasureConversions#13794143, productionAspect#13794144, salesAspect#13794145, procurementAspect#13794146, productGroup#13794147], false
(870) Repartition
Arguments: 37, true
(871) Join
Arguments: LeftOuter, (product#13794122 = internalUUID#13794137)
(872) Project
Arguments: [product#13794122, plant#13794123, orderDateTime#13794124, productPlant#13794135, systemId#13794136, internalUUID#13794137, id#13794138, displayId#13794139, name#13794140, baseUnitOfMeasure#13794141, unitOfMeasures#13794142, unitOfMeasureConversions#13794143, productionAspect#13794144, salesAspect#13794145, procurementAspect#13794146, productGroup#13794147, filter(unitOfMeasureConversions#13794143, lambdafunction((((lambda u#13792048.measurementUnit1.code = productPlant#13794135.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#13792048.measurementUnit1.internalRefUUID = productPlant#13794135.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#13792048.measurementUnit2.code = baseUnitOfMeasure#13794141.code) AND (lambda u#13792048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#13794141.internalRefUUID))), lambda u#13792048, false)) AS filteredUnitOfMeasureConversions#13794148]
(873) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13794148.quantityNumerator), true, [quantityNumerator#13794149]
(874) Project
Arguments: [product#13794122, plant#13794123, orderDateTime#13794124, productPlant#13794135, systemId#13794136, internalUUID#13794137, id#13794138, displayId#13794139, name#13794140, baseUnitOfMeasure#13794141, unitOfMeasures#13794142, unitOfMeasureConversions#13794143, productionAspect#13794144, salesAspect#13794145, procurementAspect#13794146, productGroup#13794147, filteredUnitOfMeasureConversions#13794148, quantityNumerator#13794149]
(875) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13794148.quantityDenominator), true, [quantityDenominator#13794150]
(876) Project
Arguments: [product#13794122, plant#13794123, orderDateTime#13794124, productPlant#13794135, systemId#13794136, internalUUID#13794137, id#13794138, displayId#13794139, name#13794140, baseUnitOfMeasure#13794141, unitOfMeasures#13794142, unitOfMeasureConversions#13794143, productionAspect#13794144, salesAspect#13794145, procurementAspect#13794146, productGroup#13794147, filteredUnitOfMeasureConversions#13794148, quantityNumerator#13794149, quantityDenominator#13794150]
(877) Project
Arguments: [product#13794122, plant#13794123, orderDateTime#13794124, productPlant#13794135, systemId#13794136, internalUUID#13794137, id#13794138, displayId#13794139, name#13794140, baseUnitOfMeasure#13794141, unitOfMeasures#13794142, unitOfMeasureConversions#13794143, productionAspect#13794144, salesAspect#13794145, procurementAspect#13794146, productGroup#13794147, filteredUnitOfMeasureConversions#13794148, quantityNumerator#13794149, quantityDenominator#13794150, (cast(quantityNumerator#13794149 as double) / cast(quantityDenominator#13794150 as double)) AS outboundUnit#13794151]
(878) Project
Arguments: [product#13794122, plant#13794123, orderDateTime#13794124, productPlant#13794135, systemId#13794136, internalUUID#13794137, id#13794138, displayId#13794139, name#13794140, baseUnitOfMeasure#13794141, unitOfMeasures#13794142, unitOfMeasureConversions#13794143, productionAspect#13794144, salesAspect#13794145, procurementAspect#13794146, productGroup#13794147, filteredUnitOfMeasureConversions#13794148, quantityNumerator#13794149, quantityDenominator#13794150, CASE WHEN (isnull(outboundUnit#13794151) OR (outboundUnit#13794151 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#13794151 END AS outboundUnit#13794152]
(879) Project
Arguments: [product#13794122, plant#13794123, orderDateTime#13794124, productPlant#13794135, outboundUnit#13794152]
(880) Project
Arguments: [plant#13794123]
(881) Deduplicate
Arguments: [plant#13794123]
(882) Join
Arguments: Inner, (plantUuid#13794119 = plant#13794123)
(883) Project
Arguments: [plantId#13794118, plantUuid#13794119, storageLocId#13794120, storageLocUuid#13794121]
(884) Join
Arguments: Inner, (plant#13794091.internalRefUUID <=> plantUuid#13794119)
(885) Generate
Arguments: explode(filter(stockQuantities#13794093, lambdafunction(((lambda x#13792128.storageLocation.internalRefUuid = storageLocUuid#13794121) AND (lambda x#13792128.storageLocation.Id = storageLocId#13794120)), lambda x#13792128, false))), false, [stockQuantity#13794153]
(886) Project
Arguments: [systemId#13794088, internalUUID#13794089, product#13794090, plant#13794091, calculationDateTime#13794092, stockQuantities#13794093, plantId#13794118, plantUuid#13794119, storageLocId#13794120, storageLocUuid#13794121, stockQuantity#13794153]
(887) Aggregate
Arguments: [plantUuid#13794119, internalUUID#13794089, plant#13794091, product#13794090, systemId#13794088], [plantUuid#13794119, internalUUID#13794089, plant#13794091, product#13794090, systemId#13794088, first(calculationDateTime#13794092, false) AS calculationDateTime#13794154, collect_list(stockQuantity#13794153, 0, 0) AS stockQuantities#13794155]
(888) Project
Arguments: [systemId#13794088, internalUUID#13794089, product#13794090, plant#13794091, calculationDateTime#13794154, stockQuantities#13794155]
(889) Generate
Arguments: explode(stockQuantities#13794155), false, [stockQuantity#13794156]
(890) Project
Arguments: [systemId#13794088, internalUUID#13794089, product#13794090, plant#13794091, calculationDateTime#13794154, stockQuantities#13794155, stockQuantity#13794156]
(891) Project
Arguments: [plant#13794091.id AS plant#13794157, plant#13794091.internalRefUUID AS plantUuid#13794158, product#13794090.id AS product#13794159, product#13794090.internalRefUUID AS productUuid#13794160, calculationDateTime#13794154, stockQuantity#13794156.storagelocation.id AS storageLocId#13794161, stockQuantity#13794156.storagelocation.internalRefUUID AS storageLocUuid#13794162, stockQuantity#13794156.quantity.measure AS quantity#13794163, stockQuantity#13794156.specialStockIndicator.code AS specialStockIndicator#13794164, stockQuantity#13794156.stockType.code AS stockType#13794165]
(892) Filter
Arguments: ((specialStockIndicator#13794164 = ) AND (stockType#13794165 = 01))
(893) LogicalRelation
Arguments: parquet, [product#13794166, plant#13794167, orderDateTime#13794168, planningStartDateTime#13794169], false
(894) RepartitionByExpression
Arguments: [product#13794166, plant#13794167], 37
(895) Project
Arguments: [product#13794166, plant#13794167, orderDateTime#13794168]
(896) LogicalRelation
Arguments: parquet, [systemId#13794170, internalUUID#13794171, plant#13794172, product#13794173, blockedForReplenishmentStartingFrom#13794174, productionAspect#13794175, salesPlant#13794176, listing#13794177, sourceOfSupplyCategory#13794178], false
(897) Repartition
Arguments: 37, true
(898) Project
Arguments: [systemId#13794170, internalUUID#13794171, plant#13794172, product#13794173, blockedForReplenishmentStartingFrom#13794174, productionAspect#13794175, salesPlant#13794176, listing#13794177, sourceOfSupplyCategory#13794178, struct(systemId, systemId#13794170, internalUUID, internalUUID#13794171, plant, plant#13794172, product, product#13794173, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#13794174, productionAspect, productionAspect#13794175, salesPlant, salesPlant#13794176, listing, listing#13794177, sourceOfSupplyCategory, sourceOfSupplyCategory#13794178) AS productPlant#13794179]
(899) Project
Arguments: [productPlant#13794179]
(900) Join
Arguments: LeftOuter, ((product#13794166 <=> productPlant#13794179.product.internalRefUUID) AND (plant#13794167 <=> productPlant#13794179.plant.internalRefUUID))
(901) Project
Arguments: [product#13794166, plant#13794167, orderDateTime#13794168, productPlant#13794179]
(902) LogicalRelation
Arguments: parquet, [systemId#13794180, internalUUID#13794181, id#13794182, displayId#13794183, name#13794184, baseUnitOfMeasure#13794185, unitOfMeasures#13794186, unitOfMeasureConversions#13794187, productionAspect#13794188, salesAspect#13794189, procurementAspect#13794190, productGroup#13794191], false
(903) Repartition
Arguments: 37, true
(904) Join
Arguments: LeftOuter, (product#13794166 = internalUUID#13794181)
(905) Project
Arguments: [product#13794166, plant#13794167, orderDateTime#13794168, productPlant#13794179, systemId#13794180, internalUUID#13794181, id#13794182, displayId#13794183, name#13794184, baseUnitOfMeasure#13794185, unitOfMeasures#13794186, unitOfMeasureConversions#13794187, productionAspect#13794188, salesAspect#13794189, procurementAspect#13794190, productGroup#13794191, filter(unitOfMeasureConversions#13794187, lambdafunction((((lambda u#13792048.measurementUnit1.code = productPlant#13794179.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#13792048.measurementUnit1.internalRefUUID = productPlant#13794179.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#13792048.measurementUnit2.code = baseUnitOfMeasure#13794185.code) AND (lambda u#13792048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#13794185.internalRefUUID))), lambda u#13792048, false)) AS filteredUnitOfMeasureConversions#13794192]
(906) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13794192.quantityNumerator), true, [quantityNumerator#13794193]
(907) Project
Arguments: [product#13794166, plant#13794167, orderDateTime#13794168, productPlant#13794179, systemId#13794180, internalUUID#13794181, id#13794182, displayId#13794183, name#13794184, baseUnitOfMeasure#13794185, unitOfMeasures#13794186, unitOfMeasureConversions#13794187, productionAspect#13794188, salesAspect#13794189, procurementAspect#13794190, productGroup#13794191, filteredUnitOfMeasureConversions#13794192, quantityNumerator#13794193]
(908) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13794192.quantityDenominator), true, [quantityDenominator#13794194]
(909) Project
Arguments: [product#13794166, plant#13794167, orderDateTime#13794168, productPlant#13794179, systemId#13794180, internalUUID#13794181, id#13794182, displayId#13794183, name#13794184, baseUnitOfMeasure#13794185, unitOfMeasures#13794186, unitOfMeasureConversions#13794187, productionAspect#13794188, salesAspect#13794189, procurementAspect#13794190, productGroup#13794191, filteredUnitOfMeasureConversions#13794192, quantityNumerator#13794193, quantityDenominator#13794194]
(910) Project
Arguments: [product#13794166, plant#13794167, orderDateTime#13794168, productPlant#13794179, systemId#13794180, internalUUID#13794181, id#13794182, displayId#13794183, name#13794184, baseUnitOfMeasure#13794185, unitOfMeasures#13794186, unitOfMeasureConversions#13794187, productionAspect#13794188, salesAspect#13794189, procurementAspect#13794190, productGroup#13794191, filteredUnitOfMeasureConversions#13794192, quantityNumerator#13794193, quantityDenominator#13794194, (cast(quantityNumerator#13794193 as double) / cast(quantityDenominator#13794194 as double)) AS outboundUnit#13794195]
(911) Project
Arguments: [product#13794166, plant#13794167, orderDateTime#13794168, productPlant#13794179, systemId#13794180, internalUUID#13794181, id#13794182, displayId#13794183, name#13794184, baseUnitOfMeasure#13794185, unitOfMeasures#13794186, unitOfMeasureConversions#13794187, productionAspect#13794188, salesAspect#13794189, procurementAspect#13794190, productGroup#13794191, filteredUnitOfMeasureConversions#13794192, quantityNumerator#13794193, quantityDenominator#13794194, CASE WHEN (isnull(outboundUnit#13794195) OR (outboundUnit#13794195 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#13794195 END AS outboundUnit#13794196]
(912) Project
Arguments: [product#13794166, plant#13794167, orderDateTime#13794168, productPlant#13794179, outboundUnit#13794196]
(913) Join
Arguments: Inner, ((plantUuid#13794158 = plant#13794167) AND (productUuid#13794160 = product#13794166))
(914) Filter
Arguments: (calculationDateTime#13794154 <= orderDateTime#13794168)
(915) Project
Arguments: [plantUuid#13794158 AS plant#13794197, productUuid#13794160 AS product#13794198, storageLocId#13794161, calculationDateTime#13794154, quantity#13794163]
(916) Aggregate
Arguments: [plant#13794197, product#13794198, storageLocId#13794161], [plant#13794197, product#13794198, storageLocId#13794161, max(calculationDateTime#13794154) AS max_calc_datetime#13794199]
(917) Join
Arguments: Inner, ((((plant#13794086 <=> plant#13794197) AND (product#13794087 <=> product#13794198)) AND (storageLocId#13794050 <=> storageLocId#13794161)) AND (calculationDateTime#13794043 <=> max_calc_datetime#13794199))
(918) Project
Arguments: [plant#13794086, product#13794087, storageLocId#13794050, calculationDateTime#13794043, quantity#13794052]
(919) Aggregate
Arguments: [product#13794087, plant#13794086], [product#13794087, plant#13794086, sum(quantity#13794052) AS quantitySum#13794200, min(calculationDateTime#13794043) AS minCalculationDateTime#13794201]
(920) Project
Arguments: [product#13794087, plant#13794086, quantitySum#13794200, minCalculationDateTime#13794201, round(quantitySum#13794200, 0) AS roundedQuantitySum#13794202]
(921) Join
Arguments: LeftOuter, ((plant#13793947 = plant#13794086) AND (product#13793946 = product#13794087))
(922) Project
Arguments: [product#13793946, plant#13793947, orderDateTime#13793948, productPlant#13793959, outboundUnit#13793976, roundedQuantitySum#13794202, minCalculationDateTime#13794201]
(923) Project
Arguments: [product#13793946, plant#13793947, orderDateTime#13793948, productPlant#13793959, outboundUnit#13793976, roundedQuantitySum#13794202, minCalculationDateTime#13794201, CASE WHEN isnotnull(minCalculationDateTime#13794201) THEN minCalculationDateTime#13794201 ELSE orderDateTime#13793948 END AS stockDatetime#13794203]
(924) Project
Arguments: [product#13793946, plant#13793947, orderDateTime#13793948, productPlant#13793959, outboundUnit#13793976, roundedQuantitySum#13794202, minCalculationDateTime#13794201, stockDatetime#13794203, CASE WHEN isnotnull(roundedQuantitySum#13794202) THEN array(roundedQuantitySum#13794202) ELSE array(0.0) END AS stockBatchQuantities#13794204]
(925) Project
Arguments: [product#13793946, plant#13793947, orderDateTime#13793948, productPlant#13793959, outboundUnit#13793976, roundedQuantitySum#13794202, minCalculationDateTime#13794201, stockDatetime#13794203, stockBatchQuantities#13794204, array(2199-01-01 00:00:00) AS stockBatchShelfLifeEndDatetimes#13794205]
(926) Project
Arguments: [product#13793946, plant#13793947, orderDateTime#13793948, productPlant#13793959, outboundUnit#13793976, roundedQuantitySum#13794202, stockDatetime#13794203, stockBatchQuantities#13794204, stockBatchShelfLifeEndDatetimes#13794205]
(927) Project
Arguments: [product#13793946, plant#13793947, orderDateTime#13793948, productPlant#13793959, outboundUnit#13793976, stockDatetime#13794203, stockBatchQuantities#13794204, stockBatchShelfLifeEndDatetimes#13794205]
(928) LogicalRelation
Arguments: parquet, [product#13794206, plant#13794207, orderDateTime#13794208, planningStartDateTime#13794209], false
(929) RepartitionByExpression
Arguments: [product#13794206, plant#13794207], 37
(930) Project
Arguments: [product#13794206, plant#13794207, orderDateTime#13794208]
(931) LogicalRelation
Arguments: parquet, [systemId#13794210, internalUUID#13794211, plant#13794212, product#13794213, blockedForReplenishmentStartingFrom#13794214, productionAspect#13794215, salesPlant#13794216, listing#13794217, sourceOfSupplyCategory#13794218], false
(932) Repartition
Arguments: 37, true
(933) Project
Arguments: [systemId#13794210, internalUUID#13794211, plant#13794212, product#13794213, blockedForReplenishmentStartingFrom#13794214, productionAspect#13794215, salesPlant#13794216, listing#13794217, sourceOfSupplyCategory#13794218, struct(systemId, systemId#13794210, internalUUID, internalUUID#13794211, plant, plant#13794212, product, product#13794213, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#13794214, productionAspect, productionAspect#13794215, salesPlant, salesPlant#13794216, listing, listing#13794217, sourceOfSupplyCategory, sourceOfSupplyCategory#13794218) AS productPlant#13794219]
(934) Project
Arguments: [productPlant#13794219]
(935) Join
Arguments: LeftOuter, ((product#13794206 <=> productPlant#13794219.product.internalRefUUID) AND (plant#13794207 <=> productPlant#13794219.plant.internalRefUUID))
(936) Project
Arguments: [product#13794206, plant#13794207, orderDateTime#13794208, productPlant#13794219]
(937) LogicalRelation
Arguments: parquet, [systemId#13794220, internalUUID#13794221, id#13794222, displayId#13794223, name#13794224, baseUnitOfMeasure#13794225, unitOfMeasures#13794226, unitOfMeasureConversions#13794227, productionAspect#13794228, salesAspect#13794229, procurementAspect#13794230, productGroup#13794231], false
(938) Repartition
Arguments: 37, true
(939) Join
Arguments: LeftOuter, (product#13794206 = internalUUID#13794221)
(940) Project
Arguments: [product#13794206, plant#13794207, orderDateTime#13794208, productPlant#13794219, systemId#13794220, internalUUID#13794221, id#13794222, displayId#13794223, name#13794224, baseUnitOfMeasure#13794225, unitOfMeasures#13794226, unitOfMeasureConversions#13794227, productionAspect#13794228, salesAspect#13794229, procurementAspect#13794230, productGroup#13794231, filter(unitOfMeasureConversions#13794227, lambdafunction((((lambda u#13792048.measurementUnit1.code = productPlant#13794219.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#13792048.measurementUnit1.internalRefUUID = productPlant#13794219.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#13792048.measurementUnit2.code = baseUnitOfMeasure#13794225.code) AND (lambda u#13792048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#13794225.internalRefUUID))), lambda u#13792048, false)) AS filteredUnitOfMeasureConversions#13794232]
(941) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13794232.quantityNumerator), true, [quantityNumerator#13794233]
(942) Project
Arguments: [product#13794206, plant#13794207, orderDateTime#13794208, productPlant#13794219, systemId#13794220, internalUUID#13794221, id#13794222, displayId#13794223, name#13794224, baseUnitOfMeasure#13794225, unitOfMeasures#13794226, unitOfMeasureConversions#13794227, productionAspect#13794228, salesAspect#13794229, procurementAspect#13794230, productGroup#13794231, filteredUnitOfMeasureConversions#13794232, quantityNumerator#13794233]
(943) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13794232.quantityDenominator), true, [quantityDenominator#13794234]
(944) Project
Arguments: [product#13794206, plant#13794207, orderDateTime#13794208, productPlant#13794219, systemId#13794220, internalUUID#13794221, id#13794222, displayId#13794223, name#13794224, baseUnitOfMeasure#13794225, unitOfMeasures#13794226, unitOfMeasureConversions#13794227, productionAspect#13794228, salesAspect#13794229, procurementAspect#13794230, productGroup#13794231, filteredUnitOfMeasureConversions#13794232, quantityNumerator#13794233, quantityDenominator#13794234]
(945) Project
Arguments: [product#13794206, plant#13794207, orderDateTime#13794208, productPlant#13794219, systemId#13794220, internalUUID#13794221, id#13794222, displayId#13794223, name#13794224, baseUnitOfMeasure#13794225, unitOfMeasures#13794226, unitOfMeasureConversions#13794227, productionAspect#13794228, salesAspect#13794229, procurementAspect#13794230, productGroup#13794231, filteredUnitOfMeasureConversions#13794232, quantityNumerator#13794233, quantityDenominator#13794234, (cast(quantityNumerator#13794233 as double) / cast(quantityDenominator#13794234 as double)) AS outboundUnit#13794235]
(946) Project
Arguments: [product#13794206, plant#13794207, orderDateTime#13794208, productPlant#13794219, systemId#13794220, internalUUID#13794221, id#13794222, displayId#13794223, name#13794224, baseUnitOfMeasure#13794225, unitOfMeasures#13794226, unitOfMeasureConversions#13794227, productionAspect#13794228, salesAspect#13794229, procurementAspect#13794230, productGroup#13794231, filteredUnitOfMeasureConversions#13794232, quantityNumerator#13794233, quantityDenominator#13794234, CASE WHEN (isnull(outboundUnit#13794235) OR (outboundUnit#13794235 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#13794235 END AS outboundUnit#13794236]
(947) Project
Arguments: [product#13794206, plant#13794207, orderDateTime#13794208, productPlant#13794219, outboundUnit#13794236]
(948) LogicalRelation
Arguments: parquet, [systemId#13794237, internalUUID#13794238, product#13794239, plant#13794240, calculationDateTime#13794241, stockQuantities#13794242], false
(949) Repartition
Arguments: 37, true
(950) LogicalRelation
Arguments: parquet, [marketUnit#13794243, description#13794244, articleHierarchy#13794245, defaultCurrency#13794246, responsibilities#13794247, replenishmentTypes#13794248, distributionCenters#13794249, assignedArticleHierarchyNodes#13794250, minOrderQtySetting#13794251, listingCheck#13794252, odsSelection#13794253, demandProfiles#13794254, constraintProfiles#13794255, optimizationProfiles#13794256, orderGroupSplitProfiles#13794257, supplierMinimumProfiles#13794258, multipleRestrictionProfiles#13794259, preferredUomSource#13794260, handlingOfUnfulfilledDemands#13794261, negligibleQuantitiesThreshold#13794262, eventtype#13794263, minOrderQtySettingInternal#13794264], false
(951) Repartition
Arguments: 37, true
(952) Filter
Arguments: (marketUnit#13794243 <=> AUTO_ALL_ProdLoc)
(953) Project
Arguments: [marketUnit#13794243, description#13794244, articleHierarchy#13794245, defaultCurrency#13794246, responsibilities#13794247, replenishmentTypes#13794248, distributionCenters#13794249, assignedArticleHierarchyNodes#13794250, minOrderQtySetting#13794251, listingCheck#13794252, odsSelection#13794253, demandProfiles#13794254, constraintProfiles#13794255, optimizationProfiles#13794256, orderGroupSplitProfiles#13794257, supplierMinimumProfiles#13794258, multipleRestrictionProfiles#13794259, preferredUomSource#13794260, handlingOfUnfulfilledDemands#13794261, negligibleQuantitiesThreshold#13794262, eventtype#13794263, minOrderQtySettingInternal#13794264]
(954) Project
Arguments: [distributionCenters#13794249]
(955) Generate
Arguments: explode(distributionCenters#13794249), false, [distributionCenters#13794265]
(956) Project
Arguments: [distributionCenters#13794265]
(957) Generate
Arguments: explode(distributionCenters#13794265.storageLocations), false, [storageLocations#13794266]
(958) Project
Arguments: [distributionCenters#13794265.id AS plantId#13794267, distributionCenters#13794265.internalRefUUID AS plantUuid#13794268, storageLocations#13794266]
(959) Project
Arguments: [plantId#13794267, plantUuid#13794268, storageLocations#13794266.id AS storageLocId#13794269, storageLocations#13794266.internalRefUUID AS storageLocUuid#13794270]
(960) LogicalRelation
Arguments: parquet, [product#13794271, plant#13794272, orderDateTime#13794273, planningStartDateTime#13794274], false
(961) RepartitionByExpression
Arguments: [product#13794271, plant#13794272], 37
(962) Project
Arguments: [product#13794271, plant#13794272, orderDateTime#13794273]
(963) LogicalRelation
Arguments: parquet, [systemId#13794275, internalUUID#13794276, plant#13794277, product#13794278, blockedForReplenishmentStartingFrom#13794279, productionAspect#13794280, salesPlant#13794281, listing#13794282, sourceOfSupplyCategory#13794283], false
(964) Repartition
Arguments: 37, true
(965) Project
Arguments: [systemId#13794275, internalUUID#13794276, plant#13794277, product#13794278, blockedForReplenishmentStartingFrom#13794279, productionAspect#13794280, salesPlant#13794281, listing#13794282, sourceOfSupplyCategory#13794283, struct(systemId, systemId#13794275, internalUUID, internalUUID#13794276, plant, plant#13794277, product, product#13794278, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#13794279, productionAspect, productionAspect#13794280, salesPlant, salesPlant#13794281, listing, listing#13794282, sourceOfSupplyCategory, sourceOfSupplyCategory#13794283) AS productPlant#13794284]
(966) Project
Arguments: [productPlant#13794284]
(967) Join
Arguments: LeftOuter, ((product#13794271 <=> productPlant#13794284.product.internalRefUUID) AND (plant#13794272 <=> productPlant#13794284.plant.internalRefUUID))
(968) Project
Arguments: [product#13794271, plant#13794272, orderDateTime#13794273, productPlant#13794284]
(969) LogicalRelation
Arguments: parquet, [systemId#13794285, internalUUID#13794286, id#13794287, displayId#13794288, name#13794289, baseUnitOfMeasure#13794290, unitOfMeasures#13794291, unitOfMeasureConversions#13794292, productionAspect#13794293, salesAspect#13794294, procurementAspect#13794295, productGroup#13794296], false
(970) Repartition
Arguments: 37, true
(971) Join
Arguments: LeftOuter, (product#13794271 = internalUUID#13794286)
(972) Project
Arguments: [product#13794271, plant#13794272, orderDateTime#13794273, productPlant#13794284, systemId#13794285, internalUUID#13794286, id#13794287, displayId#13794288, name#13794289, baseUnitOfMeasure#13794290, unitOfMeasures#13794291, unitOfMeasureConversions#13794292, productionAspect#13794293, salesAspect#13794294, procurementAspect#13794295, productGroup#13794296, filter(unitOfMeasureConversions#13794292, lambdafunction((((lambda u#13792048.measurementUnit1.code = productPlant#13794284.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#13792048.measurementUnit1.internalRefUUID = productPlant#13794284.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#13792048.measurementUnit2.code = baseUnitOfMeasure#13794290.code) AND (lambda u#13792048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#13794290.internalRefUUID))), lambda u#13792048, false)) AS filteredUnitOfMeasureConversions#13794297]
(973) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13794297.quantityNumerator), true, [quantityNumerator#13794298]
(974) Project
Arguments: [product#13794271, plant#13794272, orderDateTime#13794273, productPlant#13794284, systemId#13794285, internalUUID#13794286, id#13794287, displayId#13794288, name#13794289, baseUnitOfMeasure#13794290, unitOfMeasures#13794291, unitOfMeasureConversions#13794292, productionAspect#13794293, salesAspect#13794294, procurementAspect#13794295, productGroup#13794296, filteredUnitOfMeasureConversions#13794297, quantityNumerator#13794298]
(975) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13794297.quantityDenominator), true, [quantityDenominator#13794299]
(976) Project
Arguments: [product#13794271, plant#13794272, orderDateTime#13794273, productPlant#13794284, systemId#13794285, internalUUID#13794286, id#13794287, displayId#13794288, name#13794289, baseUnitOfMeasure#13794290, unitOfMeasures#13794291, unitOfMeasureConversions#13794292, productionAspect#13794293, salesAspect#13794294, procurementAspect#13794295, productGroup#13794296, filteredUnitOfMeasureConversions#13794297, quantityNumerator#13794298, quantityDenominator#13794299]
(977) Project
Arguments: [product#13794271, plant#13794272, orderDateTime#13794273, productPlant#13794284, systemId#13794285, internalUUID#13794286, id#13794287, displayId#13794288, name#13794289, baseUnitOfMeasure#13794290, unitOfMeasures#13794291, unitOfMeasureConversions#13794292, productionAspect#13794293, salesAspect#13794294, procurementAspect#13794295, productGroup#13794296, filteredUnitOfMeasureConversions#13794297, quantityNumerator#13794298, quantityDenominator#13794299, (cast(quantityNumerator#13794298 as double) / cast(quantityDenominator#13794299 as double)) AS outboundUnit#13794300]
(978) Project
Arguments: [product#13794271, plant#13794272, orderDateTime#13794273, productPlant#13794284, systemId#13794285, internalUUID#13794286, id#13794287, displayId#13794288, name#13794289, baseUnitOfMeasure#13794290, unitOfMeasures#13794291, unitOfMeasureConversions#13794292, productionAspect#13794293, salesAspect#13794294, procurementAspect#13794295, productGroup#13794296, filteredUnitOfMeasureConversions#13794297, quantityNumerator#13794298, quantityDenominator#13794299, CASE WHEN (isnull(outboundUnit#13794300) OR (outboundUnit#13794300 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#13794300 END AS outboundUnit#13794301]
(979) Project
Arguments: [product#13794271, plant#13794272, orderDateTime#13794273, productPlant#13794284, outboundUnit#13794301]
(980) Project
Arguments: [plant#13794272]
(981) Deduplicate
Arguments: [plant#13794272]
(982) Join
Arguments: Inner, (plantUuid#13794268 = plant#13794272)
(983) Project
Arguments: [plantId#13794267, plantUuid#13794268, storageLocId#13794269, storageLocUuid#13794270]
(984) Join
Arguments: Inner, (plant#13794240.internalRefUUID <=> plantUuid#13794268)
(985) Generate
Arguments: explode(filter(stockQuantities#13794242, lambdafunction(((lambda x#13792128.storageLocation.internalRefUuid = storageLocUuid#13794270) AND (lambda x#13792128.storageLocation.Id = storageLocId#13794269)), lambda x#13792128, false))), false, [stockQuantity#13794302]
(986) Project
Arguments: [systemId#13794237, internalUUID#13794238, product#13794239, plant#13794240, calculationDateTime#13794241, stockQuantities#13794242, plantId#13794267, plantUuid#13794268, storageLocId#13794269, storageLocUuid#13794270, stockQuantity#13794302]
(987) Aggregate
Arguments: [plantUuid#13794268, internalUUID#13794238, plant#13794240, product#13794239, systemId#13794237], [plantUuid#13794268, internalUUID#13794238, plant#13794240, product#13794239, systemId#13794237, first(calculationDateTime#13794241, false) AS calculationDateTime#13794303, collect_list(stockQuantity#13794302, 0, 0) AS stockQuantities#13794304]
(988) Project
Arguments: [systemId#13794237, internalUUID#13794238, product#13794239, plant#13794240, calculationDateTime#13794303, stockQuantities#13794304]
(989) Generate
Arguments: explode(stockQuantities#13794304), false, [stockQuantity#13794305]
(990) Project
Arguments: [systemId#13794237, internalUUID#13794238, product#13794239, plant#13794240, calculationDateTime#13794303, stockQuantities#13794304, stockQuantity#13794305]
(991) Project
Arguments: [plant#13794240.id AS plant#13794306, plant#13794240.internalRefUUID AS plantUuid#13794307, product#13794239.id AS product#13794308, product#13794239.internalRefUUID AS productUuid#13794309, calculationDateTime#13794303, stockQuantity#13794305.storagelocation.id AS storageLocId#13794310, stockQuantity#13794305.storagelocation.internalRefUUID AS storageLocUuid#13794311, stockQuantity#13794305.quantity.measure AS quantity#13794312, stockQuantity#13794305.specialStockIndicator.code AS specialStockIndicator#13794313, stockQuantity#13794305.stockType.code AS stockType#13794314]
(992) Filter
Arguments: ((specialStockIndicator#13794313 = ) AND (stockType#13794314 = 01))
(993) LogicalRelation
Arguments: parquet, [product#13794315, plant#13794316, orderDateTime#13794317, planningStartDateTime#13794318], false
(994) RepartitionByExpression
Arguments: [product#13794315, plant#13794316], 37
(995) Project
Arguments: [product#13794315, plant#13794316, orderDateTime#13794317]
(996) LogicalRelation
Arguments: parquet, [systemId#13794319, internalUUID#13794320, plant#13794321, product#13794322, blockedForReplenishmentStartingFrom#13794323, productionAspect#13794324, salesPlant#13794325, listing#13794326, sourceOfSupplyCategory#13794327], false
(997) Repartition
Arguments: 37, true
(998) Project
Arguments: [systemId#13794319, internalUUID#13794320, plant#13794321, product#13794322, blockedForReplenishmentStartingFrom#13794323, productionAspect#13794324, salesPlant#13794325, listing#13794326, sourceOfSupplyCategory#13794327, struct(systemId, systemId#13794319, internalUUID, internalUUID#13794320, plant, plant#13794321, product, product#13794322, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#13794323, productionAspect, productionAspect#13794324, salesPlant, salesPlant#13794325, listing, listing#13794326, sourceOfSupplyCategory, sourceOfSupplyCategory#13794327) AS productPlant#13794328]
(999) Project
Arguments: [productPlant#13794328]
(1000) Join
Arguments: LeftOuter, ((product#13794315 <=> productPlant#13794328.product.internalRefUUID) AND (plant#13794316 <=> productPlant#13794328.plant.internalRefUUID))
(1001) Project
Arguments: [product#13794315, plant#13794316, orderDateTime#13794317, productPlant#13794328]
(1002) LogicalRelation
Arguments: parquet, [systemId#13794329, internalUUID#13794330, id#13794331, displayId#13794332, name#13794333, baseUnitOfMeasure#13794334, unitOfMeasures#13794335, unitOfMeasureConversions#13794336, productionAspect#13794337, salesAspect#13794338, procurementAspect#13794339, productGroup#13794340], false
(1003) Repartition
Arguments: 37, true
(1004) Join
Arguments: LeftOuter, (product#13794315 = internalUUID#13794330)
(1005) Project
Arguments: [product#13794315, plant#13794316, orderDateTime#13794317, productPlant#13794328, systemId#13794329, internalUUID#13794330, id#13794331, displayId#13794332, name#13794333, baseUnitOfMeasure#13794334, unitOfMeasures#13794335, unitOfMeasureConversions#13794336, productionAspect#13794337, salesAspect#13794338, procurementAspect#13794339, productGroup#13794340, filter(unitOfMeasureConversions#13794336, lambdafunction((((lambda u#13792048.measurementUnit1.code = productPlant#13794328.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#13792048.measurementUnit1.internalRefUUID = productPlant#13794328.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#13792048.measurementUnit2.code = baseUnitOfMeasure#13794334.code) AND (lambda u#13792048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#13794334.internalRefUUID))), lambda u#13792048, false)) AS filteredUnitOfMeasureConversions#13794341]
(1006) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13794341.quantityNumerator), true, [quantityNumerator#13794342]
(1007) Project
Arguments: [product#13794315, plant#13794316, orderDateTime#13794317, productPlant#13794328, systemId#13794329, internalUUID#13794330, id#13794331, displayId#13794332, name#13794333, baseUnitOfMeasure#13794334, unitOfMeasures#13794335, unitOfMeasureConversions#13794336, productionAspect#13794337, salesAspect#13794338, procurementAspect#13794339, productGroup#13794340, filteredUnitOfMeasureConversions#13794341, quantityNumerator#13794342]
(1008) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13794341.quantityDenominator), true, [quantityDenominator#13794343]
(1009) Project
Arguments: [product#13794315, plant#13794316, orderDateTime#13794317, productPlant#13794328, systemId#13794329, internalUUID#13794330, id#13794331, displayId#13794332, name#13794333, baseUnitOfMeasure#13794334, unitOfMeasures#13794335, unitOfMeasureConversions#13794336, productionAspect#13794337, salesAspect#13794338, procurementAspect#13794339, productGroup#13794340, filteredUnitOfMeasureConversions#13794341, quantityNumerator#13794342, quantityDenominator#13794343]
(1010) Project
Arguments: [product#13794315, plant#13794316, orderDateTime#13794317, productPlant#13794328, systemId#13794329, internalUUID#13794330, id#13794331, displayId#13794332, name#13794333, baseUnitOfMeasure#13794334, unitOfMeasures#13794335, unitOfMeasureConversions#13794336, productionAspect#13794337, salesAspect#13794338, procurementAspect#13794339, productGroup#13794340, filteredUnitOfMeasureConversions#13794341, quantityNumerator#13794342, quantityDenominator#13794343, (cast(quantityNumerator#13794342 as double) / cast(quantityDenominator#13794343 as double)) AS outboundUnit#13794344]
(1011) Project
Arguments: [product#13794315, plant#13794316, orderDateTime#13794317, productPlant#13794328, systemId#13794329, internalUUID#13794330, id#13794331, displayId#13794332, name#13794333, baseUnitOfMeasure#13794334, unitOfMeasures#13794335, unitOfMeasureConversions#13794336, productionAspect#13794337, salesAspect#13794338, procurementAspect#13794339, productGroup#13794340, filteredUnitOfMeasureConversions#13794341, quantityNumerator#13794342, quantityDenominator#13794343, CASE WHEN (isnull(outboundUnit#13794344) OR (outboundUnit#13794344 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#13794344 END AS outboundUnit#13794345]
(1012) Project
Arguments: [product#13794315, plant#13794316, orderDateTime#13794317, productPlant#13794328, outboundUnit#13794345]
(1013) Join
Arguments: Inner, ((plantUuid#13794307 = plant#13794316) AND (productUuid#13794309 = product#13794315))
(1014) Filter
Arguments: (calculationDateTime#13794303 <= orderDateTime#13794317)
(1015) Project
Arguments: [plantUuid#13794307 AS plant#13794346, productUuid#13794309 AS product#13794347, storageLocId#13794310, calculationDateTime#13794303, quantity#13794312]
(1016) LogicalRelation
Arguments: parquet, [systemId#13794348, internalUUID#13794349, product#13794350, plant#13794351, calculationDateTime#13794352, stockQuantities#13794353], false
(1017) Repartition
Arguments: 37, true
(1018) LogicalRelation
Arguments: parquet, [marketUnit#13794354, description#13794355, articleHierarchy#13794356, defaultCurrency#13794357, responsibilities#13794358, replenishmentTypes#13794359, distributionCenters#13794360, assignedArticleHierarchyNodes#13794361, minOrderQtySetting#13794362, listingCheck#13794363, odsSelection#13794364, demandProfiles#13794365, constraintProfiles#13794366, optimizationProfiles#13794367, orderGroupSplitProfiles#13794368, supplierMinimumProfiles#13794369, multipleRestrictionProfiles#13794370, preferredUomSource#13794371, handlingOfUnfulfilledDemands#13794372, negligibleQuantitiesThreshold#13794373, eventtype#13794374, minOrderQtySettingInternal#13794375], false
(1019) Repartition
Arguments: 37, true
(1020) Filter
Arguments: (marketUnit#13794354 <=> AUTO_ALL_ProdLoc)
(1021) Project
Arguments: [marketUnit#13794354, description#13794355, articleHierarchy#13794356, defaultCurrency#13794357, responsibilities#13794358, replenishmentTypes#13794359, distributionCenters#13794360, assignedArticleHierarchyNodes#13794361, minOrderQtySetting#13794362, listingCheck#13794363, odsSelection#13794364, demandProfiles#13794365, constraintProfiles#13794366, optimizationProfiles#13794367, orderGroupSplitProfiles#13794368, supplierMinimumProfiles#13794369, multipleRestrictionProfiles#13794370, preferredUomSource#13794371, handlingOfUnfulfilledDemands#13794372, negligibleQuantitiesThreshold#13794373, eventtype#13794374, minOrderQtySettingInternal#13794375]
(1022) Project
Arguments: [distributionCenters#13794360]
(1023) Generate
Arguments: explode(distributionCenters#13794360), false, [distributionCenters#13794376]
(1024) Project
Arguments: [distributionCenters#13794376]
(1025) Generate
Arguments: explode(distributionCenters#13794376.storageLocations), false, [storageLocations#13794377]
(1026) Project
Arguments: [distributionCenters#13794376.id AS plantId#13794378, distributionCenters#13794376.internalRefUUID AS plantUuid#13794379, storageLocations#13794377]
(1027) Project
Arguments: [plantId#13794378, plantUuid#13794379, storageLocations#13794377.id AS storageLocId#13794380, storageLocations#13794377.internalRefUUID AS storageLocUuid#13794381]
(1028) LogicalRelation
Arguments: parquet, [product#13794382, plant#13794383, orderDateTime#13794384, planningStartDateTime#13794385], false
(1029) RepartitionByExpression
Arguments: [product#13794382, plant#13794383], 37
(1030) Project
Arguments: [product#13794382, plant#13794383, orderDateTime#13794384]
(1031) LogicalRelation
Arguments: parquet, [systemId#13794386, internalUUID#13794387, plant#13794388, product#13794389, blockedForReplenishmentStartingFrom#13794390, productionAspect#13794391, salesPlant#13794392, listing#13794393, sourceOfSupplyCategory#13794394], false
(1032) Repartition
Arguments: 37, true
(1033) Project
Arguments: [systemId#13794386, internalUUID#13794387, plant#13794388, product#13794389, blockedForReplenishmentStartingFrom#13794390, productionAspect#13794391, salesPlant#13794392, listing#13794393, sourceOfSupplyCategory#13794394, struct(systemId, systemId#13794386, internalUUID, internalUUID#13794387, plant, plant#13794388, product, product#13794389, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#13794390, productionAspect, productionAspect#13794391, salesPlant, salesPlant#13794392, listing, listing#13794393, sourceOfSupplyCategory, sourceOfSupplyCategory#13794394) AS productPlant#13794395]
(1034) Project
Arguments: [productPlant#13794395]
(1035) Join
Arguments: LeftOuter, ((product#13794382 <=> productPlant#13794395.product.internalRefUUID) AND (plant#13794383 <=> productPlant#13794395.plant.internalRefUUID))
(1036) Project
Arguments: [product#13794382, plant#13794383, orderDateTime#13794384, productPlant#13794395]
(1037) LogicalRelation
Arguments: parquet, [systemId#13794396, internalUUID#13794397, id#13794398, displayId#13794399, name#13794400, baseUnitOfMeasure#13794401, unitOfMeasures#13794402, unitOfMeasureConversions#13794403, productionAspect#13794404, salesAspect#13794405, procurementAspect#13794406, productGroup#13794407], false
(1038) Repartition
Arguments: 37, true
(1039) Join
Arguments: LeftOuter, (product#13794382 = internalUUID#13794397)
(1040) Project
Arguments: [product#13794382, plant#13794383, orderDateTime#13794384, productPlant#13794395, systemId#13794396, internalUUID#13794397, id#13794398, displayId#13794399, name#13794400, baseUnitOfMeasure#13794401, unitOfMeasures#13794402, unitOfMeasureConversions#13794403, productionAspect#13794404, salesAspect#13794405, procurementAspect#13794406, productGroup#13794407, filter(unitOfMeasureConversions#13794403, lambdafunction((((lambda u#13792048.measurementUnit1.code = productPlant#13794395.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#13792048.measurementUnit1.internalRefUUID = productPlant#13794395.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#13792048.measurementUnit2.code = baseUnitOfMeasure#13794401.code) AND (lambda u#13792048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#13794401.internalRefUUID))), lambda u#13792048, false)) AS filteredUnitOfMeasureConversions#13794408]
(1041) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13794408.quantityNumerator), true, [quantityNumerator#13794409]
(1042) Project
Arguments: [product#13794382, plant#13794383, orderDateTime#13794384, productPlant#13794395, systemId#13794396, internalUUID#13794397, id#13794398, displayId#13794399, name#13794400, baseUnitOfMeasure#13794401, unitOfMeasures#13794402, unitOfMeasureConversions#13794403, productionAspect#13794404, salesAspect#13794405, procurementAspect#13794406, productGroup#13794407, filteredUnitOfMeasureConversions#13794408, quantityNumerator#13794409]
(1043) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13794408.quantityDenominator), true, [quantityDenominator#13794410]
(1044) Project
Arguments: [product#13794382, plant#13794383, orderDateTime#13794384, productPlant#13794395, systemId#13794396, internalUUID#13794397, id#13794398, displayId#13794399, name#13794400, baseUnitOfMeasure#13794401, unitOfMeasures#13794402, unitOfMeasureConversions#13794403, productionAspect#13794404, salesAspect#13794405, procurementAspect#13794406, productGroup#13794407, filteredUnitOfMeasureConversions#13794408, quantityNumerator#13794409, quantityDenominator#13794410]
(1045) Project
Arguments: [product#13794382, plant#13794383, orderDateTime#13794384, productPlant#13794395, systemId#13794396, internalUUID#13794397, id#13794398, displayId#13794399, name#13794400, baseUnitOfMeasure#13794401, unitOfMeasures#13794402, unitOfMeasureConversions#13794403, productionAspect#13794404, salesAspect#13794405, procurementAspect#13794406, productGroup#13794407, filteredUnitOfMeasureConversions#13794408, quantityNumerator#13794409, quantityDenominator#13794410, (cast(quantityNumerator#13794409 as double) / cast(quantityDenominator#13794410 as double)) AS outboundUnit#13794411]
(1046) Project
Arguments: [product#13794382, plant#13794383, orderDateTime#13794384, productPlant#13794395, systemId#13794396, internalUUID#13794397, id#13794398, displayId#13794399, name#13794400, baseUnitOfMeasure#13794401, unitOfMeasures#13794402, unitOfMeasureConversions#13794403, productionAspect#13794404, salesAspect#13794405, procurementAspect#13794406, productGroup#13794407, filteredUnitOfMeasureConversions#13794408, quantityNumerator#13794409, quantityDenominator#13794410, CASE WHEN (isnull(outboundUnit#13794411) OR (outboundUnit#13794411 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#13794411 END AS outboundUnit#13794412]
(1047) Project
Arguments: [product#13794382, plant#13794383, orderDateTime#13794384, productPlant#13794395, outboundUnit#13794412]
(1048) Project
Arguments: [plant#13794383]
(1049) Deduplicate
Arguments: [plant#13794383]
(1050) Join
Arguments: Inner, (plantUuid#13794379 = plant#13794383)
(1051) Project
Arguments: [plantId#13794378, plantUuid#13794379, storageLocId#13794380, storageLocUuid#13794381]
(1052) Join
Arguments: Inner, (plant#13794351.internalRefUUID <=> plantUuid#13794379)
(1053) Generate
Arguments: explode(filter(stockQuantities#13794353, lambdafunction(((lambda x#13792128.storageLocation.internalRefUuid = storageLocUuid#13794381) AND (lambda x#13792128.storageLocation.Id = storageLocId#13794380)), lambda x#13792128, false))), false, [stockQuantity#13794413]
(1054) Project
Arguments: [systemId#13794348, internalUUID#13794349, product#13794350, plant#13794351, calculationDateTime#13794352, stockQuantities#13794353, plantId#13794378, plantUuid#13794379, storageLocId#13794380, storageLocUuid#13794381, stockQuantity#13794413]
(1055) Aggregate
Arguments: [plantUuid#13794379, internalUUID#13794349, plant#13794351, product#13794350, systemId#13794348], [plantUuid#13794379, internalUUID#13794349, plant#13794351, product#13794350, systemId#13794348, first(calculationDateTime#13794352, false) AS calculationDateTime#13794414, collect_list(stockQuantity#13794413, 0, 0) AS stockQuantities#13794415]
(1056) Project
Arguments: [systemId#13794348, internalUUID#13794349, product#13794350, plant#13794351, calculationDateTime#13794414, stockQuantities#13794415]
(1057) Generate
Arguments: explode(stockQuantities#13794415), false, [stockQuantity#13794416]
(1058) Project
Arguments: [systemId#13794348, internalUUID#13794349, product#13794350, plant#13794351, calculationDateTime#13794414, stockQuantities#13794415, stockQuantity#13794416]
(1059) Project
Arguments: [plant#13794351.id AS plant#13794417, plant#13794351.internalRefUUID AS plantUuid#13794418, product#13794350.id AS product#13794419, product#13794350.internalRefUUID AS productUuid#13794420, calculationDateTime#13794414, stockQuantity#13794416.storagelocation.id AS storageLocId#13794421, stockQuantity#13794416.storagelocation.internalRefUUID AS storageLocUuid#13794422, stockQuantity#13794416.quantity.measure AS quantity#13794423, stockQuantity#13794416.specialStockIndicator.code AS specialStockIndicator#13794424, stockQuantity#13794416.stockType.code AS stockType#13794425]
(1060) Filter
Arguments: ((specialStockIndicator#13794424 = ) AND (stockType#13794425 = 01))
(1061) LogicalRelation
Arguments: parquet, [product#13794426, plant#13794427, orderDateTime#13794428, planningStartDateTime#13794429], false
(1062) RepartitionByExpression
Arguments: [product#13794426, plant#13794427], 37
(1063) Project
Arguments: [product#13794426, plant#13794427, orderDateTime#13794428]
(1064) LogicalRelation
Arguments: parquet, [systemId#13794430, internalUUID#13794431, plant#13794432, product#13794433, blockedForReplenishmentStartingFrom#13794434, productionAspect#13794435, salesPlant#13794436, listing#13794437, sourceOfSupplyCategory#13794438], false
(1065) Repartition
Arguments: 37, true
(1066) Project
Arguments: [systemId#13794430, internalUUID#13794431, plant#13794432, product#13794433, blockedForReplenishmentStartingFrom#13794434, productionAspect#13794435, salesPlant#13794436, listing#13794437, sourceOfSupplyCategory#13794438, struct(systemId, systemId#13794430, internalUUID, internalUUID#13794431, plant, plant#13794432, product, product#13794433, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#13794434, productionAspect, productionAspect#13794435, salesPlant, salesPlant#13794436, listing, listing#13794437, sourceOfSupplyCategory, sourceOfSupplyCategory#13794438) AS productPlant#13794439]
(1067) Project
Arguments: [productPlant#13794439]
(1068) Join
Arguments: LeftOuter, ((product#13794426 <=> productPlant#13794439.product.internalRefUUID) AND (plant#13794427 <=> productPlant#13794439.plant.internalRefUUID))
(1069) Project
Arguments: [product#13794426, plant#13794427, orderDateTime#13794428, productPlant#13794439]
(1070) LogicalRelation
Arguments: parquet, [systemId#13794440, internalUUID#13794441, id#13794442, displayId#13794443, name#13794444, baseUnitOfMeasure#13794445, unitOfMeasures#13794446, unitOfMeasureConversions#13794447, productionAspect#13794448, salesAspect#13794449, procurementAspect#13794450, productGroup#13794451], false
(1071) Repartition
Arguments: 37, true
(1072) Join
Arguments: LeftOuter, (product#13794426 = internalUUID#13794441)
(1073) Project
Arguments: [product#13794426, plant#13794427, orderDateTime#13794428, productPlant#13794439, systemId#13794440, internalUUID#13794441, id#13794442, displayId#13794443, name#13794444, baseUnitOfMeasure#13794445, unitOfMeasures#13794446, unitOfMeasureConversions#13794447, productionAspect#13794448, salesAspect#13794449, procurementAspect#13794450, productGroup#13794451, filter(unitOfMeasureConversions#13794447, lambdafunction((((lambda u#13792048.measurementUnit1.code = productPlant#13794439.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#13792048.measurementUnit1.internalRefUUID = productPlant#13794439.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#13792048.measurementUnit2.code = baseUnitOfMeasure#13794445.code) AND (lambda u#13792048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#13794445.internalRefUUID))), lambda u#13792048, false)) AS filteredUnitOfMeasureConversions#13794452]
(1074) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13794452.quantityNumerator), true, [quantityNumerator#13794453]
(1075) Project
Arguments: [product#13794426, plant#13794427, orderDateTime#13794428, productPlant#13794439, systemId#13794440, internalUUID#13794441, id#13794442, displayId#13794443, name#13794444, baseUnitOfMeasure#13794445, unitOfMeasures#13794446, unitOfMeasureConversions#13794447, productionAspect#13794448, salesAspect#13794449, procurementAspect#13794450, productGroup#13794451, filteredUnitOfMeasureConversions#13794452, quantityNumerator#13794453]
(1076) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13794452.quantityDenominator), true, [quantityDenominator#13794454]
(1077) Project
Arguments: [product#13794426, plant#13794427, orderDateTime#13794428, productPlant#13794439, systemId#13794440, internalUUID#13794441, id#13794442, displayId#13794443, name#13794444, baseUnitOfMeasure#13794445, unitOfMeasures#13794446, unitOfMeasureConversions#13794447, productionAspect#13794448, salesAspect#13794449, procurementAspect#13794450, productGroup#13794451, filteredUnitOfMeasureConversions#13794452, quantityNumerator#13794453, quantityDenominator#13794454]
(1078) Project
Arguments: [product#13794426, plant#13794427, orderDateTime#13794428, productPlant#13794439, systemId#13794440, internalUUID#13794441, id#13794442, displayId#13794443, name#13794444, baseUnitOfMeasure#13794445, unitOfMeasures#13794446, unitOfMeasureConversions#13794447, productionAspect#13794448, salesAspect#13794449, procurementAspect#13794450, productGroup#13794451, filteredUnitOfMeasureConversions#13794452, quantityNumerator#13794453, quantityDenominator#13794454, (cast(quantityNumerator#13794453 as double) / cast(quantityDenominator#13794454 as double)) AS outboundUnit#13794455]
(1079) Project
Arguments: [product#13794426, plant#13794427, orderDateTime#13794428, productPlant#13794439, systemId#13794440, internalUUID#13794441, id#13794442, displayId#13794443, name#13794444, baseUnitOfMeasure#13794445, unitOfMeasures#13794446, unitOfMeasureConversions#13794447, productionAspect#13794448, salesAspect#13794449, procurementAspect#13794450, productGroup#13794451, filteredUnitOfMeasureConversions#13794452, quantityNumerator#13794453, quantityDenominator#13794454, CASE WHEN (isnull(outboundUnit#13794455) OR (outboundUnit#13794455 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#13794455 END AS outboundUnit#13794456]
(1080) Project
Arguments: [product#13794426, plant#13794427, orderDateTime#13794428, productPlant#13794439, outboundUnit#13794456]
(1081) Join
Arguments: Inner, ((plantUuid#13794418 = plant#13794427) AND (productUuid#13794420 = product#13794426))
(1082) Filter
Arguments: (calculationDateTime#13794414 <= orderDateTime#13794428)
(1083) Project
Arguments: [plantUuid#13794418 AS plant#13794457, productUuid#13794420 AS product#13794458, storageLocId#13794421, calculationDateTime#13794414, quantity#13794423]
(1084) Aggregate
Arguments: [plant#13794457, product#13794458, storageLocId#13794421], [plant#13794457, product#13794458, storageLocId#13794421, max(calculationDateTime#13794414) AS max_calc_datetime#13794459]
(1085) Join
Arguments: Inner, ((((plant#13794346 <=> plant#13794457) AND (product#13794347 <=> product#13794458)) AND (storageLocId#13794310 <=> storageLocId#13794421)) AND (calculationDateTime#13794303 <=> max_calc_datetime#13794459))
(1086) Project
Arguments: [plant#13794346, product#13794347, storageLocId#13794310, calculationDateTime#13794303, quantity#13794312]
(1087) Aggregate
Arguments: [product#13794347, plant#13794346], [product#13794347, plant#13794346, sum(quantity#13794312) AS quantitySum#13794460, min(calculationDateTime#13794303) AS minCalculationDateTime#13794461]
(1088) Project
Arguments: [product#13794347, plant#13794346, quantitySum#13794460, minCalculationDateTime#13794461, round(quantitySum#13794460, 0) AS roundedQuantitySum#13794462]
(1089) Join
Arguments: LeftOuter, ((plant#13794207 = plant#13794346) AND (product#13794206 = product#13794347))
(1090) Project
Arguments: [product#13794206, plant#13794207, orderDateTime#13794208, productPlant#13794219, outboundUnit#13794236, roundedQuantitySum#13794462, minCalculationDateTime#13794461]
(1091) Project
Arguments: [product#13794206, plant#13794207, orderDateTime#13794208, productPlant#13794219, outboundUnit#13794236, roundedQuantitySum#13794462, minCalculationDateTime#13794461, CASE WHEN isnotnull(minCalculationDateTime#13794461) THEN minCalculationDateTime#13794461 ELSE orderDateTime#13794208 END AS stockDatetime#13794463]
(1092) Project
Arguments: [product#13794206, plant#13794207, orderDateTime#13794208, productPlant#13794219, outboundUnit#13794236, roundedQuantitySum#13794462, minCalculationDateTime#13794461, stockDatetime#13794463, CASE WHEN isnotnull(roundedQuantitySum#13794462) THEN array(roundedQuantitySum#13794462) ELSE array(0.0) END AS stockBatchQuantities#13794464]
(1093) Project
Arguments: [product#13794206, plant#13794207, orderDateTime#13794208, productPlant#13794219, outboundUnit#13794236, roundedQuantitySum#13794462, minCalculationDateTime#13794461, stockDatetime#13794463, stockBatchQuantities#13794464, array(2199-01-01 00:00:00) AS stockBatchShelfLifeEndDatetimes#13794465]
(1094) Project
Arguments: [product#13794206, plant#13794207, orderDateTime#13794208, productPlant#13794219, outboundUnit#13794236, roundedQuantitySum#13794462, stockDatetime#13794463, stockBatchQuantities#13794464, stockBatchShelfLifeEndDatetimes#13794465]
(1095) Project
Arguments: [product#13794206, plant#13794207, orderDateTime#13794208, productPlant#13794219, outboundUnit#13794236, stockDatetime#13794463, stockBatchQuantities#13794464, stockBatchShelfLifeEndDatetimes#13794465]
(1096) LogicalRelation
Arguments: parquet, [product#13794466, plant#13794467, demandChannel#13794468, demandStream#13794469, considerVariance#13794470, demandTimeBuckets#13794471, demandPointInTimeStart#13794472, demandPointInTimeEnd#13794473, demandPointInTime#13794474], false
(1097) Join
Arguments: LeftOuter, ((plant#13794467 <=> plant#13794207) AND (product#13794466 <=> product#13794206))
(1098) Project
Arguments: [product#13794206, plant#13794207, orderDateTime#13794208, productPlant#13794219, outboundUnit#13794236, stockDatetime#13794463, stockBatchQuantities#13794464, stockBatchShelfLifeEndDatetimes#13794465, product#13794466, plant#13794467, demandChannel#13794468, demandStream#13794469, considerVariance#13794470, demandTimeBuckets#13794471, demandPointInTimeStart#13794472, demandPointInTimeEnd#13794473, demandPointInTime#13794474, CASE WHEN isnotnull(product#13794466) THEN struct(demandChannel, demandChannel#13794468, demandStream, demandStream#13794469, considerVariance, considerVariance#13794470, demandTimeBuckets, demandTimeBuckets#13794471, demandPointInTimeStart, demandPointInTimeStart#13794472, demandPointInTimeEnd, demandPointInTimeEnd#13794473, demandPointInTime, demandPointInTime#13794474) 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#13794475]
(1099) Aggregate
Arguments: [product#13794206, plant#13794207, orderDateTime#13794208, productPlant#13794219, outboundUnit#13794236, stockDatetime#13794463, stockBatchQuantities#13794464, stockBatchShelfLifeEndDatetimes#13794465], [product#13794206, plant#13794207, orderDateTime#13794208, productPlant#13794219, outboundUnit#13794236, stockDatetime#13794463, stockBatchQuantities#13794464, stockBatchShelfLifeEndDatetimes#13794465, collect_list(rawDemands#13794475, 0, 0) AS rawDemands#13794476]
(1100) SubqueryAlias
Arguments: wl
(1101) LogicalRelation
Arguments: parquet, [systemId#13794477, internalUUID#13794478, id#13794479, displayId#13794480, name#13794481, category#13794482, companyCode#13794483, address#13794484, mainDistributionChain#13794485, mainPurchasingOrganization#13794486, validPurchasingOrganizations#13794487, productGroup#13794488], false
(1102) Repartition
Arguments: 37, true
(1103) Project
Arguments: [systemId#13794477, internalUUID#13794478, id#13794479, displayId#13794480, name#13794481, category#13794482, companyCode#13794483, address#13794484, mainDistributionChain#13794485, mainPurchasingOrganization#13794486, validPurchasingOrganizations#13794487, productGroup#13794488, address#13794484.timezone.code AS timezonecode#13794489]
(1104) Join
Arguments: LeftOuter, (plant#13794207 <=> internalUUID#13794478)
(1105) Project
Arguments: [product#13794206, plant#13794207, orderDateTime#13794208, productPlant#13794219, outboundUnit#13794236, stockDatetime#13794463, stockBatchQuantities#13794464, stockBatchShelfLifeEndDatetimes#13794465, rawDemands#13794476, systemId#13794477, internalUUID#13794478, id#13794479, displayId#13794480, name#13794481, category#13794482, companyCode#13794483, address#13794484, mainDistributionChain#13794485, mainPurchasingOrganization#13794486, validPurchasingOrganizations#13794487, productGroup#13794488, CASE WHEN isnotnull(timezonecode#13794489) THEN timezonecode#13794489 ELSE UTC END AS timezonecode#13794490]
(1106) Project
Arguments: [product#13794206, plant#13794207, orderDateTime#13794208, productPlant#13794219, outboundUnit#13794236, stockDatetime#13794463, stockBatchQuantities#13794464, stockBatchShelfLifeEndDatetimes#13794465, rawDemands#13794476, timezonecode#13794490]
(1107) DeserializeToObject
Arguments: createexternalrow(invoke(product#13794206.toString()), invoke(plant#13794207.toString()), static_invoke(DateTimeUtils.toJavaTimestamp(orderDateTime#13794208)), if (isnull(productPlant#13794219)) null else createexternalrow(invoke(productPlant#13794219.systemId.toString()), invoke(productPlant#13794219.internalUUID.toString()), if (isnull(productPlant#13794219.plant)) null else createexternalrow(invoke(productPlant#13794219.plant.internalRefUUID.toString()), invoke(productPlant#13794219.plant.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), if (isnull(productPlant#13794219.product)) null else createexternalrow(invoke(productPlant#13794219.product.internalRefUUID.toString()), invoke(productPlant#13794219.product.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(DateTimeUtils.toJavaDate(productPlant#13794219.blockedForReplenishmentStartingFrom)), if (isnull(productPlant#13794219.productionAspect)) null else createexternalrow(if (isnull(productPlant#13794219.productionAspect.productMovementPlants)) null else createexternalrow(if (isnull(productPlant#13794219.productionAspect.productMovementPlants.unitOfIssue)) null else createexternalrow(invoke(productPlant#13794219.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID.toString()), invoke(productPlant#13794219.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#13794219.productionAspect.productPlanningPlants)) null else createexternalrow(if (isnull(productPlant#13794219.productionAspect.productPlanningPlants.mrpType)) null else createexternalrow(invoke(productPlant#13794219.productionAspect.productPlanningPlants.mrpType.internalRefUUID.toString()), invoke(productPlant#13794219.productionAspect.productPlanningPlants.mrpType.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#13794219.productionAspect.productPlanningPlants.abcIndicator)) null else createexternalrow(invoke(productPlant#13794219.productionAspect.productPlanningPlants.abcIndicator.internalRefUUID.toString()), invoke(productPlant#13794219.productionAspect.productPlanningPlants.abcIndicator.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#13794219.productionAspect.productPlanningPlants.mrpController)) null else createexternalrow(invoke(productPlant#13794219.productionAspect.productPlanningPlants.mrpController.internalRefUUID.toString()), invoke(productPlant#13794219.productionAspect.productPlanningPlants.mrpController.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(java.lang.Double.valueOf(productPlant#13794219.productionAspect.productPlanningPlants.minimumLotSize)), if (isnull(productPlant#13794219.productionAspect.productPlanningPlants.logisticalRoundingProfile)) null else createexternalrow(invoke(productPlant#13794219.productionAspect.productPlanningPlants.logisticalRoundingProfile.internalRefUUID.toString()), invoke(productPlant#13794219.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#13794219.salesPlant)) null else createexternalrow(if (isnull(productPlant#13794219.salesPlant.loadingGroup)) null else createexternalrow(invoke(productPlant#13794219.salesPlant.loadingGroup.internalRefUUID.toString()), invoke(productPlant#13794219.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, 1728146), if (isnull(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 1728146))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 1728146).validFrom)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 1728146).validTo)), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 1728146).isListed)), StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true)), productPlant#13794219.listing, Some(class scala.collection.mutable.ArraySeq)), if (isnull(productPlant#13794219.sourceOfSupplyCategory)) null else createexternalrow(invoke(productPlant#13794219.sourceOfSupplyCategory.internalRefUUID.toString()), invoke(productPlant#13794219.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#13794236)), static_invoke(DateTimeUtils.toJavaTimestamp(stockDatetime#13794463)), mapobjects(lambdavariable(MapObject, DoubleType, true, 1728147), static_invoke(java.lang.Double.valueOf(cast(lambdavariable(MapObject, DoubleType, true, 1728147) as double))), stockBatchQuantities#13794464, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, false, 1728148), assertnotnull(static_invoke(DateTimeUtils.toJavaTimestamp(cast(lambdavariable(MapObject, TimestampType, false, 1728148) as timestamp)))), stockBatchShelfLifeEndDatetimes#13794465, 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, 1728149), 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, 1728149))) 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, 1728149).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, 1728149).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, 1728149).considerVariance)), mapobjects(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 1728150), if (isnull(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 1728150))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 1728150).demandStartDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 1728150).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 1728150).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, 1728149).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, 1728149).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, 1728149).demandPointInTimeEnd)), mapobjects(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 1728151), if (isnull(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 1728151))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 1728151).demandDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 1728151).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 1728151).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, 1728149).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#13794476, Some(class scala.collection.mutable.ArraySeq)), invoke(timezonecode#13794490.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#13793477: org.apache.spark.sql.Row
(1108) MapElements
Arguments: com.sap.s4hana.eureka.business.crporderquantitykpiservice.core.business.datasnapshot.DemandTransformatorImpl$$Lambda/0x00000008020466f8@2bc6baae, 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#13793482: 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#13794491, 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#13794492, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(2))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728136), assertnotnull(if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728137), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728137), DoubleType, ObjectType(class java.lang.Double)).doubleValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728138), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728138), DoubleType, ObjectType(class java.lang.Double)).doubleValue()), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728139), assertnotnull(static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728139), TimestampType, ObjectType(class java.sql.Timestamp))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728140), assertnotnull(static_invoke(UTF8String.fromString(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728140), StringType, ObjectType(class java.lang.String))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728141), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728141), IntegerType, ObjectType(class java.lang.Integer)).intValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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#13794493, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(3))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728142), assertnotnull(if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728143), assertnotnull(static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728143), TimestampType, ObjectType(class java.sql.Timestamp))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728144), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728144), DoubleType, ObjectType(class java.lang.Double)).doubleValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728145), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728145), DoubleType, ObjectType(class java.lang.Double)).doubleValue()), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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#13794494]
(1110) Join
Arguments: LeftOuter, ((plant#13794492 <=> plant#13793947) AND (product#13794491 <=> product#13793946))
(1111) Project
Arguments: [product#13793946, plant#13793947, orderDateTime#13793948, productPlant#13793959, outboundUnit#13793976, stockDatetime#13794203, stockBatchQuantities#13794204, stockBatchShelfLifeEndDatetimes#13794205, plant#13794492, dayBucketDemands#13794493, pointInTimeDemands#13794494]
(1112) Project
Arguments: [product#13793946, plant#13793947, orderDateTime#13793948, productPlant#13793959, outboundUnit#13793976, stockDatetime#13794203, stockBatchQuantities#13794204, stockBatchShelfLifeEndDatetimes#13794205, dayBucketDemands#13794493, pointInTimeDemands#13794494]
(1113) LocalRelation
Arguments: <empty>, [systemId#13794495, internalUUID#13794496, id#13794497, isMarkedForDeletion#13794498, supplier#13794499, status#13794500, items#13794501]
(1114) Generate
Arguments: explode(items#13794501), false, [item#13794502]
(1115) Project
Arguments: [id#13794497, internalUUID#13794496, isMarkedForDeletion#13794498, supplier#13794499.internalRefUUID AS supplierUuid#13794503, item#13794502]
(1116) Filter
Arguments: (((NOT isMarkedForDeletion#13794498 AND NOT item#13794502.deletionIndicator) AND NOT item#13794502.completeIndicator) AND NOT item#13794502.returnIndicator)
(1117) Project
Arguments: [id#13794497, internalUUID#13794496, supplierUuid#13794503, item#13794502.plant.internalRefUUID AS plant#13794504, item#13794502.product.internalRefUUID AS product#13794505, item#13794502.storageLocation.internalRefUUID AS storageLocUuid#13794506, item#13794502.quantityUnit.code AS quantityUom#13794507, item#13794502.quantityUnit.internalRefUUID AS quantityUomUuid#13794508, item#13794502.quantityNumerator AS quantityNumerator#13794509, item#13794502.quantityDenominator AS quantityDenominator#13794510, item#13794502.scheduleLines AS scheduleLines#13794511, item#13794502.confirmations AS confirmations#13794512]
(1118) Join
Arguments: Inner, ((product#13793946 <=> product#13794505) AND (plant#13793947 <=> supplierUuid#13794503))
(1119) Project
Arguments: [id#13794497, internalUUID#13794496, supplierUuid#13794503, plant#13794504, product#13794505, storageLocUuid#13794506, quantityUom#13794507, quantityUomUuid#13794508, quantityNumerator#13794509, quantityDenominator#13794510, scheduleLines#13794511, confirmations#13794512, stockDatetime#13794203, plant#13793947]
(1120) Project
Arguments: [id#13794497, internalUUID#13794496, supplierUuid#13794503, product#13794505, storageLocUuid#13794506, quantityUom#13794507, quantityUomUuid#13794508, quantityNumerator#13794509, quantityDenominator#13794510, scheduleLines#13794511, confirmations#13794512, stockDatetime#13794203, plant#13793947]
(1121) Project
Arguments: [id#13794497, internalUUID#13794496, supplierUuid#13794503, product#13794505, storageLocUuid#13794506, quantityUom#13794507, quantityUomUuid#13794508, quantityNumerator#13794509, quantityDenominator#13794510, scheduleLines#13794511, confirmations#13794512, stockDatetime#13794203, plant#13793947, filter(transform(filter(transform(scheduleLines#13794511, lambdafunction(struct(openQty, (greatest((lambda x_1023#13793926.quantity - coalesce(lambda x_1023#13793926.deliveredQuantity, 0.0)), 0.0) * -1.0), availabilityDatetime, coalesce(lambda x_1023#13793926.productAvailabilityDateTime, lambda x_1023#13793926.deliveryAt)), lambda x_1023#13793926, false)), lambdafunction((lambda x_1024#13793927.availabilityDatetime < stockDatetime#13794203), lambda x_1024#13793927, false)), lambdafunction(struct(documentId, id#13794497, documentUuid, internalUUID#13794496, openQty, lambda x_1025#13793928.openQty, openQtyInBaseUnit, ((lambda x_1025#13793928.openQty * quantityNumerator#13794509) / quantityDenominator#13794510), qtyUom, quantityUom#13794507, qtyUomUuid, quantityUomUuid#13794508, availabilityDatetime, lambda x_1025#13793928.availabilityDatetime, shelfLifeEndDatetime, 2199-01-01 00:00:00), lambda x_1025#13793928, false)), lambdafunction(NOT (lambda x_1026#13793929.openQty = 0.0), lambda x_1026#13793929, false)) AS openGoodsMovements#13793925]
(1122) Aggregate
Arguments: [product#13794505, plant#13793947], [product#13794505, plant#13793947, flatten(collect_list(openGoodsMovements#13793925, 0, 0)) AS openGoodsMovements#13793930]
(1123) Filter
Arguments: (array_size(openGoodsMovements#13793930) > 0)
(1124) Union
Arguments: false, false
(1125) Aggregate
Arguments: [product#13793785, plant#13793784], [product#13793785, plant#13793784, flatten(collect_list(openGoodsMovements#13793886, 0, 0)) AS openGoodsMovements#13794553]
(1126) Join
Arguments: LeftOuter, ((product#13791972 = product#13793785) AND (plant#13791973 = plant#13793784))
(1127) Project
Arguments: [product#13791972, plant#13791973, orderDateTime#13791974, productPlant#13792009, outboundUnit#13792060, stockDatetime#13792371, stockBatchQuantities#13792372, stockBatchShelfLifeEndDatetimes#13792373, dayBucketDemands#13793489, pointInTimeDemands#13793490, openGoodsMovements#13794553]
(1128) Project
Arguments: [product#13791972, plant#13791973, orderDateTime#13791974, productPlant#13792009, outboundUnit#13792060, stockDatetime#13792371, stockBatchQuantities#13792372, stockBatchShelfLifeEndDatetimes#13792373, dayBucketDemands#13793489, pointInTimeDemands#13793490, coalesce(openGoodsMovements#13794553.openQtyInBaseUnit, cast(array() as array<double>)) AS openGoodsMovementQuantities#13795147, coalesce(openGoodsMovements#13794553.availabilityDatetime, cast(array() as array<timestamp>)) AS openGoodsMovementAvailabilityDatetimes#13795148, coalesce(openGoodsMovements#13794553.shelfLifeEndDatetime, cast(array() as array<timestamp>)) AS openGoodsMovementShelfLifeEndDatetimes#13795149]
(1129) Project
Arguments: [product#13791972, plant#13791973, orderDateTime#13791974, productPlant#13792009, outboundUnit#13792060, stockDatetime#13792371, stockBatchQuantities#13792372, stockBatchShelfLifeEndDatetimes#13792373, dayBucketDemands#13793489, pointInTimeDemands#13793490, openGoodsMovementQuantities#13795147, openGoodsMovementAvailabilityDatetimes#13795148, openGoodsMovementShelfLifeEndDatetimes#13795149, 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#13795441]
(1130) LogicalRelation
Arguments: parquet, [product#13795638, plant#13795639, orderDateTime#13795640, planningStartDateTime#13795641], false
(1131) RepartitionByExpression
Arguments: [product#13795638, plant#13795639], 37
(1132) Project
Arguments: [product#13795638, plant#13795639, orderDateTime#13795640]
(1133) LogicalRelation
Arguments: parquet, [systemId#13795642, internalUUID#13795643, plant#13795644, product#13795645, blockedForReplenishmentStartingFrom#13795646, productionAspect#13795647, salesPlant#13795648, listing#13795649, sourceOfSupplyCategory#13795650], false
(1134) Repartition
Arguments: 37, true
(1135) Project
Arguments: [systemId#13795642, internalUUID#13795643, plant#13795644, product#13795645, blockedForReplenishmentStartingFrom#13795646, productionAspect#13795647, salesPlant#13795648, listing#13795649, sourceOfSupplyCategory#13795650, struct(systemId, systemId#13795642, internalUUID, internalUUID#13795643, plant, plant#13795644, product, product#13795645, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#13795646, productionAspect, productionAspect#13795647, salesPlant, salesPlant#13795648, listing, listing#13795649, sourceOfSupplyCategory, sourceOfSupplyCategory#13795650) AS productPlant#13795651]
(1136) Project
Arguments: [productPlant#13795651]
(1137) Join
Arguments: LeftOuter, ((product#13795638 <=> productPlant#13795651.product.internalRefUUID) AND (plant#13795639 <=> productPlant#13795651.plant.internalRefUUID))
(1138) Project
Arguments: [product#13795638, plant#13795639, orderDateTime#13795640, productPlant#13795651]
(1139) LogicalRelation
Arguments: parquet, [systemId#13795652, internalUUID#13795653, id#13795654, displayId#13795655, name#13795656, baseUnitOfMeasure#13795657, unitOfMeasures#13795658, unitOfMeasureConversions#13795659, productionAspect#13795660, salesAspect#13795661, procurementAspect#13795662, productGroup#13795663], false
(1140) Repartition
Arguments: 37, true
(1141) Join
Arguments: LeftOuter, (product#13795638 = internalUUID#13795653)
(1142) Project
Arguments: [product#13795638, plant#13795639, orderDateTime#13795640, productPlant#13795651, systemId#13795652, internalUUID#13795653, id#13795654, displayId#13795655, name#13795656, baseUnitOfMeasure#13795657, unitOfMeasures#13795658, unitOfMeasureConversions#13795659, productionAspect#13795660, salesAspect#13795661, procurementAspect#13795662, productGroup#13795663, filter(unitOfMeasureConversions#13795659, lambdafunction((((lambda u#13792048.measurementUnit1.code = productPlant#13795651.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#13792048.measurementUnit1.internalRefUUID = productPlant#13795651.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#13792048.measurementUnit2.code = baseUnitOfMeasure#13795657.code) AND (lambda u#13792048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#13795657.internalRefUUID))), lambda u#13792048, false)) AS filteredUnitOfMeasureConversions#13795664]
(1143) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13795664.quantityNumerator), true, [quantityNumerator#13795665]
(1144) Project
Arguments: [product#13795638, plant#13795639, orderDateTime#13795640, productPlant#13795651, systemId#13795652, internalUUID#13795653, id#13795654, displayId#13795655, name#13795656, baseUnitOfMeasure#13795657, unitOfMeasures#13795658, unitOfMeasureConversions#13795659, productionAspect#13795660, salesAspect#13795661, procurementAspect#13795662, productGroup#13795663, filteredUnitOfMeasureConversions#13795664, quantityNumerator#13795665]
(1145) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13795664.quantityDenominator), true, [quantityDenominator#13795666]
(1146) Project
Arguments: [product#13795638, plant#13795639, orderDateTime#13795640, productPlant#13795651, systemId#13795652, internalUUID#13795653, id#13795654, displayId#13795655, name#13795656, baseUnitOfMeasure#13795657, unitOfMeasures#13795658, unitOfMeasureConversions#13795659, productionAspect#13795660, salesAspect#13795661, procurementAspect#13795662, productGroup#13795663, filteredUnitOfMeasureConversions#13795664, quantityNumerator#13795665, quantityDenominator#13795666]
(1147) Project
Arguments: [product#13795638, plant#13795639, orderDateTime#13795640, productPlant#13795651, systemId#13795652, internalUUID#13795653, id#13795654, displayId#13795655, name#13795656, baseUnitOfMeasure#13795657, unitOfMeasures#13795658, unitOfMeasureConversions#13795659, productionAspect#13795660, salesAspect#13795661, procurementAspect#13795662, productGroup#13795663, filteredUnitOfMeasureConversions#13795664, quantityNumerator#13795665, quantityDenominator#13795666, (cast(quantityNumerator#13795665 as double) / cast(quantityDenominator#13795666 as double)) AS outboundUnit#13795667]
(1148) Project
Arguments: [product#13795638, plant#13795639, orderDateTime#13795640, productPlant#13795651, systemId#13795652, internalUUID#13795653, id#13795654, displayId#13795655, name#13795656, baseUnitOfMeasure#13795657, unitOfMeasures#13795658, unitOfMeasureConversions#13795659, productionAspect#13795660, salesAspect#13795661, procurementAspect#13795662, productGroup#13795663, filteredUnitOfMeasureConversions#13795664, quantityNumerator#13795665, quantityDenominator#13795666, CASE WHEN (isnull(outboundUnit#13795667) OR (outboundUnit#13795667 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#13795667 END AS outboundUnit#13795668]
(1149) Project
Arguments: [product#13795638, plant#13795639, orderDateTime#13795640, productPlant#13795651, outboundUnit#13795668]
(1150) LogicalRelation
Arguments: parquet, [systemId#13795669, internalUUID#13795670, product#13795671, plant#13795672, calculationDateTime#13795673, stockQuantities#13795674], false
(1151) Repartition
Arguments: 37, true
(1152) LogicalRelation
Arguments: parquet, [marketUnit#13795675, description#13795676, articleHierarchy#13795677, defaultCurrency#13795678, responsibilities#13795679, replenishmentTypes#13795680, distributionCenters#13795681, assignedArticleHierarchyNodes#13795682, minOrderQtySetting#13795683, listingCheck#13795684, odsSelection#13795685, demandProfiles#13795686, constraintProfiles#13795687, optimizationProfiles#13795688, orderGroupSplitProfiles#13795689, supplierMinimumProfiles#13795690, multipleRestrictionProfiles#13795691, preferredUomSource#13795692, handlingOfUnfulfilledDemands#13795693, negligibleQuantitiesThreshold#13795694, eventtype#13795695, minOrderQtySettingInternal#13795696], false
(1153) Repartition
Arguments: 37, true
(1154) Filter
Arguments: (marketUnit#13795675 <=> AUTO_ALL_ProdLoc)
(1155) Project
Arguments: [marketUnit#13795675, description#13795676, articleHierarchy#13795677, defaultCurrency#13795678, responsibilities#13795679, replenishmentTypes#13795680, distributionCenters#13795681, assignedArticleHierarchyNodes#13795682, minOrderQtySetting#13795683, listingCheck#13795684, odsSelection#13795685, demandProfiles#13795686, constraintProfiles#13795687, optimizationProfiles#13795688, orderGroupSplitProfiles#13795689, supplierMinimumProfiles#13795690, multipleRestrictionProfiles#13795691, preferredUomSource#13795692, handlingOfUnfulfilledDemands#13795693, negligibleQuantitiesThreshold#13795694, eventtype#13795695, minOrderQtySettingInternal#13795696]
(1156) Project
Arguments: [distributionCenters#13795681]
(1157) Generate
Arguments: explode(distributionCenters#13795681), false, [distributionCenters#13795697]
(1158) Project
Arguments: [distributionCenters#13795697]
(1159) Generate
Arguments: explode(distributionCenters#13795697.storageLocations), false, [storageLocations#13795698]
(1160) Project
Arguments: [distributionCenters#13795697.id AS plantId#13795699, distributionCenters#13795697.internalRefUUID AS plantUuid#13795700, storageLocations#13795698]
(1161) Project
Arguments: [plantId#13795699, plantUuid#13795700, storageLocations#13795698.id AS storageLocId#13795701, storageLocations#13795698.internalRefUUID AS storageLocUuid#13795702]
(1162) LogicalRelation
Arguments: parquet, [product#13795703, plant#13795704, orderDateTime#13795705, planningStartDateTime#13795706], false
(1163) RepartitionByExpression
Arguments: [product#13795703, plant#13795704], 37
(1164) Project
Arguments: [product#13795703, plant#13795704, orderDateTime#13795705]
(1165) LogicalRelation
Arguments: parquet, [systemId#13795707, internalUUID#13795708, plant#13795709, product#13795710, blockedForReplenishmentStartingFrom#13795711, productionAspect#13795712, salesPlant#13795713, listing#13795714, sourceOfSupplyCategory#13795715], false
(1166) Repartition
Arguments: 37, true
(1167) Project
Arguments: [systemId#13795707, internalUUID#13795708, plant#13795709, product#13795710, blockedForReplenishmentStartingFrom#13795711, productionAspect#13795712, salesPlant#13795713, listing#13795714, sourceOfSupplyCategory#13795715, struct(systemId, systemId#13795707, internalUUID, internalUUID#13795708, plant, plant#13795709, product, product#13795710, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#13795711, productionAspect, productionAspect#13795712, salesPlant, salesPlant#13795713, listing, listing#13795714, sourceOfSupplyCategory, sourceOfSupplyCategory#13795715) AS productPlant#13795716]
(1168) Project
Arguments: [productPlant#13795716]
(1169) Join
Arguments: LeftOuter, ((product#13795703 <=> productPlant#13795716.product.internalRefUUID) AND (plant#13795704 <=> productPlant#13795716.plant.internalRefUUID))
(1170) Project
Arguments: [product#13795703, plant#13795704, orderDateTime#13795705, productPlant#13795716]
(1171) LogicalRelation
Arguments: parquet, [systemId#13795717, internalUUID#13795718, id#13795719, displayId#13795720, name#13795721, baseUnitOfMeasure#13795722, unitOfMeasures#13795723, unitOfMeasureConversions#13795724, productionAspect#13795725, salesAspect#13795726, procurementAspect#13795727, productGroup#13795728], false
(1172) Repartition
Arguments: 37, true
(1173) Join
Arguments: LeftOuter, (product#13795703 = internalUUID#13795718)
(1174) Project
Arguments: [product#13795703, plant#13795704, orderDateTime#13795705, productPlant#13795716, systemId#13795717, internalUUID#13795718, id#13795719, displayId#13795720, name#13795721, baseUnitOfMeasure#13795722, unitOfMeasures#13795723, unitOfMeasureConversions#13795724, productionAspect#13795725, salesAspect#13795726, procurementAspect#13795727, productGroup#13795728, filter(unitOfMeasureConversions#13795724, lambdafunction((((lambda u#13792048.measurementUnit1.code = productPlant#13795716.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#13792048.measurementUnit1.internalRefUUID = productPlant#13795716.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#13792048.measurementUnit2.code = baseUnitOfMeasure#13795722.code) AND (lambda u#13792048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#13795722.internalRefUUID))), lambda u#13792048, false)) AS filteredUnitOfMeasureConversions#13795729]
(1175) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13795729.quantityNumerator), true, [quantityNumerator#13795730]
(1176) Project
Arguments: [product#13795703, plant#13795704, orderDateTime#13795705, productPlant#13795716, systemId#13795717, internalUUID#13795718, id#13795719, displayId#13795720, name#13795721, baseUnitOfMeasure#13795722, unitOfMeasures#13795723, unitOfMeasureConversions#13795724, productionAspect#13795725, salesAspect#13795726, procurementAspect#13795727, productGroup#13795728, filteredUnitOfMeasureConversions#13795729, quantityNumerator#13795730]
(1177) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13795729.quantityDenominator), true, [quantityDenominator#13795731]
(1178) Project
Arguments: [product#13795703, plant#13795704, orderDateTime#13795705, productPlant#13795716, systemId#13795717, internalUUID#13795718, id#13795719, displayId#13795720, name#13795721, baseUnitOfMeasure#13795722, unitOfMeasures#13795723, unitOfMeasureConversions#13795724, productionAspect#13795725, salesAspect#13795726, procurementAspect#13795727, productGroup#13795728, filteredUnitOfMeasureConversions#13795729, quantityNumerator#13795730, quantityDenominator#13795731]
(1179) Project
Arguments: [product#13795703, plant#13795704, orderDateTime#13795705, productPlant#13795716, systemId#13795717, internalUUID#13795718, id#13795719, displayId#13795720, name#13795721, baseUnitOfMeasure#13795722, unitOfMeasures#13795723, unitOfMeasureConversions#13795724, productionAspect#13795725, salesAspect#13795726, procurementAspect#13795727, productGroup#13795728, filteredUnitOfMeasureConversions#13795729, quantityNumerator#13795730, quantityDenominator#13795731, (cast(quantityNumerator#13795730 as double) / cast(quantityDenominator#13795731 as double)) AS outboundUnit#13795732]
(1180) Project
Arguments: [product#13795703, plant#13795704, orderDateTime#13795705, productPlant#13795716, systemId#13795717, internalUUID#13795718, id#13795719, displayId#13795720, name#13795721, baseUnitOfMeasure#13795722, unitOfMeasures#13795723, unitOfMeasureConversions#13795724, productionAspect#13795725, salesAspect#13795726, procurementAspect#13795727, productGroup#13795728, filteredUnitOfMeasureConversions#13795729, quantityNumerator#13795730, quantityDenominator#13795731, CASE WHEN (isnull(outboundUnit#13795732) OR (outboundUnit#13795732 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#13795732 END AS outboundUnit#13795733]
(1181) Project
Arguments: [product#13795703, plant#13795704, orderDateTime#13795705, productPlant#13795716, outboundUnit#13795733]
(1182) Project
Arguments: [plant#13795704]
(1183) Deduplicate
Arguments: [plant#13795704]
(1184) Join
Arguments: Inner, (plantUuid#13795700 = plant#13795704)
(1185) Project
Arguments: [plantId#13795699, plantUuid#13795700, storageLocId#13795701, storageLocUuid#13795702]
(1186) Join
Arguments: Inner, (plant#13795672.internalRefUUID <=> plantUuid#13795700)
(1187) Generate
Arguments: explode(filter(stockQuantities#13795674, lambdafunction(((lambda x#13792128.storageLocation.internalRefUuid = storageLocUuid#13795702) AND (lambda x#13792128.storageLocation.Id = storageLocId#13795701)), lambda x#13792128, false))), false, [stockQuantity#13795734]
(1188) Project
Arguments: [systemId#13795669, internalUUID#13795670, product#13795671, plant#13795672, calculationDateTime#13795673, stockQuantities#13795674, plantId#13795699, plantUuid#13795700, storageLocId#13795701, storageLocUuid#13795702, stockQuantity#13795734]
(1189) Aggregate
Arguments: [plantUuid#13795700, internalUUID#13795670, plant#13795672, product#13795671, systemId#13795669], [plantUuid#13795700, internalUUID#13795670, plant#13795672, product#13795671, systemId#13795669, first(calculationDateTime#13795673, false) AS calculationDateTime#13795735, collect_list(stockQuantity#13795734, 0, 0) AS stockQuantities#13795736]
(1190) Project
Arguments: [systemId#13795669, internalUUID#13795670, product#13795671, plant#13795672, calculationDateTime#13795735, stockQuantities#13795736]
(1191) Generate
Arguments: explode(stockQuantities#13795736), false, [stockQuantity#13795737]
(1192) Project
Arguments: [systemId#13795669, internalUUID#13795670, product#13795671, plant#13795672, calculationDateTime#13795735, stockQuantities#13795736, stockQuantity#13795737]
(1193) Project
Arguments: [plant#13795672.id AS plant#13795738, plant#13795672.internalRefUUID AS plantUuid#13795739, product#13795671.id AS product#13795740, product#13795671.internalRefUUID AS productUuid#13795741, calculationDateTime#13795735, stockQuantity#13795737.storagelocation.id AS storageLocId#13795742, stockQuantity#13795737.storagelocation.internalRefUUID AS storageLocUuid#13795743, stockQuantity#13795737.quantity.measure AS quantity#13795744, stockQuantity#13795737.specialStockIndicator.code AS specialStockIndicator#13795745, stockQuantity#13795737.stockType.code AS stockType#13795746]
(1194) Filter
Arguments: ((specialStockIndicator#13795745 = ) AND (stockType#13795746 = 01))
(1195) LogicalRelation
Arguments: parquet, [product#13795747, plant#13795748, orderDateTime#13795749, planningStartDateTime#13795750], false
(1196) RepartitionByExpression
Arguments: [product#13795747, plant#13795748], 37
(1197) Project
Arguments: [product#13795747, plant#13795748, orderDateTime#13795749]
(1198) LogicalRelation
Arguments: parquet, [systemId#13795751, internalUUID#13795752, plant#13795753, product#13795754, blockedForReplenishmentStartingFrom#13795755, productionAspect#13795756, salesPlant#13795757, listing#13795758, sourceOfSupplyCategory#13795759], false
(1199) Repartition
Arguments: 37, true
(1200) Project
Arguments: [systemId#13795751, internalUUID#13795752, plant#13795753, product#13795754, blockedForReplenishmentStartingFrom#13795755, productionAspect#13795756, salesPlant#13795757, listing#13795758, sourceOfSupplyCategory#13795759, struct(systemId, systemId#13795751, internalUUID, internalUUID#13795752, plant, plant#13795753, product, product#13795754, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#13795755, productionAspect, productionAspect#13795756, salesPlant, salesPlant#13795757, listing, listing#13795758, sourceOfSupplyCategory, sourceOfSupplyCategory#13795759) AS productPlant#13795760]
(1201) Project
Arguments: [productPlant#13795760]
(1202) Join
Arguments: LeftOuter, ((product#13795747 <=> productPlant#13795760.product.internalRefUUID) AND (plant#13795748 <=> productPlant#13795760.plant.internalRefUUID))
(1203) Project
Arguments: [product#13795747, plant#13795748, orderDateTime#13795749, productPlant#13795760]
(1204) LogicalRelation
Arguments: parquet, [systemId#13795761, internalUUID#13795762, id#13795763, displayId#13795764, name#13795765, baseUnitOfMeasure#13795766, unitOfMeasures#13795767, unitOfMeasureConversions#13795768, productionAspect#13795769, salesAspect#13795770, procurementAspect#13795771, productGroup#13795772], false
(1205) Repartition
Arguments: 37, true
(1206) Join
Arguments: LeftOuter, (product#13795747 = internalUUID#13795762)
(1207) Project
Arguments: [product#13795747, plant#13795748, orderDateTime#13795749, productPlant#13795760, systemId#13795761, internalUUID#13795762, id#13795763, displayId#13795764, name#13795765, baseUnitOfMeasure#13795766, unitOfMeasures#13795767, unitOfMeasureConversions#13795768, productionAspect#13795769, salesAspect#13795770, procurementAspect#13795771, productGroup#13795772, filter(unitOfMeasureConversions#13795768, lambdafunction((((lambda u#13792048.measurementUnit1.code = productPlant#13795760.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#13792048.measurementUnit1.internalRefUUID = productPlant#13795760.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#13792048.measurementUnit2.code = baseUnitOfMeasure#13795766.code) AND (lambda u#13792048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#13795766.internalRefUUID))), lambda u#13792048, false)) AS filteredUnitOfMeasureConversions#13795773]
(1208) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13795773.quantityNumerator), true, [quantityNumerator#13795774]
(1209) Project
Arguments: [product#13795747, plant#13795748, orderDateTime#13795749, productPlant#13795760, systemId#13795761, internalUUID#13795762, id#13795763, displayId#13795764, name#13795765, baseUnitOfMeasure#13795766, unitOfMeasures#13795767, unitOfMeasureConversions#13795768, productionAspect#13795769, salesAspect#13795770, procurementAspect#13795771, productGroup#13795772, filteredUnitOfMeasureConversions#13795773, quantityNumerator#13795774]
(1210) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13795773.quantityDenominator), true, [quantityDenominator#13795775]
(1211) Project
Arguments: [product#13795747, plant#13795748, orderDateTime#13795749, productPlant#13795760, systemId#13795761, internalUUID#13795762, id#13795763, displayId#13795764, name#13795765, baseUnitOfMeasure#13795766, unitOfMeasures#13795767, unitOfMeasureConversions#13795768, productionAspect#13795769, salesAspect#13795770, procurementAspect#13795771, productGroup#13795772, filteredUnitOfMeasureConversions#13795773, quantityNumerator#13795774, quantityDenominator#13795775]
(1212) Project
Arguments: [product#13795747, plant#13795748, orderDateTime#13795749, productPlant#13795760, systemId#13795761, internalUUID#13795762, id#13795763, displayId#13795764, name#13795765, baseUnitOfMeasure#13795766, unitOfMeasures#13795767, unitOfMeasureConversions#13795768, productionAspect#13795769, salesAspect#13795770, procurementAspect#13795771, productGroup#13795772, filteredUnitOfMeasureConversions#13795773, quantityNumerator#13795774, quantityDenominator#13795775, (cast(quantityNumerator#13795774 as double) / cast(quantityDenominator#13795775 as double)) AS outboundUnit#13795776]
(1213) Project
Arguments: [product#13795747, plant#13795748, orderDateTime#13795749, productPlant#13795760, systemId#13795761, internalUUID#13795762, id#13795763, displayId#13795764, name#13795765, baseUnitOfMeasure#13795766, unitOfMeasures#13795767, unitOfMeasureConversions#13795768, productionAspect#13795769, salesAspect#13795770, procurementAspect#13795771, productGroup#13795772, filteredUnitOfMeasureConversions#13795773, quantityNumerator#13795774, quantityDenominator#13795775, CASE WHEN (isnull(outboundUnit#13795776) OR (outboundUnit#13795776 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#13795776 END AS outboundUnit#13795777]
(1214) Project
Arguments: [product#13795747, plant#13795748, orderDateTime#13795749, productPlant#13795760, outboundUnit#13795777]
(1215) Join
Arguments: Inner, ((plantUuid#13795739 = plant#13795748) AND (productUuid#13795741 = product#13795747))
(1216) Filter
Arguments: (calculationDateTime#13795735 <= orderDateTime#13795749)
(1217) Project
Arguments: [plantUuid#13795739 AS plant#13795778, productUuid#13795741 AS product#13795779, storageLocId#13795742, calculationDateTime#13795735, quantity#13795744]
(1218) LogicalRelation
Arguments: parquet, [systemId#13795780, internalUUID#13795781, product#13795782, plant#13795783, calculationDateTime#13795784, stockQuantities#13795785], false
(1219) Repartition
Arguments: 37, true
(1220) LogicalRelation
Arguments: parquet, [marketUnit#13795786, description#13795787, articleHierarchy#13795788, defaultCurrency#13795789, responsibilities#13795790, replenishmentTypes#13795791, distributionCenters#13795792, assignedArticleHierarchyNodes#13795793, minOrderQtySetting#13795794, listingCheck#13795795, odsSelection#13795796, demandProfiles#13795797, constraintProfiles#13795798, optimizationProfiles#13795799, orderGroupSplitProfiles#13795800, supplierMinimumProfiles#13795801, multipleRestrictionProfiles#13795802, preferredUomSource#13795803, handlingOfUnfulfilledDemands#13795804, negligibleQuantitiesThreshold#13795805, eventtype#13795806, minOrderQtySettingInternal#13795807], false
(1221) Repartition
Arguments: 37, true
(1222) Filter
Arguments: (marketUnit#13795786 <=> AUTO_ALL_ProdLoc)
(1223) Project
Arguments: [marketUnit#13795786, description#13795787, articleHierarchy#13795788, defaultCurrency#13795789, responsibilities#13795790, replenishmentTypes#13795791, distributionCenters#13795792, assignedArticleHierarchyNodes#13795793, minOrderQtySetting#13795794, listingCheck#13795795, odsSelection#13795796, demandProfiles#13795797, constraintProfiles#13795798, optimizationProfiles#13795799, orderGroupSplitProfiles#13795800, supplierMinimumProfiles#13795801, multipleRestrictionProfiles#13795802, preferredUomSource#13795803, handlingOfUnfulfilledDemands#13795804, negligibleQuantitiesThreshold#13795805, eventtype#13795806, minOrderQtySettingInternal#13795807]
(1224) Project
Arguments: [distributionCenters#13795792]
(1225) Generate
Arguments: explode(distributionCenters#13795792), false, [distributionCenters#13795808]
(1226) Project
Arguments: [distributionCenters#13795808]
(1227) Generate
Arguments: explode(distributionCenters#13795808.storageLocations), false, [storageLocations#13795809]
(1228) Project
Arguments: [distributionCenters#13795808.id AS plantId#13795810, distributionCenters#13795808.internalRefUUID AS plantUuid#13795811, storageLocations#13795809]
(1229) Project
Arguments: [plantId#13795810, plantUuid#13795811, storageLocations#13795809.id AS storageLocId#13795812, storageLocations#13795809.internalRefUUID AS storageLocUuid#13795813]
(1230) LogicalRelation
Arguments: parquet, [product#13795814, plant#13795815, orderDateTime#13795816, planningStartDateTime#13795817], false
(1231) RepartitionByExpression
Arguments: [product#13795814, plant#13795815], 37
(1232) Project
Arguments: [product#13795814, plant#13795815, orderDateTime#13795816]
(1233) LogicalRelation
Arguments: parquet, [systemId#13795818, internalUUID#13795819, plant#13795820, product#13795821, blockedForReplenishmentStartingFrom#13795822, productionAspect#13795823, salesPlant#13795824, listing#13795825, sourceOfSupplyCategory#13795826], false
(1234) Repartition
Arguments: 37, true
(1235) Project
Arguments: [systemId#13795818, internalUUID#13795819, plant#13795820, product#13795821, blockedForReplenishmentStartingFrom#13795822, productionAspect#13795823, salesPlant#13795824, listing#13795825, sourceOfSupplyCategory#13795826, struct(systemId, systemId#13795818, internalUUID, internalUUID#13795819, plant, plant#13795820, product, product#13795821, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#13795822, productionAspect, productionAspect#13795823, salesPlant, salesPlant#13795824, listing, listing#13795825, sourceOfSupplyCategory, sourceOfSupplyCategory#13795826) AS productPlant#13795827]
(1236) Project
Arguments: [productPlant#13795827]
(1237) Join
Arguments: LeftOuter, ((product#13795814 <=> productPlant#13795827.product.internalRefUUID) AND (plant#13795815 <=> productPlant#13795827.plant.internalRefUUID))
(1238) Project
Arguments: [product#13795814, plant#13795815, orderDateTime#13795816, productPlant#13795827]
(1239) LogicalRelation
Arguments: parquet, [systemId#13795828, internalUUID#13795829, id#13795830, displayId#13795831, name#13795832, baseUnitOfMeasure#13795833, unitOfMeasures#13795834, unitOfMeasureConversions#13795835, productionAspect#13795836, salesAspect#13795837, procurementAspect#13795838, productGroup#13795839], false
(1240) Repartition
Arguments: 37, true
(1241) Join
Arguments: LeftOuter, (product#13795814 = internalUUID#13795829)
(1242) Project
Arguments: [product#13795814, plant#13795815, orderDateTime#13795816, productPlant#13795827, systemId#13795828, internalUUID#13795829, id#13795830, displayId#13795831, name#13795832, baseUnitOfMeasure#13795833, unitOfMeasures#13795834, unitOfMeasureConversions#13795835, productionAspect#13795836, salesAspect#13795837, procurementAspect#13795838, productGroup#13795839, filter(unitOfMeasureConversions#13795835, lambdafunction((((lambda u#13792048.measurementUnit1.code = productPlant#13795827.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#13792048.measurementUnit1.internalRefUUID = productPlant#13795827.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#13792048.measurementUnit2.code = baseUnitOfMeasure#13795833.code) AND (lambda u#13792048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#13795833.internalRefUUID))), lambda u#13792048, false)) AS filteredUnitOfMeasureConversions#13795840]
(1243) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13795840.quantityNumerator), true, [quantityNumerator#13795841]
(1244) Project
Arguments: [product#13795814, plant#13795815, orderDateTime#13795816, productPlant#13795827, systemId#13795828, internalUUID#13795829, id#13795830, displayId#13795831, name#13795832, baseUnitOfMeasure#13795833, unitOfMeasures#13795834, unitOfMeasureConversions#13795835, productionAspect#13795836, salesAspect#13795837, procurementAspect#13795838, productGroup#13795839, filteredUnitOfMeasureConversions#13795840, quantityNumerator#13795841]
(1245) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13795840.quantityDenominator), true, [quantityDenominator#13795842]
(1246) Project
Arguments: [product#13795814, plant#13795815, orderDateTime#13795816, productPlant#13795827, systemId#13795828, internalUUID#13795829, id#13795830, displayId#13795831, name#13795832, baseUnitOfMeasure#13795833, unitOfMeasures#13795834, unitOfMeasureConversions#13795835, productionAspect#13795836, salesAspect#13795837, procurementAspect#13795838, productGroup#13795839, filteredUnitOfMeasureConversions#13795840, quantityNumerator#13795841, quantityDenominator#13795842]
(1247) Project
Arguments: [product#13795814, plant#13795815, orderDateTime#13795816, productPlant#13795827, systemId#13795828, internalUUID#13795829, id#13795830, displayId#13795831, name#13795832, baseUnitOfMeasure#13795833, unitOfMeasures#13795834, unitOfMeasureConversions#13795835, productionAspect#13795836, salesAspect#13795837, procurementAspect#13795838, productGroup#13795839, filteredUnitOfMeasureConversions#13795840, quantityNumerator#13795841, quantityDenominator#13795842, (cast(quantityNumerator#13795841 as double) / cast(quantityDenominator#13795842 as double)) AS outboundUnit#13795843]
(1248) Project
Arguments: [product#13795814, plant#13795815, orderDateTime#13795816, productPlant#13795827, systemId#13795828, internalUUID#13795829, id#13795830, displayId#13795831, name#13795832, baseUnitOfMeasure#13795833, unitOfMeasures#13795834, unitOfMeasureConversions#13795835, productionAspect#13795836, salesAspect#13795837, procurementAspect#13795838, productGroup#13795839, filteredUnitOfMeasureConversions#13795840, quantityNumerator#13795841, quantityDenominator#13795842, CASE WHEN (isnull(outboundUnit#13795843) OR (outboundUnit#13795843 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#13795843 END AS outboundUnit#13795844]
(1249) Project
Arguments: [product#13795814, plant#13795815, orderDateTime#13795816, productPlant#13795827, outboundUnit#13795844]
(1250) Project
Arguments: [plant#13795815]
(1251) Deduplicate
Arguments: [plant#13795815]
(1252) Join
Arguments: Inner, (plantUuid#13795811 = plant#13795815)
(1253) Project
Arguments: [plantId#13795810, plantUuid#13795811, storageLocId#13795812, storageLocUuid#13795813]
(1254) Join
Arguments: Inner, (plant#13795783.internalRefUUID <=> plantUuid#13795811)
(1255) Generate
Arguments: explode(filter(stockQuantities#13795785, lambdafunction(((lambda x#13792128.storageLocation.internalRefUuid = storageLocUuid#13795813) AND (lambda x#13792128.storageLocation.Id = storageLocId#13795812)), lambda x#13792128, false))), false, [stockQuantity#13795845]
(1256) Project
Arguments: [systemId#13795780, internalUUID#13795781, product#13795782, plant#13795783, calculationDateTime#13795784, stockQuantities#13795785, plantId#13795810, plantUuid#13795811, storageLocId#13795812, storageLocUuid#13795813, stockQuantity#13795845]
(1257) Aggregate
Arguments: [plantUuid#13795811, internalUUID#13795781, plant#13795783, product#13795782, systemId#13795780], [plantUuid#13795811, internalUUID#13795781, plant#13795783, product#13795782, systemId#13795780, first(calculationDateTime#13795784, false) AS calculationDateTime#13795846, collect_list(stockQuantity#13795845, 0, 0) AS stockQuantities#13795847]
(1258) Project
Arguments: [systemId#13795780, internalUUID#13795781, product#13795782, plant#13795783, calculationDateTime#13795846, stockQuantities#13795847]
(1259) Generate
Arguments: explode(stockQuantities#13795847), false, [stockQuantity#13795848]
(1260) Project
Arguments: [systemId#13795780, internalUUID#13795781, product#13795782, plant#13795783, calculationDateTime#13795846, stockQuantities#13795847, stockQuantity#13795848]
(1261) Project
Arguments: [plant#13795783.id AS plant#13795849, plant#13795783.internalRefUUID AS plantUuid#13795850, product#13795782.id AS product#13795851, product#13795782.internalRefUUID AS productUuid#13795852, calculationDateTime#13795846, stockQuantity#13795848.storagelocation.id AS storageLocId#13795853, stockQuantity#13795848.storagelocation.internalRefUUID AS storageLocUuid#13795854, stockQuantity#13795848.quantity.measure AS quantity#13795855, stockQuantity#13795848.specialStockIndicator.code AS specialStockIndicator#13795856, stockQuantity#13795848.stockType.code AS stockType#13795857]
(1262) Filter
Arguments: ((specialStockIndicator#13795856 = ) AND (stockType#13795857 = 01))
(1263) LogicalRelation
Arguments: parquet, [product#13795858, plant#13795859, orderDateTime#13795860, planningStartDateTime#13795861], false
(1264) RepartitionByExpression
Arguments: [product#13795858, plant#13795859], 37
(1265) Project
Arguments: [product#13795858, plant#13795859, orderDateTime#13795860]
(1266) LogicalRelation
Arguments: parquet, [systemId#13795862, internalUUID#13795863, plant#13795864, product#13795865, blockedForReplenishmentStartingFrom#13795866, productionAspect#13795867, salesPlant#13795868, listing#13795869, sourceOfSupplyCategory#13795870], false
(1267) Repartition
Arguments: 37, true
(1268) Project
Arguments: [systemId#13795862, internalUUID#13795863, plant#13795864, product#13795865, blockedForReplenishmentStartingFrom#13795866, productionAspect#13795867, salesPlant#13795868, listing#13795869, sourceOfSupplyCategory#13795870, struct(systemId, systemId#13795862, internalUUID, internalUUID#13795863, plant, plant#13795864, product, product#13795865, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#13795866, productionAspect, productionAspect#13795867, salesPlant, salesPlant#13795868, listing, listing#13795869, sourceOfSupplyCategory, sourceOfSupplyCategory#13795870) AS productPlant#13795871]
(1269) Project
Arguments: [productPlant#13795871]
(1270) Join
Arguments: LeftOuter, ((product#13795858 <=> productPlant#13795871.product.internalRefUUID) AND (plant#13795859 <=> productPlant#13795871.plant.internalRefUUID))
(1271) Project
Arguments: [product#13795858, plant#13795859, orderDateTime#13795860, productPlant#13795871]
(1272) LogicalRelation
Arguments: parquet, [systemId#13795872, internalUUID#13795873, id#13795874, displayId#13795875, name#13795876, baseUnitOfMeasure#13795877, unitOfMeasures#13795878, unitOfMeasureConversions#13795879, productionAspect#13795880, salesAspect#13795881, procurementAspect#13795882, productGroup#13795883], false
(1273) Repartition
Arguments: 37, true
(1274) Join
Arguments: LeftOuter, (product#13795858 = internalUUID#13795873)
(1275) Project
Arguments: [product#13795858, plant#13795859, orderDateTime#13795860, productPlant#13795871, systemId#13795872, internalUUID#13795873, id#13795874, displayId#13795875, name#13795876, baseUnitOfMeasure#13795877, unitOfMeasures#13795878, unitOfMeasureConversions#13795879, productionAspect#13795880, salesAspect#13795881, procurementAspect#13795882, productGroup#13795883, filter(unitOfMeasureConversions#13795879, lambdafunction((((lambda u#13792048.measurementUnit1.code = productPlant#13795871.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#13792048.measurementUnit1.internalRefUUID = productPlant#13795871.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#13792048.measurementUnit2.code = baseUnitOfMeasure#13795877.code) AND (lambda u#13792048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#13795877.internalRefUUID))), lambda u#13792048, false)) AS filteredUnitOfMeasureConversions#13795884]
(1276) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13795884.quantityNumerator), true, [quantityNumerator#13795885]
(1277) Project
Arguments: [product#13795858, plant#13795859, orderDateTime#13795860, productPlant#13795871, systemId#13795872, internalUUID#13795873, id#13795874, displayId#13795875, name#13795876, baseUnitOfMeasure#13795877, unitOfMeasures#13795878, unitOfMeasureConversions#13795879, productionAspect#13795880, salesAspect#13795881, procurementAspect#13795882, productGroup#13795883, filteredUnitOfMeasureConversions#13795884, quantityNumerator#13795885]
(1278) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13795884.quantityDenominator), true, [quantityDenominator#13795886]
(1279) Project
Arguments: [product#13795858, plant#13795859, orderDateTime#13795860, productPlant#13795871, systemId#13795872, internalUUID#13795873, id#13795874, displayId#13795875, name#13795876, baseUnitOfMeasure#13795877, unitOfMeasures#13795878, unitOfMeasureConversions#13795879, productionAspect#13795880, salesAspect#13795881, procurementAspect#13795882, productGroup#13795883, filteredUnitOfMeasureConversions#13795884, quantityNumerator#13795885, quantityDenominator#13795886]
(1280) Project
Arguments: [product#13795858, plant#13795859, orderDateTime#13795860, productPlant#13795871, systemId#13795872, internalUUID#13795873, id#13795874, displayId#13795875, name#13795876, baseUnitOfMeasure#13795877, unitOfMeasures#13795878, unitOfMeasureConversions#13795879, productionAspect#13795880, salesAspect#13795881, procurementAspect#13795882, productGroup#13795883, filteredUnitOfMeasureConversions#13795884, quantityNumerator#13795885, quantityDenominator#13795886, (cast(quantityNumerator#13795885 as double) / cast(quantityDenominator#13795886 as double)) AS outboundUnit#13795887]
(1281) Project
Arguments: [product#13795858, plant#13795859, orderDateTime#13795860, productPlant#13795871, systemId#13795872, internalUUID#13795873, id#13795874, displayId#13795875, name#13795876, baseUnitOfMeasure#13795877, unitOfMeasures#13795878, unitOfMeasureConversions#13795879, productionAspect#13795880, salesAspect#13795881, procurementAspect#13795882, productGroup#13795883, filteredUnitOfMeasureConversions#13795884, quantityNumerator#13795885, quantityDenominator#13795886, CASE WHEN (isnull(outboundUnit#13795887) OR (outboundUnit#13795887 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#13795887 END AS outboundUnit#13795888]
(1282) Project
Arguments: [product#13795858, plant#13795859, orderDateTime#13795860, productPlant#13795871, outboundUnit#13795888]
(1283) Join
Arguments: Inner, ((plantUuid#13795850 = plant#13795859) AND (productUuid#13795852 = product#13795858))
(1284) Filter
Arguments: (calculationDateTime#13795846 <= orderDateTime#13795860)
(1285) Project
Arguments: [plantUuid#13795850 AS plant#13795889, productUuid#13795852 AS product#13795890, storageLocId#13795853, calculationDateTime#13795846, quantity#13795855]
(1286) Aggregate
Arguments: [plant#13795889, product#13795890, storageLocId#13795853], [plant#13795889, product#13795890, storageLocId#13795853, max(calculationDateTime#13795846) AS max_calc_datetime#13795891]
(1287) Join
Arguments: Inner, ((((plant#13795778 <=> plant#13795889) AND (product#13795779 <=> product#13795890)) AND (storageLocId#13795742 <=> storageLocId#13795853)) AND (calculationDateTime#13795735 <=> max_calc_datetime#13795891))
(1288) Project
Arguments: [plant#13795778, product#13795779, storageLocId#13795742, calculationDateTime#13795735, quantity#13795744]
(1289) Aggregate
Arguments: [product#13795779, plant#13795778], [product#13795779, plant#13795778, sum(quantity#13795744) AS quantitySum#13795892, min(calculationDateTime#13795735) AS minCalculationDateTime#13795893]
(1290) Project
Arguments: [product#13795779, plant#13795778, quantitySum#13795892, minCalculationDateTime#13795893, round(quantitySum#13795892, 0) AS roundedQuantitySum#13795894]
(1291) Join
Arguments: LeftOuter, ((plant#13795639 = plant#13795778) AND (product#13795638 = product#13795779))
(1292) Project
Arguments: [product#13795638, plant#13795639, orderDateTime#13795640, productPlant#13795651, outboundUnit#13795668, roundedQuantitySum#13795894, minCalculationDateTime#13795893]
(1293) Project
Arguments: [product#13795638, plant#13795639, orderDateTime#13795640, productPlant#13795651, outboundUnit#13795668, roundedQuantitySum#13795894, minCalculationDateTime#13795893, CASE WHEN isnotnull(minCalculationDateTime#13795893) THEN minCalculationDateTime#13795893 ELSE orderDateTime#13795640 END AS stockDatetime#13795895]
(1294) Project
Arguments: [product#13795638, plant#13795639, orderDateTime#13795640, productPlant#13795651, outboundUnit#13795668, roundedQuantitySum#13795894, minCalculationDateTime#13795893, stockDatetime#13795895, CASE WHEN isnotnull(roundedQuantitySum#13795894) THEN array(roundedQuantitySum#13795894) ELSE array(0.0) END AS stockBatchQuantities#13795896]
(1295) Project
Arguments: [product#13795638, plant#13795639, orderDateTime#13795640, productPlant#13795651, outboundUnit#13795668, roundedQuantitySum#13795894, minCalculationDateTime#13795893, stockDatetime#13795895, stockBatchQuantities#13795896, array(2199-01-01 00:00:00) AS stockBatchShelfLifeEndDatetimes#13795897]
(1296) Project
Arguments: [product#13795638, plant#13795639, orderDateTime#13795640, productPlant#13795651, outboundUnit#13795668, roundedQuantitySum#13795894, stockDatetime#13795895, stockBatchQuantities#13795896, stockBatchShelfLifeEndDatetimes#13795897]
(1297) Project
Arguments: [product#13795638, plant#13795639, orderDateTime#13795640, productPlant#13795651, outboundUnit#13795668, stockDatetime#13795895, stockBatchQuantities#13795896, stockBatchShelfLifeEndDatetimes#13795897]
(1298) LogicalRelation
Arguments: parquet, [product#13795898, plant#13795899, orderDateTime#13795900, planningStartDateTime#13795901], false
(1299) RepartitionByExpression
Arguments: [product#13795898, plant#13795899], 37
(1300) Project
Arguments: [product#13795898, plant#13795899, orderDateTime#13795900]
(1301) LogicalRelation
Arguments: parquet, [systemId#13795902, internalUUID#13795903, plant#13795904, product#13795905, blockedForReplenishmentStartingFrom#13795906, productionAspect#13795907, salesPlant#13795908, listing#13795909, sourceOfSupplyCategory#13795910], false
(1302) Repartition
Arguments: 37, true
(1303) Project
Arguments: [systemId#13795902, internalUUID#13795903, plant#13795904, product#13795905, blockedForReplenishmentStartingFrom#13795906, productionAspect#13795907, salesPlant#13795908, listing#13795909, sourceOfSupplyCategory#13795910, struct(systemId, systemId#13795902, internalUUID, internalUUID#13795903, plant, plant#13795904, product, product#13795905, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#13795906, productionAspect, productionAspect#13795907, salesPlant, salesPlant#13795908, listing, listing#13795909, sourceOfSupplyCategory, sourceOfSupplyCategory#13795910) AS productPlant#13795911]
(1304) Project
Arguments: [productPlant#13795911]
(1305) Join
Arguments: LeftOuter, ((product#13795898 <=> productPlant#13795911.product.internalRefUUID) AND (plant#13795899 <=> productPlant#13795911.plant.internalRefUUID))
(1306) Project
Arguments: [product#13795898, plant#13795899, orderDateTime#13795900, productPlant#13795911]
(1307) LogicalRelation
Arguments: parquet, [systemId#13795912, internalUUID#13795913, id#13795914, displayId#13795915, name#13795916, baseUnitOfMeasure#13795917, unitOfMeasures#13795918, unitOfMeasureConversions#13795919, productionAspect#13795920, salesAspect#13795921, procurementAspect#13795922, productGroup#13795923], false
(1308) Repartition
Arguments: 37, true
(1309) Join
Arguments: LeftOuter, (product#13795898 = internalUUID#13795913)
(1310) Project
Arguments: [product#13795898, plant#13795899, orderDateTime#13795900, productPlant#13795911, systemId#13795912, internalUUID#13795913, id#13795914, displayId#13795915, name#13795916, baseUnitOfMeasure#13795917, unitOfMeasures#13795918, unitOfMeasureConversions#13795919, productionAspect#13795920, salesAspect#13795921, procurementAspect#13795922, productGroup#13795923, filter(unitOfMeasureConversions#13795919, lambdafunction((((lambda u#13792048.measurementUnit1.code = productPlant#13795911.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#13792048.measurementUnit1.internalRefUUID = productPlant#13795911.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#13792048.measurementUnit2.code = baseUnitOfMeasure#13795917.code) AND (lambda u#13792048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#13795917.internalRefUUID))), lambda u#13792048, false)) AS filteredUnitOfMeasureConversions#13795924]
(1311) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13795924.quantityNumerator), true, [quantityNumerator#13795925]
(1312) Project
Arguments: [product#13795898, plant#13795899, orderDateTime#13795900, productPlant#13795911, systemId#13795912, internalUUID#13795913, id#13795914, displayId#13795915, name#13795916, baseUnitOfMeasure#13795917, unitOfMeasures#13795918, unitOfMeasureConversions#13795919, productionAspect#13795920, salesAspect#13795921, procurementAspect#13795922, productGroup#13795923, filteredUnitOfMeasureConversions#13795924, quantityNumerator#13795925]
(1313) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13795924.quantityDenominator), true, [quantityDenominator#13795926]
(1314) Project
Arguments: [product#13795898, plant#13795899, orderDateTime#13795900, productPlant#13795911, systemId#13795912, internalUUID#13795913, id#13795914, displayId#13795915, name#13795916, baseUnitOfMeasure#13795917, unitOfMeasures#13795918, unitOfMeasureConversions#13795919, productionAspect#13795920, salesAspect#13795921, procurementAspect#13795922, productGroup#13795923, filteredUnitOfMeasureConversions#13795924, quantityNumerator#13795925, quantityDenominator#13795926]
(1315) Project
Arguments: [product#13795898, plant#13795899, orderDateTime#13795900, productPlant#13795911, systemId#13795912, internalUUID#13795913, id#13795914, displayId#13795915, name#13795916, baseUnitOfMeasure#13795917, unitOfMeasures#13795918, unitOfMeasureConversions#13795919, productionAspect#13795920, salesAspect#13795921, procurementAspect#13795922, productGroup#13795923, filteredUnitOfMeasureConversions#13795924, quantityNumerator#13795925, quantityDenominator#13795926, (cast(quantityNumerator#13795925 as double) / cast(quantityDenominator#13795926 as double)) AS outboundUnit#13795927]
(1316) Project
Arguments: [product#13795898, plant#13795899, orderDateTime#13795900, productPlant#13795911, systemId#13795912, internalUUID#13795913, id#13795914, displayId#13795915, name#13795916, baseUnitOfMeasure#13795917, unitOfMeasures#13795918, unitOfMeasureConversions#13795919, productionAspect#13795920, salesAspect#13795921, procurementAspect#13795922, productGroup#13795923, filteredUnitOfMeasureConversions#13795924, quantityNumerator#13795925, quantityDenominator#13795926, CASE WHEN (isnull(outboundUnit#13795927) OR (outboundUnit#13795927 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#13795927 END AS outboundUnit#13795928]
(1317) Project
Arguments: [product#13795898, plant#13795899, orderDateTime#13795900, productPlant#13795911, outboundUnit#13795928]
(1318) LogicalRelation
Arguments: parquet, [systemId#13795929, internalUUID#13795930, product#13795931, plant#13795932, calculationDateTime#13795933, stockQuantities#13795934], false
(1319) Repartition
Arguments: 37, true
(1320) LogicalRelation
Arguments: parquet, [marketUnit#13795935, description#13795936, articleHierarchy#13795937, defaultCurrency#13795938, responsibilities#13795939, replenishmentTypes#13795940, distributionCenters#13795941, assignedArticleHierarchyNodes#13795942, minOrderQtySetting#13795943, listingCheck#13795944, odsSelection#13795945, demandProfiles#13795946, constraintProfiles#13795947, optimizationProfiles#13795948, orderGroupSplitProfiles#13795949, supplierMinimumProfiles#13795950, multipleRestrictionProfiles#13795951, preferredUomSource#13795952, handlingOfUnfulfilledDemands#13795953, negligibleQuantitiesThreshold#13795954, eventtype#13795955, minOrderQtySettingInternal#13795956], false
(1321) Repartition
Arguments: 37, true
(1322) Filter
Arguments: (marketUnit#13795935 <=> AUTO_ALL_ProdLoc)
(1323) Project
Arguments: [marketUnit#13795935, description#13795936, articleHierarchy#13795937, defaultCurrency#13795938, responsibilities#13795939, replenishmentTypes#13795940, distributionCenters#13795941, assignedArticleHierarchyNodes#13795942, minOrderQtySetting#13795943, listingCheck#13795944, odsSelection#13795945, demandProfiles#13795946, constraintProfiles#13795947, optimizationProfiles#13795948, orderGroupSplitProfiles#13795949, supplierMinimumProfiles#13795950, multipleRestrictionProfiles#13795951, preferredUomSource#13795952, handlingOfUnfulfilledDemands#13795953, negligibleQuantitiesThreshold#13795954, eventtype#13795955, minOrderQtySettingInternal#13795956]
(1324) Project
Arguments: [distributionCenters#13795941]
(1325) Generate
Arguments: explode(distributionCenters#13795941), false, [distributionCenters#13795957]
(1326) Project
Arguments: [distributionCenters#13795957]
(1327) Generate
Arguments: explode(distributionCenters#13795957.storageLocations), false, [storageLocations#13795958]
(1328) Project
Arguments: [distributionCenters#13795957.id AS plantId#13795959, distributionCenters#13795957.internalRefUUID AS plantUuid#13795960, storageLocations#13795958]
(1329) Project
Arguments: [plantId#13795959, plantUuid#13795960, storageLocations#13795958.id AS storageLocId#13795961, storageLocations#13795958.internalRefUUID AS storageLocUuid#13795962]
(1330) LogicalRelation
Arguments: parquet, [product#13795963, plant#13795964, orderDateTime#13795965, planningStartDateTime#13795966], false
(1331) RepartitionByExpression
Arguments: [product#13795963, plant#13795964], 37
(1332) Project
Arguments: [product#13795963, plant#13795964, orderDateTime#13795965]
(1333) LogicalRelation
Arguments: parquet, [systemId#13795967, internalUUID#13795968, plant#13795969, product#13795970, blockedForReplenishmentStartingFrom#13795971, productionAspect#13795972, salesPlant#13795973, listing#13795974, sourceOfSupplyCategory#13795975], false
(1334) Repartition
Arguments: 37, true
(1335) Project
Arguments: [systemId#13795967, internalUUID#13795968, plant#13795969, product#13795970, blockedForReplenishmentStartingFrom#13795971, productionAspect#13795972, salesPlant#13795973, listing#13795974, sourceOfSupplyCategory#13795975, struct(systemId, systemId#13795967, internalUUID, internalUUID#13795968, plant, plant#13795969, product, product#13795970, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#13795971, productionAspect, productionAspect#13795972, salesPlant, salesPlant#13795973, listing, listing#13795974, sourceOfSupplyCategory, sourceOfSupplyCategory#13795975) AS productPlant#13795976]
(1336) Project
Arguments: [productPlant#13795976]
(1337) Join
Arguments: LeftOuter, ((product#13795963 <=> productPlant#13795976.product.internalRefUUID) AND (plant#13795964 <=> productPlant#13795976.plant.internalRefUUID))
(1338) Project
Arguments: [product#13795963, plant#13795964, orderDateTime#13795965, productPlant#13795976]
(1339) LogicalRelation
Arguments: parquet, [systemId#13795977, internalUUID#13795978, id#13795979, displayId#13795980, name#13795981, baseUnitOfMeasure#13795982, unitOfMeasures#13795983, unitOfMeasureConversions#13795984, productionAspect#13795985, salesAspect#13795986, procurementAspect#13795987, productGroup#13795988], false
(1340) Repartition
Arguments: 37, true
(1341) Join
Arguments: LeftOuter, (product#13795963 = internalUUID#13795978)
(1342) Project
Arguments: [product#13795963, plant#13795964, orderDateTime#13795965, productPlant#13795976, systemId#13795977, internalUUID#13795978, id#13795979, displayId#13795980, name#13795981, baseUnitOfMeasure#13795982, unitOfMeasures#13795983, unitOfMeasureConversions#13795984, productionAspect#13795985, salesAspect#13795986, procurementAspect#13795987, productGroup#13795988, filter(unitOfMeasureConversions#13795984, lambdafunction((((lambda u#13792048.measurementUnit1.code = productPlant#13795976.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#13792048.measurementUnit1.internalRefUUID = productPlant#13795976.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#13792048.measurementUnit2.code = baseUnitOfMeasure#13795982.code) AND (lambda u#13792048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#13795982.internalRefUUID))), lambda u#13792048, false)) AS filteredUnitOfMeasureConversions#13795989]
(1343) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13795989.quantityNumerator), true, [quantityNumerator#13795990]
(1344) Project
Arguments: [product#13795963, plant#13795964, orderDateTime#13795965, productPlant#13795976, systemId#13795977, internalUUID#13795978, id#13795979, displayId#13795980, name#13795981, baseUnitOfMeasure#13795982, unitOfMeasures#13795983, unitOfMeasureConversions#13795984, productionAspect#13795985, salesAspect#13795986, procurementAspect#13795987, productGroup#13795988, filteredUnitOfMeasureConversions#13795989, quantityNumerator#13795990]
(1345) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13795989.quantityDenominator), true, [quantityDenominator#13795991]
(1346) Project
Arguments: [product#13795963, plant#13795964, orderDateTime#13795965, productPlant#13795976, systemId#13795977, internalUUID#13795978, id#13795979, displayId#13795980, name#13795981, baseUnitOfMeasure#13795982, unitOfMeasures#13795983, unitOfMeasureConversions#13795984, productionAspect#13795985, salesAspect#13795986, procurementAspect#13795987, productGroup#13795988, filteredUnitOfMeasureConversions#13795989, quantityNumerator#13795990, quantityDenominator#13795991]
(1347) Project
Arguments: [product#13795963, plant#13795964, orderDateTime#13795965, productPlant#13795976, systemId#13795977, internalUUID#13795978, id#13795979, displayId#13795980, name#13795981, baseUnitOfMeasure#13795982, unitOfMeasures#13795983, unitOfMeasureConversions#13795984, productionAspect#13795985, salesAspect#13795986, procurementAspect#13795987, productGroup#13795988, filteredUnitOfMeasureConversions#13795989, quantityNumerator#13795990, quantityDenominator#13795991, (cast(quantityNumerator#13795990 as double) / cast(quantityDenominator#13795991 as double)) AS outboundUnit#13795992]
(1348) Project
Arguments: [product#13795963, plant#13795964, orderDateTime#13795965, productPlant#13795976, systemId#13795977, internalUUID#13795978, id#13795979, displayId#13795980, name#13795981, baseUnitOfMeasure#13795982, unitOfMeasures#13795983, unitOfMeasureConversions#13795984, productionAspect#13795985, salesAspect#13795986, procurementAspect#13795987, productGroup#13795988, filteredUnitOfMeasureConversions#13795989, quantityNumerator#13795990, quantityDenominator#13795991, CASE WHEN (isnull(outboundUnit#13795992) OR (outboundUnit#13795992 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#13795992 END AS outboundUnit#13795993]
(1349) Project
Arguments: [product#13795963, plant#13795964, orderDateTime#13795965, productPlant#13795976, outboundUnit#13795993]
(1350) Project
Arguments: [plant#13795964]
(1351) Deduplicate
Arguments: [plant#13795964]
(1352) Join
Arguments: Inner, (plantUuid#13795960 = plant#13795964)
(1353) Project
Arguments: [plantId#13795959, plantUuid#13795960, storageLocId#13795961, storageLocUuid#13795962]
(1354) Join
Arguments: Inner, (plant#13795932.internalRefUUID <=> plantUuid#13795960)
(1355) Generate
Arguments: explode(filter(stockQuantities#13795934, lambdafunction(((lambda x#13792128.storageLocation.internalRefUuid = storageLocUuid#13795962) AND (lambda x#13792128.storageLocation.Id = storageLocId#13795961)), lambda x#13792128, false))), false, [stockQuantity#13795994]
(1356) Project
Arguments: [systemId#13795929, internalUUID#13795930, product#13795931, plant#13795932, calculationDateTime#13795933, stockQuantities#13795934, plantId#13795959, plantUuid#13795960, storageLocId#13795961, storageLocUuid#13795962, stockQuantity#13795994]
(1357) Aggregate
Arguments: [plantUuid#13795960, internalUUID#13795930, plant#13795932, product#13795931, systemId#13795929], [plantUuid#13795960, internalUUID#13795930, plant#13795932, product#13795931, systemId#13795929, first(calculationDateTime#13795933, false) AS calculationDateTime#13795995, collect_list(stockQuantity#13795994, 0, 0) AS stockQuantities#13795996]
(1358) Project
Arguments: [systemId#13795929, internalUUID#13795930, product#13795931, plant#13795932, calculationDateTime#13795995, stockQuantities#13795996]
(1359) Generate
Arguments: explode(stockQuantities#13795996), false, [stockQuantity#13795997]
(1360) Project
Arguments: [systemId#13795929, internalUUID#13795930, product#13795931, plant#13795932, calculationDateTime#13795995, stockQuantities#13795996, stockQuantity#13795997]
(1361) Project
Arguments: [plant#13795932.id AS plant#13795998, plant#13795932.internalRefUUID AS plantUuid#13795999, product#13795931.id AS product#13796000, product#13795931.internalRefUUID AS productUuid#13796001, calculationDateTime#13795995, stockQuantity#13795997.storagelocation.id AS storageLocId#13796002, stockQuantity#13795997.storagelocation.internalRefUUID AS storageLocUuid#13796003, stockQuantity#13795997.quantity.measure AS quantity#13796004, stockQuantity#13795997.specialStockIndicator.code AS specialStockIndicator#13796005, stockQuantity#13795997.stockType.code AS stockType#13796006]
(1362) Filter
Arguments: ((specialStockIndicator#13796005 = ) AND (stockType#13796006 = 01))
(1363) LogicalRelation
Arguments: parquet, [product#13796007, plant#13796008, orderDateTime#13796009, planningStartDateTime#13796010], false
(1364) RepartitionByExpression
Arguments: [product#13796007, plant#13796008], 37
(1365) Project
Arguments: [product#13796007, plant#13796008, orderDateTime#13796009]
(1366) LogicalRelation
Arguments: parquet, [systemId#13796011, internalUUID#13796012, plant#13796013, product#13796014, blockedForReplenishmentStartingFrom#13796015, productionAspect#13796016, salesPlant#13796017, listing#13796018, sourceOfSupplyCategory#13796019], false
(1367) Repartition
Arguments: 37, true
(1368) Project
Arguments: [systemId#13796011, internalUUID#13796012, plant#13796013, product#13796014, blockedForReplenishmentStartingFrom#13796015, productionAspect#13796016, salesPlant#13796017, listing#13796018, sourceOfSupplyCategory#13796019, struct(systemId, systemId#13796011, internalUUID, internalUUID#13796012, plant, plant#13796013, product, product#13796014, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#13796015, productionAspect, productionAspect#13796016, salesPlant, salesPlant#13796017, listing, listing#13796018, sourceOfSupplyCategory, sourceOfSupplyCategory#13796019) AS productPlant#13796020]
(1369) Project
Arguments: [productPlant#13796020]
(1370) Join
Arguments: LeftOuter, ((product#13796007 <=> productPlant#13796020.product.internalRefUUID) AND (plant#13796008 <=> productPlant#13796020.plant.internalRefUUID))
(1371) Project
Arguments: [product#13796007, plant#13796008, orderDateTime#13796009, productPlant#13796020]
(1372) LogicalRelation
Arguments: parquet, [systemId#13796021, internalUUID#13796022, id#13796023, displayId#13796024, name#13796025, baseUnitOfMeasure#13796026, unitOfMeasures#13796027, unitOfMeasureConversions#13796028, productionAspect#13796029, salesAspect#13796030, procurementAspect#13796031, productGroup#13796032], false
(1373) Repartition
Arguments: 37, true
(1374) Join
Arguments: LeftOuter, (product#13796007 = internalUUID#13796022)
(1375) Project
Arguments: [product#13796007, plant#13796008, orderDateTime#13796009, productPlant#13796020, systemId#13796021, internalUUID#13796022, id#13796023, displayId#13796024, name#13796025, baseUnitOfMeasure#13796026, unitOfMeasures#13796027, unitOfMeasureConversions#13796028, productionAspect#13796029, salesAspect#13796030, procurementAspect#13796031, productGroup#13796032, filter(unitOfMeasureConversions#13796028, lambdafunction((((lambda u#13792048.measurementUnit1.code = productPlant#13796020.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#13792048.measurementUnit1.internalRefUUID = productPlant#13796020.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#13792048.measurementUnit2.code = baseUnitOfMeasure#13796026.code) AND (lambda u#13792048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#13796026.internalRefUUID))), lambda u#13792048, false)) AS filteredUnitOfMeasureConversions#13796033]
(1376) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13796033.quantityNumerator), true, [quantityNumerator#13796034]
(1377) Project
Arguments: [product#13796007, plant#13796008, orderDateTime#13796009, productPlant#13796020, systemId#13796021, internalUUID#13796022, id#13796023, displayId#13796024, name#13796025, baseUnitOfMeasure#13796026, unitOfMeasures#13796027, unitOfMeasureConversions#13796028, productionAspect#13796029, salesAspect#13796030, procurementAspect#13796031, productGroup#13796032, filteredUnitOfMeasureConversions#13796033, quantityNumerator#13796034]
(1378) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13796033.quantityDenominator), true, [quantityDenominator#13796035]
(1379) Project
Arguments: [product#13796007, plant#13796008, orderDateTime#13796009, productPlant#13796020, systemId#13796021, internalUUID#13796022, id#13796023, displayId#13796024, name#13796025, baseUnitOfMeasure#13796026, unitOfMeasures#13796027, unitOfMeasureConversions#13796028, productionAspect#13796029, salesAspect#13796030, procurementAspect#13796031, productGroup#13796032, filteredUnitOfMeasureConversions#13796033, quantityNumerator#13796034, quantityDenominator#13796035]
(1380) Project
Arguments: [product#13796007, plant#13796008, orderDateTime#13796009, productPlant#13796020, systemId#13796021, internalUUID#13796022, id#13796023, displayId#13796024, name#13796025, baseUnitOfMeasure#13796026, unitOfMeasures#13796027, unitOfMeasureConversions#13796028, productionAspect#13796029, salesAspect#13796030, procurementAspect#13796031, productGroup#13796032, filteredUnitOfMeasureConversions#13796033, quantityNumerator#13796034, quantityDenominator#13796035, (cast(quantityNumerator#13796034 as double) / cast(quantityDenominator#13796035 as double)) AS outboundUnit#13796036]
(1381) Project
Arguments: [product#13796007, plant#13796008, orderDateTime#13796009, productPlant#13796020, systemId#13796021, internalUUID#13796022, id#13796023, displayId#13796024, name#13796025, baseUnitOfMeasure#13796026, unitOfMeasures#13796027, unitOfMeasureConversions#13796028, productionAspect#13796029, salesAspect#13796030, procurementAspect#13796031, productGroup#13796032, filteredUnitOfMeasureConversions#13796033, quantityNumerator#13796034, quantityDenominator#13796035, CASE WHEN (isnull(outboundUnit#13796036) OR (outboundUnit#13796036 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#13796036 END AS outboundUnit#13796037]
(1382) Project
Arguments: [product#13796007, plant#13796008, orderDateTime#13796009, productPlant#13796020, outboundUnit#13796037]
(1383) Join
Arguments: Inner, ((plantUuid#13795999 = plant#13796008) AND (productUuid#13796001 = product#13796007))
(1384) Filter
Arguments: (calculationDateTime#13795995 <= orderDateTime#13796009)
(1385) Project
Arguments: [plantUuid#13795999 AS plant#13796038, productUuid#13796001 AS product#13796039, storageLocId#13796002, calculationDateTime#13795995, quantity#13796004]
(1386) LogicalRelation
Arguments: parquet, [systemId#13796040, internalUUID#13796041, product#13796042, plant#13796043, calculationDateTime#13796044, stockQuantities#13796045], false
(1387) Repartition
Arguments: 37, true
(1388) LogicalRelation
Arguments: parquet, [marketUnit#13796046, description#13796047, articleHierarchy#13796048, defaultCurrency#13796049, responsibilities#13796050, replenishmentTypes#13796051, distributionCenters#13796052, assignedArticleHierarchyNodes#13796053, minOrderQtySetting#13796054, listingCheck#13796055, odsSelection#13796056, demandProfiles#13796057, constraintProfiles#13796058, optimizationProfiles#13796059, orderGroupSplitProfiles#13796060, supplierMinimumProfiles#13796061, multipleRestrictionProfiles#13796062, preferredUomSource#13796063, handlingOfUnfulfilledDemands#13796064, negligibleQuantitiesThreshold#13796065, eventtype#13796066, minOrderQtySettingInternal#13796067], false
(1389) Repartition
Arguments: 37, true
(1390) Filter
Arguments: (marketUnit#13796046 <=> AUTO_ALL_ProdLoc)
(1391) Project
Arguments: [marketUnit#13796046, description#13796047, articleHierarchy#13796048, defaultCurrency#13796049, responsibilities#13796050, replenishmentTypes#13796051, distributionCenters#13796052, assignedArticleHierarchyNodes#13796053, minOrderQtySetting#13796054, listingCheck#13796055, odsSelection#13796056, demandProfiles#13796057, constraintProfiles#13796058, optimizationProfiles#13796059, orderGroupSplitProfiles#13796060, supplierMinimumProfiles#13796061, multipleRestrictionProfiles#13796062, preferredUomSource#13796063, handlingOfUnfulfilledDemands#13796064, negligibleQuantitiesThreshold#13796065, eventtype#13796066, minOrderQtySettingInternal#13796067]
(1392) Project
Arguments: [distributionCenters#13796052]
(1393) Generate
Arguments: explode(distributionCenters#13796052), false, [distributionCenters#13796068]
(1394) Project
Arguments: [distributionCenters#13796068]
(1395) Generate
Arguments: explode(distributionCenters#13796068.storageLocations), false, [storageLocations#13796069]
(1396) Project
Arguments: [distributionCenters#13796068.id AS plantId#13796070, distributionCenters#13796068.internalRefUUID AS plantUuid#13796071, storageLocations#13796069]
(1397) Project
Arguments: [plantId#13796070, plantUuid#13796071, storageLocations#13796069.id AS storageLocId#13796072, storageLocations#13796069.internalRefUUID AS storageLocUuid#13796073]
(1398) LogicalRelation
Arguments: parquet, [product#13796074, plant#13796075, orderDateTime#13796076, planningStartDateTime#13796077], false
(1399) RepartitionByExpression
Arguments: [product#13796074, plant#13796075], 37
(1400) Project
Arguments: [product#13796074, plant#13796075, orderDateTime#13796076]
(1401) LogicalRelation
Arguments: parquet, [systemId#13796078, internalUUID#13796079, plant#13796080, product#13796081, blockedForReplenishmentStartingFrom#13796082, productionAspect#13796083, salesPlant#13796084, listing#13796085, sourceOfSupplyCategory#13796086], false
(1402) Repartition
Arguments: 37, true
(1403) Project
Arguments: [systemId#13796078, internalUUID#13796079, plant#13796080, product#13796081, blockedForReplenishmentStartingFrom#13796082, productionAspect#13796083, salesPlant#13796084, listing#13796085, sourceOfSupplyCategory#13796086, struct(systemId, systemId#13796078, internalUUID, internalUUID#13796079, plant, plant#13796080, product, product#13796081, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#13796082, productionAspect, productionAspect#13796083, salesPlant, salesPlant#13796084, listing, listing#13796085, sourceOfSupplyCategory, sourceOfSupplyCategory#13796086) AS productPlant#13796087]
(1404) Project
Arguments: [productPlant#13796087]
(1405) Join
Arguments: LeftOuter, ((product#13796074 <=> productPlant#13796087.product.internalRefUUID) AND (plant#13796075 <=> productPlant#13796087.plant.internalRefUUID))
(1406) Project
Arguments: [product#13796074, plant#13796075, orderDateTime#13796076, productPlant#13796087]
(1407) LogicalRelation
Arguments: parquet, [systemId#13796088, internalUUID#13796089, id#13796090, displayId#13796091, name#13796092, baseUnitOfMeasure#13796093, unitOfMeasures#13796094, unitOfMeasureConversions#13796095, productionAspect#13796096, salesAspect#13796097, procurementAspect#13796098, productGroup#13796099], false
(1408) Repartition
Arguments: 37, true
(1409) Join
Arguments: LeftOuter, (product#13796074 = internalUUID#13796089)
(1410) Project
Arguments: [product#13796074, plant#13796075, orderDateTime#13796076, productPlant#13796087, systemId#13796088, internalUUID#13796089, id#13796090, displayId#13796091, name#13796092, baseUnitOfMeasure#13796093, unitOfMeasures#13796094, unitOfMeasureConversions#13796095, productionAspect#13796096, salesAspect#13796097, procurementAspect#13796098, productGroup#13796099, filter(unitOfMeasureConversions#13796095, lambdafunction((((lambda u#13792048.measurementUnit1.code = productPlant#13796087.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#13792048.measurementUnit1.internalRefUUID = productPlant#13796087.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#13792048.measurementUnit2.code = baseUnitOfMeasure#13796093.code) AND (lambda u#13792048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#13796093.internalRefUUID))), lambda u#13792048, false)) AS filteredUnitOfMeasureConversions#13796100]
(1411) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13796100.quantityNumerator), true, [quantityNumerator#13796101]
(1412) Project
Arguments: [product#13796074, plant#13796075, orderDateTime#13796076, productPlant#13796087, systemId#13796088, internalUUID#13796089, id#13796090, displayId#13796091, name#13796092, baseUnitOfMeasure#13796093, unitOfMeasures#13796094, unitOfMeasureConversions#13796095, productionAspect#13796096, salesAspect#13796097, procurementAspect#13796098, productGroup#13796099, filteredUnitOfMeasureConversions#13796100, quantityNumerator#13796101]
(1413) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13796100.quantityDenominator), true, [quantityDenominator#13796102]
(1414) Project
Arguments: [product#13796074, plant#13796075, orderDateTime#13796076, productPlant#13796087, systemId#13796088, internalUUID#13796089, id#13796090, displayId#13796091, name#13796092, baseUnitOfMeasure#13796093, unitOfMeasures#13796094, unitOfMeasureConversions#13796095, productionAspect#13796096, salesAspect#13796097, procurementAspect#13796098, productGroup#13796099, filteredUnitOfMeasureConversions#13796100, quantityNumerator#13796101, quantityDenominator#13796102]
(1415) Project
Arguments: [product#13796074, plant#13796075, orderDateTime#13796076, productPlant#13796087, systemId#13796088, internalUUID#13796089, id#13796090, displayId#13796091, name#13796092, baseUnitOfMeasure#13796093, unitOfMeasures#13796094, unitOfMeasureConversions#13796095, productionAspect#13796096, salesAspect#13796097, procurementAspect#13796098, productGroup#13796099, filteredUnitOfMeasureConversions#13796100, quantityNumerator#13796101, quantityDenominator#13796102, (cast(quantityNumerator#13796101 as double) / cast(quantityDenominator#13796102 as double)) AS outboundUnit#13796103]
(1416) Project
Arguments: [product#13796074, plant#13796075, orderDateTime#13796076, productPlant#13796087, systemId#13796088, internalUUID#13796089, id#13796090, displayId#13796091, name#13796092, baseUnitOfMeasure#13796093, unitOfMeasures#13796094, unitOfMeasureConversions#13796095, productionAspect#13796096, salesAspect#13796097, procurementAspect#13796098, productGroup#13796099, filteredUnitOfMeasureConversions#13796100, quantityNumerator#13796101, quantityDenominator#13796102, CASE WHEN (isnull(outboundUnit#13796103) OR (outboundUnit#13796103 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#13796103 END AS outboundUnit#13796104]
(1417) Project
Arguments: [product#13796074, plant#13796075, orderDateTime#13796076, productPlant#13796087, outboundUnit#13796104]
(1418) Project
Arguments: [plant#13796075]
(1419) Deduplicate
Arguments: [plant#13796075]
(1420) Join
Arguments: Inner, (plantUuid#13796071 = plant#13796075)
(1421) Project
Arguments: [plantId#13796070, plantUuid#13796071, storageLocId#13796072, storageLocUuid#13796073]
(1422) Join
Arguments: Inner, (plant#13796043.internalRefUUID <=> plantUuid#13796071)
(1423) Generate
Arguments: explode(filter(stockQuantities#13796045, lambdafunction(((lambda x#13792128.storageLocation.internalRefUuid = storageLocUuid#13796073) AND (lambda x#13792128.storageLocation.Id = storageLocId#13796072)), lambda x#13792128, false))), false, [stockQuantity#13796105]
(1424) Project
Arguments: [systemId#13796040, internalUUID#13796041, product#13796042, plant#13796043, calculationDateTime#13796044, stockQuantities#13796045, plantId#13796070, plantUuid#13796071, storageLocId#13796072, storageLocUuid#13796073, stockQuantity#13796105]
(1425) Aggregate
Arguments: [plantUuid#13796071, internalUUID#13796041, plant#13796043, product#13796042, systemId#13796040], [plantUuid#13796071, internalUUID#13796041, plant#13796043, product#13796042, systemId#13796040, first(calculationDateTime#13796044, false) AS calculationDateTime#13796106, collect_list(stockQuantity#13796105, 0, 0) AS stockQuantities#13796107]
(1426) Project
Arguments: [systemId#13796040, internalUUID#13796041, product#13796042, plant#13796043, calculationDateTime#13796106, stockQuantities#13796107]
(1427) Generate
Arguments: explode(stockQuantities#13796107), false, [stockQuantity#13796108]
(1428) Project
Arguments: [systemId#13796040, internalUUID#13796041, product#13796042, plant#13796043, calculationDateTime#13796106, stockQuantities#13796107, stockQuantity#13796108]
(1429) Project
Arguments: [plant#13796043.id AS plant#13796109, plant#13796043.internalRefUUID AS plantUuid#13796110, product#13796042.id AS product#13796111, product#13796042.internalRefUUID AS productUuid#13796112, calculationDateTime#13796106, stockQuantity#13796108.storagelocation.id AS storageLocId#13796113, stockQuantity#13796108.storagelocation.internalRefUUID AS storageLocUuid#13796114, stockQuantity#13796108.quantity.measure AS quantity#13796115, stockQuantity#13796108.specialStockIndicator.code AS specialStockIndicator#13796116, stockQuantity#13796108.stockType.code AS stockType#13796117]
(1430) Filter
Arguments: ((specialStockIndicator#13796116 = ) AND (stockType#13796117 = 01))
(1431) LogicalRelation
Arguments: parquet, [product#13796118, plant#13796119, orderDateTime#13796120, planningStartDateTime#13796121], false
(1432) RepartitionByExpression
Arguments: [product#13796118, plant#13796119], 37
(1433) Project
Arguments: [product#13796118, plant#13796119, orderDateTime#13796120]
(1434) LogicalRelation
Arguments: parquet, [systemId#13796122, internalUUID#13796123, plant#13796124, product#13796125, blockedForReplenishmentStartingFrom#13796126, productionAspect#13796127, salesPlant#13796128, listing#13796129, sourceOfSupplyCategory#13796130], false
(1435) Repartition
Arguments: 37, true
(1436) Project
Arguments: [systemId#13796122, internalUUID#13796123, plant#13796124, product#13796125, blockedForReplenishmentStartingFrom#13796126, productionAspect#13796127, salesPlant#13796128, listing#13796129, sourceOfSupplyCategory#13796130, struct(systemId, systemId#13796122, internalUUID, internalUUID#13796123, plant, plant#13796124, product, product#13796125, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#13796126, productionAspect, productionAspect#13796127, salesPlant, salesPlant#13796128, listing, listing#13796129, sourceOfSupplyCategory, sourceOfSupplyCategory#13796130) AS productPlant#13796131]
(1437) Project
Arguments: [productPlant#13796131]
(1438) Join
Arguments: LeftOuter, ((product#13796118 <=> productPlant#13796131.product.internalRefUUID) AND (plant#13796119 <=> productPlant#13796131.plant.internalRefUUID))
(1439) Project
Arguments: [product#13796118, plant#13796119, orderDateTime#13796120, productPlant#13796131]
(1440) LogicalRelation
Arguments: parquet, [systemId#13796132, internalUUID#13796133, id#13796134, displayId#13796135, name#13796136, baseUnitOfMeasure#13796137, unitOfMeasures#13796138, unitOfMeasureConversions#13796139, productionAspect#13796140, salesAspect#13796141, procurementAspect#13796142, productGroup#13796143], false
(1441) Repartition
Arguments: 37, true
(1442) Join
Arguments: LeftOuter, (product#13796118 = internalUUID#13796133)
(1443) Project
Arguments: [product#13796118, plant#13796119, orderDateTime#13796120, productPlant#13796131, systemId#13796132, internalUUID#13796133, id#13796134, displayId#13796135, name#13796136, baseUnitOfMeasure#13796137, unitOfMeasures#13796138, unitOfMeasureConversions#13796139, productionAspect#13796140, salesAspect#13796141, procurementAspect#13796142, productGroup#13796143, filter(unitOfMeasureConversions#13796139, lambdafunction((((lambda u#13792048.measurementUnit1.code = productPlant#13796131.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#13792048.measurementUnit1.internalRefUUID = productPlant#13796131.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#13792048.measurementUnit2.code = baseUnitOfMeasure#13796137.code) AND (lambda u#13792048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#13796137.internalRefUUID))), lambda u#13792048, false)) AS filteredUnitOfMeasureConversions#13796144]
(1444) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13796144.quantityNumerator), true, [quantityNumerator#13796145]
(1445) Project
Arguments: [product#13796118, plant#13796119, orderDateTime#13796120, productPlant#13796131, systemId#13796132, internalUUID#13796133, id#13796134, displayId#13796135, name#13796136, baseUnitOfMeasure#13796137, unitOfMeasures#13796138, unitOfMeasureConversions#13796139, productionAspect#13796140, salesAspect#13796141, procurementAspect#13796142, productGroup#13796143, filteredUnitOfMeasureConversions#13796144, quantityNumerator#13796145]
(1446) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13796144.quantityDenominator), true, [quantityDenominator#13796146]
(1447) Project
Arguments: [product#13796118, plant#13796119, orderDateTime#13796120, productPlant#13796131, systemId#13796132, internalUUID#13796133, id#13796134, displayId#13796135, name#13796136, baseUnitOfMeasure#13796137, unitOfMeasures#13796138, unitOfMeasureConversions#13796139, productionAspect#13796140, salesAspect#13796141, procurementAspect#13796142, productGroup#13796143, filteredUnitOfMeasureConversions#13796144, quantityNumerator#13796145, quantityDenominator#13796146]
(1448) Project
Arguments: [product#13796118, plant#13796119, orderDateTime#13796120, productPlant#13796131, systemId#13796132, internalUUID#13796133, id#13796134, displayId#13796135, name#13796136, baseUnitOfMeasure#13796137, unitOfMeasures#13796138, unitOfMeasureConversions#13796139, productionAspect#13796140, salesAspect#13796141, procurementAspect#13796142, productGroup#13796143, filteredUnitOfMeasureConversions#13796144, quantityNumerator#13796145, quantityDenominator#13796146, (cast(quantityNumerator#13796145 as double) / cast(quantityDenominator#13796146 as double)) AS outboundUnit#13796147]
(1449) Project
Arguments: [product#13796118, plant#13796119, orderDateTime#13796120, productPlant#13796131, systemId#13796132, internalUUID#13796133, id#13796134, displayId#13796135, name#13796136, baseUnitOfMeasure#13796137, unitOfMeasures#13796138, unitOfMeasureConversions#13796139, productionAspect#13796140, salesAspect#13796141, procurementAspect#13796142, productGroup#13796143, filteredUnitOfMeasureConversions#13796144, quantityNumerator#13796145, quantityDenominator#13796146, CASE WHEN (isnull(outboundUnit#13796147) OR (outboundUnit#13796147 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#13796147 END AS outboundUnit#13796148]
(1450) Project
Arguments: [product#13796118, plant#13796119, orderDateTime#13796120, productPlant#13796131, outboundUnit#13796148]
(1451) Join
Arguments: Inner, ((plantUuid#13796110 = plant#13796119) AND (productUuid#13796112 = product#13796118))
(1452) Filter
Arguments: (calculationDateTime#13796106 <= orderDateTime#13796120)
(1453) Project
Arguments: [plantUuid#13796110 AS plant#13796149, productUuid#13796112 AS product#13796150, storageLocId#13796113, calculationDateTime#13796106, quantity#13796115]
(1454) Aggregate
Arguments: [plant#13796149, product#13796150, storageLocId#13796113], [plant#13796149, product#13796150, storageLocId#13796113, max(calculationDateTime#13796106) AS max_calc_datetime#13796151]
(1455) Join
Arguments: Inner, ((((plant#13796038 <=> plant#13796149) AND (product#13796039 <=> product#13796150)) AND (storageLocId#13796002 <=> storageLocId#13796113)) AND (calculationDateTime#13795995 <=> max_calc_datetime#13796151))
(1456) Project
Arguments: [plant#13796038, product#13796039, storageLocId#13796002, calculationDateTime#13795995, quantity#13796004]
(1457) Aggregate
Arguments: [product#13796039, plant#13796038], [product#13796039, plant#13796038, sum(quantity#13796004) AS quantitySum#13796152, min(calculationDateTime#13795995) AS minCalculationDateTime#13796153]
(1458) Project
Arguments: [product#13796039, plant#13796038, quantitySum#13796152, minCalculationDateTime#13796153, round(quantitySum#13796152, 0) AS roundedQuantitySum#13796154]
(1459) Join
Arguments: LeftOuter, ((plant#13795899 = plant#13796038) AND (product#13795898 = product#13796039))
(1460) Project
Arguments: [product#13795898, plant#13795899, orderDateTime#13795900, productPlant#13795911, outboundUnit#13795928, roundedQuantitySum#13796154, minCalculationDateTime#13796153]
(1461) Project
Arguments: [product#13795898, plant#13795899, orderDateTime#13795900, productPlant#13795911, outboundUnit#13795928, roundedQuantitySum#13796154, minCalculationDateTime#13796153, CASE WHEN isnotnull(minCalculationDateTime#13796153) THEN minCalculationDateTime#13796153 ELSE orderDateTime#13795900 END AS stockDatetime#13796155]
(1462) Project
Arguments: [product#13795898, plant#13795899, orderDateTime#13795900, productPlant#13795911, outboundUnit#13795928, roundedQuantitySum#13796154, minCalculationDateTime#13796153, stockDatetime#13796155, CASE WHEN isnotnull(roundedQuantitySum#13796154) THEN array(roundedQuantitySum#13796154) ELSE array(0.0) END AS stockBatchQuantities#13796156]
(1463) Project
Arguments: [product#13795898, plant#13795899, orderDateTime#13795900, productPlant#13795911, outboundUnit#13795928, roundedQuantitySum#13796154, minCalculationDateTime#13796153, stockDatetime#13796155, stockBatchQuantities#13796156, array(2199-01-01 00:00:00) AS stockBatchShelfLifeEndDatetimes#13796157]
(1464) Project
Arguments: [product#13795898, plant#13795899, orderDateTime#13795900, productPlant#13795911, outboundUnit#13795928, roundedQuantitySum#13796154, stockDatetime#13796155, stockBatchQuantities#13796156, stockBatchShelfLifeEndDatetimes#13796157]
(1465) Project
Arguments: [product#13795898, plant#13795899, orderDateTime#13795900, productPlant#13795911, outboundUnit#13795928, stockDatetime#13796155, stockBatchQuantities#13796156, stockBatchShelfLifeEndDatetimes#13796157]
(1466) LogicalRelation
Arguments: parquet, [product#13796158, plant#13796159, demandChannel#13796160, demandStream#13796161, considerVariance#13796162, demandTimeBuckets#13796163, demandPointInTimeStart#13796164, demandPointInTimeEnd#13796165, demandPointInTime#13796166], false
(1467) Join
Arguments: LeftOuter, ((plant#13796159 <=> plant#13795899) AND (product#13796158 <=> product#13795898))
(1468) Project
Arguments: [product#13795898, plant#13795899, orderDateTime#13795900, productPlant#13795911, outboundUnit#13795928, stockDatetime#13796155, stockBatchQuantities#13796156, stockBatchShelfLifeEndDatetimes#13796157, product#13796158, plant#13796159, demandChannel#13796160, demandStream#13796161, considerVariance#13796162, demandTimeBuckets#13796163, demandPointInTimeStart#13796164, demandPointInTimeEnd#13796165, demandPointInTime#13796166, CASE WHEN isnotnull(product#13796158) THEN struct(demandChannel, demandChannel#13796160, demandStream, demandStream#13796161, considerVariance, considerVariance#13796162, demandTimeBuckets, demandTimeBuckets#13796163, demandPointInTimeStart, demandPointInTimeStart#13796164, demandPointInTimeEnd, demandPointInTimeEnd#13796165, demandPointInTime, demandPointInTime#13796166) 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#13796167]
(1469) Aggregate
Arguments: [product#13795898, plant#13795899, orderDateTime#13795900, productPlant#13795911, outboundUnit#13795928, stockDatetime#13796155, stockBatchQuantities#13796156, stockBatchShelfLifeEndDatetimes#13796157], [product#13795898, plant#13795899, orderDateTime#13795900, productPlant#13795911, outboundUnit#13795928, stockDatetime#13796155, stockBatchQuantities#13796156, stockBatchShelfLifeEndDatetimes#13796157, collect_list(rawDemands#13796167, 0, 0) AS rawDemands#13796168]
(1470) SubqueryAlias
Arguments: wl
(1471) LogicalRelation
Arguments: parquet, [systemId#13796169, internalUUID#13796170, id#13796171, displayId#13796172, name#13796173, category#13796174, companyCode#13796175, address#13796176, mainDistributionChain#13796177, mainPurchasingOrganization#13796178, validPurchasingOrganizations#13796179, productGroup#13796180], false
(1472) Repartition
Arguments: 37, true
(1473) Project
Arguments: [systemId#13796169, internalUUID#13796170, id#13796171, displayId#13796172, name#13796173, category#13796174, companyCode#13796175, address#13796176, mainDistributionChain#13796177, mainPurchasingOrganization#13796178, validPurchasingOrganizations#13796179, productGroup#13796180, address#13796176.timezone.code AS timezonecode#13796181]
(1474) Join
Arguments: LeftOuter, (plant#13795899 <=> internalUUID#13796170)
(1475) Project
Arguments: [product#13795898, plant#13795899, orderDateTime#13795900, productPlant#13795911, outboundUnit#13795928, stockDatetime#13796155, stockBatchQuantities#13796156, stockBatchShelfLifeEndDatetimes#13796157, rawDemands#13796168, systemId#13796169, internalUUID#13796170, id#13796171, displayId#13796172, name#13796173, category#13796174, companyCode#13796175, address#13796176, mainDistributionChain#13796177, mainPurchasingOrganization#13796178, validPurchasingOrganizations#13796179, productGroup#13796180, CASE WHEN isnotnull(timezonecode#13796181) THEN timezonecode#13796181 ELSE UTC END AS timezonecode#13796182]
(1476) Project
Arguments: [product#13795898, plant#13795899, orderDateTime#13795900, productPlant#13795911, outboundUnit#13795928, stockDatetime#13796155, stockBatchQuantities#13796156, stockBatchShelfLifeEndDatetimes#13796157, rawDemands#13796168, timezonecode#13796182]
(1477) DeserializeToObject
Arguments: createexternalrow(invoke(product#13795898.toString()), invoke(plant#13795899.toString()), static_invoke(DateTimeUtils.toJavaTimestamp(orderDateTime#13795900)), if (isnull(productPlant#13795911)) null else createexternalrow(invoke(productPlant#13795911.systemId.toString()), invoke(productPlant#13795911.internalUUID.toString()), if (isnull(productPlant#13795911.plant)) null else createexternalrow(invoke(productPlant#13795911.plant.internalRefUUID.toString()), invoke(productPlant#13795911.plant.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), if (isnull(productPlant#13795911.product)) null else createexternalrow(invoke(productPlant#13795911.product.internalRefUUID.toString()), invoke(productPlant#13795911.product.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(DateTimeUtils.toJavaDate(productPlant#13795911.blockedForReplenishmentStartingFrom)), if (isnull(productPlant#13795911.productionAspect)) null else createexternalrow(if (isnull(productPlant#13795911.productionAspect.productMovementPlants)) null else createexternalrow(if (isnull(productPlant#13795911.productionAspect.productMovementPlants.unitOfIssue)) null else createexternalrow(invoke(productPlant#13795911.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID.toString()), invoke(productPlant#13795911.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#13795911.productionAspect.productPlanningPlants)) null else createexternalrow(if (isnull(productPlant#13795911.productionAspect.productPlanningPlants.mrpType)) null else createexternalrow(invoke(productPlant#13795911.productionAspect.productPlanningPlants.mrpType.internalRefUUID.toString()), invoke(productPlant#13795911.productionAspect.productPlanningPlants.mrpType.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#13795911.productionAspect.productPlanningPlants.abcIndicator)) null else createexternalrow(invoke(productPlant#13795911.productionAspect.productPlanningPlants.abcIndicator.internalRefUUID.toString()), invoke(productPlant#13795911.productionAspect.productPlanningPlants.abcIndicator.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#13795911.productionAspect.productPlanningPlants.mrpController)) null else createexternalrow(invoke(productPlant#13795911.productionAspect.productPlanningPlants.mrpController.internalRefUUID.toString()), invoke(productPlant#13795911.productionAspect.productPlanningPlants.mrpController.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(java.lang.Double.valueOf(productPlant#13795911.productionAspect.productPlanningPlants.minimumLotSize)), if (isnull(productPlant#13795911.productionAspect.productPlanningPlants.logisticalRoundingProfile)) null else createexternalrow(invoke(productPlant#13795911.productionAspect.productPlanningPlants.logisticalRoundingProfile.internalRefUUID.toString()), invoke(productPlant#13795911.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#13795911.salesPlant)) null else createexternalrow(if (isnull(productPlant#13795911.salesPlant.loadingGroup)) null else createexternalrow(invoke(productPlant#13795911.salesPlant.loadingGroup.internalRefUUID.toString()), invoke(productPlant#13795911.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, 1728146), if (isnull(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 1728146))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 1728146).validFrom)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 1728146).validTo)), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 1728146).isListed)), StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true)), productPlant#13795911.listing, Some(class scala.collection.mutable.ArraySeq)), if (isnull(productPlant#13795911.sourceOfSupplyCategory)) null else createexternalrow(invoke(productPlant#13795911.sourceOfSupplyCategory.internalRefUUID.toString()), invoke(productPlant#13795911.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#13795928)), static_invoke(DateTimeUtils.toJavaTimestamp(stockDatetime#13796155)), mapobjects(lambdavariable(MapObject, DoubleType, true, 1728147), static_invoke(java.lang.Double.valueOf(cast(lambdavariable(MapObject, DoubleType, true, 1728147) as double))), stockBatchQuantities#13796156, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, false, 1728148), assertnotnull(static_invoke(DateTimeUtils.toJavaTimestamp(cast(lambdavariable(MapObject, TimestampType, false, 1728148) as timestamp)))), stockBatchShelfLifeEndDatetimes#13796157, 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, 1728149), 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, 1728149))) 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, 1728149).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, 1728149).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, 1728149).considerVariance)), mapobjects(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 1728150), if (isnull(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 1728150))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 1728150).demandStartDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 1728150).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 1728150).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, 1728149).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, 1728149).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, 1728149).demandPointInTimeEnd)), mapobjects(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 1728151), if (isnull(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 1728151))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 1728151).demandDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 1728151).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 1728151).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, 1728149).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#13796168, Some(class scala.collection.mutable.ArraySeq)), invoke(timezonecode#13796182.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#13793477: org.apache.spark.sql.Row
(1478) MapElements
Arguments: com.sap.s4hana.eureka.business.crporderquantitykpiservice.core.business.datasnapshot.DemandTransformatorImpl$$Lambda/0x00000008020466f8@2bc6baae, 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#13793482: 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#13796183, 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#13796184, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(2))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728136), assertnotnull(if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728137), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728137), DoubleType, ObjectType(class java.lang.Double)).doubleValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728138), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728138), DoubleType, ObjectType(class java.lang.Double)).doubleValue()), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728139), assertnotnull(static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728139), TimestampType, ObjectType(class java.sql.Timestamp))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728140), assertnotnull(static_invoke(UTF8String.fromString(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728140), StringType, ObjectType(class java.lang.String))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728141), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728141), IntegerType, ObjectType(class java.lang.Integer)).intValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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#13796185, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(3))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728142), assertnotnull(if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728143), assertnotnull(static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728143), TimestampType, ObjectType(class java.sql.Timestamp))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728144), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728144), DoubleType, ObjectType(class java.lang.Double)).doubleValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728145), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728145), DoubleType, ObjectType(class java.lang.Double)).doubleValue()), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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#13796186]
(1480) Join
Arguments: LeftOuter, ((plant#13796184 <=> plant#13795639) AND (product#13796183 <=> product#13795638))
(1481) Project
Arguments: [product#13795638, plant#13795639, orderDateTime#13795640, productPlant#13795651, outboundUnit#13795668, stockDatetime#13795895, stockBatchQuantities#13795896, stockBatchShelfLifeEndDatetimes#13795897, plant#13796184, dayBucketDemands#13796185, pointInTimeDemands#13796186]
(1482) Project
Arguments: [product#13795638, plant#13795639, orderDateTime#13795640, productPlant#13795651, outboundUnit#13795668, stockDatetime#13795895, stockBatchQuantities#13795896, stockBatchShelfLifeEndDatetimes#13795897, dayBucketDemands#13796185, pointInTimeDemands#13796186]
(1483) LogicalRelation
Arguments: parquet, [product#13796187, plant#13796188, orderDateTime#13796189, planningStartDateTime#13796190], false
(1484) RepartitionByExpression
Arguments: [product#13796187, plant#13796188], 37
(1485) Project
Arguments: [product#13796187, plant#13796188, orderDateTime#13796189]
(1486) LogicalRelation
Arguments: parquet, [systemId#13796191, internalUUID#13796192, plant#13796193, product#13796194, blockedForReplenishmentStartingFrom#13796195, productionAspect#13796196, salesPlant#13796197, listing#13796198, sourceOfSupplyCategory#13796199], false
(1487) Repartition
Arguments: 37, true
(1488) Project
Arguments: [systemId#13796191, internalUUID#13796192, plant#13796193, product#13796194, blockedForReplenishmentStartingFrom#13796195, productionAspect#13796196, salesPlant#13796197, listing#13796198, sourceOfSupplyCategory#13796199, struct(systemId, systemId#13796191, internalUUID, internalUUID#13796192, plant, plant#13796193, product, product#13796194, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#13796195, productionAspect, productionAspect#13796196, salesPlant, salesPlant#13796197, listing, listing#13796198, sourceOfSupplyCategory, sourceOfSupplyCategory#13796199) AS productPlant#13796200]
(1489) Project
Arguments: [productPlant#13796200]
(1490) Join
Arguments: LeftOuter, ((product#13796187 <=> productPlant#13796200.product.internalRefUUID) AND (plant#13796188 <=> productPlant#13796200.plant.internalRefUUID))
(1491) Project
Arguments: [product#13796187, plant#13796188, orderDateTime#13796189, productPlant#13796200]
(1492) LogicalRelation
Arguments: parquet, [systemId#13796201, internalUUID#13796202, id#13796203, displayId#13796204, name#13796205, baseUnitOfMeasure#13796206, unitOfMeasures#13796207, unitOfMeasureConversions#13796208, productionAspect#13796209, salesAspect#13796210, procurementAspect#13796211, productGroup#13796212], false
(1493) Repartition
Arguments: 37, true
(1494) Join
Arguments: LeftOuter, (product#13796187 = internalUUID#13796202)
(1495) Project
Arguments: [product#13796187, plant#13796188, orderDateTime#13796189, productPlant#13796200, systemId#13796201, internalUUID#13796202, id#13796203, displayId#13796204, name#13796205, baseUnitOfMeasure#13796206, unitOfMeasures#13796207, unitOfMeasureConversions#13796208, productionAspect#13796209, salesAspect#13796210, procurementAspect#13796211, productGroup#13796212, filter(unitOfMeasureConversions#13796208, lambdafunction((((lambda u#13792048.measurementUnit1.code = productPlant#13796200.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#13792048.measurementUnit1.internalRefUUID = productPlant#13796200.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#13792048.measurementUnit2.code = baseUnitOfMeasure#13796206.code) AND (lambda u#13792048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#13796206.internalRefUUID))), lambda u#13792048, false)) AS filteredUnitOfMeasureConversions#13796213]
(1496) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13796213.quantityNumerator), true, [quantityNumerator#13796214]
(1497) Project
Arguments: [product#13796187, plant#13796188, orderDateTime#13796189, productPlant#13796200, systemId#13796201, internalUUID#13796202, id#13796203, displayId#13796204, name#13796205, baseUnitOfMeasure#13796206, unitOfMeasures#13796207, unitOfMeasureConversions#13796208, productionAspect#13796209, salesAspect#13796210, procurementAspect#13796211, productGroup#13796212, filteredUnitOfMeasureConversions#13796213, quantityNumerator#13796214]
(1498) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13796213.quantityDenominator), true, [quantityDenominator#13796215]
(1499) Project
Arguments: [product#13796187, plant#13796188, orderDateTime#13796189, productPlant#13796200, systemId#13796201, internalUUID#13796202, id#13796203, displayId#13796204, name#13796205, baseUnitOfMeasure#13796206, unitOfMeasures#13796207, unitOfMeasureConversions#13796208, productionAspect#13796209, salesAspect#13796210, procurementAspect#13796211, productGroup#13796212, filteredUnitOfMeasureConversions#13796213, quantityNumerator#13796214, quantityDenominator#13796215]
(1500) Project
Arguments: [product#13796187, plant#13796188, orderDateTime#13796189, productPlant#13796200, systemId#13796201, internalUUID#13796202, id#13796203, displayId#13796204, name#13796205, baseUnitOfMeasure#13796206, unitOfMeasures#13796207, unitOfMeasureConversions#13796208, productionAspect#13796209, salesAspect#13796210, procurementAspect#13796211, productGroup#13796212, filteredUnitOfMeasureConversions#13796213, quantityNumerator#13796214, quantityDenominator#13796215, (cast(quantityNumerator#13796214 as double) / cast(quantityDenominator#13796215 as double)) AS outboundUnit#13796216]
(1501) Project
Arguments: [product#13796187, plant#13796188, orderDateTime#13796189, productPlant#13796200, systemId#13796201, internalUUID#13796202, id#13796203, displayId#13796204, name#13796205, baseUnitOfMeasure#13796206, unitOfMeasures#13796207, unitOfMeasureConversions#13796208, productionAspect#13796209, salesAspect#13796210, procurementAspect#13796211, productGroup#13796212, filteredUnitOfMeasureConversions#13796213, quantityNumerator#13796214, quantityDenominator#13796215, CASE WHEN (isnull(outboundUnit#13796216) OR (outboundUnit#13796216 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#13796216 END AS outboundUnit#13796217]
(1502) Project
Arguments: [product#13796187, plant#13796188, orderDateTime#13796189, productPlant#13796200, outboundUnit#13796217]
(1503) LogicalRelation
Arguments: parquet, [systemId#13796218, internalUUID#13796219, product#13796220, plant#13796221, calculationDateTime#13796222, stockQuantities#13796223], false
(1504) Repartition
Arguments: 37, true
(1505) LogicalRelation
Arguments: parquet, [marketUnit#13796224, description#13796225, articleHierarchy#13796226, defaultCurrency#13796227, responsibilities#13796228, replenishmentTypes#13796229, distributionCenters#13796230, assignedArticleHierarchyNodes#13796231, minOrderQtySetting#13796232, listingCheck#13796233, odsSelection#13796234, demandProfiles#13796235, constraintProfiles#13796236, optimizationProfiles#13796237, orderGroupSplitProfiles#13796238, supplierMinimumProfiles#13796239, multipleRestrictionProfiles#13796240, preferredUomSource#13796241, handlingOfUnfulfilledDemands#13796242, negligibleQuantitiesThreshold#13796243, eventtype#13796244, minOrderQtySettingInternal#13796245], false
(1506) Repartition
Arguments: 37, true
(1507) Filter
Arguments: (marketUnit#13796224 <=> AUTO_ALL_ProdLoc)
(1508) Project
Arguments: [marketUnit#13796224, description#13796225, articleHierarchy#13796226, defaultCurrency#13796227, responsibilities#13796228, replenishmentTypes#13796229, distributionCenters#13796230, assignedArticleHierarchyNodes#13796231, minOrderQtySetting#13796232, listingCheck#13796233, odsSelection#13796234, demandProfiles#13796235, constraintProfiles#13796236, optimizationProfiles#13796237, orderGroupSplitProfiles#13796238, supplierMinimumProfiles#13796239, multipleRestrictionProfiles#13796240, preferredUomSource#13796241, handlingOfUnfulfilledDemands#13796242, negligibleQuantitiesThreshold#13796243, eventtype#13796244, minOrderQtySettingInternal#13796245]
(1509) Project
Arguments: [distributionCenters#13796230]
(1510) Generate
Arguments: explode(distributionCenters#13796230), false, [distributionCenters#13796246]
(1511) Project
Arguments: [distributionCenters#13796246]
(1512) Generate
Arguments: explode(distributionCenters#13796246.storageLocations), false, [storageLocations#13796247]
(1513) Project
Arguments: [distributionCenters#13796246.id AS plantId#13796248, distributionCenters#13796246.internalRefUUID AS plantUuid#13796249, storageLocations#13796247]
(1514) Project
Arguments: [plantId#13796248, plantUuid#13796249, storageLocations#13796247.id AS storageLocId#13796250, storageLocations#13796247.internalRefUUID AS storageLocUuid#13796251]
(1515) LogicalRelation
Arguments: parquet, [product#13796252, plant#13796253, orderDateTime#13796254, planningStartDateTime#13796255], false
(1516) RepartitionByExpression
Arguments: [product#13796252, plant#13796253], 37
(1517) Project
Arguments: [product#13796252, plant#13796253, orderDateTime#13796254]
(1518) LogicalRelation
Arguments: parquet, [systemId#13796256, internalUUID#13796257, plant#13796258, product#13796259, blockedForReplenishmentStartingFrom#13796260, productionAspect#13796261, salesPlant#13796262, listing#13796263, sourceOfSupplyCategory#13796264], false
(1519) Repartition
Arguments: 37, true
(1520) Project
Arguments: [systemId#13796256, internalUUID#13796257, plant#13796258, product#13796259, blockedForReplenishmentStartingFrom#13796260, productionAspect#13796261, salesPlant#13796262, listing#13796263, sourceOfSupplyCategory#13796264, struct(systemId, systemId#13796256, internalUUID, internalUUID#13796257, plant, plant#13796258, product, product#13796259, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#13796260, productionAspect, productionAspect#13796261, salesPlant, salesPlant#13796262, listing, listing#13796263, sourceOfSupplyCategory, sourceOfSupplyCategory#13796264) AS productPlant#13796265]
(1521) Project
Arguments: [productPlant#13796265]
(1522) Join
Arguments: LeftOuter, ((product#13796252 <=> productPlant#13796265.product.internalRefUUID) AND (plant#13796253 <=> productPlant#13796265.plant.internalRefUUID))
(1523) Project
Arguments: [product#13796252, plant#13796253, orderDateTime#13796254, productPlant#13796265]
(1524) LogicalRelation
Arguments: parquet, [systemId#13796266, internalUUID#13796267, id#13796268, displayId#13796269, name#13796270, baseUnitOfMeasure#13796271, unitOfMeasures#13796272, unitOfMeasureConversions#13796273, productionAspect#13796274, salesAspect#13796275, procurementAspect#13796276, productGroup#13796277], false
(1525) Repartition
Arguments: 37, true
(1526) Join
Arguments: LeftOuter, (product#13796252 = internalUUID#13796267)
(1527) Project
Arguments: [product#13796252, plant#13796253, orderDateTime#13796254, productPlant#13796265, systemId#13796266, internalUUID#13796267, id#13796268, displayId#13796269, name#13796270, baseUnitOfMeasure#13796271, unitOfMeasures#13796272, unitOfMeasureConversions#13796273, productionAspect#13796274, salesAspect#13796275, procurementAspect#13796276, productGroup#13796277, filter(unitOfMeasureConversions#13796273, lambdafunction((((lambda u#13792048.measurementUnit1.code = productPlant#13796265.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#13792048.measurementUnit1.internalRefUUID = productPlant#13796265.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#13792048.measurementUnit2.code = baseUnitOfMeasure#13796271.code) AND (lambda u#13792048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#13796271.internalRefUUID))), lambda u#13792048, false)) AS filteredUnitOfMeasureConversions#13796278]
(1528) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13796278.quantityNumerator), true, [quantityNumerator#13796279]
(1529) Project
Arguments: [product#13796252, plant#13796253, orderDateTime#13796254, productPlant#13796265, systemId#13796266, internalUUID#13796267, id#13796268, displayId#13796269, name#13796270, baseUnitOfMeasure#13796271, unitOfMeasures#13796272, unitOfMeasureConversions#13796273, productionAspect#13796274, salesAspect#13796275, procurementAspect#13796276, productGroup#13796277, filteredUnitOfMeasureConversions#13796278, quantityNumerator#13796279]
(1530) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13796278.quantityDenominator), true, [quantityDenominator#13796280]
(1531) Project
Arguments: [product#13796252, plant#13796253, orderDateTime#13796254, productPlant#13796265, systemId#13796266, internalUUID#13796267, id#13796268, displayId#13796269, name#13796270, baseUnitOfMeasure#13796271, unitOfMeasures#13796272, unitOfMeasureConversions#13796273, productionAspect#13796274, salesAspect#13796275, procurementAspect#13796276, productGroup#13796277, filteredUnitOfMeasureConversions#13796278, quantityNumerator#13796279, quantityDenominator#13796280]
(1532) Project
Arguments: [product#13796252, plant#13796253, orderDateTime#13796254, productPlant#13796265, systemId#13796266, internalUUID#13796267, id#13796268, displayId#13796269, name#13796270, baseUnitOfMeasure#13796271, unitOfMeasures#13796272, unitOfMeasureConversions#13796273, productionAspect#13796274, salesAspect#13796275, procurementAspect#13796276, productGroup#13796277, filteredUnitOfMeasureConversions#13796278, quantityNumerator#13796279, quantityDenominator#13796280, (cast(quantityNumerator#13796279 as double) / cast(quantityDenominator#13796280 as double)) AS outboundUnit#13796281]
(1533) Project
Arguments: [product#13796252, plant#13796253, orderDateTime#13796254, productPlant#13796265, systemId#13796266, internalUUID#13796267, id#13796268, displayId#13796269, name#13796270, baseUnitOfMeasure#13796271, unitOfMeasures#13796272, unitOfMeasureConversions#13796273, productionAspect#13796274, salesAspect#13796275, procurementAspect#13796276, productGroup#13796277, filteredUnitOfMeasureConversions#13796278, quantityNumerator#13796279, quantityDenominator#13796280, CASE WHEN (isnull(outboundUnit#13796281) OR (outboundUnit#13796281 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#13796281 END AS outboundUnit#13796282]
(1534) Project
Arguments: [product#13796252, plant#13796253, orderDateTime#13796254, productPlant#13796265, outboundUnit#13796282]
(1535) Project
Arguments: [plant#13796253]
(1536) Deduplicate
Arguments: [plant#13796253]
(1537) Join
Arguments: Inner, (plantUuid#13796249 = plant#13796253)
(1538) Project
Arguments: [plantId#13796248, plantUuid#13796249, storageLocId#13796250, storageLocUuid#13796251]
(1539) Join
Arguments: Inner, (plant#13796221.internalRefUUID <=> plantUuid#13796249)
(1540) Generate
Arguments: explode(filter(stockQuantities#13796223, lambdafunction(((lambda x#13792128.storageLocation.internalRefUuid = storageLocUuid#13796251) AND (lambda x#13792128.storageLocation.Id = storageLocId#13796250)), lambda x#13792128, false))), false, [stockQuantity#13796283]
(1541) Project
Arguments: [systemId#13796218, internalUUID#13796219, product#13796220, plant#13796221, calculationDateTime#13796222, stockQuantities#13796223, plantId#13796248, plantUuid#13796249, storageLocId#13796250, storageLocUuid#13796251, stockQuantity#13796283]
(1542) Aggregate
Arguments: [plantUuid#13796249, internalUUID#13796219, plant#13796221, product#13796220, systemId#13796218], [plantUuid#13796249, internalUUID#13796219, plant#13796221, product#13796220, systemId#13796218, first(calculationDateTime#13796222, false) AS calculationDateTime#13796284, collect_list(stockQuantity#13796283, 0, 0) AS stockQuantities#13796285]
(1543) Project
Arguments: [systemId#13796218, internalUUID#13796219, product#13796220, plant#13796221, calculationDateTime#13796284, stockQuantities#13796285]
(1544) Generate
Arguments: explode(stockQuantities#13796285), false, [stockQuantity#13796286]
(1545) Project
Arguments: [systemId#13796218, internalUUID#13796219, product#13796220, plant#13796221, calculationDateTime#13796284, stockQuantities#13796285, stockQuantity#13796286]
(1546) Project
Arguments: [plant#13796221.id AS plant#13796287, plant#13796221.internalRefUUID AS plantUuid#13796288, product#13796220.id AS product#13796289, product#13796220.internalRefUUID AS productUuid#13796290, calculationDateTime#13796284, stockQuantity#13796286.storagelocation.id AS storageLocId#13796291, stockQuantity#13796286.storagelocation.internalRefUUID AS storageLocUuid#13796292, stockQuantity#13796286.quantity.measure AS quantity#13796293, stockQuantity#13796286.specialStockIndicator.code AS specialStockIndicator#13796294, stockQuantity#13796286.stockType.code AS stockType#13796295]
(1547) Filter
Arguments: ((specialStockIndicator#13796294 = ) AND (stockType#13796295 = 01))
(1548) LogicalRelation
Arguments: parquet, [product#13796296, plant#13796297, orderDateTime#13796298, planningStartDateTime#13796299], false
(1549) RepartitionByExpression
Arguments: [product#13796296, plant#13796297], 37
(1550) Project
Arguments: [product#13796296, plant#13796297, orderDateTime#13796298]
(1551) LogicalRelation
Arguments: parquet, [systemId#13796300, internalUUID#13796301, plant#13796302, product#13796303, blockedForReplenishmentStartingFrom#13796304, productionAspect#13796305, salesPlant#13796306, listing#13796307, sourceOfSupplyCategory#13796308], false
(1552) Repartition
Arguments: 37, true
(1553) Project
Arguments: [systemId#13796300, internalUUID#13796301, plant#13796302, product#13796303, blockedForReplenishmentStartingFrom#13796304, productionAspect#13796305, salesPlant#13796306, listing#13796307, sourceOfSupplyCategory#13796308, struct(systemId, systemId#13796300, internalUUID, internalUUID#13796301, plant, plant#13796302, product, product#13796303, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#13796304, productionAspect, productionAspect#13796305, salesPlant, salesPlant#13796306, listing, listing#13796307, sourceOfSupplyCategory, sourceOfSupplyCategory#13796308) AS productPlant#13796309]
(1554) Project
Arguments: [productPlant#13796309]
(1555) Join
Arguments: LeftOuter, ((product#13796296 <=> productPlant#13796309.product.internalRefUUID) AND (plant#13796297 <=> productPlant#13796309.plant.internalRefUUID))
(1556) Project
Arguments: [product#13796296, plant#13796297, orderDateTime#13796298, productPlant#13796309]
(1557) LogicalRelation
Arguments: parquet, [systemId#13796310, internalUUID#13796311, id#13796312, displayId#13796313, name#13796314, baseUnitOfMeasure#13796315, unitOfMeasures#13796316, unitOfMeasureConversions#13796317, productionAspect#13796318, salesAspect#13796319, procurementAspect#13796320, productGroup#13796321], false
(1558) Repartition
Arguments: 37, true
(1559) Join
Arguments: LeftOuter, (product#13796296 = internalUUID#13796311)
(1560) Project
Arguments: [product#13796296, plant#13796297, orderDateTime#13796298, productPlant#13796309, systemId#13796310, internalUUID#13796311, id#13796312, displayId#13796313, name#13796314, baseUnitOfMeasure#13796315, unitOfMeasures#13796316, unitOfMeasureConversions#13796317, productionAspect#13796318, salesAspect#13796319, procurementAspect#13796320, productGroup#13796321, filter(unitOfMeasureConversions#13796317, lambdafunction((((lambda u#13792048.measurementUnit1.code = productPlant#13796309.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#13792048.measurementUnit1.internalRefUUID = productPlant#13796309.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#13792048.measurementUnit2.code = baseUnitOfMeasure#13796315.code) AND (lambda u#13792048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#13796315.internalRefUUID))), lambda u#13792048, false)) AS filteredUnitOfMeasureConversions#13796322]
(1561) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13796322.quantityNumerator), true, [quantityNumerator#13796323]
(1562) Project
Arguments: [product#13796296, plant#13796297, orderDateTime#13796298, productPlant#13796309, systemId#13796310, internalUUID#13796311, id#13796312, displayId#13796313, name#13796314, baseUnitOfMeasure#13796315, unitOfMeasures#13796316, unitOfMeasureConversions#13796317, productionAspect#13796318, salesAspect#13796319, procurementAspect#13796320, productGroup#13796321, filteredUnitOfMeasureConversions#13796322, quantityNumerator#13796323]
(1563) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13796322.quantityDenominator), true, [quantityDenominator#13796324]
(1564) Project
Arguments: [product#13796296, plant#13796297, orderDateTime#13796298, productPlant#13796309, systemId#13796310, internalUUID#13796311, id#13796312, displayId#13796313, name#13796314, baseUnitOfMeasure#13796315, unitOfMeasures#13796316, unitOfMeasureConversions#13796317, productionAspect#13796318, salesAspect#13796319, procurementAspect#13796320, productGroup#13796321, filteredUnitOfMeasureConversions#13796322, quantityNumerator#13796323, quantityDenominator#13796324]
(1565) Project
Arguments: [product#13796296, plant#13796297, orderDateTime#13796298, productPlant#13796309, systemId#13796310, internalUUID#13796311, id#13796312, displayId#13796313, name#13796314, baseUnitOfMeasure#13796315, unitOfMeasures#13796316, unitOfMeasureConversions#13796317, productionAspect#13796318, salesAspect#13796319, procurementAspect#13796320, productGroup#13796321, filteredUnitOfMeasureConversions#13796322, quantityNumerator#13796323, quantityDenominator#13796324, (cast(quantityNumerator#13796323 as double) / cast(quantityDenominator#13796324 as double)) AS outboundUnit#13796325]
(1566) Project
Arguments: [product#13796296, plant#13796297, orderDateTime#13796298, productPlant#13796309, systemId#13796310, internalUUID#13796311, id#13796312, displayId#13796313, name#13796314, baseUnitOfMeasure#13796315, unitOfMeasures#13796316, unitOfMeasureConversions#13796317, productionAspect#13796318, salesAspect#13796319, procurementAspect#13796320, productGroup#13796321, filteredUnitOfMeasureConversions#13796322, quantityNumerator#13796323, quantityDenominator#13796324, CASE WHEN (isnull(outboundUnit#13796325) OR (outboundUnit#13796325 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#13796325 END AS outboundUnit#13796326]
(1567) Project
Arguments: [product#13796296, plant#13796297, orderDateTime#13796298, productPlant#13796309, outboundUnit#13796326]
(1568) Join
Arguments: Inner, ((plantUuid#13796288 = plant#13796297) AND (productUuid#13796290 = product#13796296))
(1569) Filter
Arguments: (calculationDateTime#13796284 <= orderDateTime#13796298)
(1570) Project
Arguments: [plantUuid#13796288 AS plant#13796327, productUuid#13796290 AS product#13796328, storageLocId#13796291, calculationDateTime#13796284, quantity#13796293]
(1571) LogicalRelation
Arguments: parquet, [systemId#13796329, internalUUID#13796330, product#13796331, plant#13796332, calculationDateTime#13796333, stockQuantities#13796334], false
(1572) Repartition
Arguments: 37, true
(1573) LogicalRelation
Arguments: parquet, [marketUnit#13796335, description#13796336, articleHierarchy#13796337, defaultCurrency#13796338, responsibilities#13796339, replenishmentTypes#13796340, distributionCenters#13796341, assignedArticleHierarchyNodes#13796342, minOrderQtySetting#13796343, listingCheck#13796344, odsSelection#13796345, demandProfiles#13796346, constraintProfiles#13796347, optimizationProfiles#13796348, orderGroupSplitProfiles#13796349, supplierMinimumProfiles#13796350, multipleRestrictionProfiles#13796351, preferredUomSource#13796352, handlingOfUnfulfilledDemands#13796353, negligibleQuantitiesThreshold#13796354, eventtype#13796355, minOrderQtySettingInternal#13796356], false
(1574) Repartition
Arguments: 37, true
(1575) Filter
Arguments: (marketUnit#13796335 <=> AUTO_ALL_ProdLoc)
(1576) Project
Arguments: [marketUnit#13796335, description#13796336, articleHierarchy#13796337, defaultCurrency#13796338, responsibilities#13796339, replenishmentTypes#13796340, distributionCenters#13796341, assignedArticleHierarchyNodes#13796342, minOrderQtySetting#13796343, listingCheck#13796344, odsSelection#13796345, demandProfiles#13796346, constraintProfiles#13796347, optimizationProfiles#13796348, orderGroupSplitProfiles#13796349, supplierMinimumProfiles#13796350, multipleRestrictionProfiles#13796351, preferredUomSource#13796352, handlingOfUnfulfilledDemands#13796353, negligibleQuantitiesThreshold#13796354, eventtype#13796355, minOrderQtySettingInternal#13796356]
(1577) Project
Arguments: [distributionCenters#13796341]
(1578) Generate
Arguments: explode(distributionCenters#13796341), false, [distributionCenters#13796357]
(1579) Project
Arguments: [distributionCenters#13796357]
(1580) Generate
Arguments: explode(distributionCenters#13796357.storageLocations), false, [storageLocations#13796358]
(1581) Project
Arguments: [distributionCenters#13796357.id AS plantId#13796359, distributionCenters#13796357.internalRefUUID AS plantUuid#13796360, storageLocations#13796358]
(1582) Project
Arguments: [plantId#13796359, plantUuid#13796360, storageLocations#13796358.id AS storageLocId#13796361, storageLocations#13796358.internalRefUUID AS storageLocUuid#13796362]
(1583) LogicalRelation
Arguments: parquet, [product#13796363, plant#13796364, orderDateTime#13796365, planningStartDateTime#13796366], false
(1584) RepartitionByExpression
Arguments: [product#13796363, plant#13796364], 37
(1585) Project
Arguments: [product#13796363, plant#13796364, orderDateTime#13796365]
(1586) LogicalRelation
Arguments: parquet, [systemId#13796367, internalUUID#13796368, plant#13796369, product#13796370, blockedForReplenishmentStartingFrom#13796371, productionAspect#13796372, salesPlant#13796373, listing#13796374, sourceOfSupplyCategory#13796375], false
(1587) Repartition
Arguments: 37, true
(1588) Project
Arguments: [systemId#13796367, internalUUID#13796368, plant#13796369, product#13796370, blockedForReplenishmentStartingFrom#13796371, productionAspect#13796372, salesPlant#13796373, listing#13796374, sourceOfSupplyCategory#13796375, struct(systemId, systemId#13796367, internalUUID, internalUUID#13796368, plant, plant#13796369, product, product#13796370, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#13796371, productionAspect, productionAspect#13796372, salesPlant, salesPlant#13796373, listing, listing#13796374, sourceOfSupplyCategory, sourceOfSupplyCategory#13796375) AS productPlant#13796376]
(1589) Project
Arguments: [productPlant#13796376]
(1590) Join
Arguments: LeftOuter, ((product#13796363 <=> productPlant#13796376.product.internalRefUUID) AND (plant#13796364 <=> productPlant#13796376.plant.internalRefUUID))
(1591) Project
Arguments: [product#13796363, plant#13796364, orderDateTime#13796365, productPlant#13796376]
(1592) LogicalRelation
Arguments: parquet, [systemId#13796377, internalUUID#13796378, id#13796379, displayId#13796380, name#13796381, baseUnitOfMeasure#13796382, unitOfMeasures#13796383, unitOfMeasureConversions#13796384, productionAspect#13796385, salesAspect#13796386, procurementAspect#13796387, productGroup#13796388], false
(1593) Repartition
Arguments: 37, true
(1594) Join
Arguments: LeftOuter, (product#13796363 = internalUUID#13796378)
(1595) Project
Arguments: [product#13796363, plant#13796364, orderDateTime#13796365, productPlant#13796376, systemId#13796377, internalUUID#13796378, id#13796379, displayId#13796380, name#13796381, baseUnitOfMeasure#13796382, unitOfMeasures#13796383, unitOfMeasureConversions#13796384, productionAspect#13796385, salesAspect#13796386, procurementAspect#13796387, productGroup#13796388, filter(unitOfMeasureConversions#13796384, lambdafunction((((lambda u#13792048.measurementUnit1.code = productPlant#13796376.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#13792048.measurementUnit1.internalRefUUID = productPlant#13796376.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#13792048.measurementUnit2.code = baseUnitOfMeasure#13796382.code) AND (lambda u#13792048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#13796382.internalRefUUID))), lambda u#13792048, false)) AS filteredUnitOfMeasureConversions#13796389]
(1596) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13796389.quantityNumerator), true, [quantityNumerator#13796390]
(1597) Project
Arguments: [product#13796363, plant#13796364, orderDateTime#13796365, productPlant#13796376, systemId#13796377, internalUUID#13796378, id#13796379, displayId#13796380, name#13796381, baseUnitOfMeasure#13796382, unitOfMeasures#13796383, unitOfMeasureConversions#13796384, productionAspect#13796385, salesAspect#13796386, procurementAspect#13796387, productGroup#13796388, filteredUnitOfMeasureConversions#13796389, quantityNumerator#13796390]
(1598) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13796389.quantityDenominator), true, [quantityDenominator#13796391]
(1599) Project
Arguments: [product#13796363, plant#13796364, orderDateTime#13796365, productPlant#13796376, systemId#13796377, internalUUID#13796378, id#13796379, displayId#13796380, name#13796381, baseUnitOfMeasure#13796382, unitOfMeasures#13796383, unitOfMeasureConversions#13796384, productionAspect#13796385, salesAspect#13796386, procurementAspect#13796387, productGroup#13796388, filteredUnitOfMeasureConversions#13796389, quantityNumerator#13796390, quantityDenominator#13796391]
(1600) Project
Arguments: [product#13796363, plant#13796364, orderDateTime#13796365, productPlant#13796376, systemId#13796377, internalUUID#13796378, id#13796379, displayId#13796380, name#13796381, baseUnitOfMeasure#13796382, unitOfMeasures#13796383, unitOfMeasureConversions#13796384, productionAspect#13796385, salesAspect#13796386, procurementAspect#13796387, productGroup#13796388, filteredUnitOfMeasureConversions#13796389, quantityNumerator#13796390, quantityDenominator#13796391, (cast(quantityNumerator#13796390 as double) / cast(quantityDenominator#13796391 as double)) AS outboundUnit#13796392]
(1601) Project
Arguments: [product#13796363, plant#13796364, orderDateTime#13796365, productPlant#13796376, systemId#13796377, internalUUID#13796378, id#13796379, displayId#13796380, name#13796381, baseUnitOfMeasure#13796382, unitOfMeasures#13796383, unitOfMeasureConversions#13796384, productionAspect#13796385, salesAspect#13796386, procurementAspect#13796387, productGroup#13796388, filteredUnitOfMeasureConversions#13796389, quantityNumerator#13796390, quantityDenominator#13796391, CASE WHEN (isnull(outboundUnit#13796392) OR (outboundUnit#13796392 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#13796392 END AS outboundUnit#13796393]
(1602) Project
Arguments: [product#13796363, plant#13796364, orderDateTime#13796365, productPlant#13796376, outboundUnit#13796393]
(1603) Project
Arguments: [plant#13796364]
(1604) Deduplicate
Arguments: [plant#13796364]
(1605) Join
Arguments: Inner, (plantUuid#13796360 = plant#13796364)
(1606) Project
Arguments: [plantId#13796359, plantUuid#13796360, storageLocId#13796361, storageLocUuid#13796362]
(1607) Join
Arguments: Inner, (plant#13796332.internalRefUUID <=> plantUuid#13796360)
(1608) Generate
Arguments: explode(filter(stockQuantities#13796334, lambdafunction(((lambda x#13792128.storageLocation.internalRefUuid = storageLocUuid#13796362) AND (lambda x#13792128.storageLocation.Id = storageLocId#13796361)), lambda x#13792128, false))), false, [stockQuantity#13796394]
(1609) Project
Arguments: [systemId#13796329, internalUUID#13796330, product#13796331, plant#13796332, calculationDateTime#13796333, stockQuantities#13796334, plantId#13796359, plantUuid#13796360, storageLocId#13796361, storageLocUuid#13796362, stockQuantity#13796394]
(1610) Aggregate
Arguments: [plantUuid#13796360, internalUUID#13796330, plant#13796332, product#13796331, systemId#13796329], [plantUuid#13796360, internalUUID#13796330, plant#13796332, product#13796331, systemId#13796329, first(calculationDateTime#13796333, false) AS calculationDateTime#13796395, collect_list(stockQuantity#13796394, 0, 0) AS stockQuantities#13796396]
(1611) Project
Arguments: [systemId#13796329, internalUUID#13796330, product#13796331, plant#13796332, calculationDateTime#13796395, stockQuantities#13796396]
(1612) Generate
Arguments: explode(stockQuantities#13796396), false, [stockQuantity#13796397]
(1613) Project
Arguments: [systemId#13796329, internalUUID#13796330, product#13796331, plant#13796332, calculationDateTime#13796395, stockQuantities#13796396, stockQuantity#13796397]
(1614) Project
Arguments: [plant#13796332.id AS plant#13796398, plant#13796332.internalRefUUID AS plantUuid#13796399, product#13796331.id AS product#13796400, product#13796331.internalRefUUID AS productUuid#13796401, calculationDateTime#13796395, stockQuantity#13796397.storagelocation.id AS storageLocId#13796402, stockQuantity#13796397.storagelocation.internalRefUUID AS storageLocUuid#13796403, stockQuantity#13796397.quantity.measure AS quantity#13796404, stockQuantity#13796397.specialStockIndicator.code AS specialStockIndicator#13796405, stockQuantity#13796397.stockType.code AS stockType#13796406]
(1615) Filter
Arguments: ((specialStockIndicator#13796405 = ) AND (stockType#13796406 = 01))
(1616) LogicalRelation
Arguments: parquet, [product#13796407, plant#13796408, orderDateTime#13796409, planningStartDateTime#13796410], false
(1617) RepartitionByExpression
Arguments: [product#13796407, plant#13796408], 37
(1618) Project
Arguments: [product#13796407, plant#13796408, orderDateTime#13796409]
(1619) LogicalRelation
Arguments: parquet, [systemId#13796411, internalUUID#13796412, plant#13796413, product#13796414, blockedForReplenishmentStartingFrom#13796415, productionAspect#13796416, salesPlant#13796417, listing#13796418, sourceOfSupplyCategory#13796419], false
(1620) Repartition
Arguments: 37, true
(1621) Project
Arguments: [systemId#13796411, internalUUID#13796412, plant#13796413, product#13796414, blockedForReplenishmentStartingFrom#13796415, productionAspect#13796416, salesPlant#13796417, listing#13796418, sourceOfSupplyCategory#13796419, struct(systemId, systemId#13796411, internalUUID, internalUUID#13796412, plant, plant#13796413, product, product#13796414, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#13796415, productionAspect, productionAspect#13796416, salesPlant, salesPlant#13796417, listing, listing#13796418, sourceOfSupplyCategory, sourceOfSupplyCategory#13796419) AS productPlant#13796420]
(1622) Project
Arguments: [productPlant#13796420]
(1623) Join
Arguments: LeftOuter, ((product#13796407 <=> productPlant#13796420.product.internalRefUUID) AND (plant#13796408 <=> productPlant#13796420.plant.internalRefUUID))
(1624) Project
Arguments: [product#13796407, plant#13796408, orderDateTime#13796409, productPlant#13796420]
(1625) LogicalRelation
Arguments: parquet, [systemId#13796421, internalUUID#13796422, id#13796423, displayId#13796424, name#13796425, baseUnitOfMeasure#13796426, unitOfMeasures#13796427, unitOfMeasureConversions#13796428, productionAspect#13796429, salesAspect#13796430, procurementAspect#13796431, productGroup#13796432], false
(1626) Repartition
Arguments: 37, true
(1627) Join
Arguments: LeftOuter, (product#13796407 = internalUUID#13796422)
(1628) Project
Arguments: [product#13796407, plant#13796408, orderDateTime#13796409, productPlant#13796420, systemId#13796421, internalUUID#13796422, id#13796423, displayId#13796424, name#13796425, baseUnitOfMeasure#13796426, unitOfMeasures#13796427, unitOfMeasureConversions#13796428, productionAspect#13796429, salesAspect#13796430, procurementAspect#13796431, productGroup#13796432, filter(unitOfMeasureConversions#13796428, lambdafunction((((lambda u#13792048.measurementUnit1.code = productPlant#13796420.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#13792048.measurementUnit1.internalRefUUID = productPlant#13796420.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#13792048.measurementUnit2.code = baseUnitOfMeasure#13796426.code) AND (lambda u#13792048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#13796426.internalRefUUID))), lambda u#13792048, false)) AS filteredUnitOfMeasureConversions#13796433]
(1629) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13796433.quantityNumerator), true, [quantityNumerator#13796434]
(1630) Project
Arguments: [product#13796407, plant#13796408, orderDateTime#13796409, productPlant#13796420, systemId#13796421, internalUUID#13796422, id#13796423, displayId#13796424, name#13796425, baseUnitOfMeasure#13796426, unitOfMeasures#13796427, unitOfMeasureConversions#13796428, productionAspect#13796429, salesAspect#13796430, procurementAspect#13796431, productGroup#13796432, filteredUnitOfMeasureConversions#13796433, quantityNumerator#13796434]
(1631) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13796433.quantityDenominator), true, [quantityDenominator#13796435]
(1632) Project
Arguments: [product#13796407, plant#13796408, orderDateTime#13796409, productPlant#13796420, systemId#13796421, internalUUID#13796422, id#13796423, displayId#13796424, name#13796425, baseUnitOfMeasure#13796426, unitOfMeasures#13796427, unitOfMeasureConversions#13796428, productionAspect#13796429, salesAspect#13796430, procurementAspect#13796431, productGroup#13796432, filteredUnitOfMeasureConversions#13796433, quantityNumerator#13796434, quantityDenominator#13796435]
(1633) Project
Arguments: [product#13796407, plant#13796408, orderDateTime#13796409, productPlant#13796420, systemId#13796421, internalUUID#13796422, id#13796423, displayId#13796424, name#13796425, baseUnitOfMeasure#13796426, unitOfMeasures#13796427, unitOfMeasureConversions#13796428, productionAspect#13796429, salesAspect#13796430, procurementAspect#13796431, productGroup#13796432, filteredUnitOfMeasureConversions#13796433, quantityNumerator#13796434, quantityDenominator#13796435, (cast(quantityNumerator#13796434 as double) / cast(quantityDenominator#13796435 as double)) AS outboundUnit#13796436]
(1634) Project
Arguments: [product#13796407, plant#13796408, orderDateTime#13796409, productPlant#13796420, systemId#13796421, internalUUID#13796422, id#13796423, displayId#13796424, name#13796425, baseUnitOfMeasure#13796426, unitOfMeasures#13796427, unitOfMeasureConversions#13796428, productionAspect#13796429, salesAspect#13796430, procurementAspect#13796431, productGroup#13796432, filteredUnitOfMeasureConversions#13796433, quantityNumerator#13796434, quantityDenominator#13796435, CASE WHEN (isnull(outboundUnit#13796436) OR (outboundUnit#13796436 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#13796436 END AS outboundUnit#13796437]
(1635) Project
Arguments: [product#13796407, plant#13796408, orderDateTime#13796409, productPlant#13796420, outboundUnit#13796437]
(1636) Join
Arguments: Inner, ((plantUuid#13796399 = plant#13796408) AND (productUuid#13796401 = product#13796407))
(1637) Filter
Arguments: (calculationDateTime#13796395 <= orderDateTime#13796409)
(1638) Project
Arguments: [plantUuid#13796399 AS plant#13796438, productUuid#13796401 AS product#13796439, storageLocId#13796402, calculationDateTime#13796395, quantity#13796404]
(1639) Aggregate
Arguments: [plant#13796438, product#13796439, storageLocId#13796402], [plant#13796438, product#13796439, storageLocId#13796402, max(calculationDateTime#13796395) AS max_calc_datetime#13796440]
(1640) Join
Arguments: Inner, ((((plant#13796327 <=> plant#13796438) AND (product#13796328 <=> product#13796439)) AND (storageLocId#13796291 <=> storageLocId#13796402)) AND (calculationDateTime#13796284 <=> max_calc_datetime#13796440))
(1641) Project
Arguments: [plant#13796327, product#13796328, storageLocId#13796291, calculationDateTime#13796284, quantity#13796293]
(1642) Aggregate
Arguments: [product#13796328, plant#13796327], [product#13796328, plant#13796327, sum(quantity#13796293) AS quantitySum#13796441, min(calculationDateTime#13796284) AS minCalculationDateTime#13796442]
(1643) Project
Arguments: [product#13796328, plant#13796327, quantitySum#13796441, minCalculationDateTime#13796442, round(quantitySum#13796441, 0) AS roundedQuantitySum#13796443]
(1644) Join
Arguments: LeftOuter, ((plant#13796188 = plant#13796327) AND (product#13796187 = product#13796328))
(1645) Project
Arguments: [product#13796187, plant#13796188, orderDateTime#13796189, productPlant#13796200, outboundUnit#13796217, roundedQuantitySum#13796443, minCalculationDateTime#13796442]
(1646) Project
Arguments: [product#13796187, plant#13796188, orderDateTime#13796189, productPlant#13796200, outboundUnit#13796217, roundedQuantitySum#13796443, minCalculationDateTime#13796442, CASE WHEN isnotnull(minCalculationDateTime#13796442) THEN minCalculationDateTime#13796442 ELSE orderDateTime#13796189 END AS stockDatetime#13796444]
(1647) Project
Arguments: [product#13796187, plant#13796188, orderDateTime#13796189, productPlant#13796200, outboundUnit#13796217, roundedQuantitySum#13796443, minCalculationDateTime#13796442, stockDatetime#13796444, CASE WHEN isnotnull(roundedQuantitySum#13796443) THEN array(roundedQuantitySum#13796443) ELSE array(0.0) END AS stockBatchQuantities#13796445]
(1648) Project
Arguments: [product#13796187, plant#13796188, orderDateTime#13796189, productPlant#13796200, outboundUnit#13796217, roundedQuantitySum#13796443, minCalculationDateTime#13796442, stockDatetime#13796444, stockBatchQuantities#13796445, array(2199-01-01 00:00:00) AS stockBatchShelfLifeEndDatetimes#13796446]
(1649) Project
Arguments: [product#13796187, plant#13796188, orderDateTime#13796189, productPlant#13796200, outboundUnit#13796217, roundedQuantitySum#13796443, stockDatetime#13796444, stockBatchQuantities#13796445, stockBatchShelfLifeEndDatetimes#13796446]
(1650) Project
Arguments: [product#13796187, plant#13796188, orderDateTime#13796189, productPlant#13796200, outboundUnit#13796217, stockDatetime#13796444, stockBatchQuantities#13796445, stockBatchShelfLifeEndDatetimes#13796446]
(1651) LogicalRelation
Arguments: parquet, [product#13796447, plant#13796448, orderDateTime#13796449, planningStartDateTime#13796450], false
(1652) RepartitionByExpression
Arguments: [product#13796447, plant#13796448], 37
(1653) Project
Arguments: [product#13796447, plant#13796448, orderDateTime#13796449]
(1654) LogicalRelation
Arguments: parquet, [systemId#13796451, internalUUID#13796452, plant#13796453, product#13796454, blockedForReplenishmentStartingFrom#13796455, productionAspect#13796456, salesPlant#13796457, listing#13796458, sourceOfSupplyCategory#13796459], false
(1655) Repartition
Arguments: 37, true
(1656) Project
Arguments: [systemId#13796451, internalUUID#13796452, plant#13796453, product#13796454, blockedForReplenishmentStartingFrom#13796455, productionAspect#13796456, salesPlant#13796457, listing#13796458, sourceOfSupplyCategory#13796459, struct(systemId, systemId#13796451, internalUUID, internalUUID#13796452, plant, plant#13796453, product, product#13796454, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#13796455, productionAspect, productionAspect#13796456, salesPlant, salesPlant#13796457, listing, listing#13796458, sourceOfSupplyCategory, sourceOfSupplyCategory#13796459) AS productPlant#13796460]
(1657) Project
Arguments: [productPlant#13796460]
(1658) Join
Arguments: LeftOuter, ((product#13796447 <=> productPlant#13796460.product.internalRefUUID) AND (plant#13796448 <=> productPlant#13796460.plant.internalRefUUID))
(1659) Project
Arguments: [product#13796447, plant#13796448, orderDateTime#13796449, productPlant#13796460]
(1660) LogicalRelation
Arguments: parquet, [systemId#13796461, internalUUID#13796462, id#13796463, displayId#13796464, name#13796465, baseUnitOfMeasure#13796466, unitOfMeasures#13796467, unitOfMeasureConversions#13796468, productionAspect#13796469, salesAspect#13796470, procurementAspect#13796471, productGroup#13796472], false
(1661) Repartition
Arguments: 37, true
(1662) Join
Arguments: LeftOuter, (product#13796447 = internalUUID#13796462)
(1663) Project
Arguments: [product#13796447, plant#13796448, orderDateTime#13796449, productPlant#13796460, systemId#13796461, internalUUID#13796462, id#13796463, displayId#13796464, name#13796465, baseUnitOfMeasure#13796466, unitOfMeasures#13796467, unitOfMeasureConversions#13796468, productionAspect#13796469, salesAspect#13796470, procurementAspect#13796471, productGroup#13796472, filter(unitOfMeasureConversions#13796468, lambdafunction((((lambda u#13792048.measurementUnit1.code = productPlant#13796460.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#13792048.measurementUnit1.internalRefUUID = productPlant#13796460.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#13792048.measurementUnit2.code = baseUnitOfMeasure#13796466.code) AND (lambda u#13792048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#13796466.internalRefUUID))), lambda u#13792048, false)) AS filteredUnitOfMeasureConversions#13796473]
(1664) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13796473.quantityNumerator), true, [quantityNumerator#13796474]
(1665) Project
Arguments: [product#13796447, plant#13796448, orderDateTime#13796449, productPlant#13796460, systemId#13796461, internalUUID#13796462, id#13796463, displayId#13796464, name#13796465, baseUnitOfMeasure#13796466, unitOfMeasures#13796467, unitOfMeasureConversions#13796468, productionAspect#13796469, salesAspect#13796470, procurementAspect#13796471, productGroup#13796472, filteredUnitOfMeasureConversions#13796473, quantityNumerator#13796474]
(1666) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13796473.quantityDenominator), true, [quantityDenominator#13796475]
(1667) Project
Arguments: [product#13796447, plant#13796448, orderDateTime#13796449, productPlant#13796460, systemId#13796461, internalUUID#13796462, id#13796463, displayId#13796464, name#13796465, baseUnitOfMeasure#13796466, unitOfMeasures#13796467, unitOfMeasureConversions#13796468, productionAspect#13796469, salesAspect#13796470, procurementAspect#13796471, productGroup#13796472, filteredUnitOfMeasureConversions#13796473, quantityNumerator#13796474, quantityDenominator#13796475]
(1668) Project
Arguments: [product#13796447, plant#13796448, orderDateTime#13796449, productPlant#13796460, systemId#13796461, internalUUID#13796462, id#13796463, displayId#13796464, name#13796465, baseUnitOfMeasure#13796466, unitOfMeasures#13796467, unitOfMeasureConversions#13796468, productionAspect#13796469, salesAspect#13796470, procurementAspect#13796471, productGroup#13796472, filteredUnitOfMeasureConversions#13796473, quantityNumerator#13796474, quantityDenominator#13796475, (cast(quantityNumerator#13796474 as double) / cast(quantityDenominator#13796475 as double)) AS outboundUnit#13796476]
(1669) Project
Arguments: [product#13796447, plant#13796448, orderDateTime#13796449, productPlant#13796460, systemId#13796461, internalUUID#13796462, id#13796463, displayId#13796464, name#13796465, baseUnitOfMeasure#13796466, unitOfMeasures#13796467, unitOfMeasureConversions#13796468, productionAspect#13796469, salesAspect#13796470, procurementAspect#13796471, productGroup#13796472, filteredUnitOfMeasureConversions#13796473, quantityNumerator#13796474, quantityDenominator#13796475, CASE WHEN (isnull(outboundUnit#13796476) OR (outboundUnit#13796476 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#13796476 END AS outboundUnit#13796477]
(1670) Project
Arguments: [product#13796447, plant#13796448, orderDateTime#13796449, productPlant#13796460, outboundUnit#13796477]
(1671) LogicalRelation
Arguments: parquet, [systemId#13796478, internalUUID#13796479, product#13796480, plant#13796481, calculationDateTime#13796482, stockQuantities#13796483], false
(1672) Repartition
Arguments: 37, true
(1673) LogicalRelation
Arguments: parquet, [marketUnit#13796484, description#13796485, articleHierarchy#13796486, defaultCurrency#13796487, responsibilities#13796488, replenishmentTypes#13796489, distributionCenters#13796490, assignedArticleHierarchyNodes#13796491, minOrderQtySetting#13796492, listingCheck#13796493, odsSelection#13796494, demandProfiles#13796495, constraintProfiles#13796496, optimizationProfiles#13796497, orderGroupSplitProfiles#13796498, supplierMinimumProfiles#13796499, multipleRestrictionProfiles#13796500, preferredUomSource#13796501, handlingOfUnfulfilledDemands#13796502, negligibleQuantitiesThreshold#13796503, eventtype#13796504, minOrderQtySettingInternal#13796505], false
(1674) Repartition
Arguments: 37, true
(1675) Filter
Arguments: (marketUnit#13796484 <=> AUTO_ALL_ProdLoc)
(1676) Project
Arguments: [marketUnit#13796484, description#13796485, articleHierarchy#13796486, defaultCurrency#13796487, responsibilities#13796488, replenishmentTypes#13796489, distributionCenters#13796490, assignedArticleHierarchyNodes#13796491, minOrderQtySetting#13796492, listingCheck#13796493, odsSelection#13796494, demandProfiles#13796495, constraintProfiles#13796496, optimizationProfiles#13796497, orderGroupSplitProfiles#13796498, supplierMinimumProfiles#13796499, multipleRestrictionProfiles#13796500, preferredUomSource#13796501, handlingOfUnfulfilledDemands#13796502, negligibleQuantitiesThreshold#13796503, eventtype#13796504, minOrderQtySettingInternal#13796505]
(1677) Project
Arguments: [distributionCenters#13796490]
(1678) Generate
Arguments: explode(distributionCenters#13796490), false, [distributionCenters#13796506]
(1679) Project
Arguments: [distributionCenters#13796506]
(1680) Generate
Arguments: explode(distributionCenters#13796506.storageLocations), false, [storageLocations#13796507]
(1681) Project
Arguments: [distributionCenters#13796506.id AS plantId#13796508, distributionCenters#13796506.internalRefUUID AS plantUuid#13796509, storageLocations#13796507]
(1682) Project
Arguments: [plantId#13796508, plantUuid#13796509, storageLocations#13796507.id AS storageLocId#13796510, storageLocations#13796507.internalRefUUID AS storageLocUuid#13796511]
(1683) LogicalRelation
Arguments: parquet, [product#13796512, plant#13796513, orderDateTime#13796514, planningStartDateTime#13796515], false
(1684) RepartitionByExpression
Arguments: [product#13796512, plant#13796513], 37
(1685) Project
Arguments: [product#13796512, plant#13796513, orderDateTime#13796514]
(1686) LogicalRelation
Arguments: parquet, [systemId#13796516, internalUUID#13796517, plant#13796518, product#13796519, blockedForReplenishmentStartingFrom#13796520, productionAspect#13796521, salesPlant#13796522, listing#13796523, sourceOfSupplyCategory#13796524], false
(1687) Repartition
Arguments: 37, true
(1688) Project
Arguments: [systemId#13796516, internalUUID#13796517, plant#13796518, product#13796519, blockedForReplenishmentStartingFrom#13796520, productionAspect#13796521, salesPlant#13796522, listing#13796523, sourceOfSupplyCategory#13796524, struct(systemId, systemId#13796516, internalUUID, internalUUID#13796517, plant, plant#13796518, product, product#13796519, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#13796520, productionAspect, productionAspect#13796521, salesPlant, salesPlant#13796522, listing, listing#13796523, sourceOfSupplyCategory, sourceOfSupplyCategory#13796524) AS productPlant#13796525]
(1689) Project
Arguments: [productPlant#13796525]
(1690) Join
Arguments: LeftOuter, ((product#13796512 <=> productPlant#13796525.product.internalRefUUID) AND (plant#13796513 <=> productPlant#13796525.plant.internalRefUUID))
(1691) Project
Arguments: [product#13796512, plant#13796513, orderDateTime#13796514, productPlant#13796525]
(1692) LogicalRelation
Arguments: parquet, [systemId#13796526, internalUUID#13796527, id#13796528, displayId#13796529, name#13796530, baseUnitOfMeasure#13796531, unitOfMeasures#13796532, unitOfMeasureConversions#13796533, productionAspect#13796534, salesAspect#13796535, procurementAspect#13796536, productGroup#13796537], false
(1693) Repartition
Arguments: 37, true
(1694) Join
Arguments: LeftOuter, (product#13796512 = internalUUID#13796527)
(1695) Project
Arguments: [product#13796512, plant#13796513, orderDateTime#13796514, productPlant#13796525, systemId#13796526, internalUUID#13796527, id#13796528, displayId#13796529, name#13796530, baseUnitOfMeasure#13796531, unitOfMeasures#13796532, unitOfMeasureConversions#13796533, productionAspect#13796534, salesAspect#13796535, procurementAspect#13796536, productGroup#13796537, filter(unitOfMeasureConversions#13796533, lambdafunction((((lambda u#13792048.measurementUnit1.code = productPlant#13796525.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#13792048.measurementUnit1.internalRefUUID = productPlant#13796525.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#13792048.measurementUnit2.code = baseUnitOfMeasure#13796531.code) AND (lambda u#13792048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#13796531.internalRefUUID))), lambda u#13792048, false)) AS filteredUnitOfMeasureConversions#13796538]
(1696) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13796538.quantityNumerator), true, [quantityNumerator#13796539]
(1697) Project
Arguments: [product#13796512, plant#13796513, orderDateTime#13796514, productPlant#13796525, systemId#13796526, internalUUID#13796527, id#13796528, displayId#13796529, name#13796530, baseUnitOfMeasure#13796531, unitOfMeasures#13796532, unitOfMeasureConversions#13796533, productionAspect#13796534, salesAspect#13796535, procurementAspect#13796536, productGroup#13796537, filteredUnitOfMeasureConversions#13796538, quantityNumerator#13796539]
(1698) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13796538.quantityDenominator), true, [quantityDenominator#13796540]
(1699) Project
Arguments: [product#13796512, plant#13796513, orderDateTime#13796514, productPlant#13796525, systemId#13796526, internalUUID#13796527, id#13796528, displayId#13796529, name#13796530, baseUnitOfMeasure#13796531, unitOfMeasures#13796532, unitOfMeasureConversions#13796533, productionAspect#13796534, salesAspect#13796535, procurementAspect#13796536, productGroup#13796537, filteredUnitOfMeasureConversions#13796538, quantityNumerator#13796539, quantityDenominator#13796540]
(1700) Project
Arguments: [product#13796512, plant#13796513, orderDateTime#13796514, productPlant#13796525, systemId#13796526, internalUUID#13796527, id#13796528, displayId#13796529, name#13796530, baseUnitOfMeasure#13796531, unitOfMeasures#13796532, unitOfMeasureConversions#13796533, productionAspect#13796534, salesAspect#13796535, procurementAspect#13796536, productGroup#13796537, filteredUnitOfMeasureConversions#13796538, quantityNumerator#13796539, quantityDenominator#13796540, (cast(quantityNumerator#13796539 as double) / cast(quantityDenominator#13796540 as double)) AS outboundUnit#13796541]
(1701) Project
Arguments: [product#13796512, plant#13796513, orderDateTime#13796514, productPlant#13796525, systemId#13796526, internalUUID#13796527, id#13796528, displayId#13796529, name#13796530, baseUnitOfMeasure#13796531, unitOfMeasures#13796532, unitOfMeasureConversions#13796533, productionAspect#13796534, salesAspect#13796535, procurementAspect#13796536, productGroup#13796537, filteredUnitOfMeasureConversions#13796538, quantityNumerator#13796539, quantityDenominator#13796540, CASE WHEN (isnull(outboundUnit#13796541) OR (outboundUnit#13796541 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#13796541 END AS outboundUnit#13796542]
(1702) Project
Arguments: [product#13796512, plant#13796513, orderDateTime#13796514, productPlant#13796525, outboundUnit#13796542]
(1703) Project
Arguments: [plant#13796513]
(1704) Deduplicate
Arguments: [plant#13796513]
(1705) Join
Arguments: Inner, (plantUuid#13796509 = plant#13796513)
(1706) Project
Arguments: [plantId#13796508, plantUuid#13796509, storageLocId#13796510, storageLocUuid#13796511]
(1707) Join
Arguments: Inner, (plant#13796481.internalRefUUID <=> plantUuid#13796509)
(1708) Generate
Arguments: explode(filter(stockQuantities#13796483, lambdafunction(((lambda x#13792128.storageLocation.internalRefUuid = storageLocUuid#13796511) AND (lambda x#13792128.storageLocation.Id = storageLocId#13796510)), lambda x#13792128, false))), false, [stockQuantity#13796543]
(1709) Project
Arguments: [systemId#13796478, internalUUID#13796479, product#13796480, plant#13796481, calculationDateTime#13796482, stockQuantities#13796483, plantId#13796508, plantUuid#13796509, storageLocId#13796510, storageLocUuid#13796511, stockQuantity#13796543]
(1710) Aggregate
Arguments: [plantUuid#13796509, internalUUID#13796479, plant#13796481, product#13796480, systemId#13796478], [plantUuid#13796509, internalUUID#13796479, plant#13796481, product#13796480, systemId#13796478, first(calculationDateTime#13796482, false) AS calculationDateTime#13796544, collect_list(stockQuantity#13796543, 0, 0) AS stockQuantities#13796545]
(1711) Project
Arguments: [systemId#13796478, internalUUID#13796479, product#13796480, plant#13796481, calculationDateTime#13796544, stockQuantities#13796545]
(1712) Generate
Arguments: explode(stockQuantities#13796545), false, [stockQuantity#13796546]
(1713) Project
Arguments: [systemId#13796478, internalUUID#13796479, product#13796480, plant#13796481, calculationDateTime#13796544, stockQuantities#13796545, stockQuantity#13796546]
(1714) Project
Arguments: [plant#13796481.id AS plant#13796547, plant#13796481.internalRefUUID AS plantUuid#13796548, product#13796480.id AS product#13796549, product#13796480.internalRefUUID AS productUuid#13796550, calculationDateTime#13796544, stockQuantity#13796546.storagelocation.id AS storageLocId#13796551, stockQuantity#13796546.storagelocation.internalRefUUID AS storageLocUuid#13796552, stockQuantity#13796546.quantity.measure AS quantity#13796553, stockQuantity#13796546.specialStockIndicator.code AS specialStockIndicator#13796554, stockQuantity#13796546.stockType.code AS stockType#13796555]
(1715) Filter
Arguments: ((specialStockIndicator#13796554 = ) AND (stockType#13796555 = 01))
(1716) LogicalRelation
Arguments: parquet, [product#13796556, plant#13796557, orderDateTime#13796558, planningStartDateTime#13796559], false
(1717) RepartitionByExpression
Arguments: [product#13796556, plant#13796557], 37
(1718) Project
Arguments: [product#13796556, plant#13796557, orderDateTime#13796558]
(1719) LogicalRelation
Arguments: parquet, [systemId#13796560, internalUUID#13796561, plant#13796562, product#13796563, blockedForReplenishmentStartingFrom#13796564, productionAspect#13796565, salesPlant#13796566, listing#13796567, sourceOfSupplyCategory#13796568], false
(1720) Repartition
Arguments: 37, true
(1721) Project
Arguments: [systemId#13796560, internalUUID#13796561, plant#13796562, product#13796563, blockedForReplenishmentStartingFrom#13796564, productionAspect#13796565, salesPlant#13796566, listing#13796567, sourceOfSupplyCategory#13796568, struct(systemId, systemId#13796560, internalUUID, internalUUID#13796561, plant, plant#13796562, product, product#13796563, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#13796564, productionAspect, productionAspect#13796565, salesPlant, salesPlant#13796566, listing, listing#13796567, sourceOfSupplyCategory, sourceOfSupplyCategory#13796568) AS productPlant#13796569]
(1722) Project
Arguments: [productPlant#13796569]
(1723) Join
Arguments: LeftOuter, ((product#13796556 <=> productPlant#13796569.product.internalRefUUID) AND (plant#13796557 <=> productPlant#13796569.plant.internalRefUUID))
(1724) Project
Arguments: [product#13796556, plant#13796557, orderDateTime#13796558, productPlant#13796569]
(1725) LogicalRelation
Arguments: parquet, [systemId#13796570, internalUUID#13796571, id#13796572, displayId#13796573, name#13796574, baseUnitOfMeasure#13796575, unitOfMeasures#13796576, unitOfMeasureConversions#13796577, productionAspect#13796578, salesAspect#13796579, procurementAspect#13796580, productGroup#13796581], false
(1726) Repartition
Arguments: 37, true
(1727) Join
Arguments: LeftOuter, (product#13796556 = internalUUID#13796571)
(1728) Project
Arguments: [product#13796556, plant#13796557, orderDateTime#13796558, productPlant#13796569, systemId#13796570, internalUUID#13796571, id#13796572, displayId#13796573, name#13796574, baseUnitOfMeasure#13796575, unitOfMeasures#13796576, unitOfMeasureConversions#13796577, productionAspect#13796578, salesAspect#13796579, procurementAspect#13796580, productGroup#13796581, filter(unitOfMeasureConversions#13796577, lambdafunction((((lambda u#13792048.measurementUnit1.code = productPlant#13796569.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#13792048.measurementUnit1.internalRefUUID = productPlant#13796569.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#13792048.measurementUnit2.code = baseUnitOfMeasure#13796575.code) AND (lambda u#13792048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#13796575.internalRefUUID))), lambda u#13792048, false)) AS filteredUnitOfMeasureConversions#13796582]
(1729) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13796582.quantityNumerator), true, [quantityNumerator#13796583]
(1730) Project
Arguments: [product#13796556, plant#13796557, orderDateTime#13796558, productPlant#13796569, systemId#13796570, internalUUID#13796571, id#13796572, displayId#13796573, name#13796574, baseUnitOfMeasure#13796575, unitOfMeasures#13796576, unitOfMeasureConversions#13796577, productionAspect#13796578, salesAspect#13796579, procurementAspect#13796580, productGroup#13796581, filteredUnitOfMeasureConversions#13796582, quantityNumerator#13796583]
(1731) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13796582.quantityDenominator), true, [quantityDenominator#13796584]
(1732) Project
Arguments: [product#13796556, plant#13796557, orderDateTime#13796558, productPlant#13796569, systemId#13796570, internalUUID#13796571, id#13796572, displayId#13796573, name#13796574, baseUnitOfMeasure#13796575, unitOfMeasures#13796576, unitOfMeasureConversions#13796577, productionAspect#13796578, salesAspect#13796579, procurementAspect#13796580, productGroup#13796581, filteredUnitOfMeasureConversions#13796582, quantityNumerator#13796583, quantityDenominator#13796584]
(1733) Project
Arguments: [product#13796556, plant#13796557, orderDateTime#13796558, productPlant#13796569, systemId#13796570, internalUUID#13796571, id#13796572, displayId#13796573, name#13796574, baseUnitOfMeasure#13796575, unitOfMeasures#13796576, unitOfMeasureConversions#13796577, productionAspect#13796578, salesAspect#13796579, procurementAspect#13796580, productGroup#13796581, filteredUnitOfMeasureConversions#13796582, quantityNumerator#13796583, quantityDenominator#13796584, (cast(quantityNumerator#13796583 as double) / cast(quantityDenominator#13796584 as double)) AS outboundUnit#13796585]
(1734) Project
Arguments: [product#13796556, plant#13796557, orderDateTime#13796558, productPlant#13796569, systemId#13796570, internalUUID#13796571, id#13796572, displayId#13796573, name#13796574, baseUnitOfMeasure#13796575, unitOfMeasures#13796576, unitOfMeasureConversions#13796577, productionAspect#13796578, salesAspect#13796579, procurementAspect#13796580, productGroup#13796581, filteredUnitOfMeasureConversions#13796582, quantityNumerator#13796583, quantityDenominator#13796584, CASE WHEN (isnull(outboundUnit#13796585) OR (outboundUnit#13796585 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#13796585 END AS outboundUnit#13796586]
(1735) Project
Arguments: [product#13796556, plant#13796557, orderDateTime#13796558, productPlant#13796569, outboundUnit#13796586]
(1736) Join
Arguments: Inner, ((plantUuid#13796548 = plant#13796557) AND (productUuid#13796550 = product#13796556))
(1737) Filter
Arguments: (calculationDateTime#13796544 <= orderDateTime#13796558)
(1738) Project
Arguments: [plantUuid#13796548 AS plant#13796587, productUuid#13796550 AS product#13796588, storageLocId#13796551, calculationDateTime#13796544, quantity#13796553]
(1739) LogicalRelation
Arguments: parquet, [systemId#13796589, internalUUID#13796590, product#13796591, plant#13796592, calculationDateTime#13796593, stockQuantities#13796594], false
(1740) Repartition
Arguments: 37, true
(1741) LogicalRelation
Arguments: parquet, [marketUnit#13796595, description#13796596, articleHierarchy#13796597, defaultCurrency#13796598, responsibilities#13796599, replenishmentTypes#13796600, distributionCenters#13796601, assignedArticleHierarchyNodes#13796602, minOrderQtySetting#13796603, listingCheck#13796604, odsSelection#13796605, demandProfiles#13796606, constraintProfiles#13796607, optimizationProfiles#13796608, orderGroupSplitProfiles#13796609, supplierMinimumProfiles#13796610, multipleRestrictionProfiles#13796611, preferredUomSource#13796612, handlingOfUnfulfilledDemands#13796613, negligibleQuantitiesThreshold#13796614, eventtype#13796615, minOrderQtySettingInternal#13796616], false
(1742) Repartition
Arguments: 37, true
(1743) Filter
Arguments: (marketUnit#13796595 <=> AUTO_ALL_ProdLoc)
(1744) Project
Arguments: [marketUnit#13796595, description#13796596, articleHierarchy#13796597, defaultCurrency#13796598, responsibilities#13796599, replenishmentTypes#13796600, distributionCenters#13796601, assignedArticleHierarchyNodes#13796602, minOrderQtySetting#13796603, listingCheck#13796604, odsSelection#13796605, demandProfiles#13796606, constraintProfiles#13796607, optimizationProfiles#13796608, orderGroupSplitProfiles#13796609, supplierMinimumProfiles#13796610, multipleRestrictionProfiles#13796611, preferredUomSource#13796612, handlingOfUnfulfilledDemands#13796613, negligibleQuantitiesThreshold#13796614, eventtype#13796615, minOrderQtySettingInternal#13796616]
(1745) Project
Arguments: [distributionCenters#13796601]
(1746) Generate
Arguments: explode(distributionCenters#13796601), false, [distributionCenters#13796617]
(1747) Project
Arguments: [distributionCenters#13796617]
(1748) Generate
Arguments: explode(distributionCenters#13796617.storageLocations), false, [storageLocations#13796618]
(1749) Project
Arguments: [distributionCenters#13796617.id AS plantId#13796619, distributionCenters#13796617.internalRefUUID AS plantUuid#13796620, storageLocations#13796618]
(1750) Project
Arguments: [plantId#13796619, plantUuid#13796620, storageLocations#13796618.id AS storageLocId#13796621, storageLocations#13796618.internalRefUUID AS storageLocUuid#13796622]
(1751) LogicalRelation
Arguments: parquet, [product#13796623, plant#13796624, orderDateTime#13796625, planningStartDateTime#13796626], false
(1752) RepartitionByExpression
Arguments: [product#13796623, plant#13796624], 37
(1753) Project
Arguments: [product#13796623, plant#13796624, orderDateTime#13796625]
(1754) LogicalRelation
Arguments: parquet, [systemId#13796627, internalUUID#13796628, plant#13796629, product#13796630, blockedForReplenishmentStartingFrom#13796631, productionAspect#13796632, salesPlant#13796633, listing#13796634, sourceOfSupplyCategory#13796635], false
(1755) Repartition
Arguments: 37, true
(1756) Project
Arguments: [systemId#13796627, internalUUID#13796628, plant#13796629, product#13796630, blockedForReplenishmentStartingFrom#13796631, productionAspect#13796632, salesPlant#13796633, listing#13796634, sourceOfSupplyCategory#13796635, struct(systemId, systemId#13796627, internalUUID, internalUUID#13796628, plant, plant#13796629, product, product#13796630, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#13796631, productionAspect, productionAspect#13796632, salesPlant, salesPlant#13796633, listing, listing#13796634, sourceOfSupplyCategory, sourceOfSupplyCategory#13796635) AS productPlant#13796636]
(1757) Project
Arguments: [productPlant#13796636]
(1758) Join
Arguments: LeftOuter, ((product#13796623 <=> productPlant#13796636.product.internalRefUUID) AND (plant#13796624 <=> productPlant#13796636.plant.internalRefUUID))
(1759) Project
Arguments: [product#13796623, plant#13796624, orderDateTime#13796625, productPlant#13796636]
(1760) LogicalRelation
Arguments: parquet, [systemId#13796637, internalUUID#13796638, id#13796639, displayId#13796640, name#13796641, baseUnitOfMeasure#13796642, unitOfMeasures#13796643, unitOfMeasureConversions#13796644, productionAspect#13796645, salesAspect#13796646, procurementAspect#13796647, productGroup#13796648], false
(1761) Repartition
Arguments: 37, true
(1762) Join
Arguments: LeftOuter, (product#13796623 = internalUUID#13796638)
(1763) Project
Arguments: [product#13796623, plant#13796624, orderDateTime#13796625, productPlant#13796636, systemId#13796637, internalUUID#13796638, id#13796639, displayId#13796640, name#13796641, baseUnitOfMeasure#13796642, unitOfMeasures#13796643, unitOfMeasureConversions#13796644, productionAspect#13796645, salesAspect#13796646, procurementAspect#13796647, productGroup#13796648, filter(unitOfMeasureConversions#13796644, lambdafunction((((lambda u#13792048.measurementUnit1.code = productPlant#13796636.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#13792048.measurementUnit1.internalRefUUID = productPlant#13796636.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#13792048.measurementUnit2.code = baseUnitOfMeasure#13796642.code) AND (lambda u#13792048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#13796642.internalRefUUID))), lambda u#13792048, false)) AS filteredUnitOfMeasureConversions#13796649]
(1764) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13796649.quantityNumerator), true, [quantityNumerator#13796650]
(1765) Project
Arguments: [product#13796623, plant#13796624, orderDateTime#13796625, productPlant#13796636, systemId#13796637, internalUUID#13796638, id#13796639, displayId#13796640, name#13796641, baseUnitOfMeasure#13796642, unitOfMeasures#13796643, unitOfMeasureConversions#13796644, productionAspect#13796645, salesAspect#13796646, procurementAspect#13796647, productGroup#13796648, filteredUnitOfMeasureConversions#13796649, quantityNumerator#13796650]
(1766) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13796649.quantityDenominator), true, [quantityDenominator#13796651]
(1767) Project
Arguments: [product#13796623, plant#13796624, orderDateTime#13796625, productPlant#13796636, systemId#13796637, internalUUID#13796638, id#13796639, displayId#13796640, name#13796641, baseUnitOfMeasure#13796642, unitOfMeasures#13796643, unitOfMeasureConversions#13796644, productionAspect#13796645, salesAspect#13796646, procurementAspect#13796647, productGroup#13796648, filteredUnitOfMeasureConversions#13796649, quantityNumerator#13796650, quantityDenominator#13796651]
(1768) Project
Arguments: [product#13796623, plant#13796624, orderDateTime#13796625, productPlant#13796636, systemId#13796637, internalUUID#13796638, id#13796639, displayId#13796640, name#13796641, baseUnitOfMeasure#13796642, unitOfMeasures#13796643, unitOfMeasureConversions#13796644, productionAspect#13796645, salesAspect#13796646, procurementAspect#13796647, productGroup#13796648, filteredUnitOfMeasureConversions#13796649, quantityNumerator#13796650, quantityDenominator#13796651, (cast(quantityNumerator#13796650 as double) / cast(quantityDenominator#13796651 as double)) AS outboundUnit#13796652]
(1769) Project
Arguments: [product#13796623, plant#13796624, orderDateTime#13796625, productPlant#13796636, systemId#13796637, internalUUID#13796638, id#13796639, displayId#13796640, name#13796641, baseUnitOfMeasure#13796642, unitOfMeasures#13796643, unitOfMeasureConversions#13796644, productionAspect#13796645, salesAspect#13796646, procurementAspect#13796647, productGroup#13796648, filteredUnitOfMeasureConversions#13796649, quantityNumerator#13796650, quantityDenominator#13796651, CASE WHEN (isnull(outboundUnit#13796652) OR (outboundUnit#13796652 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#13796652 END AS outboundUnit#13796653]
(1770) Project
Arguments: [product#13796623, plant#13796624, orderDateTime#13796625, productPlant#13796636, outboundUnit#13796653]
(1771) Project
Arguments: [plant#13796624]
(1772) Deduplicate
Arguments: [plant#13796624]
(1773) Join
Arguments: Inner, (plantUuid#13796620 = plant#13796624)
(1774) Project
Arguments: [plantId#13796619, plantUuid#13796620, storageLocId#13796621, storageLocUuid#13796622]
(1775) Join
Arguments: Inner, (plant#13796592.internalRefUUID <=> plantUuid#13796620)
(1776) Generate
Arguments: explode(filter(stockQuantities#13796594, lambdafunction(((lambda x#13792128.storageLocation.internalRefUuid = storageLocUuid#13796622) AND (lambda x#13792128.storageLocation.Id = storageLocId#13796621)), lambda x#13792128, false))), false, [stockQuantity#13796654]
(1777) Project
Arguments: [systemId#13796589, internalUUID#13796590, product#13796591, plant#13796592, calculationDateTime#13796593, stockQuantities#13796594, plantId#13796619, plantUuid#13796620, storageLocId#13796621, storageLocUuid#13796622, stockQuantity#13796654]
(1778) Aggregate
Arguments: [plantUuid#13796620, internalUUID#13796590, plant#13796592, product#13796591, systemId#13796589], [plantUuid#13796620, internalUUID#13796590, plant#13796592, product#13796591, systemId#13796589, first(calculationDateTime#13796593, false) AS calculationDateTime#13796655, collect_list(stockQuantity#13796654, 0, 0) AS stockQuantities#13796656]
(1779) Project
Arguments: [systemId#13796589, internalUUID#13796590, product#13796591, plant#13796592, calculationDateTime#13796655, stockQuantities#13796656]
(1780) Generate
Arguments: explode(stockQuantities#13796656), false, [stockQuantity#13796657]
(1781) Project
Arguments: [systemId#13796589, internalUUID#13796590, product#13796591, plant#13796592, calculationDateTime#13796655, stockQuantities#13796656, stockQuantity#13796657]
(1782) Project
Arguments: [plant#13796592.id AS plant#13796658, plant#13796592.internalRefUUID AS plantUuid#13796659, product#13796591.id AS product#13796660, product#13796591.internalRefUUID AS productUuid#13796661, calculationDateTime#13796655, stockQuantity#13796657.storagelocation.id AS storageLocId#13796662, stockQuantity#13796657.storagelocation.internalRefUUID AS storageLocUuid#13796663, stockQuantity#13796657.quantity.measure AS quantity#13796664, stockQuantity#13796657.specialStockIndicator.code AS specialStockIndicator#13796665, stockQuantity#13796657.stockType.code AS stockType#13796666]
(1783) Filter
Arguments: ((specialStockIndicator#13796665 = ) AND (stockType#13796666 = 01))
(1784) LogicalRelation
Arguments: parquet, [product#13796667, plant#13796668, orderDateTime#13796669, planningStartDateTime#13796670], false
(1785) RepartitionByExpression
Arguments: [product#13796667, plant#13796668], 37
(1786) Project
Arguments: [product#13796667, plant#13796668, orderDateTime#13796669]
(1787) LogicalRelation
Arguments: parquet, [systemId#13796671, internalUUID#13796672, plant#13796673, product#13796674, blockedForReplenishmentStartingFrom#13796675, productionAspect#13796676, salesPlant#13796677, listing#13796678, sourceOfSupplyCategory#13796679], false
(1788) Repartition
Arguments: 37, true
(1789) Project
Arguments: [systemId#13796671, internalUUID#13796672, plant#13796673, product#13796674, blockedForReplenishmentStartingFrom#13796675, productionAspect#13796676, salesPlant#13796677, listing#13796678, sourceOfSupplyCategory#13796679, struct(systemId, systemId#13796671, internalUUID, internalUUID#13796672, plant, plant#13796673, product, product#13796674, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#13796675, productionAspect, productionAspect#13796676, salesPlant, salesPlant#13796677, listing, listing#13796678, sourceOfSupplyCategory, sourceOfSupplyCategory#13796679) AS productPlant#13796680]
(1790) Project
Arguments: [productPlant#13796680]
(1791) Join
Arguments: LeftOuter, ((product#13796667 <=> productPlant#13796680.product.internalRefUUID) AND (plant#13796668 <=> productPlant#13796680.plant.internalRefUUID))
(1792) Project
Arguments: [product#13796667, plant#13796668, orderDateTime#13796669, productPlant#13796680]
(1793) LogicalRelation
Arguments: parquet, [systemId#13796681, internalUUID#13796682, id#13796683, displayId#13796684, name#13796685, baseUnitOfMeasure#13796686, unitOfMeasures#13796687, unitOfMeasureConversions#13796688, productionAspect#13796689, salesAspect#13796690, procurementAspect#13796691, productGroup#13796692], false
(1794) Repartition
Arguments: 37, true
(1795) Join
Arguments: LeftOuter, (product#13796667 = internalUUID#13796682)
(1796) Project
Arguments: [product#13796667, plant#13796668, orderDateTime#13796669, productPlant#13796680, systemId#13796681, internalUUID#13796682, id#13796683, displayId#13796684, name#13796685, baseUnitOfMeasure#13796686, unitOfMeasures#13796687, unitOfMeasureConversions#13796688, productionAspect#13796689, salesAspect#13796690, procurementAspect#13796691, productGroup#13796692, filter(unitOfMeasureConversions#13796688, lambdafunction((((lambda u#13792048.measurementUnit1.code = productPlant#13796680.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#13792048.measurementUnit1.internalRefUUID = productPlant#13796680.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#13792048.measurementUnit2.code = baseUnitOfMeasure#13796686.code) AND (lambda u#13792048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#13796686.internalRefUUID))), lambda u#13792048, false)) AS filteredUnitOfMeasureConversions#13796693]
(1797) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13796693.quantityNumerator), true, [quantityNumerator#13796694]
(1798) Project
Arguments: [product#13796667, plant#13796668, orderDateTime#13796669, productPlant#13796680, systemId#13796681, internalUUID#13796682, id#13796683, displayId#13796684, name#13796685, baseUnitOfMeasure#13796686, unitOfMeasures#13796687, unitOfMeasureConversions#13796688, productionAspect#13796689, salesAspect#13796690, procurementAspect#13796691, productGroup#13796692, filteredUnitOfMeasureConversions#13796693, quantityNumerator#13796694]
(1799) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13796693.quantityDenominator), true, [quantityDenominator#13796695]
(1800) Project
Arguments: [product#13796667, plant#13796668, orderDateTime#13796669, productPlant#13796680, systemId#13796681, internalUUID#13796682, id#13796683, displayId#13796684, name#13796685, baseUnitOfMeasure#13796686, unitOfMeasures#13796687, unitOfMeasureConversions#13796688, productionAspect#13796689, salesAspect#13796690, procurementAspect#13796691, productGroup#13796692, filteredUnitOfMeasureConversions#13796693, quantityNumerator#13796694, quantityDenominator#13796695]
(1801) Project
Arguments: [product#13796667, plant#13796668, orderDateTime#13796669, productPlant#13796680, systemId#13796681, internalUUID#13796682, id#13796683, displayId#13796684, name#13796685, baseUnitOfMeasure#13796686, unitOfMeasures#13796687, unitOfMeasureConversions#13796688, productionAspect#13796689, salesAspect#13796690, procurementAspect#13796691, productGroup#13796692, filteredUnitOfMeasureConversions#13796693, quantityNumerator#13796694, quantityDenominator#13796695, (cast(quantityNumerator#13796694 as double) / cast(quantityDenominator#13796695 as double)) AS outboundUnit#13796696]
(1802) Project
Arguments: [product#13796667, plant#13796668, orderDateTime#13796669, productPlant#13796680, systemId#13796681, internalUUID#13796682, id#13796683, displayId#13796684, name#13796685, baseUnitOfMeasure#13796686, unitOfMeasures#13796687, unitOfMeasureConversions#13796688, productionAspect#13796689, salesAspect#13796690, procurementAspect#13796691, productGroup#13796692, filteredUnitOfMeasureConversions#13796693, quantityNumerator#13796694, quantityDenominator#13796695, CASE WHEN (isnull(outboundUnit#13796696) OR (outboundUnit#13796696 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#13796696 END AS outboundUnit#13796697]
(1803) Project
Arguments: [product#13796667, plant#13796668, orderDateTime#13796669, productPlant#13796680, outboundUnit#13796697]
(1804) Join
Arguments: Inner, ((plantUuid#13796659 = plant#13796668) AND (productUuid#13796661 = product#13796667))
(1805) Filter
Arguments: (calculationDateTime#13796655 <= orderDateTime#13796669)
(1806) Project
Arguments: [plantUuid#13796659 AS plant#13796698, productUuid#13796661 AS product#13796699, storageLocId#13796662, calculationDateTime#13796655, quantity#13796664]
(1807) Aggregate
Arguments: [plant#13796698, product#13796699, storageLocId#13796662], [plant#13796698, product#13796699, storageLocId#13796662, max(calculationDateTime#13796655) AS max_calc_datetime#13796700]
(1808) Join
Arguments: Inner, ((((plant#13796587 <=> plant#13796698) AND (product#13796588 <=> product#13796699)) AND (storageLocId#13796551 <=> storageLocId#13796662)) AND (calculationDateTime#13796544 <=> max_calc_datetime#13796700))
(1809) Project
Arguments: [plant#13796587, product#13796588, storageLocId#13796551, calculationDateTime#13796544, quantity#13796553]
(1810) Aggregate
Arguments: [product#13796588, plant#13796587], [product#13796588, plant#13796587, sum(quantity#13796553) AS quantitySum#13796701, min(calculationDateTime#13796544) AS minCalculationDateTime#13796702]
(1811) Project
Arguments: [product#13796588, plant#13796587, quantitySum#13796701, minCalculationDateTime#13796702, round(quantitySum#13796701, 0) AS roundedQuantitySum#13796703]
(1812) Join
Arguments: LeftOuter, ((plant#13796448 = plant#13796587) AND (product#13796447 = product#13796588))
(1813) Project
Arguments: [product#13796447, plant#13796448, orderDateTime#13796449, productPlant#13796460, outboundUnit#13796477, roundedQuantitySum#13796703, minCalculationDateTime#13796702]
(1814) Project
Arguments: [product#13796447, plant#13796448, orderDateTime#13796449, productPlant#13796460, outboundUnit#13796477, roundedQuantitySum#13796703, minCalculationDateTime#13796702, CASE WHEN isnotnull(minCalculationDateTime#13796702) THEN minCalculationDateTime#13796702 ELSE orderDateTime#13796449 END AS stockDatetime#13796704]
(1815) Project
Arguments: [product#13796447, plant#13796448, orderDateTime#13796449, productPlant#13796460, outboundUnit#13796477, roundedQuantitySum#13796703, minCalculationDateTime#13796702, stockDatetime#13796704, CASE WHEN isnotnull(roundedQuantitySum#13796703) THEN array(roundedQuantitySum#13796703) ELSE array(0.0) END AS stockBatchQuantities#13796705]
(1816) Project
Arguments: [product#13796447, plant#13796448, orderDateTime#13796449, productPlant#13796460, outboundUnit#13796477, roundedQuantitySum#13796703, minCalculationDateTime#13796702, stockDatetime#13796704, stockBatchQuantities#13796705, array(2199-01-01 00:00:00) AS stockBatchShelfLifeEndDatetimes#13796706]
(1817) Project
Arguments: [product#13796447, plant#13796448, orderDateTime#13796449, productPlant#13796460, outboundUnit#13796477, roundedQuantitySum#13796703, stockDatetime#13796704, stockBatchQuantities#13796705, stockBatchShelfLifeEndDatetimes#13796706]
(1818) Project
Arguments: [product#13796447, plant#13796448, orderDateTime#13796449, productPlant#13796460, outboundUnit#13796477, stockDatetime#13796704, stockBatchQuantities#13796705, stockBatchShelfLifeEndDatetimes#13796706]
(1819) LogicalRelation
Arguments: parquet, [product#13796707, plant#13796708, demandChannel#13796709, demandStream#13796710, considerVariance#13796711, demandTimeBuckets#13796712, demandPointInTimeStart#13796713, demandPointInTimeEnd#13796714, demandPointInTime#13796715], false
(1820) Join
Arguments: LeftOuter, ((plant#13796708 <=> plant#13796448) AND (product#13796707 <=> product#13796447))
(1821) Project
Arguments: [product#13796447, plant#13796448, orderDateTime#13796449, productPlant#13796460, outboundUnit#13796477, stockDatetime#13796704, stockBatchQuantities#13796705, stockBatchShelfLifeEndDatetimes#13796706, product#13796707, plant#13796708, demandChannel#13796709, demandStream#13796710, considerVariance#13796711, demandTimeBuckets#13796712, demandPointInTimeStart#13796713, demandPointInTimeEnd#13796714, demandPointInTime#13796715, CASE WHEN isnotnull(product#13796707) THEN struct(demandChannel, demandChannel#13796709, demandStream, demandStream#13796710, considerVariance, considerVariance#13796711, demandTimeBuckets, demandTimeBuckets#13796712, demandPointInTimeStart, demandPointInTimeStart#13796713, demandPointInTimeEnd, demandPointInTimeEnd#13796714, demandPointInTime, demandPointInTime#13796715) 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#13796716]
(1822) Aggregate
Arguments: [product#13796447, plant#13796448, orderDateTime#13796449, productPlant#13796460, outboundUnit#13796477, stockDatetime#13796704, stockBatchQuantities#13796705, stockBatchShelfLifeEndDatetimes#13796706], [product#13796447, plant#13796448, orderDateTime#13796449, productPlant#13796460, outboundUnit#13796477, stockDatetime#13796704, stockBatchQuantities#13796705, stockBatchShelfLifeEndDatetimes#13796706, collect_list(rawDemands#13796716, 0, 0) AS rawDemands#13796717]
(1823) SubqueryAlias
Arguments: wl
(1824) LogicalRelation
Arguments: parquet, [systemId#13796718, internalUUID#13796719, id#13796720, displayId#13796721, name#13796722, category#13796723, companyCode#13796724, address#13796725, mainDistributionChain#13796726, mainPurchasingOrganization#13796727, validPurchasingOrganizations#13796728, productGroup#13796729], false
(1825) Repartition
Arguments: 37, true
(1826) Project
Arguments: [systemId#13796718, internalUUID#13796719, id#13796720, displayId#13796721, name#13796722, category#13796723, companyCode#13796724, address#13796725, mainDistributionChain#13796726, mainPurchasingOrganization#13796727, validPurchasingOrganizations#13796728, productGroup#13796729, address#13796725.timezone.code AS timezonecode#13796730]
(1827) Join
Arguments: LeftOuter, (plant#13796448 <=> internalUUID#13796719)
(1828) Project
Arguments: [product#13796447, plant#13796448, orderDateTime#13796449, productPlant#13796460, outboundUnit#13796477, stockDatetime#13796704, stockBatchQuantities#13796705, stockBatchShelfLifeEndDatetimes#13796706, rawDemands#13796717, systemId#13796718, internalUUID#13796719, id#13796720, displayId#13796721, name#13796722, category#13796723, companyCode#13796724, address#13796725, mainDistributionChain#13796726, mainPurchasingOrganization#13796727, validPurchasingOrganizations#13796728, productGroup#13796729, CASE WHEN isnotnull(timezonecode#13796730) THEN timezonecode#13796730 ELSE UTC END AS timezonecode#13796731]
(1829) Project
Arguments: [product#13796447, plant#13796448, orderDateTime#13796449, productPlant#13796460, outboundUnit#13796477, stockDatetime#13796704, stockBatchQuantities#13796705, stockBatchShelfLifeEndDatetimes#13796706, rawDemands#13796717, timezonecode#13796731]
(1830) DeserializeToObject
Arguments: createexternalrow(invoke(product#13796447.toString()), invoke(plant#13796448.toString()), static_invoke(DateTimeUtils.toJavaTimestamp(orderDateTime#13796449)), if (isnull(productPlant#13796460)) null else createexternalrow(invoke(productPlant#13796460.systemId.toString()), invoke(productPlant#13796460.internalUUID.toString()), if (isnull(productPlant#13796460.plant)) null else createexternalrow(invoke(productPlant#13796460.plant.internalRefUUID.toString()), invoke(productPlant#13796460.plant.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), if (isnull(productPlant#13796460.product)) null else createexternalrow(invoke(productPlant#13796460.product.internalRefUUID.toString()), invoke(productPlant#13796460.product.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(DateTimeUtils.toJavaDate(productPlant#13796460.blockedForReplenishmentStartingFrom)), if (isnull(productPlant#13796460.productionAspect)) null else createexternalrow(if (isnull(productPlant#13796460.productionAspect.productMovementPlants)) null else createexternalrow(if (isnull(productPlant#13796460.productionAspect.productMovementPlants.unitOfIssue)) null else createexternalrow(invoke(productPlant#13796460.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID.toString()), invoke(productPlant#13796460.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#13796460.productionAspect.productPlanningPlants)) null else createexternalrow(if (isnull(productPlant#13796460.productionAspect.productPlanningPlants.mrpType)) null else createexternalrow(invoke(productPlant#13796460.productionAspect.productPlanningPlants.mrpType.internalRefUUID.toString()), invoke(productPlant#13796460.productionAspect.productPlanningPlants.mrpType.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#13796460.productionAspect.productPlanningPlants.abcIndicator)) null else createexternalrow(invoke(productPlant#13796460.productionAspect.productPlanningPlants.abcIndicator.internalRefUUID.toString()), invoke(productPlant#13796460.productionAspect.productPlanningPlants.abcIndicator.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#13796460.productionAspect.productPlanningPlants.mrpController)) null else createexternalrow(invoke(productPlant#13796460.productionAspect.productPlanningPlants.mrpController.internalRefUUID.toString()), invoke(productPlant#13796460.productionAspect.productPlanningPlants.mrpController.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(java.lang.Double.valueOf(productPlant#13796460.productionAspect.productPlanningPlants.minimumLotSize)), if (isnull(productPlant#13796460.productionAspect.productPlanningPlants.logisticalRoundingProfile)) null else createexternalrow(invoke(productPlant#13796460.productionAspect.productPlanningPlants.logisticalRoundingProfile.internalRefUUID.toString()), invoke(productPlant#13796460.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#13796460.salesPlant)) null else createexternalrow(if (isnull(productPlant#13796460.salesPlant.loadingGroup)) null else createexternalrow(invoke(productPlant#13796460.salesPlant.loadingGroup.internalRefUUID.toString()), invoke(productPlant#13796460.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, 1728146), if (isnull(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 1728146))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 1728146).validFrom)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 1728146).validTo)), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 1728146).isListed)), StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true)), productPlant#13796460.listing, Some(class scala.collection.mutable.ArraySeq)), if (isnull(productPlant#13796460.sourceOfSupplyCategory)) null else createexternalrow(invoke(productPlant#13796460.sourceOfSupplyCategory.internalRefUUID.toString()), invoke(productPlant#13796460.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#13796477)), static_invoke(DateTimeUtils.toJavaTimestamp(stockDatetime#13796704)), mapobjects(lambdavariable(MapObject, DoubleType, true, 1728147), static_invoke(java.lang.Double.valueOf(cast(lambdavariable(MapObject, DoubleType, true, 1728147) as double))), stockBatchQuantities#13796705, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, false, 1728148), assertnotnull(static_invoke(DateTimeUtils.toJavaTimestamp(cast(lambdavariable(MapObject, TimestampType, false, 1728148) as timestamp)))), stockBatchShelfLifeEndDatetimes#13796706, 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, 1728149), 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, 1728149))) 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, 1728149).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, 1728149).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, 1728149).considerVariance)), mapobjects(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 1728150), if (isnull(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 1728150))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 1728150).demandStartDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 1728150).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 1728150).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, 1728149).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, 1728149).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, 1728149).demandPointInTimeEnd)), mapobjects(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 1728151), if (isnull(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 1728151))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 1728151).demandDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 1728151).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 1728151).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, 1728149).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#13796717, Some(class scala.collection.mutable.ArraySeq)), invoke(timezonecode#13796731.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#13793477: org.apache.spark.sql.Row
(1831) MapElements
Arguments: com.sap.s4hana.eureka.business.crporderquantitykpiservice.core.business.datasnapshot.DemandTransformatorImpl$$Lambda/0x00000008020466f8@2bc6baae, 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#13793482: 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#13796732, 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#13796733, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(2))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728136), assertnotnull(if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728137), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728137), DoubleType, ObjectType(class java.lang.Double)).doubleValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728138), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728138), DoubleType, ObjectType(class java.lang.Double)).doubleValue()), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728139), assertnotnull(static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728139), TimestampType, ObjectType(class java.sql.Timestamp))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728140), assertnotnull(static_invoke(UTF8String.fromString(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728140), StringType, ObjectType(class java.lang.String))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728141), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728141), IntegerType, ObjectType(class java.lang.Integer)).intValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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#13796734, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(3))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728142), assertnotnull(if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728143), assertnotnull(static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728143), TimestampType, ObjectType(class java.sql.Timestamp))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728144), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728144), DoubleType, ObjectType(class java.lang.Double)).doubleValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728145), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728145), DoubleType, ObjectType(class java.lang.Double)).doubleValue()), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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#13796735]
(1833) Join
Arguments: LeftOuter, ((plant#13796733 <=> plant#13796188) AND (product#13796732 <=> product#13796187))
(1834) Project
Arguments: [product#13796187, plant#13796188, orderDateTime#13796189, productPlant#13796200, outboundUnit#13796217, stockDatetime#13796444, stockBatchQuantities#13796445, stockBatchShelfLifeEndDatetimes#13796446, plant#13796733, dayBucketDemands#13796734, pointInTimeDemands#13796735]
(1835) Project
Arguments: [product#13796187, plant#13796188, orderDateTime#13796189, productPlant#13796200, outboundUnit#13796217, stockDatetime#13796444, stockBatchQuantities#13796445, stockBatchShelfLifeEndDatetimes#13796446, dayBucketDemands#13796734, pointInTimeDemands#13796735]
(1836) LogicalRelation
Arguments: parquet, [marketUnit#13796736, description#13796737, articleHierarchy#13796738, defaultCurrency#13796739, responsibilities#13796740, replenishmentTypes#13796741, distributionCenters#13796742, assignedArticleHierarchyNodes#13796743, minOrderQtySetting#13796744, listingCheck#13796745, odsSelection#13796746, demandProfiles#13796747, constraintProfiles#13796748, optimizationProfiles#13796749, orderGroupSplitProfiles#13796750, supplierMinimumProfiles#13796751, multipleRestrictionProfiles#13796752, preferredUomSource#13796753, handlingOfUnfulfilledDemands#13796754, negligibleQuantitiesThreshold#13796755, eventtype#13796756, minOrderQtySettingInternal#13796757], false
(1837) Repartition
Arguments: 37, true
(1838) Filter
Arguments: (marketUnit#13796736 <=> AUTO_ALL_ProdLoc)
(1839) Project
Arguments: [marketUnit#13796736, description#13796737, articleHierarchy#13796738, defaultCurrency#13796739, responsibilities#13796740, replenishmentTypes#13796741, distributionCenters#13796742, assignedArticleHierarchyNodes#13796743, minOrderQtySetting#13796744, listingCheck#13796745, odsSelection#13796746, demandProfiles#13796747, constraintProfiles#13796748, optimizationProfiles#13796749, orderGroupSplitProfiles#13796750, supplierMinimumProfiles#13796751, multipleRestrictionProfiles#13796752, preferredUomSource#13796753, handlingOfUnfulfilledDemands#13796754, negligibleQuantitiesThreshold#13796755, eventtype#13796756, minOrderQtySettingInternal#13796757]
(1840) Project
Arguments: [distributionCenters#13796742]
(1841) Generate
Arguments: explode(distributionCenters#13796742), false, [distributionCenters#13796758]
(1842) Project
Arguments: [distributionCenters#13796758]
(1843) Generate
Arguments: explode(distributionCenters#13796758.storageLocations), false, [storageLocations#13796759]
(1844) Project
Arguments: [distributionCenters#13796758.id AS plantId#13796760, distributionCenters#13796758.internalRefUUID AS plantUuid#13796761, storageLocations#13796759]
(1845) Project
Arguments: [plantId#13796760, plantUuid#13796761, storageLocations#13796759.id AS storageLocId#13796762, storageLocations#13796759.internalRefUUID AS storageLocUuid#13796763]
(1846) LogicalRelation
Arguments: parquet, [product#13796764, plant#13796765, orderDateTime#13796766, planningStartDateTime#13796767], false
(1847) RepartitionByExpression
Arguments: [product#13796764, plant#13796765], 37
(1848) Project
Arguments: [product#13796764, plant#13796765, orderDateTime#13796766]
(1849) LogicalRelation
Arguments: parquet, [systemId#13796768, internalUUID#13796769, plant#13796770, product#13796771, blockedForReplenishmentStartingFrom#13796772, productionAspect#13796773, salesPlant#13796774, listing#13796775, sourceOfSupplyCategory#13796776], false
(1850) Repartition
Arguments: 37, true
(1851) Project
Arguments: [systemId#13796768, internalUUID#13796769, plant#13796770, product#13796771, blockedForReplenishmentStartingFrom#13796772, productionAspect#13796773, salesPlant#13796774, listing#13796775, sourceOfSupplyCategory#13796776, struct(systemId, systemId#13796768, internalUUID, internalUUID#13796769, plant, plant#13796770, product, product#13796771, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#13796772, productionAspect, productionAspect#13796773, salesPlant, salesPlant#13796774, listing, listing#13796775, sourceOfSupplyCategory, sourceOfSupplyCategory#13796776) AS productPlant#13796777]
(1852) Project
Arguments: [productPlant#13796777]
(1853) Join
Arguments: LeftOuter, ((product#13796764 <=> productPlant#13796777.product.internalRefUUID) AND (plant#13796765 <=> productPlant#13796777.plant.internalRefUUID))
(1854) Project
Arguments: [product#13796764, plant#13796765, orderDateTime#13796766, productPlant#13796777]
(1855) LogicalRelation
Arguments: parquet, [systemId#13796778, internalUUID#13796779, id#13796780, displayId#13796781, name#13796782, baseUnitOfMeasure#13796783, unitOfMeasures#13796784, unitOfMeasureConversions#13796785, productionAspect#13796786, salesAspect#13796787, procurementAspect#13796788, productGroup#13796789], false
(1856) Repartition
Arguments: 37, true
(1857) Join
Arguments: LeftOuter, (product#13796764 = internalUUID#13796779)
(1858) Project
Arguments: [product#13796764, plant#13796765, orderDateTime#13796766, productPlant#13796777, systemId#13796778, internalUUID#13796779, id#13796780, displayId#13796781, name#13796782, baseUnitOfMeasure#13796783, unitOfMeasures#13796784, unitOfMeasureConversions#13796785, productionAspect#13796786, salesAspect#13796787, procurementAspect#13796788, productGroup#13796789, filter(unitOfMeasureConversions#13796785, lambdafunction((((lambda u#13792048.measurementUnit1.code = productPlant#13796777.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#13792048.measurementUnit1.internalRefUUID = productPlant#13796777.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#13792048.measurementUnit2.code = baseUnitOfMeasure#13796783.code) AND (lambda u#13792048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#13796783.internalRefUUID))), lambda u#13792048, false)) AS filteredUnitOfMeasureConversions#13796790]
(1859) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13796790.quantityNumerator), true, [quantityNumerator#13796791]
(1860) Project
Arguments: [product#13796764, plant#13796765, orderDateTime#13796766, productPlant#13796777, systemId#13796778, internalUUID#13796779, id#13796780, displayId#13796781, name#13796782, baseUnitOfMeasure#13796783, unitOfMeasures#13796784, unitOfMeasureConversions#13796785, productionAspect#13796786, salesAspect#13796787, procurementAspect#13796788, productGroup#13796789, filteredUnitOfMeasureConversions#13796790, quantityNumerator#13796791]
(1861) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13796790.quantityDenominator), true, [quantityDenominator#13796792]
(1862) Project
Arguments: [product#13796764, plant#13796765, orderDateTime#13796766, productPlant#13796777, systemId#13796778, internalUUID#13796779, id#13796780, displayId#13796781, name#13796782, baseUnitOfMeasure#13796783, unitOfMeasures#13796784, unitOfMeasureConversions#13796785, productionAspect#13796786, salesAspect#13796787, procurementAspect#13796788, productGroup#13796789, filteredUnitOfMeasureConversions#13796790, quantityNumerator#13796791, quantityDenominator#13796792]
(1863) Project
Arguments: [product#13796764, plant#13796765, orderDateTime#13796766, productPlant#13796777, systemId#13796778, internalUUID#13796779, id#13796780, displayId#13796781, name#13796782, baseUnitOfMeasure#13796783, unitOfMeasures#13796784, unitOfMeasureConversions#13796785, productionAspect#13796786, salesAspect#13796787, procurementAspect#13796788, productGroup#13796789, filteredUnitOfMeasureConversions#13796790, quantityNumerator#13796791, quantityDenominator#13796792, (cast(quantityNumerator#13796791 as double) / cast(quantityDenominator#13796792 as double)) AS outboundUnit#13796793]
(1864) Project
Arguments: [product#13796764, plant#13796765, orderDateTime#13796766, productPlant#13796777, systemId#13796778, internalUUID#13796779, id#13796780, displayId#13796781, name#13796782, baseUnitOfMeasure#13796783, unitOfMeasures#13796784, unitOfMeasureConversions#13796785, productionAspect#13796786, salesAspect#13796787, procurementAspect#13796788, productGroup#13796789, filteredUnitOfMeasureConversions#13796790, quantityNumerator#13796791, quantityDenominator#13796792, CASE WHEN (isnull(outboundUnit#13796793) OR (outboundUnit#13796793 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#13796793 END AS outboundUnit#13796794]
(1865) Project
Arguments: [product#13796764, plant#13796765, orderDateTime#13796766, productPlant#13796777, outboundUnit#13796794]
(1866) Project
Arguments: [plant#13796765]
(1867) Deduplicate
Arguments: [plant#13796765]
(1868) Join
Arguments: Inner, (plantUuid#13796761 = plant#13796765)
(1869) Project
Arguments: [plantId#13796760, plantUuid#13796761, storageLocId#13796762, storageLocUuid#13796763]
(1870) Project
Arguments: [plantId#13796760, plantUuid#13796761 AS plant#13796795, storageLocId#13796762, storageLocUuid#13796763]
(1871) Join
Arguments: Inner, (plant#13796188 = plant#13796795)
(1872) Project
Arguments: [plant#13796188, product#13796187, orderDateTime#13796189, productPlant#13796200, outboundUnit#13796217, stockDatetime#13796444, stockBatchQuantities#13796445, stockBatchShelfLifeEndDatetimes#13796446, dayBucketDemands#13796734, pointInTimeDemands#13796735, plantId#13796760, storageLocId#13796762, storageLocUuid#13796763, plant#13796795]
(1873) LocalRelation
Arguments: <empty>, [systemId#13796796, internalUUID#13796797, id#13796798, isMarkedForDeletion#13796799, supplier#13796800, status#13796801, items#13796802]
(1874) Generate
Arguments: explode(items#13796802), false, [item#13796803]
(1875) Project
Arguments: [id#13796798, internalUUID#13796797, isMarkedForDeletion#13796799, supplier#13796800.internalRefUUID AS supplierUuid#13796804, item#13796803]
(1876) Filter
Arguments: (((NOT isMarkedForDeletion#13796799 AND NOT item#13796803.deletionIndicator) AND NOT item#13796803.completeIndicator) AND NOT item#13796803.returnIndicator)
(1877) Project
Arguments: [id#13796798, internalUUID#13796797, supplierUuid#13796804, item#13796803.plant.internalRefUUID AS plant#13796805, item#13796803.product.internalRefUUID AS product#13796806, item#13796803.storageLocation.internalRefUUID AS storageLocUuid#13796807, item#13796803.quantityUnit.code AS quantityUom#13796808, item#13796803.quantityUnit.internalRefUUID AS quantityUomUuid#13796809, item#13796803.quantityNumerator AS quantityNumerator#13796810, item#13796803.quantityDenominator AS quantityDenominator#13796811, item#13796803.scheduleLines AS scheduleLines#13796812, item#13796803.confirmations AS confirmations#13796813]
(1878) Join
Arguments: Inner, (((product#13796187 = product#13796806) AND (plant#13796188 = plant#13796805)) AND (storageLocUuid#13796763 = storageLocUuid#13796807))
(1879) Project
Arguments: [product#13796187, plant#13796188, storageLocUuid#13796763, orderDateTime#13796189, productPlant#13796200, outboundUnit#13796217, stockDatetime#13796444, stockBatchQuantities#13796445, stockBatchShelfLifeEndDatetimes#13796446, dayBucketDemands#13796734, pointInTimeDemands#13796735, plantId#13796760, storageLocId#13796762, id#13796798, internalUUID#13796797, supplierUuid#13796804, quantityUom#13796808, quantityUomUuid#13796809, quantityNumerator#13796810, quantityDenominator#13796811, scheduleLines#13796812, confirmations#13796813, product#13796806, plant#13796805, storageLocUuid#13796807, ... 1 more fields]
(1880) Project
Arguments: [id#13796798, internalUUID#13796797, supplierUuid#13796804, plant#13796805, product#13796806, storageLocUuid#13796807, quantityUom#13796808, quantityUomUuid#13796809, quantityNumerator#13796810, quantityDenominator#13796811, scheduleLines#13796812, confirmations#13796813, stockDatetime#13796444]
(1881) Project
Arguments: [id#13796798, internalUUID#13796797, supplierUuid#13796804, plant#13796805, product#13796806, storageLocUuid#13796807, quantityUom#13796808, quantityUomUuid#13796809, quantityNumerator#13796810, quantityDenominator#13796811, scheduleLines#13796812, confirmations#13796813, stockDatetime#13796444, array_size(filter(confirmations#13796813, lambdafunction((((lambda x_1019#13793877.deletionIndicator = false) AND (lambda x_1019#13793877.isRelevantForConfirmation = true)) AND isnotnull(lambda x_1019#13793877.confirmedDeliveryAt)), lambda x_1019#13793877, false))) AS _w0#13796814]
(1882) Window
Arguments: [sum(_w0#13796814) windowspecdefinition(internalUUID#13796797, specifiedwindowframe(RowFrame, unboundedpreceding$(), unboundedfollowing$())) AS _we0#13796815L], [internalUUID#13796797]
(1883) Project
Arguments: [id#13796798, internalUUID#13796797, supplierUuid#13796804, plant#13796805, product#13796806, storageLocUuid#13796807, quantityUom#13796808, quantityUomUuid#13796809, quantityNumerator#13796810, quantityDenominator#13796811, scheduleLines#13796812, confirmations#13796813, stockDatetime#13796444, _w0#13796814, _we0#13796815L, filter(transform(CASE WHEN (_we0#13796815L > cast(0 as bigint)) THEN transform(filter(confirmations#13796813, lambdafunction((((lambda x_1019#13793878.deletionIndicator = false) AND (lambda x_1019#13793878.isRelevantForConfirmation = true)) AND isnotnull(lambda x_1019#13793878.confirmedDeliveryAt)), lambda x_1019#13793878, false)), lambdafunction(struct(openQty, greatest((lambda x_1020#13793881.confirmedQuantity - coalesce(lambda x_1020#13793881.mrpRelevantQuantity, 0.0)), 0.0), availabilityDatetime, lambda x_1020#13793881.confirmedDeliveryAt), lambda x_1020#13793881, false)) ELSE transform(scheduleLines#13796812, lambdafunction(struct(openQty, greatest((lambda x_1018#13793879.quantity - coalesce(lambda x_1018#13793879.receivedQuantity, 0.0)), 0.0), availabilityDatetime, lambda x_1018#13793879.deliveryAt), lambda x_1018#13793879, false)) END, lambdafunction(struct(documentId, id#13796798, documentUuid, internalUUID#13796797, openQty, lambda x_1021#13793882.openQty, openQtyInBaseUnit, ((lambda x_1021#13793882.openQty * quantityNumerator#13796810) / quantityDenominator#13796811), qtyUom, quantityUom#13796808, qtyUomUuid, quantityUomUuid#13796809, availabilityDatetime, lambda x_1021#13793882.availabilityDatetime, shelfLifeEndDatetime, 2199-01-01 00:00:00), lambda x_1021#13793882, false)), lambdafunction(NOT (lambda x_1022#13793883.openQty = 0.0), lambda x_1022#13793883, false)) AS openGoodsMovements#13796816]
(1884) Project
Arguments: [id#13796798, internalUUID#13796797, supplierUuid#13796804, plant#13796805, product#13796806, storageLocUuid#13796807, quantityUom#13796808, quantityUomUuid#13796809, quantityNumerator#13796810, quantityDenominator#13796811, scheduleLines#13796812, confirmations#13796813, stockDatetime#13796444, openGoodsMovements#13796816]
(1885) Aggregate
Arguments: [product#13796806, plant#13796805], [product#13796806, plant#13796805, flatten(collect_list(openGoodsMovements#13796816, 0, 0)) AS openGoodsMovements#13796817]
(1886) Filter
Arguments: (array_size(openGoodsMovements#13796817) > 0)
(1887) LogicalRelation
Arguments: parquet, [product#13796818, plant#13796819, orderDateTime#13796820, planningStartDateTime#13796821], false
(1888) RepartitionByExpression
Arguments: [product#13796818, plant#13796819], 37
(1889) Project
Arguments: [product#13796818, plant#13796819, orderDateTime#13796820]
(1890) LogicalRelation
Arguments: parquet, [systemId#13796822, internalUUID#13796823, plant#13796824, product#13796825, blockedForReplenishmentStartingFrom#13796826, productionAspect#13796827, salesPlant#13796828, listing#13796829, sourceOfSupplyCategory#13796830], false
(1891) Repartition
Arguments: 37, true
(1892) Project
Arguments: [systemId#13796822, internalUUID#13796823, plant#13796824, product#13796825, blockedForReplenishmentStartingFrom#13796826, productionAspect#13796827, salesPlant#13796828, listing#13796829, sourceOfSupplyCategory#13796830, struct(systemId, systemId#13796822, internalUUID, internalUUID#13796823, plant, plant#13796824, product, product#13796825, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#13796826, productionAspect, productionAspect#13796827, salesPlant, salesPlant#13796828, listing, listing#13796829, sourceOfSupplyCategory, sourceOfSupplyCategory#13796830) AS productPlant#13796831]
(1893) Project
Arguments: [productPlant#13796831]
(1894) Join
Arguments: LeftOuter, ((product#13796818 <=> productPlant#13796831.product.internalRefUUID) AND (plant#13796819 <=> productPlant#13796831.plant.internalRefUUID))
(1895) Project
Arguments: [product#13796818, plant#13796819, orderDateTime#13796820, productPlant#13796831]
(1896) LogicalRelation
Arguments: parquet, [systemId#13796832, internalUUID#13796833, id#13796834, displayId#13796835, name#13796836, baseUnitOfMeasure#13796837, unitOfMeasures#13796838, unitOfMeasureConversions#13796839, productionAspect#13796840, salesAspect#13796841, procurementAspect#13796842, productGroup#13796843], false
(1897) Repartition
Arguments: 37, true
(1898) Join
Arguments: LeftOuter, (product#13796818 = internalUUID#13796833)
(1899) Project
Arguments: [product#13796818, plant#13796819, orderDateTime#13796820, productPlant#13796831, systemId#13796832, internalUUID#13796833, id#13796834, displayId#13796835, name#13796836, baseUnitOfMeasure#13796837, unitOfMeasures#13796838, unitOfMeasureConversions#13796839, productionAspect#13796840, salesAspect#13796841, procurementAspect#13796842, productGroup#13796843, filter(unitOfMeasureConversions#13796839, lambdafunction((((lambda u#13792048.measurementUnit1.code = productPlant#13796831.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#13792048.measurementUnit1.internalRefUUID = productPlant#13796831.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#13792048.measurementUnit2.code = baseUnitOfMeasure#13796837.code) AND (lambda u#13792048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#13796837.internalRefUUID))), lambda u#13792048, false)) AS filteredUnitOfMeasureConversions#13796844]
(1900) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13796844.quantityNumerator), true, [quantityNumerator#13796845]
(1901) Project
Arguments: [product#13796818, plant#13796819, orderDateTime#13796820, productPlant#13796831, systemId#13796832, internalUUID#13796833, id#13796834, displayId#13796835, name#13796836, baseUnitOfMeasure#13796837, unitOfMeasures#13796838, unitOfMeasureConversions#13796839, productionAspect#13796840, salesAspect#13796841, procurementAspect#13796842, productGroup#13796843, filteredUnitOfMeasureConversions#13796844, quantityNumerator#13796845]
(1902) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13796844.quantityDenominator), true, [quantityDenominator#13796846]
(1903) Project
Arguments: [product#13796818, plant#13796819, orderDateTime#13796820, productPlant#13796831, systemId#13796832, internalUUID#13796833, id#13796834, displayId#13796835, name#13796836, baseUnitOfMeasure#13796837, unitOfMeasures#13796838, unitOfMeasureConversions#13796839, productionAspect#13796840, salesAspect#13796841, procurementAspect#13796842, productGroup#13796843, filteredUnitOfMeasureConversions#13796844, quantityNumerator#13796845, quantityDenominator#13796846]
(1904) Project
Arguments: [product#13796818, plant#13796819, orderDateTime#13796820, productPlant#13796831, systemId#13796832, internalUUID#13796833, id#13796834, displayId#13796835, name#13796836, baseUnitOfMeasure#13796837, unitOfMeasures#13796838, unitOfMeasureConversions#13796839, productionAspect#13796840, salesAspect#13796841, procurementAspect#13796842, productGroup#13796843, filteredUnitOfMeasureConversions#13796844, quantityNumerator#13796845, quantityDenominator#13796846, (cast(quantityNumerator#13796845 as double) / cast(quantityDenominator#13796846 as double)) AS outboundUnit#13796847]
(1905) Project
Arguments: [product#13796818, plant#13796819, orderDateTime#13796820, productPlant#13796831, systemId#13796832, internalUUID#13796833, id#13796834, displayId#13796835, name#13796836, baseUnitOfMeasure#13796837, unitOfMeasures#13796838, unitOfMeasureConversions#13796839, productionAspect#13796840, salesAspect#13796841, procurementAspect#13796842, productGroup#13796843, filteredUnitOfMeasureConversions#13796844, quantityNumerator#13796845, quantityDenominator#13796846, CASE WHEN (isnull(outboundUnit#13796847) OR (outboundUnit#13796847 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#13796847 END AS outboundUnit#13796848]
(1906) Project
Arguments: [product#13796818, plant#13796819, orderDateTime#13796820, productPlant#13796831, outboundUnit#13796848]
(1907) LogicalRelation
Arguments: parquet, [systemId#13796849, internalUUID#13796850, product#13796851, plant#13796852, calculationDateTime#13796853, stockQuantities#13796854], false
(1908) Repartition
Arguments: 37, true
(1909) LogicalRelation
Arguments: parquet, [marketUnit#13796855, description#13796856, articleHierarchy#13796857, defaultCurrency#13796858, responsibilities#13796859, replenishmentTypes#13796860, distributionCenters#13796861, assignedArticleHierarchyNodes#13796862, minOrderQtySetting#13796863, listingCheck#13796864, odsSelection#13796865, demandProfiles#13796866, constraintProfiles#13796867, optimizationProfiles#13796868, orderGroupSplitProfiles#13796869, supplierMinimumProfiles#13796870, multipleRestrictionProfiles#13796871, preferredUomSource#13796872, handlingOfUnfulfilledDemands#13796873, negligibleQuantitiesThreshold#13796874, eventtype#13796875, minOrderQtySettingInternal#13796876], false
(1910) Repartition
Arguments: 37, true
(1911) Filter
Arguments: (marketUnit#13796855 <=> AUTO_ALL_ProdLoc)
(1912) Project
Arguments: [marketUnit#13796855, description#13796856, articleHierarchy#13796857, defaultCurrency#13796858, responsibilities#13796859, replenishmentTypes#13796860, distributionCenters#13796861, assignedArticleHierarchyNodes#13796862, minOrderQtySetting#13796863, listingCheck#13796864, odsSelection#13796865, demandProfiles#13796866, constraintProfiles#13796867, optimizationProfiles#13796868, orderGroupSplitProfiles#13796869, supplierMinimumProfiles#13796870, multipleRestrictionProfiles#13796871, preferredUomSource#13796872, handlingOfUnfulfilledDemands#13796873, negligibleQuantitiesThreshold#13796874, eventtype#13796875, minOrderQtySettingInternal#13796876]
(1913) Project
Arguments: [distributionCenters#13796861]
(1914) Generate
Arguments: explode(distributionCenters#13796861), false, [distributionCenters#13796877]
(1915) Project
Arguments: [distributionCenters#13796877]
(1916) Generate
Arguments: explode(distributionCenters#13796877.storageLocations), false, [storageLocations#13796878]
(1917) Project
Arguments: [distributionCenters#13796877.id AS plantId#13796879, distributionCenters#13796877.internalRefUUID AS plantUuid#13796880, storageLocations#13796878]
(1918) Project
Arguments: [plantId#13796879, plantUuid#13796880, storageLocations#13796878.id AS storageLocId#13796881, storageLocations#13796878.internalRefUUID AS storageLocUuid#13796882]
(1919) LogicalRelation
Arguments: parquet, [product#13796883, plant#13796884, orderDateTime#13796885, planningStartDateTime#13796886], false
(1920) RepartitionByExpression
Arguments: [product#13796883, plant#13796884], 37
(1921) Project
Arguments: [product#13796883, plant#13796884, orderDateTime#13796885]
(1922) LogicalRelation
Arguments: parquet, [systemId#13796887, internalUUID#13796888, plant#13796889, product#13796890, blockedForReplenishmentStartingFrom#13796891, productionAspect#13796892, salesPlant#13796893, listing#13796894, sourceOfSupplyCategory#13796895], false
(1923) Repartition
Arguments: 37, true
(1924) Project
Arguments: [systemId#13796887, internalUUID#13796888, plant#13796889, product#13796890, blockedForReplenishmentStartingFrom#13796891, productionAspect#13796892, salesPlant#13796893, listing#13796894, sourceOfSupplyCategory#13796895, struct(systemId, systemId#13796887, internalUUID, internalUUID#13796888, plant, plant#13796889, product, product#13796890, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#13796891, productionAspect, productionAspect#13796892, salesPlant, salesPlant#13796893, listing, listing#13796894, sourceOfSupplyCategory, sourceOfSupplyCategory#13796895) AS productPlant#13796896]
(1925) Project
Arguments: [productPlant#13796896]
(1926) Join
Arguments: LeftOuter, ((product#13796883 <=> productPlant#13796896.product.internalRefUUID) AND (plant#13796884 <=> productPlant#13796896.plant.internalRefUUID))
(1927) Project
Arguments: [product#13796883, plant#13796884, orderDateTime#13796885, productPlant#13796896]
(1928) LogicalRelation
Arguments: parquet, [systemId#13796897, internalUUID#13796898, id#13796899, displayId#13796900, name#13796901, baseUnitOfMeasure#13796902, unitOfMeasures#13796903, unitOfMeasureConversions#13796904, productionAspect#13796905, salesAspect#13796906, procurementAspect#13796907, productGroup#13796908], false
(1929) Repartition
Arguments: 37, true
(1930) Join
Arguments: LeftOuter, (product#13796883 = internalUUID#13796898)
(1931) Project
Arguments: [product#13796883, plant#13796884, orderDateTime#13796885, productPlant#13796896, systemId#13796897, internalUUID#13796898, id#13796899, displayId#13796900, name#13796901, baseUnitOfMeasure#13796902, unitOfMeasures#13796903, unitOfMeasureConversions#13796904, productionAspect#13796905, salesAspect#13796906, procurementAspect#13796907, productGroup#13796908, filter(unitOfMeasureConversions#13796904, lambdafunction((((lambda u#13792048.measurementUnit1.code = productPlant#13796896.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#13792048.measurementUnit1.internalRefUUID = productPlant#13796896.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#13792048.measurementUnit2.code = baseUnitOfMeasure#13796902.code) AND (lambda u#13792048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#13796902.internalRefUUID))), lambda u#13792048, false)) AS filteredUnitOfMeasureConversions#13796909]
(1932) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13796909.quantityNumerator), true, [quantityNumerator#13796910]
(1933) Project
Arguments: [product#13796883, plant#13796884, orderDateTime#13796885, productPlant#13796896, systemId#13796897, internalUUID#13796898, id#13796899, displayId#13796900, name#13796901, baseUnitOfMeasure#13796902, unitOfMeasures#13796903, unitOfMeasureConversions#13796904, productionAspect#13796905, salesAspect#13796906, procurementAspect#13796907, productGroup#13796908, filteredUnitOfMeasureConversions#13796909, quantityNumerator#13796910]
(1934) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13796909.quantityDenominator), true, [quantityDenominator#13796911]
(1935) Project
Arguments: [product#13796883, plant#13796884, orderDateTime#13796885, productPlant#13796896, systemId#13796897, internalUUID#13796898, id#13796899, displayId#13796900, name#13796901, baseUnitOfMeasure#13796902, unitOfMeasures#13796903, unitOfMeasureConversions#13796904, productionAspect#13796905, salesAspect#13796906, procurementAspect#13796907, productGroup#13796908, filteredUnitOfMeasureConversions#13796909, quantityNumerator#13796910, quantityDenominator#13796911]
(1936) Project
Arguments: [product#13796883, plant#13796884, orderDateTime#13796885, productPlant#13796896, systemId#13796897, internalUUID#13796898, id#13796899, displayId#13796900, name#13796901, baseUnitOfMeasure#13796902, unitOfMeasures#13796903, unitOfMeasureConversions#13796904, productionAspect#13796905, salesAspect#13796906, procurementAspect#13796907, productGroup#13796908, filteredUnitOfMeasureConversions#13796909, quantityNumerator#13796910, quantityDenominator#13796911, (cast(quantityNumerator#13796910 as double) / cast(quantityDenominator#13796911 as double)) AS outboundUnit#13796912]
(1937) Project
Arguments: [product#13796883, plant#13796884, orderDateTime#13796885, productPlant#13796896, systemId#13796897, internalUUID#13796898, id#13796899, displayId#13796900, name#13796901, baseUnitOfMeasure#13796902, unitOfMeasures#13796903, unitOfMeasureConversions#13796904, productionAspect#13796905, salesAspect#13796906, procurementAspect#13796907, productGroup#13796908, filteredUnitOfMeasureConversions#13796909, quantityNumerator#13796910, quantityDenominator#13796911, CASE WHEN (isnull(outboundUnit#13796912) OR (outboundUnit#13796912 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#13796912 END AS outboundUnit#13796913]
(1938) Project
Arguments: [product#13796883, plant#13796884, orderDateTime#13796885, productPlant#13796896, outboundUnit#13796913]
(1939) Project
Arguments: [plant#13796884]
(1940) Deduplicate
Arguments: [plant#13796884]
(1941) Join
Arguments: Inner, (plantUuid#13796880 = plant#13796884)
(1942) Project
Arguments: [plantId#13796879, plantUuid#13796880, storageLocId#13796881, storageLocUuid#13796882]
(1943) Join
Arguments: Inner, (plant#13796852.internalRefUUID <=> plantUuid#13796880)
(1944) Generate
Arguments: explode(filter(stockQuantities#13796854, lambdafunction(((lambda x#13792128.storageLocation.internalRefUuid = storageLocUuid#13796882) AND (lambda x#13792128.storageLocation.Id = storageLocId#13796881)), lambda x#13792128, false))), false, [stockQuantity#13796914]
(1945) Project
Arguments: [systemId#13796849, internalUUID#13796850, product#13796851, plant#13796852, calculationDateTime#13796853, stockQuantities#13796854, plantId#13796879, plantUuid#13796880, storageLocId#13796881, storageLocUuid#13796882, stockQuantity#13796914]
(1946) Aggregate
Arguments: [plantUuid#13796880, internalUUID#13796850, plant#13796852, product#13796851, systemId#13796849], [plantUuid#13796880, internalUUID#13796850, plant#13796852, product#13796851, systemId#13796849, first(calculationDateTime#13796853, false) AS calculationDateTime#13796915, collect_list(stockQuantity#13796914, 0, 0) AS stockQuantities#13796916]
(1947) Project
Arguments: [systemId#13796849, internalUUID#13796850, product#13796851, plant#13796852, calculationDateTime#13796915, stockQuantities#13796916]
(1948) Generate
Arguments: explode(stockQuantities#13796916), false, [stockQuantity#13796917]
(1949) Project
Arguments: [systemId#13796849, internalUUID#13796850, product#13796851, plant#13796852, calculationDateTime#13796915, stockQuantities#13796916, stockQuantity#13796917]
(1950) Project
Arguments: [plant#13796852.id AS plant#13796918, plant#13796852.internalRefUUID AS plantUuid#13796919, product#13796851.id AS product#13796920, product#13796851.internalRefUUID AS productUuid#13796921, calculationDateTime#13796915, stockQuantity#13796917.storagelocation.id AS storageLocId#13796922, stockQuantity#13796917.storagelocation.internalRefUUID AS storageLocUuid#13796923, stockQuantity#13796917.quantity.measure AS quantity#13796924, stockQuantity#13796917.specialStockIndicator.code AS specialStockIndicator#13796925, stockQuantity#13796917.stockType.code AS stockType#13796926]
(1951) Filter
Arguments: ((specialStockIndicator#13796925 = ) AND (stockType#13796926 = 01))
(1952) LogicalRelation
Arguments: parquet, [product#13796927, plant#13796928, orderDateTime#13796929, planningStartDateTime#13796930], false
(1953) RepartitionByExpression
Arguments: [product#13796927, plant#13796928], 37
(1954) Project
Arguments: [product#13796927, plant#13796928, orderDateTime#13796929]
(1955) LogicalRelation
Arguments: parquet, [systemId#13796931, internalUUID#13796932, plant#13796933, product#13796934, blockedForReplenishmentStartingFrom#13796935, productionAspect#13796936, salesPlant#13796937, listing#13796938, sourceOfSupplyCategory#13796939], false
(1956) Repartition
Arguments: 37, true
(1957) Project
Arguments: [systemId#13796931, internalUUID#13796932, plant#13796933, product#13796934, blockedForReplenishmentStartingFrom#13796935, productionAspect#13796936, salesPlant#13796937, listing#13796938, sourceOfSupplyCategory#13796939, struct(systemId, systemId#13796931, internalUUID, internalUUID#13796932, plant, plant#13796933, product, product#13796934, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#13796935, productionAspect, productionAspect#13796936, salesPlant, salesPlant#13796937, listing, listing#13796938, sourceOfSupplyCategory, sourceOfSupplyCategory#13796939) AS productPlant#13796940]
(1958) Project
Arguments: [productPlant#13796940]
(1959) Join
Arguments: LeftOuter, ((product#13796927 <=> productPlant#13796940.product.internalRefUUID) AND (plant#13796928 <=> productPlant#13796940.plant.internalRefUUID))
(1960) Project
Arguments: [product#13796927, plant#13796928, orderDateTime#13796929, productPlant#13796940]
(1961) LogicalRelation
Arguments: parquet, [systemId#13796941, internalUUID#13796942, id#13796943, displayId#13796944, name#13796945, baseUnitOfMeasure#13796946, unitOfMeasures#13796947, unitOfMeasureConversions#13796948, productionAspect#13796949, salesAspect#13796950, procurementAspect#13796951, productGroup#13796952], false
(1962) Repartition
Arguments: 37, true
(1963) Join
Arguments: LeftOuter, (product#13796927 = internalUUID#13796942)
(1964) Project
Arguments: [product#13796927, plant#13796928, orderDateTime#13796929, productPlant#13796940, systemId#13796941, internalUUID#13796942, id#13796943, displayId#13796944, name#13796945, baseUnitOfMeasure#13796946, unitOfMeasures#13796947, unitOfMeasureConversions#13796948, productionAspect#13796949, salesAspect#13796950, procurementAspect#13796951, productGroup#13796952, filter(unitOfMeasureConversions#13796948, lambdafunction((((lambda u#13792048.measurementUnit1.code = productPlant#13796940.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#13792048.measurementUnit1.internalRefUUID = productPlant#13796940.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#13792048.measurementUnit2.code = baseUnitOfMeasure#13796946.code) AND (lambda u#13792048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#13796946.internalRefUUID))), lambda u#13792048, false)) AS filteredUnitOfMeasureConversions#13796953]
(1965) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13796953.quantityNumerator), true, [quantityNumerator#13796954]
(1966) Project
Arguments: [product#13796927, plant#13796928, orderDateTime#13796929, productPlant#13796940, systemId#13796941, internalUUID#13796942, id#13796943, displayId#13796944, name#13796945, baseUnitOfMeasure#13796946, unitOfMeasures#13796947, unitOfMeasureConversions#13796948, productionAspect#13796949, salesAspect#13796950, procurementAspect#13796951, productGroup#13796952, filteredUnitOfMeasureConversions#13796953, quantityNumerator#13796954]
(1967) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13796953.quantityDenominator), true, [quantityDenominator#13796955]
(1968) Project
Arguments: [product#13796927, plant#13796928, orderDateTime#13796929, productPlant#13796940, systemId#13796941, internalUUID#13796942, id#13796943, displayId#13796944, name#13796945, baseUnitOfMeasure#13796946, unitOfMeasures#13796947, unitOfMeasureConversions#13796948, productionAspect#13796949, salesAspect#13796950, procurementAspect#13796951, productGroup#13796952, filteredUnitOfMeasureConversions#13796953, quantityNumerator#13796954, quantityDenominator#13796955]
(1969) Project
Arguments: [product#13796927, plant#13796928, orderDateTime#13796929, productPlant#13796940, systemId#13796941, internalUUID#13796942, id#13796943, displayId#13796944, name#13796945, baseUnitOfMeasure#13796946, unitOfMeasures#13796947, unitOfMeasureConversions#13796948, productionAspect#13796949, salesAspect#13796950, procurementAspect#13796951, productGroup#13796952, filteredUnitOfMeasureConversions#13796953, quantityNumerator#13796954, quantityDenominator#13796955, (cast(quantityNumerator#13796954 as double) / cast(quantityDenominator#13796955 as double)) AS outboundUnit#13796956]
(1970) Project
Arguments: [product#13796927, plant#13796928, orderDateTime#13796929, productPlant#13796940, systemId#13796941, internalUUID#13796942, id#13796943, displayId#13796944, name#13796945, baseUnitOfMeasure#13796946, unitOfMeasures#13796947, unitOfMeasureConversions#13796948, productionAspect#13796949, salesAspect#13796950, procurementAspect#13796951, productGroup#13796952, filteredUnitOfMeasureConversions#13796953, quantityNumerator#13796954, quantityDenominator#13796955, CASE WHEN (isnull(outboundUnit#13796956) OR (outboundUnit#13796956 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#13796956 END AS outboundUnit#13796957]
(1971) Project
Arguments: [product#13796927, plant#13796928, orderDateTime#13796929, productPlant#13796940, outboundUnit#13796957]
(1972) Join
Arguments: Inner, ((plantUuid#13796919 = plant#13796928) AND (productUuid#13796921 = product#13796927))
(1973) Filter
Arguments: (calculationDateTime#13796915 <= orderDateTime#13796929)
(1974) Project
Arguments: [plantUuid#13796919 AS plant#13796958, productUuid#13796921 AS product#13796959, storageLocId#13796922, calculationDateTime#13796915, quantity#13796924]
(1975) LogicalRelation
Arguments: parquet, [systemId#13796960, internalUUID#13796961, product#13796962, plant#13796963, calculationDateTime#13796964, stockQuantities#13796965], false
(1976) Repartition
Arguments: 37, true
(1977) LogicalRelation
Arguments: parquet, [marketUnit#13796966, description#13796967, articleHierarchy#13796968, defaultCurrency#13796969, responsibilities#13796970, replenishmentTypes#13796971, distributionCenters#13796972, assignedArticleHierarchyNodes#13796973, minOrderQtySetting#13796974, listingCheck#13796975, odsSelection#13796976, demandProfiles#13796977, constraintProfiles#13796978, optimizationProfiles#13796979, orderGroupSplitProfiles#13796980, supplierMinimumProfiles#13796981, multipleRestrictionProfiles#13796982, preferredUomSource#13796983, handlingOfUnfulfilledDemands#13796984, negligibleQuantitiesThreshold#13796985, eventtype#13796986, minOrderQtySettingInternal#13796987], false
(1978) Repartition
Arguments: 37, true
(1979) Filter
Arguments: (marketUnit#13796966 <=> AUTO_ALL_ProdLoc)
(1980) Project
Arguments: [marketUnit#13796966, description#13796967, articleHierarchy#13796968, defaultCurrency#13796969, responsibilities#13796970, replenishmentTypes#13796971, distributionCenters#13796972, assignedArticleHierarchyNodes#13796973, minOrderQtySetting#13796974, listingCheck#13796975, odsSelection#13796976, demandProfiles#13796977, constraintProfiles#13796978, optimizationProfiles#13796979, orderGroupSplitProfiles#13796980, supplierMinimumProfiles#13796981, multipleRestrictionProfiles#13796982, preferredUomSource#13796983, handlingOfUnfulfilledDemands#13796984, negligibleQuantitiesThreshold#13796985, eventtype#13796986, minOrderQtySettingInternal#13796987]
(1981) Project
Arguments: [distributionCenters#13796972]
(1982) Generate
Arguments: explode(distributionCenters#13796972), false, [distributionCenters#13796988]
(1983) Project
Arguments: [distributionCenters#13796988]
(1984) Generate
Arguments: explode(distributionCenters#13796988.storageLocations), false, [storageLocations#13796989]
(1985) Project
Arguments: [distributionCenters#13796988.id AS plantId#13796990, distributionCenters#13796988.internalRefUUID AS plantUuid#13796991, storageLocations#13796989]
(1986) Project
Arguments: [plantId#13796990, plantUuid#13796991, storageLocations#13796989.id AS storageLocId#13796992, storageLocations#13796989.internalRefUUID AS storageLocUuid#13796993]
(1987) LogicalRelation
Arguments: parquet, [product#13796994, plant#13796995, orderDateTime#13796996, planningStartDateTime#13796997], false
(1988) RepartitionByExpression
Arguments: [product#13796994, plant#13796995], 37
(1989) Project
Arguments: [product#13796994, plant#13796995, orderDateTime#13796996]
(1990) LogicalRelation
Arguments: parquet, [systemId#13796998, internalUUID#13796999, plant#13797000, product#13797001, blockedForReplenishmentStartingFrom#13797002, productionAspect#13797003, salesPlant#13797004, listing#13797005, sourceOfSupplyCategory#13797006], false
(1991) Repartition
Arguments: 37, true
(1992) Project
Arguments: [systemId#13796998, internalUUID#13796999, plant#13797000, product#13797001, blockedForReplenishmentStartingFrom#13797002, productionAspect#13797003, salesPlant#13797004, listing#13797005, sourceOfSupplyCategory#13797006, struct(systemId, systemId#13796998, internalUUID, internalUUID#13796999, plant, plant#13797000, product, product#13797001, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#13797002, productionAspect, productionAspect#13797003, salesPlant, salesPlant#13797004, listing, listing#13797005, sourceOfSupplyCategory, sourceOfSupplyCategory#13797006) AS productPlant#13797007]
(1993) Project
Arguments: [productPlant#13797007]
(1994) Join
Arguments: LeftOuter, ((product#13796994 <=> productPlant#13797007.product.internalRefUUID) AND (plant#13796995 <=> productPlant#13797007.plant.internalRefUUID))
(1995) Project
Arguments: [product#13796994, plant#13796995, orderDateTime#13796996, productPlant#13797007]
(1996) LogicalRelation
Arguments: parquet, [systemId#13797008, internalUUID#13797009, id#13797010, displayId#13797011, name#13797012, baseUnitOfMeasure#13797013, unitOfMeasures#13797014, unitOfMeasureConversions#13797015, productionAspect#13797016, salesAspect#13797017, procurementAspect#13797018, productGroup#13797019], false
(1997) Repartition
Arguments: 37, true
(1998) Join
Arguments: LeftOuter, (product#13796994 = internalUUID#13797009)
(1999) Project
Arguments: [product#13796994, plant#13796995, orderDateTime#13796996, productPlant#13797007, systemId#13797008, internalUUID#13797009, id#13797010, displayId#13797011, name#13797012, baseUnitOfMeasure#13797013, unitOfMeasures#13797014, unitOfMeasureConversions#13797015, productionAspect#13797016, salesAspect#13797017, procurementAspect#13797018, productGroup#13797019, filter(unitOfMeasureConversions#13797015, lambdafunction((((lambda u#13792048.measurementUnit1.code = productPlant#13797007.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#13792048.measurementUnit1.internalRefUUID = productPlant#13797007.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#13792048.measurementUnit2.code = baseUnitOfMeasure#13797013.code) AND (lambda u#13792048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#13797013.internalRefUUID))), lambda u#13792048, false)) AS filteredUnitOfMeasureConversions#13797020]
(2000) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13797020.quantityNumerator), true, [quantityNumerator#13797021]
(2001) Project
Arguments: [product#13796994, plant#13796995, orderDateTime#13796996, productPlant#13797007, systemId#13797008, internalUUID#13797009, id#13797010, displayId#13797011, name#13797012, baseUnitOfMeasure#13797013, unitOfMeasures#13797014, unitOfMeasureConversions#13797015, productionAspect#13797016, salesAspect#13797017, procurementAspect#13797018, productGroup#13797019, filteredUnitOfMeasureConversions#13797020, quantityNumerator#13797021]
(2002) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13797020.quantityDenominator), true, [quantityDenominator#13797022]
(2003) Project
Arguments: [product#13796994, plant#13796995, orderDateTime#13796996, productPlant#13797007, systemId#13797008, internalUUID#13797009, id#13797010, displayId#13797011, name#13797012, baseUnitOfMeasure#13797013, unitOfMeasures#13797014, unitOfMeasureConversions#13797015, productionAspect#13797016, salesAspect#13797017, procurementAspect#13797018, productGroup#13797019, filteredUnitOfMeasureConversions#13797020, quantityNumerator#13797021, quantityDenominator#13797022]
(2004) Project
Arguments: [product#13796994, plant#13796995, orderDateTime#13796996, productPlant#13797007, systemId#13797008, internalUUID#13797009, id#13797010, displayId#13797011, name#13797012, baseUnitOfMeasure#13797013, unitOfMeasures#13797014, unitOfMeasureConversions#13797015, productionAspect#13797016, salesAspect#13797017, procurementAspect#13797018, productGroup#13797019, filteredUnitOfMeasureConversions#13797020, quantityNumerator#13797021, quantityDenominator#13797022, (cast(quantityNumerator#13797021 as double) / cast(quantityDenominator#13797022 as double)) AS outboundUnit#13797023]
(2005) Project
Arguments: [product#13796994, plant#13796995, orderDateTime#13796996, productPlant#13797007, systemId#13797008, internalUUID#13797009, id#13797010, displayId#13797011, name#13797012, baseUnitOfMeasure#13797013, unitOfMeasures#13797014, unitOfMeasureConversions#13797015, productionAspect#13797016, salesAspect#13797017, procurementAspect#13797018, productGroup#13797019, filteredUnitOfMeasureConversions#13797020, quantityNumerator#13797021, quantityDenominator#13797022, CASE WHEN (isnull(outboundUnit#13797023) OR (outboundUnit#13797023 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#13797023 END AS outboundUnit#13797024]
(2006) Project
Arguments: [product#13796994, plant#13796995, orderDateTime#13796996, productPlant#13797007, outboundUnit#13797024]
(2007) Project
Arguments: [plant#13796995]
(2008) Deduplicate
Arguments: [plant#13796995]
(2009) Join
Arguments: Inner, (plantUuid#13796991 = plant#13796995)
(2010) Project
Arguments: [plantId#13796990, plantUuid#13796991, storageLocId#13796992, storageLocUuid#13796993]
(2011) Join
Arguments: Inner, (plant#13796963.internalRefUUID <=> plantUuid#13796991)
(2012) Generate
Arguments: explode(filter(stockQuantities#13796965, lambdafunction(((lambda x#13792128.storageLocation.internalRefUuid = storageLocUuid#13796993) AND (lambda x#13792128.storageLocation.Id = storageLocId#13796992)), lambda x#13792128, false))), false, [stockQuantity#13797025]
(2013) Project
Arguments: [systemId#13796960, internalUUID#13796961, product#13796962, plant#13796963, calculationDateTime#13796964, stockQuantities#13796965, plantId#13796990, plantUuid#13796991, storageLocId#13796992, storageLocUuid#13796993, stockQuantity#13797025]
(2014) Aggregate
Arguments: [plantUuid#13796991, internalUUID#13796961, plant#13796963, product#13796962, systemId#13796960], [plantUuid#13796991, internalUUID#13796961, plant#13796963, product#13796962, systemId#13796960, first(calculationDateTime#13796964, false) AS calculationDateTime#13797026, collect_list(stockQuantity#13797025, 0, 0) AS stockQuantities#13797027]
(2015) Project
Arguments: [systemId#13796960, internalUUID#13796961, product#13796962, plant#13796963, calculationDateTime#13797026, stockQuantities#13797027]
(2016) Generate
Arguments: explode(stockQuantities#13797027), false, [stockQuantity#13797028]
(2017) Project
Arguments: [systemId#13796960, internalUUID#13796961, product#13796962, plant#13796963, calculationDateTime#13797026, stockQuantities#13797027, stockQuantity#13797028]
(2018) Project
Arguments: [plant#13796963.id AS plant#13797029, plant#13796963.internalRefUUID AS plantUuid#13797030, product#13796962.id AS product#13797031, product#13796962.internalRefUUID AS productUuid#13797032, calculationDateTime#13797026, stockQuantity#13797028.storagelocation.id AS storageLocId#13797033, stockQuantity#13797028.storagelocation.internalRefUUID AS storageLocUuid#13797034, stockQuantity#13797028.quantity.measure AS quantity#13797035, stockQuantity#13797028.specialStockIndicator.code AS specialStockIndicator#13797036, stockQuantity#13797028.stockType.code AS stockType#13797037]
(2019) Filter
Arguments: ((specialStockIndicator#13797036 = ) AND (stockType#13797037 = 01))
(2020) LogicalRelation
Arguments: parquet, [product#13797038, plant#13797039, orderDateTime#13797040, planningStartDateTime#13797041], false
(2021) RepartitionByExpression
Arguments: [product#13797038, plant#13797039], 37
(2022) Project
Arguments: [product#13797038, plant#13797039, orderDateTime#13797040]
(2023) LogicalRelation
Arguments: parquet, [systemId#13797042, internalUUID#13797043, plant#13797044, product#13797045, blockedForReplenishmentStartingFrom#13797046, productionAspect#13797047, salesPlant#13797048, listing#13797049, sourceOfSupplyCategory#13797050], false
(2024) Repartition
Arguments: 37, true
(2025) Project
Arguments: [systemId#13797042, internalUUID#13797043, plant#13797044, product#13797045, blockedForReplenishmentStartingFrom#13797046, productionAspect#13797047, salesPlant#13797048, listing#13797049, sourceOfSupplyCategory#13797050, struct(systemId, systemId#13797042, internalUUID, internalUUID#13797043, plant, plant#13797044, product, product#13797045, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#13797046, productionAspect, productionAspect#13797047, salesPlant, salesPlant#13797048, listing, listing#13797049, sourceOfSupplyCategory, sourceOfSupplyCategory#13797050) AS productPlant#13797051]
(2026) Project
Arguments: [productPlant#13797051]
(2027) Join
Arguments: LeftOuter, ((product#13797038 <=> productPlant#13797051.product.internalRefUUID) AND (plant#13797039 <=> productPlant#13797051.plant.internalRefUUID))
(2028) Project
Arguments: [product#13797038, plant#13797039, orderDateTime#13797040, productPlant#13797051]
(2029) LogicalRelation
Arguments: parquet, [systemId#13797052, internalUUID#13797053, id#13797054, displayId#13797055, name#13797056, baseUnitOfMeasure#13797057, unitOfMeasures#13797058, unitOfMeasureConversions#13797059, productionAspect#13797060, salesAspect#13797061, procurementAspect#13797062, productGroup#13797063], false
(2030) Repartition
Arguments: 37, true
(2031) Join
Arguments: LeftOuter, (product#13797038 = internalUUID#13797053)
(2032) Project
Arguments: [product#13797038, plant#13797039, orderDateTime#13797040, productPlant#13797051, systemId#13797052, internalUUID#13797053, id#13797054, displayId#13797055, name#13797056, baseUnitOfMeasure#13797057, unitOfMeasures#13797058, unitOfMeasureConversions#13797059, productionAspect#13797060, salesAspect#13797061, procurementAspect#13797062, productGroup#13797063, filter(unitOfMeasureConversions#13797059, lambdafunction((((lambda u#13792048.measurementUnit1.code = productPlant#13797051.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#13792048.measurementUnit1.internalRefUUID = productPlant#13797051.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#13792048.measurementUnit2.code = baseUnitOfMeasure#13797057.code) AND (lambda u#13792048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#13797057.internalRefUUID))), lambda u#13792048, false)) AS filteredUnitOfMeasureConversions#13797064]
(2033) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13797064.quantityNumerator), true, [quantityNumerator#13797065]
(2034) Project
Arguments: [product#13797038, plant#13797039, orderDateTime#13797040, productPlant#13797051, systemId#13797052, internalUUID#13797053, id#13797054, displayId#13797055, name#13797056, baseUnitOfMeasure#13797057, unitOfMeasures#13797058, unitOfMeasureConversions#13797059, productionAspect#13797060, salesAspect#13797061, procurementAspect#13797062, productGroup#13797063, filteredUnitOfMeasureConversions#13797064, quantityNumerator#13797065]
(2035) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13797064.quantityDenominator), true, [quantityDenominator#13797066]
(2036) Project
Arguments: [product#13797038, plant#13797039, orderDateTime#13797040, productPlant#13797051, systemId#13797052, internalUUID#13797053, id#13797054, displayId#13797055, name#13797056, baseUnitOfMeasure#13797057, unitOfMeasures#13797058, unitOfMeasureConversions#13797059, productionAspect#13797060, salesAspect#13797061, procurementAspect#13797062, productGroup#13797063, filteredUnitOfMeasureConversions#13797064, quantityNumerator#13797065, quantityDenominator#13797066]
(2037) Project
Arguments: [product#13797038, plant#13797039, orderDateTime#13797040, productPlant#13797051, systemId#13797052, internalUUID#13797053, id#13797054, displayId#13797055, name#13797056, baseUnitOfMeasure#13797057, unitOfMeasures#13797058, unitOfMeasureConversions#13797059, productionAspect#13797060, salesAspect#13797061, procurementAspect#13797062, productGroup#13797063, filteredUnitOfMeasureConversions#13797064, quantityNumerator#13797065, quantityDenominator#13797066, (cast(quantityNumerator#13797065 as double) / cast(quantityDenominator#13797066 as double)) AS outboundUnit#13797067]
(2038) Project
Arguments: [product#13797038, plant#13797039, orderDateTime#13797040, productPlant#13797051, systemId#13797052, internalUUID#13797053, id#13797054, displayId#13797055, name#13797056, baseUnitOfMeasure#13797057, unitOfMeasures#13797058, unitOfMeasureConversions#13797059, productionAspect#13797060, salesAspect#13797061, procurementAspect#13797062, productGroup#13797063, filteredUnitOfMeasureConversions#13797064, quantityNumerator#13797065, quantityDenominator#13797066, CASE WHEN (isnull(outboundUnit#13797067) OR (outboundUnit#13797067 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#13797067 END AS outboundUnit#13797068]
(2039) Project
Arguments: [product#13797038, plant#13797039, orderDateTime#13797040, productPlant#13797051, outboundUnit#13797068]
(2040) Join
Arguments: Inner, ((plantUuid#13797030 = plant#13797039) AND (productUuid#13797032 = product#13797038))
(2041) Filter
Arguments: (calculationDateTime#13797026 <= orderDateTime#13797040)
(2042) Project
Arguments: [plantUuid#13797030 AS plant#13797069, productUuid#13797032 AS product#13797070, storageLocId#13797033, calculationDateTime#13797026, quantity#13797035]
(2043) Aggregate
Arguments: [plant#13797069, product#13797070, storageLocId#13797033], [plant#13797069, product#13797070, storageLocId#13797033, max(calculationDateTime#13797026) AS max_calc_datetime#13797071]
(2044) Join
Arguments: Inner, ((((plant#13796958 <=> plant#13797069) AND (product#13796959 <=> product#13797070)) AND (storageLocId#13796922 <=> storageLocId#13797033)) AND (calculationDateTime#13796915 <=> max_calc_datetime#13797071))
(2045) Project
Arguments: [plant#13796958, product#13796959, storageLocId#13796922, calculationDateTime#13796915, quantity#13796924]
(2046) Aggregate
Arguments: [product#13796959, plant#13796958], [product#13796959, plant#13796958, sum(quantity#13796924) AS quantitySum#13797072, min(calculationDateTime#13796915) AS minCalculationDateTime#13797073]
(2047) Project
Arguments: [product#13796959, plant#13796958, quantitySum#13797072, minCalculationDateTime#13797073, round(quantitySum#13797072, 0) AS roundedQuantitySum#13797074]
(2048) Join
Arguments: LeftOuter, ((plant#13796819 = plant#13796958) AND (product#13796818 = product#13796959))
(2049) Project
Arguments: [product#13796818, plant#13796819, orderDateTime#13796820, productPlant#13796831, outboundUnit#13796848, roundedQuantitySum#13797074, minCalculationDateTime#13797073]
(2050) Project
Arguments: [product#13796818, plant#13796819, orderDateTime#13796820, productPlant#13796831, outboundUnit#13796848, roundedQuantitySum#13797074, minCalculationDateTime#13797073, CASE WHEN isnotnull(minCalculationDateTime#13797073) THEN minCalculationDateTime#13797073 ELSE orderDateTime#13796820 END AS stockDatetime#13797075]
(2051) Project
Arguments: [product#13796818, plant#13796819, orderDateTime#13796820, productPlant#13796831, outboundUnit#13796848, roundedQuantitySum#13797074, minCalculationDateTime#13797073, stockDatetime#13797075, CASE WHEN isnotnull(roundedQuantitySum#13797074) THEN array(roundedQuantitySum#13797074) ELSE array(0.0) END AS stockBatchQuantities#13797076]
(2052) Project
Arguments: [product#13796818, plant#13796819, orderDateTime#13796820, productPlant#13796831, outboundUnit#13796848, roundedQuantitySum#13797074, minCalculationDateTime#13797073, stockDatetime#13797075, stockBatchQuantities#13797076, array(2199-01-01 00:00:00) AS stockBatchShelfLifeEndDatetimes#13797077]
(2053) Project
Arguments: [product#13796818, plant#13796819, orderDateTime#13796820, productPlant#13796831, outboundUnit#13796848, roundedQuantitySum#13797074, stockDatetime#13797075, stockBatchQuantities#13797076, stockBatchShelfLifeEndDatetimes#13797077]
(2054) Project
Arguments: [product#13796818, plant#13796819, orderDateTime#13796820, productPlant#13796831, outboundUnit#13796848, stockDatetime#13797075, stockBatchQuantities#13797076, stockBatchShelfLifeEndDatetimes#13797077]
(2055) LogicalRelation
Arguments: parquet, [product#13797078, plant#13797079, orderDateTime#13797080, planningStartDateTime#13797081], false
(2056) RepartitionByExpression
Arguments: [product#13797078, plant#13797079], 37
(2057) Project
Arguments: [product#13797078, plant#13797079, orderDateTime#13797080]
(2058) LogicalRelation
Arguments: parquet, [systemId#13797082, internalUUID#13797083, plant#13797084, product#13797085, blockedForReplenishmentStartingFrom#13797086, productionAspect#13797087, salesPlant#13797088, listing#13797089, sourceOfSupplyCategory#13797090], false
(2059) Repartition
Arguments: 37, true
(2060) Project
Arguments: [systemId#13797082, internalUUID#13797083, plant#13797084, product#13797085, blockedForReplenishmentStartingFrom#13797086, productionAspect#13797087, salesPlant#13797088, listing#13797089, sourceOfSupplyCategory#13797090, struct(systemId, systemId#13797082, internalUUID, internalUUID#13797083, plant, plant#13797084, product, product#13797085, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#13797086, productionAspect, productionAspect#13797087, salesPlant, salesPlant#13797088, listing, listing#13797089, sourceOfSupplyCategory, sourceOfSupplyCategory#13797090) AS productPlant#13797091]
(2061) Project
Arguments: [productPlant#13797091]
(2062) Join
Arguments: LeftOuter, ((product#13797078 <=> productPlant#13797091.product.internalRefUUID) AND (plant#13797079 <=> productPlant#13797091.plant.internalRefUUID))
(2063) Project
Arguments: [product#13797078, plant#13797079, orderDateTime#13797080, productPlant#13797091]
(2064) LogicalRelation
Arguments: parquet, [systemId#13797092, internalUUID#13797093, id#13797094, displayId#13797095, name#13797096, baseUnitOfMeasure#13797097, unitOfMeasures#13797098, unitOfMeasureConversions#13797099, productionAspect#13797100, salesAspect#13797101, procurementAspect#13797102, productGroup#13797103], false
(2065) Repartition
Arguments: 37, true
(2066) Join
Arguments: LeftOuter, (product#13797078 = internalUUID#13797093)
(2067) Project
Arguments: [product#13797078, plant#13797079, orderDateTime#13797080, productPlant#13797091, systemId#13797092, internalUUID#13797093, id#13797094, displayId#13797095, name#13797096, baseUnitOfMeasure#13797097, unitOfMeasures#13797098, unitOfMeasureConversions#13797099, productionAspect#13797100, salesAspect#13797101, procurementAspect#13797102, productGroup#13797103, filter(unitOfMeasureConversions#13797099, lambdafunction((((lambda u#13792048.measurementUnit1.code = productPlant#13797091.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#13792048.measurementUnit1.internalRefUUID = productPlant#13797091.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#13792048.measurementUnit2.code = baseUnitOfMeasure#13797097.code) AND (lambda u#13792048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#13797097.internalRefUUID))), lambda u#13792048, false)) AS filteredUnitOfMeasureConversions#13797104]
(2068) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13797104.quantityNumerator), true, [quantityNumerator#13797105]
(2069) Project
Arguments: [product#13797078, plant#13797079, orderDateTime#13797080, productPlant#13797091, systemId#13797092, internalUUID#13797093, id#13797094, displayId#13797095, name#13797096, baseUnitOfMeasure#13797097, unitOfMeasures#13797098, unitOfMeasureConversions#13797099, productionAspect#13797100, salesAspect#13797101, procurementAspect#13797102, productGroup#13797103, filteredUnitOfMeasureConversions#13797104, quantityNumerator#13797105]
(2070) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13797104.quantityDenominator), true, [quantityDenominator#13797106]
(2071) Project
Arguments: [product#13797078, plant#13797079, orderDateTime#13797080, productPlant#13797091, systemId#13797092, internalUUID#13797093, id#13797094, displayId#13797095, name#13797096, baseUnitOfMeasure#13797097, unitOfMeasures#13797098, unitOfMeasureConversions#13797099, productionAspect#13797100, salesAspect#13797101, procurementAspect#13797102, productGroup#13797103, filteredUnitOfMeasureConversions#13797104, quantityNumerator#13797105, quantityDenominator#13797106]
(2072) Project
Arguments: [product#13797078, plant#13797079, orderDateTime#13797080, productPlant#13797091, systemId#13797092, internalUUID#13797093, id#13797094, displayId#13797095, name#13797096, baseUnitOfMeasure#13797097, unitOfMeasures#13797098, unitOfMeasureConversions#13797099, productionAspect#13797100, salesAspect#13797101, procurementAspect#13797102, productGroup#13797103, filteredUnitOfMeasureConversions#13797104, quantityNumerator#13797105, quantityDenominator#13797106, (cast(quantityNumerator#13797105 as double) / cast(quantityDenominator#13797106 as double)) AS outboundUnit#13797107]
(2073) Project
Arguments: [product#13797078, plant#13797079, orderDateTime#13797080, productPlant#13797091, systemId#13797092, internalUUID#13797093, id#13797094, displayId#13797095, name#13797096, baseUnitOfMeasure#13797097, unitOfMeasures#13797098, unitOfMeasureConversions#13797099, productionAspect#13797100, salesAspect#13797101, procurementAspect#13797102, productGroup#13797103, filteredUnitOfMeasureConversions#13797104, quantityNumerator#13797105, quantityDenominator#13797106, CASE WHEN (isnull(outboundUnit#13797107) OR (outboundUnit#13797107 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#13797107 END AS outboundUnit#13797108]
(2074) Project
Arguments: [product#13797078, plant#13797079, orderDateTime#13797080, productPlant#13797091, outboundUnit#13797108]
(2075) LogicalRelation
Arguments: parquet, [systemId#13797109, internalUUID#13797110, product#13797111, plant#13797112, calculationDateTime#13797113, stockQuantities#13797114], false
(2076) Repartition
Arguments: 37, true
(2077) LogicalRelation
Arguments: parquet, [marketUnit#13797115, description#13797116, articleHierarchy#13797117, defaultCurrency#13797118, responsibilities#13797119, replenishmentTypes#13797120, distributionCenters#13797121, assignedArticleHierarchyNodes#13797122, minOrderQtySetting#13797123, listingCheck#13797124, odsSelection#13797125, demandProfiles#13797126, constraintProfiles#13797127, optimizationProfiles#13797128, orderGroupSplitProfiles#13797129, supplierMinimumProfiles#13797130, multipleRestrictionProfiles#13797131, preferredUomSource#13797132, handlingOfUnfulfilledDemands#13797133, negligibleQuantitiesThreshold#13797134, eventtype#13797135, minOrderQtySettingInternal#13797136], false
(2078) Repartition
Arguments: 37, true
(2079) Filter
Arguments: (marketUnit#13797115 <=> AUTO_ALL_ProdLoc)
(2080) Project
Arguments: [marketUnit#13797115, description#13797116, articleHierarchy#13797117, defaultCurrency#13797118, responsibilities#13797119, replenishmentTypes#13797120, distributionCenters#13797121, assignedArticleHierarchyNodes#13797122, minOrderQtySetting#13797123, listingCheck#13797124, odsSelection#13797125, demandProfiles#13797126, constraintProfiles#13797127, optimizationProfiles#13797128, orderGroupSplitProfiles#13797129, supplierMinimumProfiles#13797130, multipleRestrictionProfiles#13797131, preferredUomSource#13797132, handlingOfUnfulfilledDemands#13797133, negligibleQuantitiesThreshold#13797134, eventtype#13797135, minOrderQtySettingInternal#13797136]
(2081) Project
Arguments: [distributionCenters#13797121]
(2082) Generate
Arguments: explode(distributionCenters#13797121), false, [distributionCenters#13797137]
(2083) Project
Arguments: [distributionCenters#13797137]
(2084) Generate
Arguments: explode(distributionCenters#13797137.storageLocations), false, [storageLocations#13797138]
(2085) Project
Arguments: [distributionCenters#13797137.id AS plantId#13797139, distributionCenters#13797137.internalRefUUID AS plantUuid#13797140, storageLocations#13797138]
(2086) Project
Arguments: [plantId#13797139, plantUuid#13797140, storageLocations#13797138.id AS storageLocId#13797141, storageLocations#13797138.internalRefUUID AS storageLocUuid#13797142]
(2087) LogicalRelation
Arguments: parquet, [product#13797143, plant#13797144, orderDateTime#13797145, planningStartDateTime#13797146], false
(2088) RepartitionByExpression
Arguments: [product#13797143, plant#13797144], 37
(2089) Project
Arguments: [product#13797143, plant#13797144, orderDateTime#13797145]
(2090) LogicalRelation
Arguments: parquet, [systemId#13797147, internalUUID#13797148, plant#13797149, product#13797150, blockedForReplenishmentStartingFrom#13797151, productionAspect#13797152, salesPlant#13797153, listing#13797154, sourceOfSupplyCategory#13797155], false
(2091) Repartition
Arguments: 37, true
(2092) Project
Arguments: [systemId#13797147, internalUUID#13797148, plant#13797149, product#13797150, blockedForReplenishmentStartingFrom#13797151, productionAspect#13797152, salesPlant#13797153, listing#13797154, sourceOfSupplyCategory#13797155, struct(systemId, systemId#13797147, internalUUID, internalUUID#13797148, plant, plant#13797149, product, product#13797150, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#13797151, productionAspect, productionAspect#13797152, salesPlant, salesPlant#13797153, listing, listing#13797154, sourceOfSupplyCategory, sourceOfSupplyCategory#13797155) AS productPlant#13797156]
(2093) Project
Arguments: [productPlant#13797156]
(2094) Join
Arguments: LeftOuter, ((product#13797143 <=> productPlant#13797156.product.internalRefUUID) AND (plant#13797144 <=> productPlant#13797156.plant.internalRefUUID))
(2095) Project
Arguments: [product#13797143, plant#13797144, orderDateTime#13797145, productPlant#13797156]
(2096) LogicalRelation
Arguments: parquet, [systemId#13797157, internalUUID#13797158, id#13797159, displayId#13797160, name#13797161, baseUnitOfMeasure#13797162, unitOfMeasures#13797163, unitOfMeasureConversions#13797164, productionAspect#13797165, salesAspect#13797166, procurementAspect#13797167, productGroup#13797168], false
(2097) Repartition
Arguments: 37, true
(2098) Join
Arguments: LeftOuter, (product#13797143 = internalUUID#13797158)
(2099) Project
Arguments: [product#13797143, plant#13797144, orderDateTime#13797145, productPlant#13797156, systemId#13797157, internalUUID#13797158, id#13797159, displayId#13797160, name#13797161, baseUnitOfMeasure#13797162, unitOfMeasures#13797163, unitOfMeasureConversions#13797164, productionAspect#13797165, salesAspect#13797166, procurementAspect#13797167, productGroup#13797168, filter(unitOfMeasureConversions#13797164, lambdafunction((((lambda u#13792048.measurementUnit1.code = productPlant#13797156.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#13792048.measurementUnit1.internalRefUUID = productPlant#13797156.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#13792048.measurementUnit2.code = baseUnitOfMeasure#13797162.code) AND (lambda u#13792048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#13797162.internalRefUUID))), lambda u#13792048, false)) AS filteredUnitOfMeasureConversions#13797169]
(2100) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13797169.quantityNumerator), true, [quantityNumerator#13797170]
(2101) Project
Arguments: [product#13797143, plant#13797144, orderDateTime#13797145, productPlant#13797156, systemId#13797157, internalUUID#13797158, id#13797159, displayId#13797160, name#13797161, baseUnitOfMeasure#13797162, unitOfMeasures#13797163, unitOfMeasureConversions#13797164, productionAspect#13797165, salesAspect#13797166, procurementAspect#13797167, productGroup#13797168, filteredUnitOfMeasureConversions#13797169, quantityNumerator#13797170]
(2102) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13797169.quantityDenominator), true, [quantityDenominator#13797171]
(2103) Project
Arguments: [product#13797143, plant#13797144, orderDateTime#13797145, productPlant#13797156, systemId#13797157, internalUUID#13797158, id#13797159, displayId#13797160, name#13797161, baseUnitOfMeasure#13797162, unitOfMeasures#13797163, unitOfMeasureConversions#13797164, productionAspect#13797165, salesAspect#13797166, procurementAspect#13797167, productGroup#13797168, filteredUnitOfMeasureConversions#13797169, quantityNumerator#13797170, quantityDenominator#13797171]
(2104) Project
Arguments: [product#13797143, plant#13797144, orderDateTime#13797145, productPlant#13797156, systemId#13797157, internalUUID#13797158, id#13797159, displayId#13797160, name#13797161, baseUnitOfMeasure#13797162, unitOfMeasures#13797163, unitOfMeasureConversions#13797164, productionAspect#13797165, salesAspect#13797166, procurementAspect#13797167, productGroup#13797168, filteredUnitOfMeasureConversions#13797169, quantityNumerator#13797170, quantityDenominator#13797171, (cast(quantityNumerator#13797170 as double) / cast(quantityDenominator#13797171 as double)) AS outboundUnit#13797172]
(2105) Project
Arguments: [product#13797143, plant#13797144, orderDateTime#13797145, productPlant#13797156, systemId#13797157, internalUUID#13797158, id#13797159, displayId#13797160, name#13797161, baseUnitOfMeasure#13797162, unitOfMeasures#13797163, unitOfMeasureConversions#13797164, productionAspect#13797165, salesAspect#13797166, procurementAspect#13797167, productGroup#13797168, filteredUnitOfMeasureConversions#13797169, quantityNumerator#13797170, quantityDenominator#13797171, CASE WHEN (isnull(outboundUnit#13797172) OR (outboundUnit#13797172 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#13797172 END AS outboundUnit#13797173]
(2106) Project
Arguments: [product#13797143, plant#13797144, orderDateTime#13797145, productPlant#13797156, outboundUnit#13797173]
(2107) Project
Arguments: [plant#13797144]
(2108) Deduplicate
Arguments: [plant#13797144]
(2109) Join
Arguments: Inner, (plantUuid#13797140 = plant#13797144)
(2110) Project
Arguments: [plantId#13797139, plantUuid#13797140, storageLocId#13797141, storageLocUuid#13797142]
(2111) Join
Arguments: Inner, (plant#13797112.internalRefUUID <=> plantUuid#13797140)
(2112) Generate
Arguments: explode(filter(stockQuantities#13797114, lambdafunction(((lambda x#13792128.storageLocation.internalRefUuid = storageLocUuid#13797142) AND (lambda x#13792128.storageLocation.Id = storageLocId#13797141)), lambda x#13792128, false))), false, [stockQuantity#13797174]
(2113) Project
Arguments: [systemId#13797109, internalUUID#13797110, product#13797111, plant#13797112, calculationDateTime#13797113, stockQuantities#13797114, plantId#13797139, plantUuid#13797140, storageLocId#13797141, storageLocUuid#13797142, stockQuantity#13797174]
(2114) Aggregate
Arguments: [plantUuid#13797140, internalUUID#13797110, plant#13797112, product#13797111, systemId#13797109], [plantUuid#13797140, internalUUID#13797110, plant#13797112, product#13797111, systemId#13797109, first(calculationDateTime#13797113, false) AS calculationDateTime#13797175, collect_list(stockQuantity#13797174, 0, 0) AS stockQuantities#13797176]
(2115) Project
Arguments: [systemId#13797109, internalUUID#13797110, product#13797111, plant#13797112, calculationDateTime#13797175, stockQuantities#13797176]
(2116) Generate
Arguments: explode(stockQuantities#13797176), false, [stockQuantity#13797177]
(2117) Project
Arguments: [systemId#13797109, internalUUID#13797110, product#13797111, plant#13797112, calculationDateTime#13797175, stockQuantities#13797176, stockQuantity#13797177]
(2118) Project
Arguments: [plant#13797112.id AS plant#13797178, plant#13797112.internalRefUUID AS plantUuid#13797179, product#13797111.id AS product#13797180, product#13797111.internalRefUUID AS productUuid#13797181, calculationDateTime#13797175, stockQuantity#13797177.storagelocation.id AS storageLocId#13797182, stockQuantity#13797177.storagelocation.internalRefUUID AS storageLocUuid#13797183, stockQuantity#13797177.quantity.measure AS quantity#13797184, stockQuantity#13797177.specialStockIndicator.code AS specialStockIndicator#13797185, stockQuantity#13797177.stockType.code AS stockType#13797186]
(2119) Filter
Arguments: ((specialStockIndicator#13797185 = ) AND (stockType#13797186 = 01))
(2120) LogicalRelation
Arguments: parquet, [product#13797187, plant#13797188, orderDateTime#13797189, planningStartDateTime#13797190], false
(2121) RepartitionByExpression
Arguments: [product#13797187, plant#13797188], 37
(2122) Project
Arguments: [product#13797187, plant#13797188, orderDateTime#13797189]
(2123) LogicalRelation
Arguments: parquet, [systemId#13797191, internalUUID#13797192, plant#13797193, product#13797194, blockedForReplenishmentStartingFrom#13797195, productionAspect#13797196, salesPlant#13797197, listing#13797198, sourceOfSupplyCategory#13797199], false
(2124) Repartition
Arguments: 37, true
(2125) Project
Arguments: [systemId#13797191, internalUUID#13797192, plant#13797193, product#13797194, blockedForReplenishmentStartingFrom#13797195, productionAspect#13797196, salesPlant#13797197, listing#13797198, sourceOfSupplyCategory#13797199, struct(systemId, systemId#13797191, internalUUID, internalUUID#13797192, plant, plant#13797193, product, product#13797194, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#13797195, productionAspect, productionAspect#13797196, salesPlant, salesPlant#13797197, listing, listing#13797198, sourceOfSupplyCategory, sourceOfSupplyCategory#13797199) AS productPlant#13797200]
(2126) Project
Arguments: [productPlant#13797200]
(2127) Join
Arguments: LeftOuter, ((product#13797187 <=> productPlant#13797200.product.internalRefUUID) AND (plant#13797188 <=> productPlant#13797200.plant.internalRefUUID))
(2128) Project
Arguments: [product#13797187, plant#13797188, orderDateTime#13797189, productPlant#13797200]
(2129) LogicalRelation
Arguments: parquet, [systemId#13797201, internalUUID#13797202, id#13797203, displayId#13797204, name#13797205, baseUnitOfMeasure#13797206, unitOfMeasures#13797207, unitOfMeasureConversions#13797208, productionAspect#13797209, salesAspect#13797210, procurementAspect#13797211, productGroup#13797212], false
(2130) Repartition
Arguments: 37, true
(2131) Join
Arguments: LeftOuter, (product#13797187 = internalUUID#13797202)
(2132) Project
Arguments: [product#13797187, plant#13797188, orderDateTime#13797189, productPlant#13797200, systemId#13797201, internalUUID#13797202, id#13797203, displayId#13797204, name#13797205, baseUnitOfMeasure#13797206, unitOfMeasures#13797207, unitOfMeasureConversions#13797208, productionAspect#13797209, salesAspect#13797210, procurementAspect#13797211, productGroup#13797212, filter(unitOfMeasureConversions#13797208, lambdafunction((((lambda u#13792048.measurementUnit1.code = productPlant#13797200.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#13792048.measurementUnit1.internalRefUUID = productPlant#13797200.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#13792048.measurementUnit2.code = baseUnitOfMeasure#13797206.code) AND (lambda u#13792048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#13797206.internalRefUUID))), lambda u#13792048, false)) AS filteredUnitOfMeasureConversions#13797213]
(2133) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13797213.quantityNumerator), true, [quantityNumerator#13797214]
(2134) Project
Arguments: [product#13797187, plant#13797188, orderDateTime#13797189, productPlant#13797200, systemId#13797201, internalUUID#13797202, id#13797203, displayId#13797204, name#13797205, baseUnitOfMeasure#13797206, unitOfMeasures#13797207, unitOfMeasureConversions#13797208, productionAspect#13797209, salesAspect#13797210, procurementAspect#13797211, productGroup#13797212, filteredUnitOfMeasureConversions#13797213, quantityNumerator#13797214]
(2135) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13797213.quantityDenominator), true, [quantityDenominator#13797215]
(2136) Project
Arguments: [product#13797187, plant#13797188, orderDateTime#13797189, productPlant#13797200, systemId#13797201, internalUUID#13797202, id#13797203, displayId#13797204, name#13797205, baseUnitOfMeasure#13797206, unitOfMeasures#13797207, unitOfMeasureConversions#13797208, productionAspect#13797209, salesAspect#13797210, procurementAspect#13797211, productGroup#13797212, filteredUnitOfMeasureConversions#13797213, quantityNumerator#13797214, quantityDenominator#13797215]
(2137) Project
Arguments: [product#13797187, plant#13797188, orderDateTime#13797189, productPlant#13797200, systemId#13797201, internalUUID#13797202, id#13797203, displayId#13797204, name#13797205, baseUnitOfMeasure#13797206, unitOfMeasures#13797207, unitOfMeasureConversions#13797208, productionAspect#13797209, salesAspect#13797210, procurementAspect#13797211, productGroup#13797212, filteredUnitOfMeasureConversions#13797213, quantityNumerator#13797214, quantityDenominator#13797215, (cast(quantityNumerator#13797214 as double) / cast(quantityDenominator#13797215 as double)) AS outboundUnit#13797216]
(2138) Project
Arguments: [product#13797187, plant#13797188, orderDateTime#13797189, productPlant#13797200, systemId#13797201, internalUUID#13797202, id#13797203, displayId#13797204, name#13797205, baseUnitOfMeasure#13797206, unitOfMeasures#13797207, unitOfMeasureConversions#13797208, productionAspect#13797209, salesAspect#13797210, procurementAspect#13797211, productGroup#13797212, filteredUnitOfMeasureConversions#13797213, quantityNumerator#13797214, quantityDenominator#13797215, CASE WHEN (isnull(outboundUnit#13797216) OR (outboundUnit#13797216 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#13797216 END AS outboundUnit#13797217]
(2139) Project
Arguments: [product#13797187, plant#13797188, orderDateTime#13797189, productPlant#13797200, outboundUnit#13797217]
(2140) Join
Arguments: Inner, ((plantUuid#13797179 = plant#13797188) AND (productUuid#13797181 = product#13797187))
(2141) Filter
Arguments: (calculationDateTime#13797175 <= orderDateTime#13797189)
(2142) Project
Arguments: [plantUuid#13797179 AS plant#13797218, productUuid#13797181 AS product#13797219, storageLocId#13797182, calculationDateTime#13797175, quantity#13797184]
(2143) LogicalRelation
Arguments: parquet, [systemId#13797220, internalUUID#13797221, product#13797222, plant#13797223, calculationDateTime#13797224, stockQuantities#13797225], false
(2144) Repartition
Arguments: 37, true
(2145) LogicalRelation
Arguments: parquet, [marketUnit#13797226, description#13797227, articleHierarchy#13797228, defaultCurrency#13797229, responsibilities#13797230, replenishmentTypes#13797231, distributionCenters#13797232, assignedArticleHierarchyNodes#13797233, minOrderQtySetting#13797234, listingCheck#13797235, odsSelection#13797236, demandProfiles#13797237, constraintProfiles#13797238, optimizationProfiles#13797239, orderGroupSplitProfiles#13797240, supplierMinimumProfiles#13797241, multipleRestrictionProfiles#13797242, preferredUomSource#13797243, handlingOfUnfulfilledDemands#13797244, negligibleQuantitiesThreshold#13797245, eventtype#13797246, minOrderQtySettingInternal#13797247], false
(2146) Repartition
Arguments: 37, true
(2147) Filter
Arguments: (marketUnit#13797226 <=> AUTO_ALL_ProdLoc)
(2148) Project
Arguments: [marketUnit#13797226, description#13797227, articleHierarchy#13797228, defaultCurrency#13797229, responsibilities#13797230, replenishmentTypes#13797231, distributionCenters#13797232, assignedArticleHierarchyNodes#13797233, minOrderQtySetting#13797234, listingCheck#13797235, odsSelection#13797236, demandProfiles#13797237, constraintProfiles#13797238, optimizationProfiles#13797239, orderGroupSplitProfiles#13797240, supplierMinimumProfiles#13797241, multipleRestrictionProfiles#13797242, preferredUomSource#13797243, handlingOfUnfulfilledDemands#13797244, negligibleQuantitiesThreshold#13797245, eventtype#13797246, minOrderQtySettingInternal#13797247]
(2149) Project
Arguments: [distributionCenters#13797232]
(2150) Generate
Arguments: explode(distributionCenters#13797232), false, [distributionCenters#13797248]
(2151) Project
Arguments: [distributionCenters#13797248]
(2152) Generate
Arguments: explode(distributionCenters#13797248.storageLocations), false, [storageLocations#13797249]
(2153) Project
Arguments: [distributionCenters#13797248.id AS plantId#13797250, distributionCenters#13797248.internalRefUUID AS plantUuid#13797251, storageLocations#13797249]
(2154) Project
Arguments: [plantId#13797250, plantUuid#13797251, storageLocations#13797249.id AS storageLocId#13797252, storageLocations#13797249.internalRefUUID AS storageLocUuid#13797253]
(2155) LogicalRelation
Arguments: parquet, [product#13797254, plant#13797255, orderDateTime#13797256, planningStartDateTime#13797257], false
(2156) RepartitionByExpression
Arguments: [product#13797254, plant#13797255], 37
(2157) Project
Arguments: [product#13797254, plant#13797255, orderDateTime#13797256]
(2158) LogicalRelation
Arguments: parquet, [systemId#13797258, internalUUID#13797259, plant#13797260, product#13797261, blockedForReplenishmentStartingFrom#13797262, productionAspect#13797263, salesPlant#13797264, listing#13797265, sourceOfSupplyCategory#13797266], false
(2159) Repartition
Arguments: 37, true
(2160) Project
Arguments: [systemId#13797258, internalUUID#13797259, plant#13797260, product#13797261, blockedForReplenishmentStartingFrom#13797262, productionAspect#13797263, salesPlant#13797264, listing#13797265, sourceOfSupplyCategory#13797266, struct(systemId, systemId#13797258, internalUUID, internalUUID#13797259, plant, plant#13797260, product, product#13797261, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#13797262, productionAspect, productionAspect#13797263, salesPlant, salesPlant#13797264, listing, listing#13797265, sourceOfSupplyCategory, sourceOfSupplyCategory#13797266) AS productPlant#13797267]
(2161) Project
Arguments: [productPlant#13797267]
(2162) Join
Arguments: LeftOuter, ((product#13797254 <=> productPlant#13797267.product.internalRefUUID) AND (plant#13797255 <=> productPlant#13797267.plant.internalRefUUID))
(2163) Project
Arguments: [product#13797254, plant#13797255, orderDateTime#13797256, productPlant#13797267]
(2164) LogicalRelation
Arguments: parquet, [systemId#13797268, internalUUID#13797269, id#13797270, displayId#13797271, name#13797272, baseUnitOfMeasure#13797273, unitOfMeasures#13797274, unitOfMeasureConversions#13797275, productionAspect#13797276, salesAspect#13797277, procurementAspect#13797278, productGroup#13797279], false
(2165) Repartition
Arguments: 37, true
(2166) Join
Arguments: LeftOuter, (product#13797254 = internalUUID#13797269)
(2167) Project
Arguments: [product#13797254, plant#13797255, orderDateTime#13797256, productPlant#13797267, systemId#13797268, internalUUID#13797269, id#13797270, displayId#13797271, name#13797272, baseUnitOfMeasure#13797273, unitOfMeasures#13797274, unitOfMeasureConversions#13797275, productionAspect#13797276, salesAspect#13797277, procurementAspect#13797278, productGroup#13797279, filter(unitOfMeasureConversions#13797275, lambdafunction((((lambda u#13792048.measurementUnit1.code = productPlant#13797267.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#13792048.measurementUnit1.internalRefUUID = productPlant#13797267.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#13792048.measurementUnit2.code = baseUnitOfMeasure#13797273.code) AND (lambda u#13792048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#13797273.internalRefUUID))), lambda u#13792048, false)) AS filteredUnitOfMeasureConversions#13797280]
(2168) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13797280.quantityNumerator), true, [quantityNumerator#13797281]
(2169) Project
Arguments: [product#13797254, plant#13797255, orderDateTime#13797256, productPlant#13797267, systemId#13797268, internalUUID#13797269, id#13797270, displayId#13797271, name#13797272, baseUnitOfMeasure#13797273, unitOfMeasures#13797274, unitOfMeasureConversions#13797275, productionAspect#13797276, salesAspect#13797277, procurementAspect#13797278, productGroup#13797279, filteredUnitOfMeasureConversions#13797280, quantityNumerator#13797281]
(2170) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13797280.quantityDenominator), true, [quantityDenominator#13797282]
(2171) Project
Arguments: [product#13797254, plant#13797255, orderDateTime#13797256, productPlant#13797267, systemId#13797268, internalUUID#13797269, id#13797270, displayId#13797271, name#13797272, baseUnitOfMeasure#13797273, unitOfMeasures#13797274, unitOfMeasureConversions#13797275, productionAspect#13797276, salesAspect#13797277, procurementAspect#13797278, productGroup#13797279, filteredUnitOfMeasureConversions#13797280, quantityNumerator#13797281, quantityDenominator#13797282]
(2172) Project
Arguments: [product#13797254, plant#13797255, orderDateTime#13797256, productPlant#13797267, systemId#13797268, internalUUID#13797269, id#13797270, displayId#13797271, name#13797272, baseUnitOfMeasure#13797273, unitOfMeasures#13797274, unitOfMeasureConversions#13797275, productionAspect#13797276, salesAspect#13797277, procurementAspect#13797278, productGroup#13797279, filteredUnitOfMeasureConversions#13797280, quantityNumerator#13797281, quantityDenominator#13797282, (cast(quantityNumerator#13797281 as double) / cast(quantityDenominator#13797282 as double)) AS outboundUnit#13797283]
(2173) Project
Arguments: [product#13797254, plant#13797255, orderDateTime#13797256, productPlant#13797267, systemId#13797268, internalUUID#13797269, id#13797270, displayId#13797271, name#13797272, baseUnitOfMeasure#13797273, unitOfMeasures#13797274, unitOfMeasureConversions#13797275, productionAspect#13797276, salesAspect#13797277, procurementAspect#13797278, productGroup#13797279, filteredUnitOfMeasureConversions#13797280, quantityNumerator#13797281, quantityDenominator#13797282, CASE WHEN (isnull(outboundUnit#13797283) OR (outboundUnit#13797283 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#13797283 END AS outboundUnit#13797284]
(2174) Project
Arguments: [product#13797254, plant#13797255, orderDateTime#13797256, productPlant#13797267, outboundUnit#13797284]
(2175) Project
Arguments: [plant#13797255]
(2176) Deduplicate
Arguments: [plant#13797255]
(2177) Join
Arguments: Inner, (plantUuid#13797251 = plant#13797255)
(2178) Project
Arguments: [plantId#13797250, plantUuid#13797251, storageLocId#13797252, storageLocUuid#13797253]
(2179) Join
Arguments: Inner, (plant#13797223.internalRefUUID <=> plantUuid#13797251)
(2180) Generate
Arguments: explode(filter(stockQuantities#13797225, lambdafunction(((lambda x#13792128.storageLocation.internalRefUuid = storageLocUuid#13797253) AND (lambda x#13792128.storageLocation.Id = storageLocId#13797252)), lambda x#13792128, false))), false, [stockQuantity#13797285]
(2181) Project
Arguments: [systemId#13797220, internalUUID#13797221, product#13797222, plant#13797223, calculationDateTime#13797224, stockQuantities#13797225, plantId#13797250, plantUuid#13797251, storageLocId#13797252, storageLocUuid#13797253, stockQuantity#13797285]
(2182) Aggregate
Arguments: [plantUuid#13797251, internalUUID#13797221, plant#13797223, product#13797222, systemId#13797220], [plantUuid#13797251, internalUUID#13797221, plant#13797223, product#13797222, systemId#13797220, first(calculationDateTime#13797224, false) AS calculationDateTime#13797286, collect_list(stockQuantity#13797285, 0, 0) AS stockQuantities#13797287]
(2183) Project
Arguments: [systemId#13797220, internalUUID#13797221, product#13797222, plant#13797223, calculationDateTime#13797286, stockQuantities#13797287]
(2184) Generate
Arguments: explode(stockQuantities#13797287), false, [stockQuantity#13797288]
(2185) Project
Arguments: [systemId#13797220, internalUUID#13797221, product#13797222, plant#13797223, calculationDateTime#13797286, stockQuantities#13797287, stockQuantity#13797288]
(2186) Project
Arguments: [plant#13797223.id AS plant#13797289, plant#13797223.internalRefUUID AS plantUuid#13797290, product#13797222.id AS product#13797291, product#13797222.internalRefUUID AS productUuid#13797292, calculationDateTime#13797286, stockQuantity#13797288.storagelocation.id AS storageLocId#13797293, stockQuantity#13797288.storagelocation.internalRefUUID AS storageLocUuid#13797294, stockQuantity#13797288.quantity.measure AS quantity#13797295, stockQuantity#13797288.specialStockIndicator.code AS specialStockIndicator#13797296, stockQuantity#13797288.stockType.code AS stockType#13797297]
(2187) Filter
Arguments: ((specialStockIndicator#13797296 = ) AND (stockType#13797297 = 01))
(2188) LogicalRelation
Arguments: parquet, [product#13797298, plant#13797299, orderDateTime#13797300, planningStartDateTime#13797301], false
(2189) RepartitionByExpression
Arguments: [product#13797298, plant#13797299], 37
(2190) Project
Arguments: [product#13797298, plant#13797299, orderDateTime#13797300]
(2191) LogicalRelation
Arguments: parquet, [systemId#13797302, internalUUID#13797303, plant#13797304, product#13797305, blockedForReplenishmentStartingFrom#13797306, productionAspect#13797307, salesPlant#13797308, listing#13797309, sourceOfSupplyCategory#13797310], false
(2192) Repartition
Arguments: 37, true
(2193) Project
Arguments: [systemId#13797302, internalUUID#13797303, plant#13797304, product#13797305, blockedForReplenishmentStartingFrom#13797306, productionAspect#13797307, salesPlant#13797308, listing#13797309, sourceOfSupplyCategory#13797310, struct(systemId, systemId#13797302, internalUUID, internalUUID#13797303, plant, plant#13797304, product, product#13797305, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#13797306, productionAspect, productionAspect#13797307, salesPlant, salesPlant#13797308, listing, listing#13797309, sourceOfSupplyCategory, sourceOfSupplyCategory#13797310) AS productPlant#13797311]
(2194) Project
Arguments: [productPlant#13797311]
(2195) Join
Arguments: LeftOuter, ((product#13797298 <=> productPlant#13797311.product.internalRefUUID) AND (plant#13797299 <=> productPlant#13797311.plant.internalRefUUID))
(2196) Project
Arguments: [product#13797298, plant#13797299, orderDateTime#13797300, productPlant#13797311]
(2197) LogicalRelation
Arguments: parquet, [systemId#13797312, internalUUID#13797313, id#13797314, displayId#13797315, name#13797316, baseUnitOfMeasure#13797317, unitOfMeasures#13797318, unitOfMeasureConversions#13797319, productionAspect#13797320, salesAspect#13797321, procurementAspect#13797322, productGroup#13797323], false
(2198) Repartition
Arguments: 37, true
(2199) Join
Arguments: LeftOuter, (product#13797298 = internalUUID#13797313)
(2200) Project
Arguments: [product#13797298, plant#13797299, orderDateTime#13797300, productPlant#13797311, systemId#13797312, internalUUID#13797313, id#13797314, displayId#13797315, name#13797316, baseUnitOfMeasure#13797317, unitOfMeasures#13797318, unitOfMeasureConversions#13797319, productionAspect#13797320, salesAspect#13797321, procurementAspect#13797322, productGroup#13797323, filter(unitOfMeasureConversions#13797319, lambdafunction((((lambda u#13792048.measurementUnit1.code = productPlant#13797311.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#13792048.measurementUnit1.internalRefUUID = productPlant#13797311.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#13792048.measurementUnit2.code = baseUnitOfMeasure#13797317.code) AND (lambda u#13792048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#13797317.internalRefUUID))), lambda u#13792048, false)) AS filteredUnitOfMeasureConversions#13797324]
(2201) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13797324.quantityNumerator), true, [quantityNumerator#13797325]
(2202) Project
Arguments: [product#13797298, plant#13797299, orderDateTime#13797300, productPlant#13797311, systemId#13797312, internalUUID#13797313, id#13797314, displayId#13797315, name#13797316, baseUnitOfMeasure#13797317, unitOfMeasures#13797318, unitOfMeasureConversions#13797319, productionAspect#13797320, salesAspect#13797321, procurementAspect#13797322, productGroup#13797323, filteredUnitOfMeasureConversions#13797324, quantityNumerator#13797325]
(2203) Generate
Arguments: explode(filteredUnitOfMeasureConversions#13797324.quantityDenominator), true, [quantityDenominator#13797326]
(2204) Project
Arguments: [product#13797298, plant#13797299, orderDateTime#13797300, productPlant#13797311, systemId#13797312, internalUUID#13797313, id#13797314, displayId#13797315, name#13797316, baseUnitOfMeasure#13797317, unitOfMeasures#13797318, unitOfMeasureConversions#13797319, productionAspect#13797320, salesAspect#13797321, procurementAspect#13797322, productGroup#13797323, filteredUnitOfMeasureConversions#13797324, quantityNumerator#13797325, quantityDenominator#13797326]
(2205) Project
Arguments: [product#13797298, plant#13797299, orderDateTime#13797300, productPlant#13797311, systemId#13797312, internalUUID#13797313, id#13797314, displayId#13797315, name#13797316, baseUnitOfMeasure#13797317, unitOfMeasures#13797318, unitOfMeasureConversions#13797319, productionAspect#13797320, salesAspect#13797321, procurementAspect#13797322, productGroup#13797323, filteredUnitOfMeasureConversions#13797324, quantityNumerator#13797325, quantityDenominator#13797326, (cast(quantityNumerator#13797325 as double) / cast(quantityDenominator#13797326 as double)) AS outboundUnit#13797327]
(2206) Project
Arguments: [product#13797298, plant#13797299, orderDateTime#13797300, productPlant#13797311, systemId#13797312, internalUUID#13797313, id#13797314, displayId#13797315, name#13797316, baseUnitOfMeasure#13797317, unitOfMeasures#13797318, unitOfMeasureConversions#13797319, productionAspect#13797320, salesAspect#13797321, procurementAspect#13797322, productGroup#13797323, filteredUnitOfMeasureConversions#13797324, quantityNumerator#13797325, quantityDenominator#13797326, CASE WHEN (isnull(outboundUnit#13797327) OR (outboundUnit#13797327 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#13797327 END AS outboundUnit#13797328]
(2207) Project
Arguments: [product#13797298, plant#13797299, orderDateTime#13797300, productPlant#13797311, outboundUnit#13797328]
(2208) Join
Arguments: Inner, ((plantUuid#13797290 = plant#13797299) AND (productUuid#13797292 = product#13797298))
(2209) Filter
Arguments: (calculationDateTime#13797286 <= orderDateTime#13797300)
(2210) Project
Arguments: [plantUuid#13797290 AS plant#13797329, productUuid#13797292 AS product#13797330, storageLocId#13797293, calculationDateTime#13797286, quantity#13797295]
(2211) Aggregate
Arguments: [plant#13797329, product#13797330, storageLocId#13797293], [plant#13797329, product#13797330, storageLocId#13797293, max(calculationDateTime#13797286) AS max_calc_datetime#13797331]
(2212) Join
Arguments: Inner, ((((plant#13797218 <=> plant#13797329) AND (product#13797219 <=> product#13797330)) AND (storageLocId#13797182 <=> storageLocId#13797293)) AND (calculationDateTime#13797175 <=> max_calc_datetime#13797331))
(2213) Project
Arguments: [plant#13797218, product#13797219, storageLocId#13797182, calculationDateTime#13797175, quantity#13797184]
(2214) Aggregate
Arguments: [product#13797219, plant#13797218], [product#13797219, plant#13797218, sum(quantity#13797184) AS quantitySum#13797332, min(calculationDateTime#13797175) AS minCalculationDateTime#13797333]
(2215) Project
Arguments: [product#13797219, plant#13797218, quantitySum#13797332, minCalculationDateTime#13797333, round(quantitySum#13797332, 0) AS roundedQuantitySum#13797334]
(2216) Join
Arguments: LeftOuter, ((plant#13797079 = plant#13797218) AND (product#13797078 = product#13797219))
(2217) Project
Arguments: [product#13797078, plant#13797079, orderDateTime#13797080, productPlant#13797091, outboundUnit#13797108, roundedQuantitySum#13797334, minCalculationDateTime#13797333]
(2218) Project
Arguments: [product#13797078, plant#13797079, orderDateTime#13797080, productPlant#13797091, outboundUnit#13797108, roundedQuantitySum#13797334, minCalculationDateTime#13797333, CASE WHEN isnotnull(minCalculationDateTime#13797333) THEN minCalculationDateTime#13797333 ELSE orderDateTime#13797080 END AS stockDatetime#13797335]
(2219) Project
Arguments: [product#13797078, plant#13797079, orderDateTime#13797080, productPlant#13797091, outboundUnit#13797108, roundedQuantitySum#13797334, minCalculationDateTime#13797333, stockDatetime#13797335, CASE WHEN isnotnull(roundedQuantitySum#13797334) THEN array(roundedQuantitySum#13797334) ELSE array(0.0) END AS stockBatchQuantities#13797336]
(2220) Project
Arguments: [product#13797078, plant#13797079, orderDateTime#13797080, productPlant#13797091, outboundUnit#13797108, roundedQuantitySum#13797334, minCalculationDateTime#13797333, stockDatetime#13797335, stockBatchQuantities#13797336, array(2199-01-01 00:00:00) AS stockBatchShelfLifeEndDatetimes#13797337]
(2221) Project
Arguments: [product#13797078, plant#13797079, orderDateTime#13797080, productPlant#13797091, outboundUnit#13797108, roundedQuantitySum#13797334, stockDatetime#13797335, stockBatchQuantities#13797336, stockBatchShelfLifeEndDatetimes#13797337]
(2222) Project
Arguments: [product#13797078, plant#13797079, orderDateTime#13797080, productPlant#13797091, outboundUnit#13797108, stockDatetime#13797335, stockBatchQuantities#13797336, stockBatchShelfLifeEndDatetimes#13797337]
(2223) LogicalRelation
Arguments: parquet, [product#13797338, plant#13797339, demandChannel#13797340, demandStream#13797341, considerVariance#13797342, demandTimeBuckets#13797343, demandPointInTimeStart#13797344, demandPointInTimeEnd#13797345, demandPointInTime#13797346], false
(2224) Join
Arguments: LeftOuter, ((plant#13797339 <=> plant#13797079) AND (product#13797338 <=> product#13797078))
(2225) Project
Arguments: [product#13797078, plant#13797079, orderDateTime#13797080, productPlant#13797091, outboundUnit#13797108, stockDatetime#13797335, stockBatchQuantities#13797336, stockBatchShelfLifeEndDatetimes#13797337, product#13797338, plant#13797339, demandChannel#13797340, demandStream#13797341, considerVariance#13797342, demandTimeBuckets#13797343, demandPointInTimeStart#13797344, demandPointInTimeEnd#13797345, demandPointInTime#13797346, CASE WHEN isnotnull(product#13797338) THEN struct(demandChannel, demandChannel#13797340, demandStream, demandStream#13797341, considerVariance, considerVariance#13797342, demandTimeBuckets, demandTimeBuckets#13797343, demandPointInTimeStart, demandPointInTimeStart#13797344, demandPointInTimeEnd, demandPointInTimeEnd#13797345, demandPointInTime, demandPointInTime#13797346) 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#13797347]
(2226) Aggregate
Arguments: [product#13797078, plant#13797079, orderDateTime#13797080, productPlant#13797091, outboundUnit#13797108, stockDatetime#13797335, stockBatchQuantities#13797336, stockBatchShelfLifeEndDatetimes#13797337], [product#13797078, plant#13797079, orderDateTime#13797080, productPlant#13797091, outboundUnit#13797108, stockDatetime#13797335, stockBatchQuantities#13797336, stockBatchShelfLifeEndDatetimes#13797337, collect_list(rawDemands#13797347, 0, 0) AS rawDemands#13797348]
(2227) SubqueryAlias
Arguments: wl
(2228) LogicalRelation
Arguments: parquet, [systemId#13797349, internalUUID#13797350, id#13797351, displayId#13797352, name#13797353, category#13797354, companyCode#13797355, address#13797356, mainDistributionChain#13797357, mainPurchasingOrganization#13797358, validPurchasingOrganizations#13797359, productGroup#13797360], false
(2229) Repartition
Arguments: 37, true
(2230) Project
Arguments: [systemId#13797349, internalUUID#13797350, id#13797351, displayId#13797352, name#13797353, category#13797354, companyCode#13797355, address#13797356, mainDistributionChain#13797357, mainPurchasingOrganization#13797358, validPurchasingOrganizations#13797359, productGroup#13797360, address#13797356.timezone.code AS timezonecode#13797361]
(2231) Join
Arguments: LeftOuter, (plant#13797079 <=> internalUUID#13797350)
(2232) Project
Arguments: [product#13797078, plant#13797079, orderDateTime#13797080, productPlant#13797091, outboundUnit#13797108, stockDatetime#13797335, stockBatchQuantities#13797336, stockBatchShelfLifeEndDatetimes#13797337, rawDemands#13797348, systemId#13797349, internalUUID#13797350, id#13797351, displayId#13797352, name#13797353, category#13797354, companyCode#13797355, address#13797356, mainDistributionChain#13797357, mainPurchasingOrganization#13797358, validPurchasingOrganizations#13797359, productGroup#13797360, CASE WHEN isnotnull(timezonecode#13797361) THEN timezonecode#13797361 ELSE UTC END AS timezonecode#13797362]
(2233) Project
Arguments: [product#13797078, plant#13797079, orderDateTime#13797080, productPlant#13797091, outboundUnit#13797108, stockDatetime#13797335, stockBatchQuantities#13797336, stockBatchShelfLifeEndDatetimes#13797337, rawDemands#13797348, timezonecode#13797362]
(2234) DeserializeToObject
Arguments: createexternalrow(invoke(product#13797078.toString()), invoke(plant#13797079.toString()), static_invoke(DateTimeUtils.toJavaTimestamp(orderDateTime#13797080)), if (isnull(productPlant#13797091)) null else createexternalrow(invoke(productPlant#13797091.systemId.toString()), invoke(productPlant#13797091.internalUUID.toString()), if (isnull(productPlant#13797091.plant)) null else createexternalrow(invoke(productPlant#13797091.plant.internalRefUUID.toString()), invoke(productPlant#13797091.plant.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), if (isnull(productPlant#13797091.product)) null else createexternalrow(invoke(productPlant#13797091.product.internalRefUUID.toString()), invoke(productPlant#13797091.product.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(DateTimeUtils.toJavaDate(productPlant#13797091.blockedForReplenishmentStartingFrom)), if (isnull(productPlant#13797091.productionAspect)) null else createexternalrow(if (isnull(productPlant#13797091.productionAspect.productMovementPlants)) null else createexternalrow(if (isnull(productPlant#13797091.productionAspect.productMovementPlants.unitOfIssue)) null else createexternalrow(invoke(productPlant#13797091.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID.toString()), invoke(productPlant#13797091.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#13797091.productionAspect.productPlanningPlants)) null else createexternalrow(if (isnull(productPlant#13797091.productionAspect.productPlanningPlants.mrpType)) null else createexternalrow(invoke(productPlant#13797091.productionAspect.productPlanningPlants.mrpType.internalRefUUID.toString()), invoke(productPlant#13797091.productionAspect.productPlanningPlants.mrpType.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#13797091.productionAspect.productPlanningPlants.abcIndicator)) null else createexternalrow(invoke(productPlant#13797091.productionAspect.productPlanningPlants.abcIndicator.internalRefUUID.toString()), invoke(productPlant#13797091.productionAspect.productPlanningPlants.abcIndicator.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#13797091.productionAspect.productPlanningPlants.mrpController)) null else createexternalrow(invoke(productPlant#13797091.productionAspect.productPlanningPlants.mrpController.internalRefUUID.toString()), invoke(productPlant#13797091.productionAspect.productPlanningPlants.mrpController.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(java.lang.Double.valueOf(productPlant#13797091.productionAspect.productPlanningPlants.minimumLotSize)), if (isnull(productPlant#13797091.productionAspect.productPlanningPlants.logisticalRoundingProfile)) null else createexternalrow(invoke(productPlant#13797091.productionAspect.productPlanningPlants.logisticalRoundingProfile.internalRefUUID.toString()), invoke(productPlant#13797091.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#13797091.salesPlant)) null else createexternalrow(if (isnull(productPlant#13797091.salesPlant.loadingGroup)) null else createexternalrow(invoke(productPlant#13797091.salesPlant.loadingGroup.internalRefUUID.toString()), invoke(productPlant#13797091.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, 1728146), if (isnull(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 1728146))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 1728146).validFrom)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 1728146).validTo)), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 1728146).isListed)), StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true)), productPlant#13797091.listing, Some(class scala.collection.mutable.ArraySeq)), if (isnull(productPlant#13797091.sourceOfSupplyCategory)) null else createexternalrow(invoke(productPlant#13797091.sourceOfSupplyCategory.internalRefUUID.toString()), invoke(productPlant#13797091.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#13797108)), static_invoke(DateTimeUtils.toJavaTimestamp(stockDatetime#13797335)), mapobjects(lambdavariable(MapObject, DoubleType, true, 1728147), static_invoke(java.lang.Double.valueOf(cast(lambdavariable(MapObject, DoubleType, true, 1728147) as double))), stockBatchQuantities#13797336, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, false, 1728148), assertnotnull(static_invoke(DateTimeUtils.toJavaTimestamp(cast(lambdavariable(MapObject, TimestampType, false, 1728148) as timestamp)))), stockBatchShelfLifeEndDatetimes#13797337, 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, 1728149), 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, 1728149))) 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, 1728149).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, 1728149).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, 1728149).considerVariance)), mapobjects(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 1728150), if (isnull(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 1728150))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 1728150).demandStartDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 1728150).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 1728150).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, 1728149).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, 1728149).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, 1728149).demandPointInTimeEnd)), mapobjects(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 1728151), if (isnull(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 1728151))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 1728151).demandDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 1728151).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 1728151).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, 1728149).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#13797348, Some(class scala.collection.mutable.ArraySeq)), invoke(timezonecode#13797362.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#13793477: org.apache.spark.sql.Row
(2235) MapElements
Arguments: com.sap.s4hana.eureka.business.crporderquantitykpiservice.core.business.datasnapshot.DemandTransformatorImpl$$Lambda/0x00000008020466f8@2bc6baae, 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#13793482: 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#13797363, 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#13797364, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(2))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728136), assertnotnull(if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728137), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728137), DoubleType, ObjectType(class java.lang.Double)).doubleValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728138), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728138), DoubleType, ObjectType(class java.lang.Double)).doubleValue()), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728139), assertnotnull(static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728139), TimestampType, ObjectType(class java.sql.Timestamp))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728140), assertnotnull(static_invoke(UTF8String.fromString(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728140), StringType, ObjectType(class java.lang.String))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 1728141), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728141), IntegerType, ObjectType(class java.lang.Integer)).intValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728136), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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#13797365, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(3))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728142), assertnotnull(if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728143), assertnotnull(static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728143), TimestampType, ObjectType(class java.sql.Timestamp))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728144), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728144), DoubleType, ObjectType(class java.lang.Double)).doubleValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728145), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728145), DoubleType, ObjectType(class java.lang.Double)).doubleValue()), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 1728142), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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#13797366]
(2237) Join
Arguments: LeftOuter, ((plant#13797364 <=> plant#13796819) AND (product#13797363 <=> product#13796818))
(2238) Project
Arguments: [product#13796818, plant#13796819, orderDateTime#13796820, productPlant#13796831, outboundUnit#13796848, stockDatetime#13797075, stockBatchQuantities#13797076, stockBatchShelfLifeEndDatetimes#13797077, plant#13797364, dayBucketDemands#13797365, pointInTimeDemands#13797366]
(2239) Project
Arguments: [product#13796818, plant#13796819, orderDateTime#13796820, productPlant#13796831, outboundUnit#13796848, stockDatetime#13797075, stockBatchQuantities#13797076, stockBatchShelfLifeEndDatetimes#13797077, dayBucketDemands#13797365, pointInTimeDemands#13797366]
(2240) LocalRelation
Arguments: <empty>, [systemId#13797367, internalUUID#13797368, id#13797369, isMarkedForDeletion#13797370, supplier#13797371, status#13797372, items#13797373]
(2241) Generate
Arguments: explode(items#13797373), false, [item#13797374]
(2242) Project
Arguments: [id#13797369, internalUUID#13797368, isMarkedForDeletion#13797370, supplier#13797371.internalRefUUID AS supplierUuid#13797375, item#13797374]
(2243) Filter
Arguments: (((NOT isMarkedForDeletion#13797370 AND NOT item#13797374.deletionIndicator) AND NOT item#13797374.completeIndicator) AND NOT item#13797374.returnIndicator)
(2244) Project
Arguments: [id#13797369, internalUUID#13797368, supplierUuid#13797375, item#13797374.plant.internalRefUUID AS plant#13797376, item#13797374.product.internalRefUUID AS product#13797377, item#13797374.storageLocation.internalRefUUID AS storageLocUuid#13797378, item#13797374.quantityUnit.code AS quantityUom#13797379, item#13797374.quantityUnit.internalRefUUID AS quantityUomUuid#13797380, item#13797374.quantityNumerator AS quantityNumerator#13797381, item#13797374.quantityDenominator AS quantityDenominator#13797382, item#13797374.scheduleLines AS scheduleLines#13797383, item#13797374.confirmations AS confirmations#13797384]
(2245) Join
Arguments: Inner, ((product#13796818 <=> product#13797377) AND (plant#13796819 <=> supplierUuid#13797375))
(2246) Project
Arguments: [id#13797369, internalUUID#13797368, supplierUuid#13797375, plant#13797376, product#13797377, storageLocUuid#13797378, quantityUom#13797379, quantityUomUuid#13797380, quantityNumerator#13797381, quantityDenominator#13797382, scheduleLines#13797383, confirmations#13797384, stockDatetime#13797075, plant#13796819]
(2247) Project
Arguments: [id#13797369, internalUUID#13797368, supplierUuid#13797375, product#13797377, storageLocUuid#13797378, quantityUom#13797379, quantityUomUuid#13797380, quantityNumerator#13797381, quantityDenominator#13797382, scheduleLines#13797383, confirmations#13797384, stockDatetime#13797075, plant#13796819]
(2248) Project
Arguments: [id#13797369, internalUUID#13797368, supplierUuid#13797375, product#13797377, storageLocUuid#13797378, quantityUom#13797379, quantityUomUuid#13797380, quantityNumerator#13797381, quantityDenominator#13797382, scheduleLines#13797383, confirmations#13797384, stockDatetime#13797075, plant#13796819, filter(transform(filter(transform(scheduleLines#13797383, lambdafunction(struct(openQty, (greatest((lambda x_1023#13793926.quantity - coalesce(lambda x_1023#13793926.deliveredQuantity, 0.0)), 0.0) * -1.0), availabilityDatetime, coalesce(lambda x_1023#13793926.productAvailabilityDateTime, lambda x_1023#13793926.deliveryAt)), lambda x_1023#13793926, false)), lambdafunction((lambda x_1024#13793927.availabilityDatetime < stockDatetime#13797075), lambda x_1024#13793927, false)), lambdafunction(struct(documentId, id#13797369, documentUuid, internalUUID#13797368, openQty, lambda x_1025#13793928.openQty, openQtyInBaseUnit, ((lambda x_1025#13793928.openQty * quantityNumerator#13797381) / quantityDenominator#13797382), qtyUom, quantityUom#13797379, qtyUomUuid, quantityUomUuid#13797380, availabilityDatetime, lambda x_1025#13793928.availabilityDatetime, shelfLifeEndDatetime, 2199-01-01 00:00:00), lambda x_1025#13793928, false)), lambdafunction(NOT (lambda x_1026#13793929.openQty = 0.0), lambda x_1026#13793929, false)) AS openGoodsMovements#13797385]
(2249) Aggregate
Arguments: [product#13797377, plant#13796819], [product#13797377, plant#13796819, flatten(collect_list(openGoodsMovements#13797385, 0, 0)) AS openGoodsMovements#13797386]
(2250) Filter
Arguments: (array_size(openGoodsMovements#13797386) > 0)
(2251) Union
Arguments: false, false
(2252) Aggregate
Arguments: [product#13796806, plant#13796805], [product#13796806, plant#13796805, flatten(collect_list(openGoodsMovements#13796817, 0, 0)) AS openGoodsMovements#13797387]
(2253) Join
Arguments: LeftOuter, ((product#13795638 = product#13796806) AND (plant#13795639 = plant#13796805))
(2254) Project
Arguments: [product#13795638, plant#13795639, orderDateTime#13795640, productPlant#13795651, outboundUnit#13795668, stockDatetime#13795895, stockBatchQuantities#13795896, stockBatchShelfLifeEndDatetimes#13795897, dayBucketDemands#13796185, pointInTimeDemands#13796186, openGoodsMovements#13797387]
(2255) Project
Arguments: [product#13795638, plant#13795639, orderDateTime#13795640, productPlant#13795651, outboundUnit#13795668, stockDatetime#13795895, stockBatchQuantities#13795896, stockBatchShelfLifeEndDatetimes#13795897, dayBucketDemands#13796185, pointInTimeDemands#13796186, coalesce(openGoodsMovements#13797387.openQtyInBaseUnit, cast(array() as array<double>)) AS openGoodsMovementQuantities#13797388, coalesce(openGoodsMovements#13797387.availabilityDatetime, cast(array() as array<timestamp>)) AS openGoodsMovementAvailabilityDatetimes#13797389, coalesce(openGoodsMovements#13797387.shelfLifeEndDatetime, cast(array() as array<timestamp>)) AS openGoodsMovementShelfLifeEndDatetimes#13797390]
(2256) Project
Arguments: [product#13795638, plant#13795639, orderDateTime#13795640, productPlant#13795651, outboundUnit#13795668, stockDatetime#13795895, stockBatchQuantities#13795896, stockBatchShelfLifeEndDatetimes#13795897, dayBucketDemands#13796185, pointInTimeDemands#13796186, openGoodsMovementQuantities#13797388, openGoodsMovementAvailabilityDatetimes#13797389, openGoodsMovementShelfLifeEndDatetimes#13797390, 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#13797391]
(2257) Project
Arguments: [product#13795638, plant#13795639, orderDateTime#13795640, productPlant#13795651, outboundUnit#13795668, stockDatetime#13795895, stockBatchQuantities#13795896, stockBatchShelfLifeEndDatetimes#13795897, dayBucketDemands#13796185, pointInTimeDemands#13796186, openGoodsMovementQuantities#13797388, openGoodsMovementAvailabilityDatetimes#13797389, openGoodsMovementShelfLifeEndDatetimes#13797390, configuration#13797391, productPlant#13795651.listing AS listing#13795580]
(2258) Project
Arguments: [product#13795638, plant#13795639, orderDateTime#13795640, productPlant#13795651, outboundUnit#13795668, stockDatetime#13795895, stockBatchQuantities#13795896, stockBatchShelfLifeEndDatetimes#13795897, dayBucketDemands#13796185, pointInTimeDemands#13796186, openGoodsMovementQuantities#13797388, openGoodsMovementAvailabilityDatetimes#13797389, openGoodsMovementShelfLifeEndDatetimes#13797390, configuration#13797391, CASE WHEN isnotnull(listing#13795580) THEN listing#13795580 ELSE cast(array() as array<struct<validFrom:timestamp,validTo:timestamp,isListed:boolean>>) END AS listing#13795582]
(2259) Project
Arguments: [product#13795638, plant#13795639, orderDateTime#13795640, productPlant#13795651, outboundUnit#13795668, stockDatetime#13795895, stockBatchQuantities#13795896, stockBatchShelfLifeEndDatetimes#13795897, dayBucketDemands#13796185, pointInTimeDemands#13796186, openGoodsMovementQuantities#13797388, openGoodsMovementAvailabilityDatetimes#13797389, openGoodsMovementShelfLifeEndDatetimes#13797390, configuration#13797391, filter(listing#13795582, lambdafunction((lambda listing#13795584.isListed = true), lambda listing#13795584, false)) AS listing#13795583]
(2260) Project
Arguments: [product#13795638, plant#13795639, orderDateTime#13795640, productPlant#13795651, outboundUnit#13795668, stockDatetime#13795895, stockBatchQuantities#13795896, stockBatchShelfLifeEndDatetimes#13795897, dayBucketDemands#13796185, pointInTimeDemands#13796186, openGoodsMovementQuantities#13797388, openGoodsMovementAvailabilityDatetimes#13797389, openGoodsMovementShelfLifeEndDatetimes#13797390, configuration#13797391, array_sort(listing#13795583, lambdafunction(if ((isnull(lambda left#13795586) AND isnull(lambda right#13795587))) 0 else if (isnull(lambda left#13795586)) 1 else if (isnull(lambda right#13795587)) -1 else if ((lambda left#13795586 < lambda right#13795587)) -1 else if ((lambda left#13795586 > lambda right#13795587)) 1 else 0, lambda left#13795586, lambda right#13795587, false), false) AS listing#13795585]
(2261) DeserializeToObject
Arguments: createexternalrow(invoke(product#13795638.toString()), invoke(plant#13795639.toString()), static_invoke(DateTimeUtils.toJavaTimestamp(orderDateTime#13795640)), if (isnull(productPlant#13795651)) null else createexternalrow(invoke(productPlant#13795651.systemId.toString()), invoke(productPlant#13795651.internalUUID.toString()), if (isnull(productPlant#13795651.plant)) null else createexternalrow(invoke(productPlant#13795651.plant.internalRefUUID.toString()), invoke(productPlant#13795651.plant.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), if (isnull(productPlant#13795651.product)) null else createexternalrow(invoke(productPlant#13795651.product.internalRefUUID.toString()), invoke(productPlant#13795651.product.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(DateTimeUtils.toJavaDate(productPlant#13795651.blockedForReplenishmentStartingFrom)), if (isnull(productPlant#13795651.productionAspect)) null else createexternalrow(if (isnull(productPlant#13795651.productionAspect.productMovementPlants)) null else createexternalrow(if (isnull(productPlant#13795651.productionAspect.productMovementPlants.unitOfIssue)) null else createexternalrow(invoke(productPlant#13795651.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID.toString()), invoke(productPlant#13795651.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#13795651.productionAspect.productPlanningPlants)) null else createexternalrow(if (isnull(productPlant#13795651.productionAspect.productPlanningPlants.mrpType)) null else createexternalrow(invoke(productPlant#13795651.productionAspect.productPlanningPlants.mrpType.internalRefUUID.toString()), invoke(productPlant#13795651.productionAspect.productPlanningPlants.mrpType.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#13795651.productionAspect.productPlanningPlants.abcIndicator)) null else createexternalrow(invoke(productPlant#13795651.productionAspect.productPlanningPlants.abcIndicator.internalRefUUID.toString()), invoke(productPlant#13795651.productionAspect.productPlanningPlants.abcIndicator.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#13795651.productionAspect.productPlanningPlants.mrpController)) null else createexternalrow(invoke(productPlant#13795651.productionAspect.productPlanningPlants.mrpController.internalRefUUID.toString()), invoke(productPlant#13795651.productionAspect.productPlanningPlants.mrpController.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(java.lang.Double.valueOf(productPlant#13795651.productionAspect.productPlanningPlants.minimumLotSize)), if (isnull(productPlant#13795651.productionAspect.productPlanningPlants.logisticalRoundingProfile)) null else createexternalrow(invoke(productPlant#13795651.productionAspect.productPlanningPlants.logisticalRoundingProfile.internalRefUUID.toString()), invoke(productPlant#13795651.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#13795651.salesPlant)) null else createexternalrow(if (isnull(productPlant#13795651.salesPlant.loadingGroup)) null else createexternalrow(invoke(productPlant#13795651.salesPlant.loadingGroup.internalRefUUID.toString()), invoke(productPlant#13795651.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, 1728331), if (isnull(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 1728331))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 1728331).validFrom)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 1728331).validTo)), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 1728331).isListed)), StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true)), productPlant#13795651.listing, Some(class scala.collection.mutable.ArraySeq)), if (isnull(productPlant#13795651.sourceOfSupplyCategory)) null else createexternalrow(invoke(productPlant#13795651.sourceOfSupplyCategory.internalRefUUID.toString()), invoke(productPlant#13795651.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#13795668)), static_invoke(DateTimeUtils.toJavaTimestamp(stockDatetime#13795895)), mapobjects(lambdavariable(MapObject, DoubleType, true, 1728332), static_invoke(java.lang.Double.valueOf(cast(lambdavariable(MapObject, DoubleType, true, 1728332) as double))), stockBatchQuantities#13795896, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, false, 1728333), assertnotnull(static_invoke(DateTimeUtils.toJavaTimestamp(cast(lambdavariable(MapObject, TimestampType, false, 1728333) as timestamp)))), stockBatchShelfLifeEndDatetimes#13795897, 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, 1728334), 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, 1728334))) 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, 1728334).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, 1728334).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, 1728334).considerVariance)), mapobjects(lambdavariable(MapObject, DoubleType, false, 1728335), assertnotnull(static_invoke(java.lang.Double.valueOf(cast(lambdavariable(MapObject, DoubleType, false, 1728335) 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, 1728334).demandValues, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, DoubleType, true, 1728336), static_invoke(java.lang.Double.valueOf(cast(lambdavariable(MapObject, DoubleType, true, 1728336) 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, 1728334).demandVariances, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, false, 1728337), assertnotnull(static_invoke(DateTimeUtils.toJavaTimestamp(cast(lambdavariable(MapObject, TimestampType, false, 1728337) 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, 1728334).anchorDatetimes, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, StringType, false, 1728338), assertnotnull(invoke(cast(lambdavariable(MapObject, StringType, false, 1728338) 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, 1728334).anchorWeekdays, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, IntegerType, false, 1728339), assertnotnull(static_invoke(java.lang.Integer.valueOf(cast(lambdavariable(MapObject, IntegerType, false, 1728339) 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, 1728334).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#13796185, 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, 1728340), 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, 1728340))) 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, 1728340).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, 1728340).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, 1728340).considerVariance)), mapobjects(lambdavariable(MapObject, TimestampType, false, 1728341), assertnotnull(static_invoke(DateTimeUtils.toJavaTimestamp(cast(lambdavariable(MapObject, TimestampType, false, 1728341) 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, 1728340).demandDatetimes, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, DoubleType, false, 1728342), assertnotnull(static_invoke(java.lang.Double.valueOf(cast(lambdavariable(MapObject, DoubleType, false, 1728342) 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, 1728340).demandValues, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, DoubleType, true, 1728343), static_invoke(java.lang.Double.valueOf(cast(lambdavariable(MapObject, DoubleType, true, 1728343) 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, 1728340).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, 1728340).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, 1728340).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#13796186, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, DoubleType, true, 1728344), static_invoke(java.lang.Double.valueOf(cast(lambdavariable(MapObject, DoubleType, true, 1728344) as double))), openGoodsMovementQuantities#13797388, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, true, 1728345), static_invoke(DateTimeUtils.toJavaTimestamp(cast(lambdavariable(MapObject, TimestampType, true, 1728345) as timestamp))), openGoodsMovementAvailabilityDatetimes#13797389, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, false, 1728346), assertnotnull(static_invoke(DateTimeUtils.toJavaTimestamp(cast(lambdavariable(MapObject, TimestampType, false, 1728346) as timestamp)))), openGoodsMovementShelfLifeEndDatetimes#13797390, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, StructField(configurationValidityDatetime,TimestampType,false), StructField(configurationName,StringType,false), StructField(configurationValue,StringType,false), false, 1728347), assertnotnull(if (isnull(lambdavariable(MapObject, StructField(configurationValidityDatetime,TimestampType,false), StructField(configurationName,StringType,false), StructField(configurationValue,StringType,false), false, 1728347))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(configurationValidityDatetime,TimestampType,false), StructField(configurationName,StringType,false), StructField(configurationValue,StringType,false), false, 1728347).configurationValidityDatetime)), invoke(lambdavariable(MapObject, StructField(configurationValidityDatetime,TimestampType,false), StructField(configurationName,StringType,false), StructField(configurationValue,StringType,false), false, 1728347).configurationName.toString()), invoke(lambdavariable(MapObject, StructField(configurationValidityDatetime,TimestampType,false), StructField(configurationName,StringType,false), StructField(configurationValue,StringType,false), false, 1728347).configurationValue.toString()), StructField(configurationValidityDatetime,TimestampType,false), StructField(configurationName,StringType,false), StructField(configurationValue,StringType,false))), configuration#13797391, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 1728348), if (isnull(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 1728348))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 1728348).validFrom)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 1728348).validTo)), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 1728348).isListed)), StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true)), listing#13795585, 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#13795618: org.apache.spark.sql.Row
(2262) MapElements
Arguments: com.sap.s4hana.eureka.business.crporderquantitykpiservice.core.business.datasnapshot.ListingSnapshotEnhancementImpl$$Lambda/0x0000000802070f28@3f33e2dc, 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#13795625: 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#13795632, 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#13795633, assertnotnull(mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728327), static_invoke(UTF8String.fromString(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728327), 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#13795634, assertnotnull(mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728328), static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728328), 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#13795635, assertnotnull(mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728329), static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728329), 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#13795636, 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, 1728330), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 1728330), 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#13795637]
(2264) Join
Arguments: LeftOuter, ((product#13791972 = product#13795632) AND (plant#13791973 = plant#13795633))
(2265) Project
Arguments: [product#13791972, plant#13791973, orderDateTime#13791974, productPlant#13792009, outboundUnit#13792060, stockDatetime#13792371, stockBatchQuantities#13792372, stockBatchShelfLifeEndDatetimes#13792373, dayBucketDemands#13793489, pointInTimeDemands#13793490, openGoodsMovementQuantities#13795147, openGoodsMovementAvailabilityDatetimes#13795148, openGoodsMovementShelfLifeEndDatetimes#13795149, configuration#13795441, timeDependentSettingsName#13795634, timeDependentSettingsStartDatetime#13795635, timeDependentSettingsEndDatetime#13795636, timeDependentSettingsValue#13795637]
(2266) Project
Arguments: [product#13791972, plant#13791973, orderDateTime#13791974, productPlant#13792009, outboundUnit#13792060, stockDatetime#13792371, stockBatchQuantities#13792372, stockBatchShelfLifeEndDatetimes#13792373, dayBucketDemands#13793489, pointInTimeDemands#13793490, openGoodsMovementQuantities#13795147, openGoodsMovementAvailabilityDatetimes#13795148, openGoodsMovementShelfLifeEndDatetimes#13795149, configuration#13795441, CASE WHEN isnotnull(timeDependentSettingsName#13795634) THEN timeDependentSettingsName#13795634 ELSE cast(array() as array<string>) END AS timeDependentSettingsName#13797516, timeDependentSettingsStartDatetime#13795635, timeDependentSettingsEndDatetime#13795636, timeDependentSettingsValue#13795637]
(2267) Project
Arguments: [product#13791972, plant#13791973, orderDateTime#13791974, productPlant#13792009, outboundUnit#13792060, stockDatetime#13792371, stockBatchQuantities#13792372, stockBatchShelfLifeEndDatetimes#13792373, dayBucketDemands#13793489, pointInTimeDemands#13793490, openGoodsMovementQuantities#13795147, openGoodsMovementAvailabilityDatetimes#13795148, openGoodsMovementShelfLifeEndDatetimes#13795149, configuration#13795441, timeDependentSettingsName#13797516, CASE WHEN isnotnull(timeDependentSettingsStartDatetime#13795635) THEN timeDependentSettingsStartDatetime#13795635 ELSE cast(array() as array<timestamp>) END AS timeDependentSettingsStartDatetime#13797517, timeDependentSettingsEndDatetime#13795636, timeDependentSettingsValue#13795637]
(2268) Project
Arguments: [product#13791972, plant#13791973, orderDateTime#13791974, productPlant#13792009, outboundUnit#13792060, stockDatetime#13792371, stockBatchQuantities#13792372, stockBatchShelfLifeEndDatetimes#13792373, dayBucketDemands#13793489, pointInTimeDemands#13793490, openGoodsMovementQuantities#13795147, openGoodsMovementAvailabilityDatetimes#13795148, openGoodsMovementShelfLifeEndDatetimes#13795149, configuration#13795441, timeDependentSettingsName#13797516, timeDependentSettingsStartDatetime#13797517, CASE WHEN isnotnull(timeDependentSettingsEndDatetime#13795636) THEN timeDependentSettingsEndDatetime#13795636 ELSE cast(array() as array<timestamp>) END AS timeDependentSettingsEndDatetime#13797518, timeDependentSettingsValue#13795637]
(2269) Project
Arguments: [product#13791972, plant#13791973, orderDateTime#13791974, productPlant#13792009, outboundUnit#13792060, stockDatetime#13792371, stockBatchQuantities#13792372, stockBatchShelfLifeEndDatetimes#13792373, dayBucketDemands#13793489, pointInTimeDemands#13793490, openGoodsMovementQuantities#13795147, openGoodsMovementAvailabilityDatetimes#13795148, openGoodsMovementShelfLifeEndDatetimes#13795149, configuration#13795441, timeDependentSettingsName#13797516, timeDependentSettingsStartDatetime#13797517, timeDependentSettingsEndDatetime#13797518, CASE WHEN isnotnull(timeDependentSettingsValue#13795637) THEN timeDependentSettingsValue#13795637 ELSE cast(array() as array<double>) END AS timeDependentSettingsValue#13797519]
(2270) Project
Arguments: [product#13791972, plant#13791973, orderDateTime#13791974, outboundUnit#13792060, stockDatetime#13792371, stockBatchQuantities#13792372, stockBatchShelfLifeEndDatetimes#13792373, dayBucketDemands#13793489, pointInTimeDemands#13793490, openGoodsMovementQuantities#13795147, openGoodsMovementAvailabilityDatetimes#13795148, openGoodsMovementShelfLifeEndDatetimes#13795149, configuration#13795441, timeDependentSettingsName#13797516, timeDependentSettingsStartDatetime#13797517, timeDependentSettingsEndDatetime#13797518, timeDependentSettingsValue#13797519]
(2271) Project
Arguments: [product#13791972, plant#13791973, outboundUnit#13792060, stockDatetime#13792371, stockBatchQuantities#13792372, stockBatchShelfLifeEndDatetimes#13792373, dayBucketDemands#13793489, pointInTimeDemands#13793490, openGoodsMovementQuantities#13795147, openGoodsMovementAvailabilityDatetimes#13795148, openGoodsMovementShelfLifeEndDatetimes#13795149, configuration#13795441, timeDependentSettingsName#13797516, timeDependentSettingsStartDatetime#13797517, timeDependentSettingsEndDatetime#13797518, timeDependentSettingsValue#13797519]