== Physical Plan ==
Execute SaveIntoDataSourceCommand (1)
+- SaveIntoDataSourceCommand (2)
+- Project (2275)
+- Project (2274)
+- Project (2273)
+- Project (2272)
+- Project (2271)
+- Project (2270)
+- Project (2269)
+- Join (2268)
:- Project (1131)
: +- Project (1130)
: +- Project (1129)
: +- Join (1128)
: :- 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 (1127)
: +- Union (1126)
: :- Filter (760)
: : +- Aggregate (759)
: : +- Project (758)
: : +- Project (757)
: : +- Window (756)
: : +- Project (755)
: : +- Project (754)
: : +- Project (753)
: : +- Join (752)
: : :- 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 (751)
: : +- Filter (750)
: : +- Project (749)
: : +- Generate (748)
: : +- Repartition (747)
: : +- LogicalRelation (746)
: +- Filter (1125)
: +- Aggregate (1124)
: +- Project (1123)
: +- Project (1122)
: +- Project (1121)
: +- Join (1120)
: :- Project (1113)
: : +- Project (1112)
: : +- Join (1111)
: : :- Project (928)
: : : +- Project (927)
: : : +- Project (926)
: : : +- Project (925)
: : : +- Project (924)
: : : +- Project (923)
: : : +- Join (922)
: : : :- Project (780)
: : : : +- Project (779)
: : : : +- Project (778)
: : : : +- Project (777)
: : : : +- Generate (776)
: : : : +- Project (775)
: : : : +- Generate (774)
: : : : +- Project (773)
: : : : +- Join (772)
: : : : :- Project (769)
: : : : : +- Join (768)
: : : : : :- Project (763)
: : : : : : +- RepartitionByExpression (762)
: : : : : : +- LogicalRelation (761)
: : : : : +- Project (767)
: : : : : +- Project (766)
: : : : : +- Repartition (765)
: : : : : +- LogicalRelation (764)
: : : : +- Repartition (771)
: : : : +- LogicalRelation (770)
: : : +- Project (921)
: : : +- Aggregate (920)
: : : +- Project (919)
: : : +- Join (918)
: : : :- Project (848)
: : : : +- Filter (847)
: : : : +- Join (846)
: : : : :- Filter (825)
: : : : : +- Project (824)
: : : : : +- Project (823)
: : : : : +- Generate (822)
: : : : : +- Project (821)
: : : : : +- Aggregate (820)
: : : : : +- Project (819)
: : : : : +- Generate (818)
: : : : : +- Join (817)
: : : : : :- Repartition (782)
: : : : : : +- LogicalRelation (781)
: : : : : +- Project (816)
: : : : : +- Join (815)
: : : : : :- Project (792)
: : : : : : +- Project (791)
: : : : : : +- Generate (790)
: : : : : : +- Project (789)
: : : : : : +- Generate (788)
: : : : : : +- Project (787)
: : : : : : +- Project (786)
: : : : : : +- Filter (785)
: : : : : : +- Repartition (784)
: : : : : : +- LogicalRelation (783)
: : : : : +- Deduplicate (814)
: : : : : +- Project (813)
: : : : : +- Project (812)
: : : : : +- Project (811)
: : : : : +- Project (810)
: : : : : +- Project (809)
: : : : : +- Generate (808)
: : : : : +- Project (807)
: : : : : +- Generate (806)
: : : : : +- Project (805)
: : : : : +- Join (804)
: : : : : :- Project (801)
: : : : : : +- Join (800)
: : : : : : :- Project (795)
: : : : : : : +- RepartitionByExpression (794)
: : : : : : : +- LogicalRelation (793)
: : : : : : +- Project (799)
: : : : : : +- Project (798)
: : : : : : +- Repartition (797)
: : : : : : +- LogicalRelation (796)
: : : : : +- Repartition (803)
: : : : : +- LogicalRelation (802)
: : : : +- Project (845)
: : : : +- Project (844)
: : : : +- Project (843)
: : : : +- Project (842)
: : : : +- Generate (841)
: : : : +- Project (840)
: : : : +- Generate (839)
: : : : +- Project (838)
: : : : +- Join (837)
: : : : :- Project (834)
: : : : : +- Join (833)
: : : : : :- Project (828)
: : : : : : +- RepartitionByExpression (827)
: : : : : : +- LogicalRelation (826)
: : : : : +- Project (832)
: : : : : +- Project (831)
: : : : : +- Repartition (830)
: : : : : +- LogicalRelation (829)
: : : : +- Repartition (836)
: : : : +- LogicalRelation (835)
: : : +- Aggregate (917)
: : : +- Project (916)
: : : +- Filter (915)
: : : +- Join (914)
: : : :- Filter (893)
: : : : +- Project (892)
: : : : +- Project (891)
: : : : +- Generate (890)
: : : : +- Project (889)
: : : : +- Aggregate (888)
: : : : +- Project (887)
: : : : +- Generate (886)
: : : : +- Join (885)
: : : : :- Repartition (850)
: : : : : +- LogicalRelation (849)
: : : : +- Project (884)
: : : : +- Join (883)
: : : : :- Project (860)
: : : : : +- Project (859)
: : : : : +- Generate (858)
: : : : : +- Project (857)
: : : : : +- Generate (856)
: : : : : +- Project (855)
: : : : : +- Project (854)
: : : : : +- Filter (853)
: : : : : +- Repartition (852)
: : : : : +- LogicalRelation (851)
: : : : +- Deduplicate (882)
: : : : +- Project (881)
: : : : +- Project (880)
: : : : +- Project (879)
: : : : +- Project (878)
: : : : +- Project (877)
: : : : +- Generate (876)
: : : : +- Project (875)
: : : : +- Generate (874)
: : : : +- Project (873)
: : : : +- Join (872)
: : : : :- Project (869)
: : : : : +- Join (868)
: : : : : :- Project (863)
: : : : : : +- RepartitionByExpression (862)
: : : : : : +- LogicalRelation (861)
: : : : : +- Project (867)
: : : : : +- Project (866)
: : : : : +- Repartition (865)
: : : : : +- LogicalRelation (864)
: : : : +- Repartition (871)
: : : : +- LogicalRelation (870)
: : : +- Project (913)
: : : +- Project (912)
: : : +- Project (911)
: : : +- Project (910)
: : : +- Generate (909)
: : : +- Project (908)
: : : +- Generate (907)
: : : +- Project (906)
: : : +- Join (905)
: : : :- Project (902)
: : : : +- Join (901)
: : : : :- Project (896)
: : : : : +- RepartitionByExpression (895)
: : : : : +- LogicalRelation (894)
: : : : +- Project (900)
: : : : +- Project (899)
: : : : +- Repartition (898)
: : : : +- LogicalRelation (897)
: : : +- Repartition (904)
: : : +- LogicalRelation (903)
: : +- SerializeFromObject (1110)
: : +- MapElements (1109)
: : +- DeserializeToObject (1108)
: : +- Project (1107)
: : +- Project (1106)
: : +- Join (1105)
: : :- SubqueryAlias (1101)
: : : +- Aggregate (1100)
: : : +- Project (1099)
: : : +- Join (1098)
: : : :- Project (1096)
: : : : +- Project (1095)
: : : : +- Project (1094)
: : : : +- Project (1093)
: : : : +- Project (1092)
: : : : +- Project (1091)
: : : : +- Join (1090)
: : : : :- Project (948)
: : : : : +- Project (947)
: : : : : +- Project (946)
: : : : : +- Project (945)
: : : : : +- Generate (944)
: : : : : +- Project (943)
: : : : : +- Generate (942)
: : : : : +- Project (941)
: : : : : +- Join (940)
: : : : : :- Project (937)
: : : : : : +- Join (936)
: : : : : : :- Project (931)
: : : : : : : +- RepartitionByExpression (930)
: : : : : : : +- LogicalRelation (929)
: : : : : : +- Project (935)
: : : : : : +- Project (934)
: : : : : : +- Repartition (933)
: : : : : : +- LogicalRelation (932)
: : : : : +- Repartition (939)
: : : : : +- LogicalRelation (938)
: : : : +- Project (1089)
: : : : +- Aggregate (1088)
: : : : +- Project (1087)
: : : : +- Join (1086)
: : : : :- Project (1016)
: : : : : +- Filter (1015)
: : : : : +- Join (1014)
: : : : : :- Filter (993)
: : : : : : +- Project (992)
: : : : : : +- Project (991)
: : : : : : +- Generate (990)
: : : : : : +- Project (989)
: : : : : : +- Aggregate (988)
: : : : : : +- Project (987)
: : : : : : +- Generate (986)
: : : : : : +- Join (985)
: : : : : : :- Repartition (950)
: : : : : : : +- LogicalRelation (949)
: : : : : : +- Project (984)
: : : : : : +- Join (983)
: : : : : : :- Project (960)
: : : : : : : +- Project (959)
: : : : : : : +- Generate (958)
: : : : : : : +- Project (957)
: : : : : : : +- Generate (956)
: : : : : : : +- Project (955)
: : : : : : : +- Project (954)
: : : : : : : +- Filter (953)
: : : : : : : +- Repartition (952)
: : : : : : : +- LogicalRelation (951)
: : : : : : +- Deduplicate (982)
: : : : : : +- Project (981)
: : : : : : +- Project (980)
: : : : : : +- Project (979)
: : : : : : +- Project (978)
: : : : : : +- Project (977)
: : : : : : +- Generate (976)
: : : : : : +- Project (975)
: : : : : : +- Generate (974)
: : : : : : +- Project (973)
: : : : : : +- Join (972)
: : : : : : :- Project (969)
: : : : : : : +- Join (968)
: : : : : : : :- Project (963)
: : : : : : : : +- RepartitionByExpression (962)
: : : : : : : : +- LogicalRelation (961)
: : : : : : : +- Project (967)
: : : : : : : +- Project (966)
: : : : : : : +- Repartition (965)
: : : : : : : +- LogicalRelation (964)
: : : : : : +- Repartition (971)
: : : : : : +- LogicalRelation (970)
: : : : : +- Project (1013)
: : : : : +- Project (1012)
: : : : : +- Project (1011)
: : : : : +- Project (1010)
: : : : : +- Generate (1009)
: : : : : +- Project (1008)
: : : : : +- Generate (1007)
: : : : : +- Project (1006)
: : : : : +- Join (1005)
: : : : : :- Project (1002)
: : : : : : +- Join (1001)
: : : : : : :- Project (996)
: : : : : : : +- RepartitionByExpression (995)
: : : : : : : +- LogicalRelation (994)
: : : : : : +- Project (1000)
: : : : : : +- Project (999)
: : : : : : +- Repartition (998)
: : : : : : +- LogicalRelation (997)
: : : : : +- Repartition (1004)
: : : : : +- LogicalRelation (1003)
: : : : +- Aggregate (1085)
: : : : +- Project (1084)
: : : : +- Filter (1083)
: : : : +- Join (1082)
: : : : :- Filter (1061)
: : : : : +- Project (1060)
: : : : : +- Project (1059)
: : : : : +- Generate (1058)
: : : : : +- Project (1057)
: : : : : +- Aggregate (1056)
: : : : : +- Project (1055)
: : : : : +- Generate (1054)
: : : : : +- Join (1053)
: : : : : :- Repartition (1018)
: : : : : : +- LogicalRelation (1017)
: : : : : +- Project (1052)
: : : : : +- Join (1051)
: : : : : :- Project (1028)
: : : : : : +- Project (1027)
: : : : : : +- Generate (1026)
: : : : : : +- Project (1025)
: : : : : : +- Generate (1024)
: : : : : : +- Project (1023)
: : : : : : +- Project (1022)
: : : : : : +- Filter (1021)
: : : : : : +- Repartition (1020)
: : : : : : +- LogicalRelation (1019)
: : : : : +- Deduplicate (1050)
: : : : : +- Project (1049)
: : : : : +- Project (1048)
: : : : : +- Project (1047)
: : : : : +- Project (1046)
: : : : : +- Project (1045)
: : : : : +- Generate (1044)
: : : : : +- Project (1043)
: : : : : +- Generate (1042)
: : : : : +- Project (1041)
: : : : : +- Join (1040)
: : : : : :- Project (1037)
: : : : : : +- Join (1036)
: : : : : : :- Project (1031)
: : : : : : : +- RepartitionByExpression (1030)
: : : : : : : +- LogicalRelation (1029)
: : : : : : +- Project (1035)
: : : : : : +- Project (1034)
: : : : : : +- Repartition (1033)
: : : : : : +- LogicalRelation (1032)
: : : : : +- Repartition (1039)
: : : : : +- LogicalRelation (1038)
: : : : +- Project (1081)
: : : : +- Project (1080)
: : : : +- Project (1079)
: : : : +- Project (1078)
: : : : +- Generate (1077)
: : : : +- Project (1076)
: : : : +- Generate (1075)
: : : : +- Project (1074)
: : : : +- Join (1073)
: : : : :- Project (1070)
: : : : : +- Join (1069)
: : : : : :- Project (1064)
: : : : : : +- RepartitionByExpression (1063)
: : : : : : +- LogicalRelation (1062)
: : : : : +- Project (1068)
: : : : : +- Project (1067)
: : : : : +- Repartition (1066)
: : : : : +- LogicalRelation (1065)
: : : : +- Repartition (1072)
: : : : +- LogicalRelation (1071)
: : : +- LogicalRelation (1097)
: : +- Project (1104)
: : +- Repartition (1103)
: : +- LogicalRelation (1102)
: +- Project (1119)
: +- Filter (1118)
: +- Project (1117)
: +- Generate (1116)
: +- Repartition (1115)
: +- LogicalRelation (1114)
+- SerializeFromObject (2267)
+- MapElements (2266)
+- DeserializeToObject (2265)
+- Project (2264)
+- Project (2263)
+- Project (2262)
+- Project (2261)
+- Project (2260)
+- Project (2259)
+- Project (2258)
+- Join (2257)
:- Project (1484)
: +- Project (1483)
: +- Join (1482)
: :- Project (1299)
: : +- Project (1298)
: : +- Project (1297)
: : +- Project (1296)
: : +- Project (1295)
: : +- Project (1294)
: : +- Join (1293)
: : :- Project (1151)
: : : +- Project (1150)
: : : +- Project (1149)
: : : +- Project (1148)
: : : +- Generate (1147)
: : : +- Project (1146)
: : : +- Generate (1145)
: : : +- Project (1144)
: : : +- Join (1143)
: : : :- Project (1140)
: : : : +- Join (1139)
: : : : :- Project (1134)
: : : : : +- RepartitionByExpression (1133)
: : : : : +- LogicalRelation (1132)
: : : : +- Project (1138)
: : : : +- Project (1137)
: : : : +- Repartition (1136)
: : : : +- LogicalRelation (1135)
: : : +- Repartition (1142)
: : : +- LogicalRelation (1141)
: : +- Project (1292)
: : +- Aggregate (1291)
: : +- Project (1290)
: : +- Join (1289)
: : :- Project (1219)
: : : +- Filter (1218)
: : : +- Join (1217)
: : : :- Filter (1196)
: : : : +- Project (1195)
: : : : +- Project (1194)
: : : : +- Generate (1193)
: : : : +- Project (1192)
: : : : +- Aggregate (1191)
: : : : +- Project (1190)
: : : : +- Generate (1189)
: : : : +- Join (1188)
: : : : :- Repartition (1153)
: : : : : +- LogicalRelation (1152)
: : : : +- Project (1187)
: : : : +- Join (1186)
: : : : :- Project (1163)
: : : : : +- Project (1162)
: : : : : +- Generate (1161)
: : : : : +- Project (1160)
: : : : : +- Generate (1159)
: : : : : +- Project (1158)
: : : : : +- Project (1157)
: : : : : +- Filter (1156)
: : : : : +- Repartition (1155)
: : : : : +- LogicalRelation (1154)
: : : : +- Deduplicate (1185)
: : : : +- Project (1184)
: : : : +- Project (1183)
: : : : +- Project (1182)
: : : : +- Project (1181)
: : : : +- Project (1180)
: : : : +- Generate (1179)
: : : : +- Project (1178)
: : : : +- Generate (1177)
: : : : +- Project (1176)
: : : : +- Join (1175)
: : : : :- Project (1172)
: : : : : +- Join (1171)
: : : : : :- Project (1166)
: : : : : : +- RepartitionByExpression (1165)
: : : : : : +- LogicalRelation (1164)
: : : : : +- Project (1170)
: : : : : +- Project (1169)
: : : : : +- Repartition (1168)
: : : : : +- LogicalRelation (1167)
: : : : +- Repartition (1174)
: : : : +- LogicalRelation (1173)
: : : +- Project (1216)
: : : +- Project (1215)
: : : +- Project (1214)
: : : +- Project (1213)
: : : +- Generate (1212)
: : : +- Project (1211)
: : : +- Generate (1210)
: : : +- Project (1209)
: : : +- Join (1208)
: : : :- Project (1205)
: : : : +- Join (1204)
: : : : :- Project (1199)
: : : : : +- RepartitionByExpression (1198)
: : : : : +- LogicalRelation (1197)
: : : : +- Project (1203)
: : : : +- Project (1202)
: : : : +- Repartition (1201)
: : : : +- LogicalRelation (1200)
: : : +- Repartition (1207)
: : : +- LogicalRelation (1206)
: : +- Aggregate (1288)
: : +- Project (1287)
: : +- Filter (1286)
: : +- Join (1285)
: : :- Filter (1264)
: : : +- Project (1263)
: : : +- Project (1262)
: : : +- Generate (1261)
: : : +- Project (1260)
: : : +- Aggregate (1259)
: : : +- Project (1258)
: : : +- Generate (1257)
: : : +- Join (1256)
: : : :- Repartition (1221)
: : : : +- LogicalRelation (1220)
: : : +- Project (1255)
: : : +- Join (1254)
: : : :- Project (1231)
: : : : +- Project (1230)
: : : : +- Generate (1229)
: : : : +- Project (1228)
: : : : +- Generate (1227)
: : : : +- Project (1226)
: : : : +- Project (1225)
: : : : +- Filter (1224)
: : : : +- Repartition (1223)
: : : : +- LogicalRelation (1222)
: : : +- Deduplicate (1253)
: : : +- Project (1252)
: : : +- Project (1251)
: : : +- Project (1250)
: : : +- Project (1249)
: : : +- Project (1248)
: : : +- Generate (1247)
: : : +- Project (1246)
: : : +- Generate (1245)
: : : +- Project (1244)
: : : +- Join (1243)
: : : :- Project (1240)
: : : : +- Join (1239)
: : : : :- Project (1234)
: : : : : +- RepartitionByExpression (1233)
: : : : : +- LogicalRelation (1232)
: : : : +- Project (1238)
: : : : +- Project (1237)
: : : : +- Repartition (1236)
: : : : +- LogicalRelation (1235)
: : : +- Repartition (1242)
: : : +- LogicalRelation (1241)
: : +- Project (1284)
: : +- Project (1283)
: : +- Project (1282)
: : +- Project (1281)
: : +- Generate (1280)
: : +- Project (1279)
: : +- Generate (1278)
: : +- Project (1277)
: : +- Join (1276)
: : :- Project (1273)
: : : +- Join (1272)
: : : :- Project (1267)
: : : : +- RepartitionByExpression (1266)
: : : : +- LogicalRelation (1265)
: : : +- Project (1271)
: : : +- Project (1270)
: : : +- Repartition (1269)
: : : +- LogicalRelation (1268)
: : +- Repartition (1275)
: : +- LogicalRelation (1274)
: +- SerializeFromObject (1481)
: +- MapElements (1480)
: +- DeserializeToObject (1479)
: +- Project (1478)
: +- Project (1477)
: +- Join (1476)
: :- SubqueryAlias (1472)
: : +- Aggregate (1471)
: : +- Project (1470)
: : +- Join (1469)
: : :- Project (1467)
: : : +- Project (1466)
: : : +- Project (1465)
: : : +- Project (1464)
: : : +- Project (1463)
: : : +- Project (1462)
: : : +- Join (1461)
: : : :- Project (1319)
: : : : +- Project (1318)
: : : : +- Project (1317)
: : : : +- Project (1316)
: : : : +- Generate (1315)
: : : : +- Project (1314)
: : : : +- Generate (1313)
: : : : +- Project (1312)
: : : : +- Join (1311)
: : : : :- Project (1308)
: : : : : +- Join (1307)
: : : : : :- Project (1302)
: : : : : : +- RepartitionByExpression (1301)
: : : : : : +- LogicalRelation (1300)
: : : : : +- Project (1306)
: : : : : +- Project (1305)
: : : : : +- Repartition (1304)
: : : : : +- LogicalRelation (1303)
: : : : +- Repartition (1310)
: : : : +- LogicalRelation (1309)
: : : +- Project (1460)
: : : +- Aggregate (1459)
: : : +- Project (1458)
: : : +- Join (1457)
: : : :- Project (1387)
: : : : +- Filter (1386)
: : : : +- Join (1385)
: : : : :- Filter (1364)
: : : : : +- Project (1363)
: : : : : +- Project (1362)
: : : : : +- Generate (1361)
: : : : : +- Project (1360)
: : : : : +- Aggregate (1359)
: : : : : +- Project (1358)
: : : : : +- Generate (1357)
: : : : : +- Join (1356)
: : : : : :- Repartition (1321)
: : : : : : +- LogicalRelation (1320)
: : : : : +- Project (1355)
: : : : : +- Join (1354)
: : : : : :- Project (1331)
: : : : : : +- Project (1330)
: : : : : : +- Generate (1329)
: : : : : : +- Project (1328)
: : : : : : +- Generate (1327)
: : : : : : +- Project (1326)
: : : : : : +- Project (1325)
: : : : : : +- Filter (1324)
: : : : : : +- Repartition (1323)
: : : : : : +- LogicalRelation (1322)
: : : : : +- Deduplicate (1353)
: : : : : +- Project (1352)
: : : : : +- Project (1351)
: : : : : +- Project (1350)
: : : : : +- Project (1349)
: : : : : +- Project (1348)
: : : : : +- Generate (1347)
: : : : : +- Project (1346)
: : : : : +- Generate (1345)
: : : : : +- Project (1344)
: : : : : +- Join (1343)
: : : : : :- Project (1340)
: : : : : : +- Join (1339)
: : : : : : :- Project (1334)
: : : : : : : +- RepartitionByExpression (1333)
: : : : : : : +- LogicalRelation (1332)
: : : : : : +- Project (1338)
: : : : : : +- Project (1337)
: : : : : : +- Repartition (1336)
: : : : : : +- LogicalRelation (1335)
: : : : : +- Repartition (1342)
: : : : : +- LogicalRelation (1341)
: : : : +- Project (1384)
: : : : +- Project (1383)
: : : : +- Project (1382)
: : : : +- Project (1381)
: : : : +- Generate (1380)
: : : : +- Project (1379)
: : : : +- Generate (1378)
: : : : +- Project (1377)
: : : : +- Join (1376)
: : : : :- Project (1373)
: : : : : +- Join (1372)
: : : : : :- Project (1367)
: : : : : : +- RepartitionByExpression (1366)
: : : : : : +- LogicalRelation (1365)
: : : : : +- Project (1371)
: : : : : +- Project (1370)
: : : : : +- Repartition (1369)
: : : : : +- LogicalRelation (1368)
: : : : +- Repartition (1375)
: : : : +- LogicalRelation (1374)
: : : +- Aggregate (1456)
: : : +- Project (1455)
: : : +- Filter (1454)
: : : +- Join (1453)
: : : :- Filter (1432)
: : : : +- Project (1431)
: : : : +- Project (1430)
: : : : +- Generate (1429)
: : : : +- Project (1428)
: : : : +- Aggregate (1427)
: : : : +- Project (1426)
: : : : +- Generate (1425)
: : : : +- Join (1424)
: : : : :- Repartition (1389)
: : : : : +- LogicalRelation (1388)
: : : : +- Project (1423)
: : : : +- Join (1422)
: : : : :- Project (1399)
: : : : : +- Project (1398)
: : : : : +- Generate (1397)
: : : : : +- Project (1396)
: : : : : +- Generate (1395)
: : : : : +- Project (1394)
: : : : : +- Project (1393)
: : : : : +- Filter (1392)
: : : : : +- Repartition (1391)
: : : : : +- LogicalRelation (1390)
: : : : +- Deduplicate (1421)
: : : : +- Project (1420)
: : : : +- Project (1419)
: : : : +- Project (1418)
: : : : +- Project (1417)
: : : : +- Project (1416)
: : : : +- Generate (1415)
: : : : +- Project (1414)
: : : : +- Generate (1413)
: : : : +- Project (1412)
: : : : +- Join (1411)
: : : : :- Project (1408)
: : : : : +- Join (1407)
: : : : : :- Project (1402)
: : : : : : +- RepartitionByExpression (1401)
: : : : : : +- LogicalRelation (1400)
: : : : : +- Project (1406)
: : : : : +- Project (1405)
: : : : : +- Repartition (1404)
: : : : : +- LogicalRelation (1403)
: : : : +- Repartition (1410)
: : : : +- LogicalRelation (1409)
: : : +- Project (1452)
: : : +- Project (1451)
: : : +- Project (1450)
: : : +- Project (1449)
: : : +- Generate (1448)
: : : +- Project (1447)
: : : +- Generate (1446)
: : : +- Project (1445)
: : : +- Join (1444)
: : : :- Project (1441)
: : : : +- Join (1440)
: : : : :- Project (1435)
: : : : : +- RepartitionByExpression (1434)
: : : : : +- LogicalRelation (1433)
: : : : +- Project (1439)
: : : : +- Project (1438)
: : : : +- Repartition (1437)
: : : : +- LogicalRelation (1436)
: : : +- Repartition (1443)
: : : +- LogicalRelation (1442)
: : +- LogicalRelation (1468)
: +- Project (1475)
: +- Repartition (1474)
: +- LogicalRelation (1473)
+- Aggregate (2256)
+- Union (2255)
:- Filter (1889)
: +- Aggregate (1888)
: +- Project (1887)
: +- Project (1886)
: +- Window (1885)
: +- Project (1884)
: +- Project (1883)
: +- Project (1882)
: +- Join (1881)
: :- Project (1874)
: : +- Join (1873)
: : :- Project (1837)
: : : +- Project (1836)
: : : +- Join (1835)
: : : :- Project (1652)
: : : : +- Project (1651)
: : : : +- Project (1650)
: : : : +- Project (1649)
: : : : +- Project (1648)
: : : : +- Project (1647)
: : : : +- Join (1646)
: : : : :- Project (1504)
: : : : : +- Project (1503)
: : : : : +- Project (1502)
: : : : : +- Project (1501)
: : : : : +- Generate (1500)
: : : : : +- Project (1499)
: : : : : +- Generate (1498)
: : : : : +- Project (1497)
: : : : : +- Join (1496)
: : : : : :- Project (1493)
: : : : : : +- Join (1492)
: : : : : : :- Project (1487)
: : : : : : : +- RepartitionByExpression (1486)
: : : : : : : +- LogicalRelation (1485)
: : : : : : +- Project (1491)
: : : : : : +- Project (1490)
: : : : : : +- Repartition (1489)
: : : : : : +- LogicalRelation (1488)
: : : : : +- Repartition (1495)
: : : : : +- LogicalRelation (1494)
: : : : +- Project (1645)
: : : : +- Aggregate (1644)
: : : : +- Project (1643)
: : : : +- Join (1642)
: : : : :- Project (1572)
: : : : : +- Filter (1571)
: : : : : +- Join (1570)
: : : : : :- Filter (1549)
: : : : : : +- Project (1548)
: : : : : : +- Project (1547)
: : : : : : +- Generate (1546)
: : : : : : +- Project (1545)
: : : : : : +- Aggregate (1544)
: : : : : : +- Project (1543)
: : : : : : +- Generate (1542)
: : : : : : +- Join (1541)
: : : : : : :- Repartition (1506)
: : : : : : : +- LogicalRelation (1505)
: : : : : : +- Project (1540)
: : : : : : +- Join (1539)
: : : : : : :- Project (1516)
: : : : : : : +- Project (1515)
: : : : : : : +- Generate (1514)
: : : : : : : +- Project (1513)
: : : : : : : +- Generate (1512)
: : : : : : : +- Project (1511)
: : : : : : : +- Project (1510)
: : : : : : : +- Filter (1509)
: : : : : : : +- Repartition (1508)
: : : : : : : +- LogicalRelation (1507)
: : : : : : +- Deduplicate (1538)
: : : : : : +- Project (1537)
: : : : : : +- Project (1536)
: : : : : : +- Project (1535)
: : : : : : +- Project (1534)
: : : : : : +- Project (1533)
: : : : : : +- Generate (1532)
: : : : : : +- Project (1531)
: : : : : : +- Generate (1530)
: : : : : : +- Project (1529)
: : : : : : +- Join (1528)
: : : : : : :- Project (1525)
: : : : : : : +- Join (1524)
: : : : : : : :- Project (1519)
: : : : : : : : +- RepartitionByExpression (1518)
: : : : : : : : +- LogicalRelation (1517)
: : : : : : : +- Project (1523)
: : : : : : : +- Project (1522)
: : : : : : : +- Repartition (1521)
: : : : : : : +- LogicalRelation (1520)
: : : : : : +- Repartition (1527)
: : : : : : +- LogicalRelation (1526)
: : : : : +- Project (1569)
: : : : : +- Project (1568)
: : : : : +- Project (1567)
: : : : : +- Project (1566)
: : : : : +- Generate (1565)
: : : : : +- Project (1564)
: : : : : +- Generate (1563)
: : : : : +- Project (1562)
: : : : : +- Join (1561)
: : : : : :- Project (1558)
: : : : : : +- Join (1557)
: : : : : : :- Project (1552)
: : : : : : : +- RepartitionByExpression (1551)
: : : : : : : +- LogicalRelation (1550)
: : : : : : +- Project (1556)
: : : : : : +- Project (1555)
: : : : : : +- Repartition (1554)
: : : : : : +- LogicalRelation (1553)
: : : : : +- Repartition (1560)
: : : : : +- LogicalRelation (1559)
: : : : +- Aggregate (1641)
: : : : +- Project (1640)
: : : : +- Filter (1639)
: : : : +- Join (1638)
: : : : :- Filter (1617)
: : : : : +- Project (1616)
: : : : : +- Project (1615)
: : : : : +- Generate (1614)
: : : : : +- Project (1613)
: : : : : +- Aggregate (1612)
: : : : : +- Project (1611)
: : : : : +- Generate (1610)
: : : : : +- Join (1609)
: : : : : :- Repartition (1574)
: : : : : : +- LogicalRelation (1573)
: : : : : +- Project (1608)
: : : : : +- Join (1607)
: : : : : :- Project (1584)
: : : : : : +- Project (1583)
: : : : : : +- Generate (1582)
: : : : : : +- Project (1581)
: : : : : : +- Generate (1580)
: : : : : : +- Project (1579)
: : : : : : +- Project (1578)
: : : : : : +- Filter (1577)
: : : : : : +- Repartition (1576)
: : : : : : +- LogicalRelation (1575)
: : : : : +- Deduplicate (1606)
: : : : : +- Project (1605)
: : : : : +- Project (1604)
: : : : : +- Project (1603)
: : : : : +- Project (1602)
: : : : : +- Project (1601)
: : : : : +- Generate (1600)
: : : : : +- Project (1599)
: : : : : +- Generate (1598)
: : : : : +- Project (1597)
: : : : : +- Join (1596)
: : : : : :- Project (1593)
: : : : : : +- Join (1592)
: : : : : : :- Project (1587)
: : : : : : : +- RepartitionByExpression (1586)
: : : : : : : +- LogicalRelation (1585)
: : : : : : +- Project (1591)
: : : : : : +- Project (1590)
: : : : : : +- Repartition (1589)
: : : : : : +- LogicalRelation (1588)
: : : : : +- Repartition (1595)
: : : : : +- LogicalRelation (1594)
: : : : +- Project (1637)
: : : : +- Project (1636)
: : : : +- Project (1635)
: : : : +- Project (1634)
: : : : +- Generate (1633)
: : : : +- Project (1632)
: : : : +- Generate (1631)
: : : : +- Project (1630)
: : : : +- Join (1629)
: : : : :- Project (1626)
: : : : : +- Join (1625)
: : : : : :- Project (1620)
: : : : : : +- RepartitionByExpression (1619)
: : : : : : +- LogicalRelation (1618)
: : : : : +- Project (1624)
: : : : : +- Project (1623)
: : : : : +- Repartition (1622)
: : : : : +- LogicalRelation (1621)
: : : : +- Repartition (1628)
: : : : +- LogicalRelation (1627)
: : : +- SerializeFromObject (1834)
: : : +- MapElements (1833)
: : : +- DeserializeToObject (1832)
: : : +- Project (1831)
: : : +- Project (1830)
: : : +- Join (1829)
: : : :- SubqueryAlias (1825)
: : : : +- Aggregate (1824)
: : : : +- Project (1823)
: : : : +- Join (1822)
: : : : :- Project (1820)
: : : : : +- Project (1819)
: : : : : +- Project (1818)
: : : : : +- Project (1817)
: : : : : +- Project (1816)
: : : : : +- Project (1815)
: : : : : +- Join (1814)
: : : : : :- Project (1672)
: : : : : : +- Project (1671)
: : : : : : +- Project (1670)
: : : : : : +- Project (1669)
: : : : : : +- Generate (1668)
: : : : : : +- Project (1667)
: : : : : : +- Generate (1666)
: : : : : : +- Project (1665)
: : : : : : +- Join (1664)
: : : : : : :- Project (1661)
: : : : : : : +- Join (1660)
: : : : : : : :- Project (1655)
: : : : : : : : +- RepartitionByExpression (1654)
: : : : : : : : +- LogicalRelation (1653)
: : : : : : : +- Project (1659)
: : : : : : : +- Project (1658)
: : : : : : : +- Repartition (1657)
: : : : : : : +- LogicalRelation (1656)
: : : : : : +- Repartition (1663)
: : : : : : +- LogicalRelation (1662)
: : : : : +- Project (1813)
: : : : : +- Aggregate (1812)
: : : : : +- Project (1811)
: : : : : +- Join (1810)
: : : : : :- Project (1740)
: : : : : : +- Filter (1739)
: : : : : : +- Join (1738)
: : : : : : :- Filter (1717)
: : : : : : : +- Project (1716)
: : : : : : : +- Project (1715)
: : : : : : : +- Generate (1714)
: : : : : : : +- Project (1713)
: : : : : : : +- Aggregate (1712)
: : : : : : : +- Project (1711)
: : : : : : : +- Generate (1710)
: : : : : : : +- Join (1709)
: : : : : : : :- Repartition (1674)
: : : : : : : : +- LogicalRelation (1673)
: : : : : : : +- Project (1708)
: : : : : : : +- Join (1707)
: : : : : : : :- Project (1684)
: : : : : : : : +- Project (1683)
: : : : : : : : +- Generate (1682)
: : : : : : : : +- Project (1681)
: : : : : : : : +- Generate (1680)
: : : : : : : : +- Project (1679)
: : : : : : : : +- Project (1678)
: : : : : : : : +- Filter (1677)
: : : : : : : : +- Repartition (1676)
: : : : : : : : +- LogicalRelation (1675)
: : : : : : : +- Deduplicate (1706)
: : : : : : : +- Project (1705)
: : : : : : : +- Project (1704)
: : : : : : : +- Project (1703)
: : : : : : : +- Project (1702)
: : : : : : : +- Project (1701)
: : : : : : : +- Generate (1700)
: : : : : : : +- Project (1699)
: : : : : : : +- Generate (1698)
: : : : : : : +- Project (1697)
: : : : : : : +- Join (1696)
: : : : : : : :- Project (1693)
: : : : : : : : +- Join (1692)
: : : : : : : : :- Project (1687)
: : : : : : : : : +- RepartitionByExpression (1686)
: : : : : : : : : +- LogicalRelation (1685)
: : : : : : : : +- Project (1691)
: : : : : : : : +- Project (1690)
: : : : : : : : +- Repartition (1689)
: : : : : : : : +- LogicalRelation (1688)
: : : : : : : +- Repartition (1695)
: : : : : : : +- LogicalRelation (1694)
: : : : : : +- Project (1737)
: : : : : : +- Project (1736)
: : : : : : +- Project (1735)
: : : : : : +- Project (1734)
: : : : : : +- Generate (1733)
: : : : : : +- Project (1732)
: : : : : : +- Generate (1731)
: : : : : : +- Project (1730)
: : : : : : +- Join (1729)
: : : : : : :- Project (1726)
: : : : : : : +- Join (1725)
: : : : : : : :- Project (1720)
: : : : : : : : +- RepartitionByExpression (1719)
: : : : : : : : +- LogicalRelation (1718)
: : : : : : : +- Project (1724)
: : : : : : : +- Project (1723)
: : : : : : : +- Repartition (1722)
: : : : : : : +- LogicalRelation (1721)
: : : : : : +- Repartition (1728)
: : : : : : +- LogicalRelation (1727)
: : : : : +- Aggregate (1809)
: : : : : +- Project (1808)
: : : : : +- Filter (1807)
: : : : : +- Join (1806)
: : : : : :- Filter (1785)
: : : : : : +- Project (1784)
: : : : : : +- Project (1783)
: : : : : : +- Generate (1782)
: : : : : : +- Project (1781)
: : : : : : +- Aggregate (1780)
: : : : : : +- Project (1779)
: : : : : : +- Generate (1778)
: : : : : : +- Join (1777)
: : : : : : :- Repartition (1742)
: : : : : : : +- LogicalRelation (1741)
: : : : : : +- Project (1776)
: : : : : : +- Join (1775)
: : : : : : :- Project (1752)
: : : : : : : +- Project (1751)
: : : : : : : +- Generate (1750)
: : : : : : : +- Project (1749)
: : : : : : : +- Generate (1748)
: : : : : : : +- Project (1747)
: : : : : : : +- Project (1746)
: : : : : : : +- Filter (1745)
: : : : : : : +- Repartition (1744)
: : : : : : : +- LogicalRelation (1743)
: : : : : : +- Deduplicate (1774)
: : : : : : +- Project (1773)
: : : : : : +- Project (1772)
: : : : : : +- Project (1771)
: : : : : : +- Project (1770)
: : : : : : +- Project (1769)
: : : : : : +- Generate (1768)
: : : : : : +- Project (1767)
: : : : : : +- Generate (1766)
: : : : : : +- Project (1765)
: : : : : : +- Join (1764)
: : : : : : :- Project (1761)
: : : : : : : +- Join (1760)
: : : : : : : :- Project (1755)
: : : : : : : : +- RepartitionByExpression (1754)
: : : : : : : : +- LogicalRelation (1753)
: : : : : : : +- Project (1759)
: : : : : : : +- Project (1758)
: : : : : : : +- Repartition (1757)
: : : : : : : +- LogicalRelation (1756)
: : : : : : +- Repartition (1763)
: : : : : : +- LogicalRelation (1762)
: : : : : +- Project (1805)
: : : : : +- Project (1804)
: : : : : +- Project (1803)
: : : : : +- Project (1802)
: : : : : +- Generate (1801)
: : : : : +- Project (1800)
: : : : : +- Generate (1799)
: : : : : +- Project (1798)
: : : : : +- Join (1797)
: : : : : :- Project (1794)
: : : : : : +- Join (1793)
: : : : : : :- Project (1788)
: : : : : : : +- RepartitionByExpression (1787)
: : : : : : : +- LogicalRelation (1786)
: : : : : : +- Project (1792)
: : : : : : +- Project (1791)
: : : : : : +- Repartition (1790)
: : : : : : +- LogicalRelation (1789)
: : : : : +- Repartition (1796)
: : : : : +- LogicalRelation (1795)
: : : : +- LogicalRelation (1821)
: : : +- Project (1828)
: : : +- Repartition (1827)
: : : +- LogicalRelation (1826)
: : +- Project (1872)
: : +- Project (1871)
: : +- Join (1870)
: : :- Project (1847)
: : : +- Project (1846)
: : : +- Generate (1845)
: : : +- Project (1844)
: : : +- Generate (1843)
: : : +- Project (1842)
: : : +- Project (1841)
: : : +- Filter (1840)
: : : +- Repartition (1839)
: : : +- LogicalRelation (1838)
: : +- Deduplicate (1869)
: : +- Project (1868)
: : +- Project (1867)
: : +- Project (1866)
: : +- Project (1865)
: : +- Project (1864)
: : +- Generate (1863)
: : +- Project (1862)
: : +- Generate (1861)
: : +- Project (1860)
: : +- Join (1859)
: : :- Project (1856)
: : : +- Join (1855)
: : : :- Project (1850)
: : : : +- RepartitionByExpression (1849)
: : : : +- LogicalRelation (1848)
: : : +- Project (1854)
: : : +- Project (1853)
: : : +- Repartition (1852)
: : : +- LogicalRelation (1851)
: : +- Repartition (1858)
: : +- LogicalRelation (1857)
: +- Project (1880)
: +- Filter (1879)
: +- Project (1878)
: +- Generate (1877)
: +- Repartition (1876)
: +- LogicalRelation (1875)
+- Filter (2254)
+- Aggregate (2253)
+- Project (2252)
+- Project (2251)
+- Project (2250)
+- Join (2249)
:- Project (2242)
: +- Project (2241)
: +- Join (2240)
: :- Project (2057)
: : +- Project (2056)
: : +- Project (2055)
: : +- Project (2054)
: : +- Project (2053)
: : +- Project (2052)
: : +- Join (2051)
: : :- Project (1909)
: : : +- Project (1908)
: : : +- Project (1907)
: : : +- Project (1906)
: : : +- Generate (1905)
: : : +- Project (1904)
: : : +- Generate (1903)
: : : +- Project (1902)
: : : +- Join (1901)
: : : :- Project (1898)
: : : : +- Join (1897)
: : : : :- Project (1892)
: : : : : +- RepartitionByExpression (1891)
: : : : : +- LogicalRelation (1890)
: : : : +- Project (1896)
: : : : +- Project (1895)
: : : : +- Repartition (1894)
: : : : +- LogicalRelation (1893)
: : : +- Repartition (1900)
: : : +- LogicalRelation (1899)
: : +- Project (2050)
: : +- Aggregate (2049)
: : +- Project (2048)
: : +- Join (2047)
: : :- Project (1977)
: : : +- Filter (1976)
: : : +- Join (1975)
: : : :- Filter (1954)
: : : : +- Project (1953)
: : : : +- Project (1952)
: : : : +- Generate (1951)
: : : : +- Project (1950)
: : : : +- Aggregate (1949)
: : : : +- Project (1948)
: : : : +- Generate (1947)
: : : : +- Join (1946)
: : : : :- Repartition (1911)
: : : : : +- LogicalRelation (1910)
: : : : +- Project (1945)
: : : : +- Join (1944)
: : : : :- Project (1921)
: : : : : +- Project (1920)
: : : : : +- Generate (1919)
: : : : : +- Project (1918)
: : : : : +- Generate (1917)
: : : : : +- Project (1916)
: : : : : +- Project (1915)
: : : : : +- Filter (1914)
: : : : : +- Repartition (1913)
: : : : : +- LogicalRelation (1912)
: : : : +- Deduplicate (1943)
: : : : +- Project (1942)
: : : : +- Project (1941)
: : : : +- Project (1940)
: : : : +- Project (1939)
: : : : +- Project (1938)
: : : : +- Generate (1937)
: : : : +- Project (1936)
: : : : +- Generate (1935)
: : : : +- Project (1934)
: : : : +- Join (1933)
: : : : :- Project (1930)
: : : : : +- Join (1929)
: : : : : :- Project (1924)
: : : : : : +- RepartitionByExpression (1923)
: : : : : : +- LogicalRelation (1922)
: : : : : +- Project (1928)
: : : : : +- Project (1927)
: : : : : +- Repartition (1926)
: : : : : +- LogicalRelation (1925)
: : : : +- Repartition (1932)
: : : : +- LogicalRelation (1931)
: : : +- Project (1974)
: : : +- Project (1973)
: : : +- Project (1972)
: : : +- Project (1971)
: : : +- Generate (1970)
: : : +- Project (1969)
: : : +- Generate (1968)
: : : +- Project (1967)
: : : +- Join (1966)
: : : :- Project (1963)
: : : : +- Join (1962)
: : : : :- Project (1957)
: : : : : +- RepartitionByExpression (1956)
: : : : : +- LogicalRelation (1955)
: : : : +- Project (1961)
: : : : +- Project (1960)
: : : : +- Repartition (1959)
: : : : +- LogicalRelation (1958)
: : : +- Repartition (1965)
: : : +- LogicalRelation (1964)
: : +- Aggregate (2046)
: : +- Project (2045)
: : +- Filter (2044)
: : +- Join (2043)
: : :- Filter (2022)
: : : +- Project (2021)
: : : +- Project (2020)
: : : +- Generate (2019)
: : : +- Project (2018)
: : : +- Aggregate (2017)
: : : +- Project (2016)
: : : +- Generate (2015)
: : : +- Join (2014)
: : : :- Repartition (1979)
: : : : +- LogicalRelation (1978)
: : : +- Project (2013)
: : : +- Join (2012)
: : : :- Project (1989)
: : : : +- Project (1988)
: : : : +- Generate (1987)
: : : : +- Project (1986)
: : : : +- Generate (1985)
: : : : +- Project (1984)
: : : : +- Project (1983)
: : : : +- Filter (1982)
: : : : +- Repartition (1981)
: : : : +- LogicalRelation (1980)
: : : +- Deduplicate (2011)
: : : +- Project (2010)
: : : +- Project (2009)
: : : +- Project (2008)
: : : +- Project (2007)
: : : +- Project (2006)
: : : +- Generate (2005)
: : : +- Project (2004)
: : : +- Generate (2003)
: : : +- Project (2002)
: : : +- Join (2001)
: : : :- Project (1998)
: : : : +- Join (1997)
: : : : :- Project (1992)
: : : : : +- RepartitionByExpression (1991)
: : : : : +- LogicalRelation (1990)
: : : : +- Project (1996)
: : : : +- Project (1995)
: : : : +- Repartition (1994)
: : : : +- LogicalRelation (1993)
: : : +- Repartition (2000)
: : : +- LogicalRelation (1999)
: : +- Project (2042)
: : +- Project (2041)
: : +- Project (2040)
: : +- Project (2039)
: : +- Generate (2038)
: : +- Project (2037)
: : +- Generate (2036)
: : +- Project (2035)
: : +- Join (2034)
: : :- Project (2031)
: : : +- Join (2030)
: : : :- Project (2025)
: : : : +- RepartitionByExpression (2024)
: : : : +- LogicalRelation (2023)
: : : +- Project (2029)
: : : +- Project (2028)
: : : +- Repartition (2027)
: : : +- LogicalRelation (2026)
: : +- Repartition (2033)
: : +- LogicalRelation (2032)
: +- SerializeFromObject (2239)
: +- MapElements (2238)
: +- DeserializeToObject (2237)
: +- Project (2236)
: +- Project (2235)
: +- Join (2234)
: :- SubqueryAlias (2230)
: : +- Aggregate (2229)
: : +- Project (2228)
: : +- Join (2227)
: : :- Project (2225)
: : : +- Project (2224)
: : : +- Project (2223)
: : : +- Project (2222)
: : : +- Project (2221)
: : : +- Project (2220)
: : : +- Join (2219)
: : : :- Project (2077)
: : : : +- Project (2076)
: : : : +- Project (2075)
: : : : +- Project (2074)
: : : : +- Generate (2073)
: : : : +- Project (2072)
: : : : +- Generate (2071)
: : : : +- Project (2070)
: : : : +- Join (2069)
: : : : :- Project (2066)
: : : : : +- Join (2065)
: : : : : :- Project (2060)
: : : : : : +- RepartitionByExpression (2059)
: : : : : : +- LogicalRelation (2058)
: : : : : +- Project (2064)
: : : : : +- Project (2063)
: : : : : +- Repartition (2062)
: : : : : +- LogicalRelation (2061)
: : : : +- Repartition (2068)
: : : : +- LogicalRelation (2067)
: : : +- Project (2218)
: : : +- Aggregate (2217)
: : : +- Project (2216)
: : : +- Join (2215)
: : : :- Project (2145)
: : : : +- Filter (2144)
: : : : +- Join (2143)
: : : : :- Filter (2122)
: : : : : +- Project (2121)
: : : : : +- Project (2120)
: : : : : +- Generate (2119)
: : : : : +- Project (2118)
: : : : : +- Aggregate (2117)
: : : : : +- Project (2116)
: : : : : +- Generate (2115)
: : : : : +- Join (2114)
: : : : : :- Repartition (2079)
: : : : : : +- LogicalRelation (2078)
: : : : : +- Project (2113)
: : : : : +- Join (2112)
: : : : : :- Project (2089)
: : : : : : +- Project (2088)
: : : : : : +- Generate (2087)
: : : : : : +- Project (2086)
: : : : : : +- Generate (2085)
: : : : : : +- Project (2084)
: : : : : : +- Project (2083)
: : : : : : +- Filter (2082)
: : : : : : +- Repartition (2081)
: : : : : : +- LogicalRelation (2080)
: : : : : +- Deduplicate (2111)
: : : : : +- Project (2110)
: : : : : +- Project (2109)
: : : : : +- Project (2108)
: : : : : +- Project (2107)
: : : : : +- Project (2106)
: : : : : +- Generate (2105)
: : : : : +- Project (2104)
: : : : : +- Generate (2103)
: : : : : +- Project (2102)
: : : : : +- Join (2101)
: : : : : :- Project (2098)
: : : : : : +- Join (2097)
: : : : : : :- Project (2092)
: : : : : : : +- RepartitionByExpression (2091)
: : : : : : : +- LogicalRelation (2090)
: : : : : : +- Project (2096)
: : : : : : +- Project (2095)
: : : : : : +- Repartition (2094)
: : : : : : +- LogicalRelation (2093)
: : : : : +- Repartition (2100)
: : : : : +- LogicalRelation (2099)
: : : : +- Project (2142)
: : : : +- Project (2141)
: : : : +- Project (2140)
: : : : +- Project (2139)
: : : : +- Generate (2138)
: : : : +- Project (2137)
: : : : +- Generate (2136)
: : : : +- Project (2135)
: : : : +- Join (2134)
: : : : :- Project (2131)
: : : : : +- Join (2130)
: : : : : :- Project (2125)
: : : : : : +- RepartitionByExpression (2124)
: : : : : : +- LogicalRelation (2123)
: : : : : +- Project (2129)
: : : : : +- Project (2128)
: : : : : +- Repartition (2127)
: : : : : +- LogicalRelation (2126)
: : : : +- Repartition (2133)
: : : : +- LogicalRelation (2132)
: : : +- Aggregate (2214)
: : : +- Project (2213)
: : : +- Filter (2212)
: : : +- Join (2211)
: : : :- Filter (2190)
: : : : +- Project (2189)
: : : : +- Project (2188)
: : : : +- Generate (2187)
: : : : +- Project (2186)
: : : : +- Aggregate (2185)
: : : : +- Project (2184)
: : : : +- Generate (2183)
: : : : +- Join (2182)
: : : : :- Repartition (2147)
: : : : : +- LogicalRelation (2146)
: : : : +- Project (2181)
: : : : +- Join (2180)
: : : : :- Project (2157)
: : : : : +- Project (2156)
: : : : : +- Generate (2155)
: : : : : +- Project (2154)
: : : : : +- Generate (2153)
: : : : : +- Project (2152)
: : : : : +- Project (2151)
: : : : : +- Filter (2150)
: : : : : +- Repartition (2149)
: : : : : +- LogicalRelation (2148)
: : : : +- Deduplicate (2179)
: : : : +- Project (2178)
: : : : +- Project (2177)
: : : : +- Project (2176)
: : : : +- Project (2175)
: : : : +- Project (2174)
: : : : +- Generate (2173)
: : : : +- Project (2172)
: : : : +- Generate (2171)
: : : : +- Project (2170)
: : : : +- Join (2169)
: : : : :- Project (2166)
: : : : : +- Join (2165)
: : : : : :- Project (2160)
: : : : : : +- RepartitionByExpression (2159)
: : : : : : +- LogicalRelation (2158)
: : : : : +- Project (2164)
: : : : : +- Project (2163)
: : : : : +- Repartition (2162)
: : : : : +- LogicalRelation (2161)
: : : : +- Repartition (2168)
: : : : +- LogicalRelation (2167)
: : : +- Project (2210)
: : : +- Project (2209)
: : : +- Project (2208)
: : : +- Project (2207)
: : : +- Generate (2206)
: : : +- Project (2205)
: : : +- Generate (2204)
: : : +- Project (2203)
: : : +- Join (2202)
: : : :- Project (2199)
: : : : +- Join (2198)
: : : : :- Project (2193)
: : : : : +- RepartitionByExpression (2192)
: : : : : +- LogicalRelation (2191)
: : : : +- Project (2197)
: : : : +- Project (2196)
: : : : +- Repartition (2195)
: : : : +- LogicalRelation (2194)
: : : +- Repartition (2201)
: : : +- LogicalRelation (2200)
: : +- LogicalRelation (2226)
: +- Project (2233)
: +- Repartition (2232)
: +- LogicalRelation (2231)
+- Project (2248)
+- Filter (2247)
+- Project (2246)
+- Generate (2245)
+- Repartition (2244)
+- LogicalRelation (2243)
(1) Execute SaveIntoDataSourceCommand
Output: []
(2) SaveIntoDataSourceCommand
Arguments: org.apache.spark.sql.delta.sources.DeltaDataSource@795d9e48, [path=hdlfs://f1cc4c74-cdd4-440e-abc7-4e0157628b42.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-quantity-kpi-service/internal/data-snapshot/10000001651/0_1_10000001651], Overwrite
(3) LogicalRelation
Arguments: parquet, [product#21517975, plant#21517976, orderDateTime#21517977, planningStartDateTime#21517978], false
(4) RepartitionByExpression
Arguments: [product#21517975, plant#21517976], 25
(5) Project
Arguments: [product#21517975, plant#21517976, orderDateTime#21517977]
(6) LogicalRelation
Arguments: parquet, [systemId#21517980, internalUUID#21517981, plant#21517982, product#21517983, blockedForReplenishmentStartingFrom#21517984, productionAspect#21517985, salesPlant#21517986, listing#21517987], false
(7) Repartition
Arguments: 25, true
(8) Project
Arguments: [systemId#21517980, internalUUID#21517981, plant#21517982, product#21517983, blockedForReplenishmentStartingFrom#21517984, productionAspect#21517985, salesPlant#21517986, listing#21517987, struct(systemId, systemId#21517980, internalUUID, internalUUID#21517981, plant, plant#21517982, product, product#21517983, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#21517984, productionAspect, productionAspect#21517985, salesPlant, salesPlant#21517986, listing, listing#21517987) AS productPlant#21517989]
(9) Project
Arguments: [productPlant#21517989]
(10) Join
Arguments: LeftOuter, ((product#21517975 <=> productPlant#21517989.product.internalRefUUID) AND (plant#21517976 <=> productPlant#21517989.plant.internalRefUUID))
(11) Project
Arguments: [product#21517975, plant#21517976, orderDateTime#21517977, productPlant#21517989]
(12) LogicalRelation
Arguments: parquet, [systemId#21518034, internalUUID#21518035, id#21518036, displayId#21518037, name#21518038, baseUnitOfMeasure#21518039, unitOfMeasures#21518040, unitOfMeasureConversions#21518041, productionAspect#21518042, salesAspect#21518043, procurementAspect#21518044, productGroup#21518045], false
(13) Repartition
Arguments: 25, true
(14) Join
Arguments: LeftOuter, (product#21517975 = internalUUID#21518035)
(15) Project
Arguments: [product#21517975, plant#21517976, orderDateTime#21517977, productPlant#21517989, systemId#21518034, internalUUID#21518035, id#21518036, displayId#21518037, name#21518038, baseUnitOfMeasure#21518039, unitOfMeasures#21518040, unitOfMeasureConversions#21518041, productionAspect#21518042, salesAspect#21518043, procurementAspect#21518044, productGroup#21518045, filter(unitOfMeasureConversions#21518041, lambdafunction((((lambda u#21518048.measurementUnit1.code = productPlant#21517989.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#21518048.measurementUnit1.internalRefUUID = productPlant#21517989.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#21518048.measurementUnit2.code = baseUnitOfMeasure#21518039.code) AND (lambda u#21518048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#21518039.internalRefUUID))), lambda u#21518048, false)) AS filteredUnitOfMeasureConversions#21518047]
(16) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21518047.quantityNumerator), true, [quantityNumerator#21518055]
(17) Project
Arguments: [product#21517975, plant#21517976, orderDateTime#21517977, productPlant#21517989, systemId#21518034, internalUUID#21518035, id#21518036, displayId#21518037, name#21518038, baseUnitOfMeasure#21518039, unitOfMeasures#21518040, unitOfMeasureConversions#21518041, productionAspect#21518042, salesAspect#21518043, procurementAspect#21518044, productGroup#21518045, filteredUnitOfMeasureConversions#21518047, quantityNumerator#21518055]
(18) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21518047.quantityDenominator), true, [quantityDenominator#21518058]
(19) Project
Arguments: [product#21517975, plant#21517976, orderDateTime#21517977, productPlant#21517989, systemId#21518034, internalUUID#21518035, id#21518036, displayId#21518037, name#21518038, baseUnitOfMeasure#21518039, unitOfMeasures#21518040, unitOfMeasureConversions#21518041, productionAspect#21518042, salesAspect#21518043, procurementAspect#21518044, productGroup#21518045, filteredUnitOfMeasureConversions#21518047, quantityNumerator#21518055, quantityDenominator#21518058]
(20) Project
Arguments: [product#21517975, plant#21517976, orderDateTime#21517977, productPlant#21517989, systemId#21518034, internalUUID#21518035, id#21518036, displayId#21518037, name#21518038, baseUnitOfMeasure#21518039, unitOfMeasures#21518040, unitOfMeasureConversions#21518041, productionAspect#21518042, salesAspect#21518043, procurementAspect#21518044, productGroup#21518045, filteredUnitOfMeasureConversions#21518047, quantityNumerator#21518055, quantityDenominator#21518058, (cast(quantityNumerator#21518055 as double) / cast(quantityDenominator#21518058 as double)) AS outboundUnit#21518059]
(21) Project
Arguments: [product#21517975, plant#21517976, orderDateTime#21517977, productPlant#21517989, systemId#21518034, internalUUID#21518035, id#21518036, displayId#21518037, name#21518038, baseUnitOfMeasure#21518039, unitOfMeasures#21518040, unitOfMeasureConversions#21518041, productionAspect#21518042, salesAspect#21518043, procurementAspect#21518044, productGroup#21518045, filteredUnitOfMeasureConversions#21518047, quantityNumerator#21518055, quantityDenominator#21518058, CASE WHEN (isnull(outboundUnit#21518059) OR (outboundUnit#21518059 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#21518059 END AS outboundUnit#21518060]
(22) Project
Arguments: [product#21517975, plant#21517976, orderDateTime#21517977, productPlant#21517989, outboundUnit#21518060]
(23) LogicalRelation
Arguments: parquet, [systemId#21518148, internalUUID#21518149, product#21518150, plant#21518151, calculationDateTime#21518152, stockQuantities#21518153], false
(24) Repartition
Arguments: 25, true
(25) LogicalRelation
Arguments: parquet, [marketUnit#21518061, description#21518062, articleHierarchy#21518063, defaultCurrency#21518064, responsibilities#21518065, replenishmentTypes#21518066, distributionCenters#21518067, assignedArticleHierarchyNodes#21518068, minOrderQtySetting#21518069, listingCheck#21518070, odsSelection#21518071, demandProfiles#21518072, constraintProfiles#21518073, optimizationProfiles#21518074, orderGroupSplitProfiles#21518075, supplierMinimumProfiles#21518076, multipleRestrictionProfiles#21518077, preferredUomSource#21518078, handlingOfUnfulfilledDemands#21518079, negligibleQuantitiesThreshold#21518080, eventtype#21518081, minOrderQtySettingInternal#21518082], false
(26) Repartition
Arguments: 25, true
(27) Filter
Arguments: (marketUnit#21518061 <=> SS_Test_1)
(28) Project
Arguments: [marketUnit#21518061, description#21518062, articleHierarchy#21518063, defaultCurrency#21518064, responsibilities#21518065, replenishmentTypes#21518066, distributionCenters#21518067, assignedArticleHierarchyNodes#21518068, minOrderQtySetting#21518069, listingCheck#21518070, odsSelection#21518071, demandProfiles#21518072, constraintProfiles#21518073, optimizationProfiles#21518074, orderGroupSplitProfiles#21518075, supplierMinimumProfiles#21518076, multipleRestrictionProfiles#21518077, preferredUomSource#21518078, handlingOfUnfulfilledDemands#21518079, negligibleQuantitiesThreshold#21518080, eventtype#21518081, minOrderQtySettingInternal#21518082]
(29) Project
Arguments: [distributionCenters#21518067]
(30) Generate
Arguments: explode(distributionCenters#21518067), false, [distributionCenters#21518085]
(31) Project
Arguments: [distributionCenters#21518085]
(32) Generate
Arguments: explode(distributionCenters#21518085.storageLocations), false, [storageLocations#21518092]
(33) Project
Arguments: [distributionCenters#21518085.id AS plantId#21518086, distributionCenters#21518085.internalRefUUID AS plantUuid#21518087, storageLocations#21518092]
(34) Project
Arguments: [plantId#21518086, plantUuid#21518087, storageLocations#21518092.id AS storageLocId#21518093, storageLocations#21518092.internalRefUUID AS storageLocUuid#21518094]
(35) LogicalRelation
Arguments: parquet, [product#21518363, plant#21518364, orderDateTime#21518365, planningStartDateTime#21518366], false
(36) RepartitionByExpression
Arguments: [product#21518363, plant#21518364], 25
(37) Project
Arguments: [product#21518363, plant#21518364, orderDateTime#21518365]
(38) LogicalRelation
Arguments: parquet, [systemId#21518367, internalUUID#21518368, plant#21518369, product#21518370, blockedForReplenishmentStartingFrom#21518371, productionAspect#21518372, salesPlant#21518373, listing#21518374], false
(39) Repartition
Arguments: 25, true
(40) Project
Arguments: [systemId#21518367, internalUUID#21518368, plant#21518369, product#21518370, blockedForReplenishmentStartingFrom#21518371, productionAspect#21518372, salesPlant#21518373, listing#21518374, struct(systemId, systemId#21518367, internalUUID, internalUUID#21518368, plant, plant#21518369, product, product#21518370, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#21518371, productionAspect, productionAspect#21518372, salesPlant, salesPlant#21518373, listing, listing#21518374) AS productPlant#21518375]
(41) Project
Arguments: [productPlant#21518375]
(42) Join
Arguments: LeftOuter, ((product#21518363 <=> productPlant#21518375.product.internalRefUUID) AND (plant#21518364 <=> productPlant#21518375.plant.internalRefUUID))
(43) Project
Arguments: [product#21518363, plant#21518364, orderDateTime#21518365, productPlant#21518375]
(44) LogicalRelation
Arguments: parquet, [systemId#21518376, internalUUID#21518377, id#21518378, displayId#21518379, name#21518380, baseUnitOfMeasure#21518381, unitOfMeasures#21518382, unitOfMeasureConversions#21518383, productionAspect#21518384, salesAspect#21518385, procurementAspect#21518386, productGroup#21518387], false
(45) Repartition
Arguments: 25, true
(46) Join
Arguments: LeftOuter, (product#21518363 = internalUUID#21518377)
(47) Project
Arguments: [product#21518363, plant#21518364, orderDateTime#21518365, productPlant#21518375, systemId#21518376, internalUUID#21518377, id#21518378, displayId#21518379, name#21518380, baseUnitOfMeasure#21518381, unitOfMeasures#21518382, unitOfMeasureConversions#21518383, productionAspect#21518384, salesAspect#21518385, procurementAspect#21518386, productGroup#21518387, filter(unitOfMeasureConversions#21518383, lambdafunction((((lambda u#21518048.measurementUnit1.code = productPlant#21518375.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#21518048.measurementUnit1.internalRefUUID = productPlant#21518375.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#21518048.measurementUnit2.code = baseUnitOfMeasure#21518381.code) AND (lambda u#21518048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#21518381.internalRefUUID))), lambda u#21518048, false)) AS filteredUnitOfMeasureConversions#21518388]
(48) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21518388.quantityNumerator), true, [quantityNumerator#21518389]
(49) Project
Arguments: [product#21518363, plant#21518364, orderDateTime#21518365, productPlant#21518375, systemId#21518376, internalUUID#21518377, id#21518378, displayId#21518379, name#21518380, baseUnitOfMeasure#21518381, unitOfMeasures#21518382, unitOfMeasureConversions#21518383, productionAspect#21518384, salesAspect#21518385, procurementAspect#21518386, productGroup#21518387, filteredUnitOfMeasureConversions#21518388, quantityNumerator#21518389]
(50) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21518388.quantityDenominator), true, [quantityDenominator#21518390]
(51) Project
Arguments: [product#21518363, plant#21518364, orderDateTime#21518365, productPlant#21518375, systemId#21518376, internalUUID#21518377, id#21518378, displayId#21518379, name#21518380, baseUnitOfMeasure#21518381, unitOfMeasures#21518382, unitOfMeasureConversions#21518383, productionAspect#21518384, salesAspect#21518385, procurementAspect#21518386, productGroup#21518387, filteredUnitOfMeasureConversions#21518388, quantityNumerator#21518389, quantityDenominator#21518390]
(52) Project
Arguments: [product#21518363, plant#21518364, orderDateTime#21518365, productPlant#21518375, systemId#21518376, internalUUID#21518377, id#21518378, displayId#21518379, name#21518380, baseUnitOfMeasure#21518381, unitOfMeasures#21518382, unitOfMeasureConversions#21518383, productionAspect#21518384, salesAspect#21518385, procurementAspect#21518386, productGroup#21518387, filteredUnitOfMeasureConversions#21518388, quantityNumerator#21518389, quantityDenominator#21518390, (cast(quantityNumerator#21518389 as double) / cast(quantityDenominator#21518390 as double)) AS outboundUnit#21518391]
(53) Project
Arguments: [product#21518363, plant#21518364, orderDateTime#21518365, productPlant#21518375, systemId#21518376, internalUUID#21518377, id#21518378, displayId#21518379, name#21518380, baseUnitOfMeasure#21518381, unitOfMeasures#21518382, unitOfMeasureConversions#21518383, productionAspect#21518384, salesAspect#21518385, procurementAspect#21518386, productGroup#21518387, filteredUnitOfMeasureConversions#21518388, quantityNumerator#21518389, quantityDenominator#21518390, CASE WHEN (isnull(outboundUnit#21518391) OR (outboundUnit#21518391 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#21518391 END AS outboundUnit#21518392]
(54) Project
Arguments: [product#21518363, plant#21518364, orderDateTime#21518365, productPlant#21518375, outboundUnit#21518392]
(55) Project
Arguments: [plant#21518364]
(56) Deduplicate
Arguments: [plant#21518364]
(57) Join
Arguments: Inner, (plantUuid#21518087 = plant#21518364)
(58) Project
Arguments: [plantId#21518086, plantUuid#21518087, storageLocId#21518093, storageLocUuid#21518094]
(59) Join
Arguments: Inner, (plant#21518151.internalRefUUID <=> plantUuid#21518087)
(60) Generate
Arguments: explode(filter(stockQuantities#21518153, lambdafunction(((lambda x#21518157.storageLocation.internalRefUuid = storageLocUuid#21518094) AND (lambda x#21518157.storageLocation.Id = storageLocId#21518093)), lambda x#21518157, false))), false, [stockQuantity#21518158]
(61) Project
Arguments: [systemId#21518148, internalUUID#21518149, product#21518150, plant#21518151, calculationDateTime#21518152, stockQuantities#21518153, plantId#21518086, plantUuid#21518087, storageLocId#21518093, storageLocUuid#21518094, stockQuantity#21518158]
(62) Aggregate
Arguments: [plantUuid#21518087, internalUUID#21518149, plant#21518151, product#21518150, systemId#21518148], [plantUuid#21518087, internalUUID#21518149, plant#21518151, product#21518150, systemId#21518148, first(calculationDateTime#21518152, false) AS calculationDateTime#21518159, collect_list(stockQuantity#21518158, 0, 0) AS stockQuantities#21518160]
(63) Project
Arguments: [systemId#21518148, internalUUID#21518149, product#21518150, plant#21518151, calculationDateTime#21518159, stockQuantities#21518160]
(64) Generate
Arguments: explode(stockQuantities#21518160), false, [stockQuantity#21518175]
(65) Project
Arguments: [systemId#21518148, internalUUID#21518149, product#21518150, plant#21518151, calculationDateTime#21518159, stockQuantities#21518160, stockQuantity#21518175]
(66) Project
Arguments: [plant#21518151.id AS plant#21518176, plant#21518151.internalRefUUID AS plantUuid#21518177, product#21518150.id AS product#21518178, product#21518150.internalRefUUID AS productUuid#21518179, calculationDateTime#21518159, stockQuantity#21518175.storagelocation.id AS storageLocId#21518180, stockQuantity#21518175.storagelocation.internalRefUUID AS storageLocUuid#21518181, stockQuantity#21518175.quantity.measure AS quantity#21518182, stockQuantity#21518175.specialStockIndicator.code AS specialStockIndicator#21518183, stockQuantity#21518175.stockType.code AS stockType#21518184]
(67) Filter
Arguments: ((specialStockIndicator#21518183 = ) AND (stockType#21518184 = 01))
(68) LogicalRelation
Arguments: parquet, [product#21518194, plant#21518195, orderDateTime#21518196, planningStartDateTime#21518197], false
(69) RepartitionByExpression
Arguments: [product#21518194, plant#21518195], 25
(70) Project
Arguments: [product#21518194, plant#21518195, orderDateTime#21518196]
(71) LogicalRelation
Arguments: parquet, [systemId#21518198, internalUUID#21518199, plant#21518200, product#21518201, blockedForReplenishmentStartingFrom#21518202, productionAspect#21518203, salesPlant#21518204, listing#21518205], false
(72) Repartition
Arguments: 25, true
(73) Project
Arguments: [systemId#21518198, internalUUID#21518199, plant#21518200, product#21518201, blockedForReplenishmentStartingFrom#21518202, productionAspect#21518203, salesPlant#21518204, listing#21518205, struct(systemId, systemId#21518198, internalUUID, internalUUID#21518199, plant, plant#21518200, product, product#21518201, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#21518202, productionAspect, productionAspect#21518203, salesPlant, salesPlant#21518204, listing, listing#21518205) AS productPlant#21518206]
(74) Project
Arguments: [productPlant#21518206]
(75) Join
Arguments: LeftOuter, ((product#21518194 <=> productPlant#21518206.product.internalRefUUID) AND (plant#21518195 <=> productPlant#21518206.plant.internalRefUUID))
(76) Project
Arguments: [product#21518194, plant#21518195, orderDateTime#21518196, productPlant#21518206]
(77) LogicalRelation
Arguments: parquet, [systemId#21518207, internalUUID#21518208, id#21518209, displayId#21518210, name#21518211, baseUnitOfMeasure#21518212, unitOfMeasures#21518213, unitOfMeasureConversions#21518214, productionAspect#21518215, salesAspect#21518216, procurementAspect#21518217, productGroup#21518218], false
(78) Repartition
Arguments: 25, true
(79) Join
Arguments: LeftOuter, (product#21518194 = internalUUID#21518208)
(80) Project
Arguments: [product#21518194, plant#21518195, orderDateTime#21518196, productPlant#21518206, systemId#21518207, internalUUID#21518208, id#21518209, displayId#21518210, name#21518211, baseUnitOfMeasure#21518212, unitOfMeasures#21518213, unitOfMeasureConversions#21518214, productionAspect#21518215, salesAspect#21518216, procurementAspect#21518217, productGroup#21518218, filter(unitOfMeasureConversions#21518214, lambdafunction((((lambda u#21518048.measurementUnit1.code = productPlant#21518206.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#21518048.measurementUnit1.internalRefUUID = productPlant#21518206.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#21518048.measurementUnit2.code = baseUnitOfMeasure#21518212.code) AND (lambda u#21518048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#21518212.internalRefUUID))), lambda u#21518048, false)) AS filteredUnitOfMeasureConversions#21518219]
(81) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21518219.quantityNumerator), true, [quantityNumerator#21518220]
(82) Project
Arguments: [product#21518194, plant#21518195, orderDateTime#21518196, productPlant#21518206, systemId#21518207, internalUUID#21518208, id#21518209, displayId#21518210, name#21518211, baseUnitOfMeasure#21518212, unitOfMeasures#21518213, unitOfMeasureConversions#21518214, productionAspect#21518215, salesAspect#21518216, procurementAspect#21518217, productGroup#21518218, filteredUnitOfMeasureConversions#21518219, quantityNumerator#21518220]
(83) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21518219.quantityDenominator), true, [quantityDenominator#21518221]
(84) Project
Arguments: [product#21518194, plant#21518195, orderDateTime#21518196, productPlant#21518206, systemId#21518207, internalUUID#21518208, id#21518209, displayId#21518210, name#21518211, baseUnitOfMeasure#21518212, unitOfMeasures#21518213, unitOfMeasureConversions#21518214, productionAspect#21518215, salesAspect#21518216, procurementAspect#21518217, productGroup#21518218, filteredUnitOfMeasureConversions#21518219, quantityNumerator#21518220, quantityDenominator#21518221]
(85) Project
Arguments: [product#21518194, plant#21518195, orderDateTime#21518196, productPlant#21518206, systemId#21518207, internalUUID#21518208, id#21518209, displayId#21518210, name#21518211, baseUnitOfMeasure#21518212, unitOfMeasures#21518213, unitOfMeasureConversions#21518214, productionAspect#21518215, salesAspect#21518216, procurementAspect#21518217, productGroup#21518218, filteredUnitOfMeasureConversions#21518219, quantityNumerator#21518220, quantityDenominator#21518221, (cast(quantityNumerator#21518220 as double) / cast(quantityDenominator#21518221 as double)) AS outboundUnit#21518222]
(86) Project
Arguments: [product#21518194, plant#21518195, orderDateTime#21518196, productPlant#21518206, systemId#21518207, internalUUID#21518208, id#21518209, displayId#21518210, name#21518211, baseUnitOfMeasure#21518212, unitOfMeasures#21518213, unitOfMeasureConversions#21518214, productionAspect#21518215, salesAspect#21518216, procurementAspect#21518217, productGroup#21518218, filteredUnitOfMeasureConversions#21518219, quantityNumerator#21518220, quantityDenominator#21518221, CASE WHEN (isnull(outboundUnit#21518222) OR (outboundUnit#21518222 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#21518222 END AS outboundUnit#21518223]
(87) Project
Arguments: [product#21518194, plant#21518195, orderDateTime#21518196, productPlant#21518206, outboundUnit#21518223]
(88) Join
Arguments: Inner, ((plantUuid#21518177 = plant#21518195) AND (productUuid#21518179 = product#21518194))
(89) Filter
Arguments: (calculationDateTime#21518159 <= orderDateTime#21518196)
(90) Project
Arguments: [plantUuid#21518177 AS plant#21518227, productUuid#21518179 AS product#21518228, storageLocId#21518180, calculationDateTime#21518159, quantity#21518182]
(91) LogicalRelation
Arguments: parquet, [systemId#21518236, internalUUID#21518237, product#21518238, plant#21518239, calculationDateTime#21518240, stockQuantities#21518241], false
(92) Repartition
Arguments: 25, true
(93) LogicalRelation
Arguments: parquet, [marketUnit#21518242, description#21518243, articleHierarchy#21518244, defaultCurrency#21518245, responsibilities#21518246, replenishmentTypes#21518247, distributionCenters#21518248, assignedArticleHierarchyNodes#21518249, minOrderQtySetting#21518250, listingCheck#21518251, odsSelection#21518252, demandProfiles#21518253, constraintProfiles#21518254, optimizationProfiles#21518255, orderGroupSplitProfiles#21518256, supplierMinimumProfiles#21518257, multipleRestrictionProfiles#21518258, preferredUomSource#21518259, handlingOfUnfulfilledDemands#21518260, negligibleQuantitiesThreshold#21518261, eventtype#21518262, minOrderQtySettingInternal#21518263], false
(94) Repartition
Arguments: 25, true
(95) Filter
Arguments: (marketUnit#21518242 <=> SS_Test_1)
(96) Project
Arguments: [marketUnit#21518242, description#21518243, articleHierarchy#21518244, defaultCurrency#21518245, responsibilities#21518246, replenishmentTypes#21518247, distributionCenters#21518248, assignedArticleHierarchyNodes#21518249, minOrderQtySetting#21518250, listingCheck#21518251, odsSelection#21518252, demandProfiles#21518253, constraintProfiles#21518254, optimizationProfiles#21518255, orderGroupSplitProfiles#21518256, supplierMinimumProfiles#21518257, multipleRestrictionProfiles#21518258, preferredUomSource#21518259, handlingOfUnfulfilledDemands#21518260, negligibleQuantitiesThreshold#21518261, eventtype#21518262, minOrderQtySettingInternal#21518263]
(97) Project
Arguments: [distributionCenters#21518248]
(98) Generate
Arguments: explode(distributionCenters#21518248), false, [distributionCenters#21518264]
(99) Project
Arguments: [distributionCenters#21518264]
(100) Generate
Arguments: explode(distributionCenters#21518264.storageLocations), false, [storageLocations#21518265]
(101) Project
Arguments: [distributionCenters#21518264.id AS plantId#21518266, distributionCenters#21518264.internalRefUUID AS plantUuid#21518267, storageLocations#21518265]
(102) Project
Arguments: [plantId#21518266, plantUuid#21518267, storageLocations#21518265.id AS storageLocId#21518268, storageLocations#21518265.internalRefUUID AS storageLocUuid#21518269]
(103) LogicalRelation
Arguments: parquet, [product#21518270, plant#21518271, orderDateTime#21518272, planningStartDateTime#21518273], false
(104) RepartitionByExpression
Arguments: [product#21518270, plant#21518271], 25
(105) Project
Arguments: [product#21518270, plant#21518271, orderDateTime#21518272]
(106) LogicalRelation
Arguments: parquet, [systemId#21518274, internalUUID#21518275, plant#21518276, product#21518277, blockedForReplenishmentStartingFrom#21518278, productionAspect#21518279, salesPlant#21518280, listing#21518281], false
(107) Repartition
Arguments: 25, true
(108) Project
Arguments: [systemId#21518274, internalUUID#21518275, plant#21518276, product#21518277, blockedForReplenishmentStartingFrom#21518278, productionAspect#21518279, salesPlant#21518280, listing#21518281, struct(systemId, systemId#21518274, internalUUID, internalUUID#21518275, plant, plant#21518276, product, product#21518277, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#21518278, productionAspect, productionAspect#21518279, salesPlant, salesPlant#21518280, listing, listing#21518281) AS productPlant#21518282]
(109) Project
Arguments: [productPlant#21518282]
(110) Join
Arguments: LeftOuter, ((product#21518270 <=> productPlant#21518282.product.internalRefUUID) AND (plant#21518271 <=> productPlant#21518282.plant.internalRefUUID))
(111) Project
Arguments: [product#21518270, plant#21518271, orderDateTime#21518272, productPlant#21518282]
(112) LogicalRelation
Arguments: parquet, [systemId#21518283, internalUUID#21518284, id#21518285, displayId#21518286, name#21518287, baseUnitOfMeasure#21518288, unitOfMeasures#21518289, unitOfMeasureConversions#21518290, productionAspect#21518291, salesAspect#21518292, procurementAspect#21518293, productGroup#21518294], false
(113) Repartition
Arguments: 25, true
(114) Join
Arguments: LeftOuter, (product#21518270 = internalUUID#21518284)
(115) Project
Arguments: [product#21518270, plant#21518271, orderDateTime#21518272, productPlant#21518282, systemId#21518283, internalUUID#21518284, id#21518285, displayId#21518286, name#21518287, baseUnitOfMeasure#21518288, unitOfMeasures#21518289, unitOfMeasureConversions#21518290, productionAspect#21518291, salesAspect#21518292, procurementAspect#21518293, productGroup#21518294, filter(unitOfMeasureConversions#21518290, lambdafunction((((lambda u#21518048.measurementUnit1.code = productPlant#21518282.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#21518048.measurementUnit1.internalRefUUID = productPlant#21518282.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#21518048.measurementUnit2.code = baseUnitOfMeasure#21518288.code) AND (lambda u#21518048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#21518288.internalRefUUID))), lambda u#21518048, false)) AS filteredUnitOfMeasureConversions#21518295]
(116) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21518295.quantityNumerator), true, [quantityNumerator#21518296]
(117) Project
Arguments: [product#21518270, plant#21518271, orderDateTime#21518272, productPlant#21518282, systemId#21518283, internalUUID#21518284, id#21518285, displayId#21518286, name#21518287, baseUnitOfMeasure#21518288, unitOfMeasures#21518289, unitOfMeasureConversions#21518290, productionAspect#21518291, salesAspect#21518292, procurementAspect#21518293, productGroup#21518294, filteredUnitOfMeasureConversions#21518295, quantityNumerator#21518296]
(118) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21518295.quantityDenominator), true, [quantityDenominator#21518297]
(119) Project
Arguments: [product#21518270, plant#21518271, orderDateTime#21518272, productPlant#21518282, systemId#21518283, internalUUID#21518284, id#21518285, displayId#21518286, name#21518287, baseUnitOfMeasure#21518288, unitOfMeasures#21518289, unitOfMeasureConversions#21518290, productionAspect#21518291, salesAspect#21518292, procurementAspect#21518293, productGroup#21518294, filteredUnitOfMeasureConversions#21518295, quantityNumerator#21518296, quantityDenominator#21518297]
(120) Project
Arguments: [product#21518270, plant#21518271, orderDateTime#21518272, productPlant#21518282, systemId#21518283, internalUUID#21518284, id#21518285, displayId#21518286, name#21518287, baseUnitOfMeasure#21518288, unitOfMeasures#21518289, unitOfMeasureConversions#21518290, productionAspect#21518291, salesAspect#21518292, procurementAspect#21518293, productGroup#21518294, filteredUnitOfMeasureConversions#21518295, quantityNumerator#21518296, quantityDenominator#21518297, (cast(quantityNumerator#21518296 as double) / cast(quantityDenominator#21518297 as double)) AS outboundUnit#21518298]
(121) Project
Arguments: [product#21518270, plant#21518271, orderDateTime#21518272, productPlant#21518282, systemId#21518283, internalUUID#21518284, id#21518285, displayId#21518286, name#21518287, baseUnitOfMeasure#21518288, unitOfMeasures#21518289, unitOfMeasureConversions#21518290, productionAspect#21518291, salesAspect#21518292, procurementAspect#21518293, productGroup#21518294, filteredUnitOfMeasureConversions#21518295, quantityNumerator#21518296, quantityDenominator#21518297, CASE WHEN (isnull(outboundUnit#21518298) OR (outboundUnit#21518298 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#21518298 END AS outboundUnit#21518299]
(122) Project
Arguments: [product#21518270, plant#21518271, orderDateTime#21518272, productPlant#21518282, outboundUnit#21518299]
(123) Project
Arguments: [plant#21518271]
(124) Deduplicate
Arguments: [plant#21518271]
(125) Join
Arguments: Inner, (plantUuid#21518267 = plant#21518271)
(126) Project
Arguments: [plantId#21518266, plantUuid#21518267, storageLocId#21518268, storageLocUuid#21518269]
(127) Join
Arguments: Inner, (plant#21518239.internalRefUUID <=> plantUuid#21518267)
(128) Generate
Arguments: explode(filter(stockQuantities#21518241, lambdafunction(((lambda x#21518157.storageLocation.internalRefUuid = storageLocUuid#21518269) AND (lambda x#21518157.storageLocation.Id = storageLocId#21518268)), lambda x#21518157, false))), false, [stockQuantity#21518300]
(129) Project
Arguments: [systemId#21518236, internalUUID#21518237, product#21518238, plant#21518239, calculationDateTime#21518240, stockQuantities#21518241, plantId#21518266, plantUuid#21518267, storageLocId#21518268, storageLocUuid#21518269, stockQuantity#21518300]
(130) Aggregate
Arguments: [plantUuid#21518267, internalUUID#21518237, plant#21518239, product#21518238, systemId#21518236], [plantUuid#21518267, internalUUID#21518237, plant#21518239, product#21518238, systemId#21518236, first(calculationDateTime#21518240, false) AS calculationDateTime#21518301, collect_list(stockQuantity#21518300, 0, 0) AS stockQuantities#21518302]
(131) Project
Arguments: [systemId#21518236, internalUUID#21518237, product#21518238, plant#21518239, calculationDateTime#21518301, stockQuantities#21518302]
(132) Generate
Arguments: explode(stockQuantities#21518302), false, [stockQuantity#21518303]
(133) Project
Arguments: [systemId#21518236, internalUUID#21518237, product#21518238, plant#21518239, calculationDateTime#21518301, stockQuantities#21518302, stockQuantity#21518303]
(134) Project
Arguments: [plant#21518239.id AS plant#21518304, plant#21518239.internalRefUUID AS plantUuid#21518305, product#21518238.id AS product#21518306, product#21518238.internalRefUUID AS productUuid#21518307, calculationDateTime#21518301, stockQuantity#21518303.storagelocation.id AS storageLocId#21518308, stockQuantity#21518303.storagelocation.internalRefUUID AS storageLocUuid#21518309, stockQuantity#21518303.quantity.measure AS quantity#21518310, stockQuantity#21518303.specialStockIndicator.code AS specialStockIndicator#21518311, stockQuantity#21518303.stockType.code AS stockType#21518312]
(135) Filter
Arguments: ((specialStockIndicator#21518311 = ) AND (stockType#21518312 = 01))
(136) LogicalRelation
Arguments: parquet, [product#21518313, plant#21518314, orderDateTime#21518315, planningStartDateTime#21518316], false
(137) RepartitionByExpression
Arguments: [product#21518313, plant#21518314], 25
(138) Project
Arguments: [product#21518313, plant#21518314, orderDateTime#21518315]
(139) LogicalRelation
Arguments: parquet, [systemId#21518317, internalUUID#21518318, plant#21518319, product#21518320, blockedForReplenishmentStartingFrom#21518321, productionAspect#21518322, salesPlant#21518323, listing#21518324], false
(140) Repartition
Arguments: 25, true
(141) Project
Arguments: [systemId#21518317, internalUUID#21518318, plant#21518319, product#21518320, blockedForReplenishmentStartingFrom#21518321, productionAspect#21518322, salesPlant#21518323, listing#21518324, struct(systemId, systemId#21518317, internalUUID, internalUUID#21518318, plant, plant#21518319, product, product#21518320, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#21518321, productionAspect, productionAspect#21518322, salesPlant, salesPlant#21518323, listing, listing#21518324) AS productPlant#21518325]
(142) Project
Arguments: [productPlant#21518325]
(143) Join
Arguments: LeftOuter, ((product#21518313 <=> productPlant#21518325.product.internalRefUUID) AND (plant#21518314 <=> productPlant#21518325.plant.internalRefUUID))
(144) Project
Arguments: [product#21518313, plant#21518314, orderDateTime#21518315, productPlant#21518325]
(145) LogicalRelation
Arguments: parquet, [systemId#21518326, internalUUID#21518327, id#21518328, displayId#21518329, name#21518330, baseUnitOfMeasure#21518331, unitOfMeasures#21518332, unitOfMeasureConversions#21518333, productionAspect#21518334, salesAspect#21518335, procurementAspect#21518336, productGroup#21518337], false
(146) Repartition
Arguments: 25, true
(147) Join
Arguments: LeftOuter, (product#21518313 = internalUUID#21518327)
(148) Project
Arguments: [product#21518313, plant#21518314, orderDateTime#21518315, productPlant#21518325, systemId#21518326, internalUUID#21518327, id#21518328, displayId#21518329, name#21518330, baseUnitOfMeasure#21518331, unitOfMeasures#21518332, unitOfMeasureConversions#21518333, productionAspect#21518334, salesAspect#21518335, procurementAspect#21518336, productGroup#21518337, filter(unitOfMeasureConversions#21518333, lambdafunction((((lambda u#21518048.measurementUnit1.code = productPlant#21518325.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#21518048.measurementUnit1.internalRefUUID = productPlant#21518325.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#21518048.measurementUnit2.code = baseUnitOfMeasure#21518331.code) AND (lambda u#21518048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#21518331.internalRefUUID))), lambda u#21518048, false)) AS filteredUnitOfMeasureConversions#21518338]
(149) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21518338.quantityNumerator), true, [quantityNumerator#21518339]
(150) Project
Arguments: [product#21518313, plant#21518314, orderDateTime#21518315, productPlant#21518325, systemId#21518326, internalUUID#21518327, id#21518328, displayId#21518329, name#21518330, baseUnitOfMeasure#21518331, unitOfMeasures#21518332, unitOfMeasureConversions#21518333, productionAspect#21518334, salesAspect#21518335, procurementAspect#21518336, productGroup#21518337, filteredUnitOfMeasureConversions#21518338, quantityNumerator#21518339]
(151) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21518338.quantityDenominator), true, [quantityDenominator#21518340]
(152) Project
Arguments: [product#21518313, plant#21518314, orderDateTime#21518315, productPlant#21518325, systemId#21518326, internalUUID#21518327, id#21518328, displayId#21518329, name#21518330, baseUnitOfMeasure#21518331, unitOfMeasures#21518332, unitOfMeasureConversions#21518333, productionAspect#21518334, salesAspect#21518335, procurementAspect#21518336, productGroup#21518337, filteredUnitOfMeasureConversions#21518338, quantityNumerator#21518339, quantityDenominator#21518340]
(153) Project
Arguments: [product#21518313, plant#21518314, orderDateTime#21518315, productPlant#21518325, systemId#21518326, internalUUID#21518327, id#21518328, displayId#21518329, name#21518330, baseUnitOfMeasure#21518331, unitOfMeasures#21518332, unitOfMeasureConversions#21518333, productionAspect#21518334, salesAspect#21518335, procurementAspect#21518336, productGroup#21518337, filteredUnitOfMeasureConversions#21518338, quantityNumerator#21518339, quantityDenominator#21518340, (cast(quantityNumerator#21518339 as double) / cast(quantityDenominator#21518340 as double)) AS outboundUnit#21518341]
(154) Project
Arguments: [product#21518313, plant#21518314, orderDateTime#21518315, productPlant#21518325, systemId#21518326, internalUUID#21518327, id#21518328, displayId#21518329, name#21518330, baseUnitOfMeasure#21518331, unitOfMeasures#21518332, unitOfMeasureConversions#21518333, productionAspect#21518334, salesAspect#21518335, procurementAspect#21518336, productGroup#21518337, filteredUnitOfMeasureConversions#21518338, quantityNumerator#21518339, quantityDenominator#21518340, CASE WHEN (isnull(outboundUnit#21518341) OR (outboundUnit#21518341 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#21518341 END AS outboundUnit#21518342]
(155) Project
Arguments: [product#21518313, plant#21518314, orderDateTime#21518315, productPlant#21518325, outboundUnit#21518342]
(156) Join
Arguments: Inner, ((plantUuid#21518305 = plant#21518314) AND (productUuid#21518307 = product#21518313))
(157) Filter
Arguments: (calculationDateTime#21518301 <= orderDateTime#21518315)
(158) Project
Arguments: [plantUuid#21518305 AS plant#21518343, productUuid#21518307 AS product#21518344, storageLocId#21518308, calculationDateTime#21518301, quantity#21518310]
(159) Aggregate
Arguments: [plant#21518343, product#21518344, storageLocId#21518308], [plant#21518343, product#21518344, storageLocId#21518308, max(calculationDateTime#21518301) AS max_calc_datetime#21518229]
(160) Join
Arguments: Inner, ((((plant#21518227 <=> plant#21518343) AND (product#21518228 <=> product#21518344)) AND (storageLocId#21518180 <=> storageLocId#21518308)) AND (calculationDateTime#21518159 <=> max_calc_datetime#21518229))
(161) Project
Arguments: [plant#21518227, product#21518228, storageLocId#21518180, calculationDateTime#21518159, quantity#21518182]
(162) Aggregate
Arguments: [product#21518228, plant#21518227], [product#21518228, plant#21518227, sum(quantity#21518182) AS quantitySum#21518353, min(calculationDateTime#21518159) AS minCalculationDateTime#21518354]
(163) Project
Arguments: [product#21518228, plant#21518227, quantitySum#21518353, minCalculationDateTime#21518354, round(quantitySum#21518353, 0) AS roundedQuantitySum#21518362]
(164) Join
Arguments: LeftOuter, ((plant#21517976 = plant#21518227) AND (product#21517975 = product#21518228))
(165) Project
Arguments: [product#21517975, plant#21517976, orderDateTime#21517977, productPlant#21517989, outboundUnit#21518060, roundedQuantitySum#21518362, minCalculationDateTime#21518354]
(166) Project
Arguments: [product#21517975, plant#21517976, orderDateTime#21517977, productPlant#21517989, outboundUnit#21518060, roundedQuantitySum#21518362, minCalculationDateTime#21518354, CASE WHEN isnotnull(minCalculationDateTime#21518354) THEN minCalculationDateTime#21518354 ELSE orderDateTime#21517977 END AS stockDatetime#21518396]
(167) Project
Arguments: [product#21517975, plant#21517976, orderDateTime#21517977, productPlant#21517989, outboundUnit#21518060, roundedQuantitySum#21518362, minCalculationDateTime#21518354, stockDatetime#21518396, CASE WHEN isnotnull(roundedQuantitySum#21518362) THEN array(roundedQuantitySum#21518362) ELSE array(0.0) END AS stockBatchQuantities#21518397]
(168) Project
Arguments: [product#21517975, plant#21517976, orderDateTime#21517977, productPlant#21517989, outboundUnit#21518060, roundedQuantitySum#21518362, minCalculationDateTime#21518354, stockDatetime#21518396, stockBatchQuantities#21518397, array(2199-01-01 00:00:00) AS stockBatchShelfLifeEndDatetimes#21518398]
(169) Project
Arguments: [product#21517975, plant#21517976, orderDateTime#21517977, productPlant#21517989, outboundUnit#21518060, roundedQuantitySum#21518362, stockDatetime#21518396, stockBatchQuantities#21518397, stockBatchShelfLifeEndDatetimes#21518398]
(170) Project
Arguments: [product#21517975, plant#21517976, orderDateTime#21517977, productPlant#21517989, outboundUnit#21518060, stockDatetime#21518396, stockBatchQuantities#21518397, stockBatchShelfLifeEndDatetimes#21518398]
(171) LogicalRelation
Arguments: parquet, [product#21519502, plant#21519503, orderDateTime#21519504, planningStartDateTime#21519505], false
(172) RepartitionByExpression
Arguments: [product#21519502, plant#21519503], 25
(173) Project
Arguments: [product#21519502, plant#21519503, orderDateTime#21519504]
(174) LogicalRelation
Arguments: parquet, [systemId#21519506, internalUUID#21519507, plant#21519508, product#21519509, blockedForReplenishmentStartingFrom#21519510, productionAspect#21519511, salesPlant#21519512, listing#21519513], false
(175) Repartition
Arguments: 25, true
(176) Project
Arguments: [systemId#21519506, internalUUID#21519507, plant#21519508, product#21519509, blockedForReplenishmentStartingFrom#21519510, productionAspect#21519511, salesPlant#21519512, listing#21519513, struct(systemId, systemId#21519506, internalUUID, internalUUID#21519507, plant, plant#21519508, product, product#21519509, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#21519510, productionAspect, productionAspect#21519511, salesPlant, salesPlant#21519512, listing, listing#21519513) AS productPlant#21519514]
(177) Project
Arguments: [productPlant#21519514]
(178) Join
Arguments: LeftOuter, ((product#21519502 <=> productPlant#21519514.product.internalRefUUID) AND (plant#21519503 <=> productPlant#21519514.plant.internalRefUUID))
(179) Project
Arguments: [product#21519502, plant#21519503, orderDateTime#21519504, productPlant#21519514]
(180) LogicalRelation
Arguments: parquet, [systemId#21519515, internalUUID#21519516, id#21519517, displayId#21519518, name#21519519, baseUnitOfMeasure#21519520, unitOfMeasures#21519521, unitOfMeasureConversions#21519522, productionAspect#21519523, salesAspect#21519524, procurementAspect#21519525, productGroup#21519526], false
(181) Repartition
Arguments: 25, true
(182) Join
Arguments: LeftOuter, (product#21519502 = internalUUID#21519516)
(183) Project
Arguments: [product#21519502, plant#21519503, orderDateTime#21519504, productPlant#21519514, systemId#21519515, internalUUID#21519516, id#21519517, displayId#21519518, name#21519519, baseUnitOfMeasure#21519520, unitOfMeasures#21519521, unitOfMeasureConversions#21519522, productionAspect#21519523, salesAspect#21519524, procurementAspect#21519525, productGroup#21519526, filter(unitOfMeasureConversions#21519522, lambdafunction((((lambda u#21518048.measurementUnit1.code = productPlant#21519514.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#21518048.measurementUnit1.internalRefUUID = productPlant#21519514.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#21518048.measurementUnit2.code = baseUnitOfMeasure#21519520.code) AND (lambda u#21518048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#21519520.internalRefUUID))), lambda u#21518048, false)) AS filteredUnitOfMeasureConversions#21519527]
(184) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21519527.quantityNumerator), true, [quantityNumerator#21519528]
(185) Project
Arguments: [product#21519502, plant#21519503, orderDateTime#21519504, productPlant#21519514, systemId#21519515, internalUUID#21519516, id#21519517, displayId#21519518, name#21519519, baseUnitOfMeasure#21519520, unitOfMeasures#21519521, unitOfMeasureConversions#21519522, productionAspect#21519523, salesAspect#21519524, procurementAspect#21519525, productGroup#21519526, filteredUnitOfMeasureConversions#21519527, quantityNumerator#21519528]
(186) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21519527.quantityDenominator), true, [quantityDenominator#21519529]
(187) Project
Arguments: [product#21519502, plant#21519503, orderDateTime#21519504, productPlant#21519514, systemId#21519515, internalUUID#21519516, id#21519517, displayId#21519518, name#21519519, baseUnitOfMeasure#21519520, unitOfMeasures#21519521, unitOfMeasureConversions#21519522, productionAspect#21519523, salesAspect#21519524, procurementAspect#21519525, productGroup#21519526, filteredUnitOfMeasureConversions#21519527, quantityNumerator#21519528, quantityDenominator#21519529]
(188) Project
Arguments: [product#21519502, plant#21519503, orderDateTime#21519504, productPlant#21519514, systemId#21519515, internalUUID#21519516, id#21519517, displayId#21519518, name#21519519, baseUnitOfMeasure#21519520, unitOfMeasures#21519521, unitOfMeasureConversions#21519522, productionAspect#21519523, salesAspect#21519524, procurementAspect#21519525, productGroup#21519526, filteredUnitOfMeasureConversions#21519527, quantityNumerator#21519528, quantityDenominator#21519529, (cast(quantityNumerator#21519528 as double) / cast(quantityDenominator#21519529 as double)) AS outboundUnit#21519530]
(189) Project
Arguments: [product#21519502, plant#21519503, orderDateTime#21519504, productPlant#21519514, systemId#21519515, internalUUID#21519516, id#21519517, displayId#21519518, name#21519519, baseUnitOfMeasure#21519520, unitOfMeasures#21519521, unitOfMeasureConversions#21519522, productionAspect#21519523, salesAspect#21519524, procurementAspect#21519525, productGroup#21519526, filteredUnitOfMeasureConversions#21519527, quantityNumerator#21519528, quantityDenominator#21519529, CASE WHEN (isnull(outboundUnit#21519530) OR (outboundUnit#21519530 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#21519530 END AS outboundUnit#21519531]
(190) Project
Arguments: [product#21519502, plant#21519503, orderDateTime#21519504, productPlant#21519514, outboundUnit#21519531]
(191) LogicalRelation
Arguments: parquet, [systemId#21519532, internalUUID#21519533, product#21519534, plant#21519535, calculationDateTime#21519536, stockQuantities#21519537], false
(192) Repartition
Arguments: 25, true
(193) LogicalRelation
Arguments: parquet, [marketUnit#21519538, description#21519539, articleHierarchy#21519540, defaultCurrency#21519541, responsibilities#21519542, replenishmentTypes#21519543, distributionCenters#21519544, assignedArticleHierarchyNodes#21519545, minOrderQtySetting#21519546, listingCheck#21519547, odsSelection#21519548, demandProfiles#21519549, constraintProfiles#21519550, optimizationProfiles#21519551, orderGroupSplitProfiles#21519552, supplierMinimumProfiles#21519553, multipleRestrictionProfiles#21519554, preferredUomSource#21519555, handlingOfUnfulfilledDemands#21519556, negligibleQuantitiesThreshold#21519557, eventtype#21519558, minOrderQtySettingInternal#21519559], false
(194) Repartition
Arguments: 25, true
(195) Filter
Arguments: (marketUnit#21519538 <=> SS_Test_1)
(196) Project
Arguments: [marketUnit#21519538, description#21519539, articleHierarchy#21519540, defaultCurrency#21519541, responsibilities#21519542, replenishmentTypes#21519543, distributionCenters#21519544, assignedArticleHierarchyNodes#21519545, minOrderQtySetting#21519546, listingCheck#21519547, odsSelection#21519548, demandProfiles#21519549, constraintProfiles#21519550, optimizationProfiles#21519551, orderGroupSplitProfiles#21519552, supplierMinimumProfiles#21519553, multipleRestrictionProfiles#21519554, preferredUomSource#21519555, handlingOfUnfulfilledDemands#21519556, negligibleQuantitiesThreshold#21519557, eventtype#21519558, minOrderQtySettingInternal#21519559]
(197) Project
Arguments: [distributionCenters#21519544]
(198) Generate
Arguments: explode(distributionCenters#21519544), false, [distributionCenters#21519560]
(199) Project
Arguments: [distributionCenters#21519560]
(200) Generate
Arguments: explode(distributionCenters#21519560.storageLocations), false, [storageLocations#21519561]
(201) Project
Arguments: [distributionCenters#21519560.id AS plantId#21519562, distributionCenters#21519560.internalRefUUID AS plantUuid#21519563, storageLocations#21519561]
(202) Project
Arguments: [plantId#21519562, plantUuid#21519563, storageLocations#21519561.id AS storageLocId#21519564, storageLocations#21519561.internalRefUUID AS storageLocUuid#21519565]
(203) LogicalRelation
Arguments: parquet, [product#21519566, plant#21519567, orderDateTime#21519568, planningStartDateTime#21519569], false
(204) RepartitionByExpression
Arguments: [product#21519566, plant#21519567], 25
(205) Project
Arguments: [product#21519566, plant#21519567, orderDateTime#21519568]
(206) LogicalRelation
Arguments: parquet, [systemId#21519570, internalUUID#21519571, plant#21519572, product#21519573, blockedForReplenishmentStartingFrom#21519574, productionAspect#21519575, salesPlant#21519576, listing#21519577], false
(207) Repartition
Arguments: 25, true
(208) Project
Arguments: [systemId#21519570, internalUUID#21519571, plant#21519572, product#21519573, blockedForReplenishmentStartingFrom#21519574, productionAspect#21519575, salesPlant#21519576, listing#21519577, struct(systemId, systemId#21519570, internalUUID, internalUUID#21519571, plant, plant#21519572, product, product#21519573, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#21519574, productionAspect, productionAspect#21519575, salesPlant, salesPlant#21519576, listing, listing#21519577) AS productPlant#21519578]
(209) Project
Arguments: [productPlant#21519578]
(210) Join
Arguments: LeftOuter, ((product#21519566 <=> productPlant#21519578.product.internalRefUUID) AND (plant#21519567 <=> productPlant#21519578.plant.internalRefUUID))
(211) Project
Arguments: [product#21519566, plant#21519567, orderDateTime#21519568, productPlant#21519578]
(212) LogicalRelation
Arguments: parquet, [systemId#21519579, internalUUID#21519580, id#21519581, displayId#21519582, name#21519583, baseUnitOfMeasure#21519584, unitOfMeasures#21519585, unitOfMeasureConversions#21519586, productionAspect#21519587, salesAspect#21519588, procurementAspect#21519589, productGroup#21519590], false
(213) Repartition
Arguments: 25, true
(214) Join
Arguments: LeftOuter, (product#21519566 = internalUUID#21519580)
(215) Project
Arguments: [product#21519566, plant#21519567, orderDateTime#21519568, productPlant#21519578, systemId#21519579, internalUUID#21519580, id#21519581, displayId#21519582, name#21519583, baseUnitOfMeasure#21519584, unitOfMeasures#21519585, unitOfMeasureConversions#21519586, productionAspect#21519587, salesAspect#21519588, procurementAspect#21519589, productGroup#21519590, filter(unitOfMeasureConversions#21519586, lambdafunction((((lambda u#21518048.measurementUnit1.code = productPlant#21519578.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#21518048.measurementUnit1.internalRefUUID = productPlant#21519578.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#21518048.measurementUnit2.code = baseUnitOfMeasure#21519584.code) AND (lambda u#21518048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#21519584.internalRefUUID))), lambda u#21518048, false)) AS filteredUnitOfMeasureConversions#21519591]
(216) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21519591.quantityNumerator), true, [quantityNumerator#21519592]
(217) Project
Arguments: [product#21519566, plant#21519567, orderDateTime#21519568, productPlant#21519578, systemId#21519579, internalUUID#21519580, id#21519581, displayId#21519582, name#21519583, baseUnitOfMeasure#21519584, unitOfMeasures#21519585, unitOfMeasureConversions#21519586, productionAspect#21519587, salesAspect#21519588, procurementAspect#21519589, productGroup#21519590, filteredUnitOfMeasureConversions#21519591, quantityNumerator#21519592]
(218) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21519591.quantityDenominator), true, [quantityDenominator#21519593]
(219) Project
Arguments: [product#21519566, plant#21519567, orderDateTime#21519568, productPlant#21519578, systemId#21519579, internalUUID#21519580, id#21519581, displayId#21519582, name#21519583, baseUnitOfMeasure#21519584, unitOfMeasures#21519585, unitOfMeasureConversions#21519586, productionAspect#21519587, salesAspect#21519588, procurementAspect#21519589, productGroup#21519590, filteredUnitOfMeasureConversions#21519591, quantityNumerator#21519592, quantityDenominator#21519593]
(220) Project
Arguments: [product#21519566, plant#21519567, orderDateTime#21519568, productPlant#21519578, systemId#21519579, internalUUID#21519580, id#21519581, displayId#21519582, name#21519583, baseUnitOfMeasure#21519584, unitOfMeasures#21519585, unitOfMeasureConversions#21519586, productionAspect#21519587, salesAspect#21519588, procurementAspect#21519589, productGroup#21519590, filteredUnitOfMeasureConversions#21519591, quantityNumerator#21519592, quantityDenominator#21519593, (cast(quantityNumerator#21519592 as double) / cast(quantityDenominator#21519593 as double)) AS outboundUnit#21519594]
(221) Project
Arguments: [product#21519566, plant#21519567, orderDateTime#21519568, productPlant#21519578, systemId#21519579, internalUUID#21519580, id#21519581, displayId#21519582, name#21519583, baseUnitOfMeasure#21519584, unitOfMeasures#21519585, unitOfMeasureConversions#21519586, productionAspect#21519587, salesAspect#21519588, procurementAspect#21519589, productGroup#21519590, filteredUnitOfMeasureConversions#21519591, quantityNumerator#21519592, quantityDenominator#21519593, CASE WHEN (isnull(outboundUnit#21519594) OR (outboundUnit#21519594 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#21519594 END AS outboundUnit#21519595]
(222) Project
Arguments: [product#21519566, plant#21519567, orderDateTime#21519568, productPlant#21519578, outboundUnit#21519595]
(223) Project
Arguments: [plant#21519567]
(224) Deduplicate
Arguments: [plant#21519567]
(225) Join
Arguments: Inner, (plantUuid#21519563 = plant#21519567)
(226) Project
Arguments: [plantId#21519562, plantUuid#21519563, storageLocId#21519564, storageLocUuid#21519565]
(227) Join
Arguments: Inner, (plant#21519535.internalRefUUID <=> plantUuid#21519563)
(228) Generate
Arguments: explode(filter(stockQuantities#21519537, lambdafunction(((lambda x#21518157.storageLocation.internalRefUuid = storageLocUuid#21519565) AND (lambda x#21518157.storageLocation.Id = storageLocId#21519564)), lambda x#21518157, false))), false, [stockQuantity#21519596]
(229) Project
Arguments: [systemId#21519532, internalUUID#21519533, product#21519534, plant#21519535, calculationDateTime#21519536, stockQuantities#21519537, plantId#21519562, plantUuid#21519563, storageLocId#21519564, storageLocUuid#21519565, stockQuantity#21519596]
(230) Aggregate
Arguments: [plantUuid#21519563, internalUUID#21519533, plant#21519535, product#21519534, systemId#21519532], [plantUuid#21519563, internalUUID#21519533, plant#21519535, product#21519534, systemId#21519532, first(calculationDateTime#21519536, false) AS calculationDateTime#21519597, collect_list(stockQuantity#21519596, 0, 0) AS stockQuantities#21519598]
(231) Project
Arguments: [systemId#21519532, internalUUID#21519533, product#21519534, plant#21519535, calculationDateTime#21519597, stockQuantities#21519598]
(232) Generate
Arguments: explode(stockQuantities#21519598), false, [stockQuantity#21519599]
(233) Project
Arguments: [systemId#21519532, internalUUID#21519533, product#21519534, plant#21519535, calculationDateTime#21519597, stockQuantities#21519598, stockQuantity#21519599]
(234) Project
Arguments: [plant#21519535.id AS plant#21519600, plant#21519535.internalRefUUID AS plantUuid#21519601, product#21519534.id AS product#21519602, product#21519534.internalRefUUID AS productUuid#21519603, calculationDateTime#21519597, stockQuantity#21519599.storagelocation.id AS storageLocId#21519604, stockQuantity#21519599.storagelocation.internalRefUUID AS storageLocUuid#21519605, stockQuantity#21519599.quantity.measure AS quantity#21519606, stockQuantity#21519599.specialStockIndicator.code AS specialStockIndicator#21519607, stockQuantity#21519599.stockType.code AS stockType#21519608]
(235) Filter
Arguments: ((specialStockIndicator#21519607 = ) AND (stockType#21519608 = 01))
(236) LogicalRelation
Arguments: parquet, [product#21519609, plant#21519610, orderDateTime#21519611, planningStartDateTime#21519612], false
(237) RepartitionByExpression
Arguments: [product#21519609, plant#21519610], 25
(238) Project
Arguments: [product#21519609, plant#21519610, orderDateTime#21519611]
(239) LogicalRelation
Arguments: parquet, [systemId#21519613, internalUUID#21519614, plant#21519615, product#21519616, blockedForReplenishmentStartingFrom#21519617, productionAspect#21519618, salesPlant#21519619, listing#21519620], false
(240) Repartition
Arguments: 25, true
(241) Project
Arguments: [systemId#21519613, internalUUID#21519614, plant#21519615, product#21519616, blockedForReplenishmentStartingFrom#21519617, productionAspect#21519618, salesPlant#21519619, listing#21519620, struct(systemId, systemId#21519613, internalUUID, internalUUID#21519614, plant, plant#21519615, product, product#21519616, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#21519617, productionAspect, productionAspect#21519618, salesPlant, salesPlant#21519619, listing, listing#21519620) AS productPlant#21519621]
(242) Project
Arguments: [productPlant#21519621]
(243) Join
Arguments: LeftOuter, ((product#21519609 <=> productPlant#21519621.product.internalRefUUID) AND (plant#21519610 <=> productPlant#21519621.plant.internalRefUUID))
(244) Project
Arguments: [product#21519609, plant#21519610, orderDateTime#21519611, productPlant#21519621]
(245) LogicalRelation
Arguments: parquet, [systemId#21519622, internalUUID#21519623, id#21519624, displayId#21519625, name#21519626, baseUnitOfMeasure#21519627, unitOfMeasures#21519628, unitOfMeasureConversions#21519629, productionAspect#21519630, salesAspect#21519631, procurementAspect#21519632, productGroup#21519633], false
(246) Repartition
Arguments: 25, true
(247) Join
Arguments: LeftOuter, (product#21519609 = internalUUID#21519623)
(248) Project
Arguments: [product#21519609, plant#21519610, orderDateTime#21519611, productPlant#21519621, systemId#21519622, internalUUID#21519623, id#21519624, displayId#21519625, name#21519626, baseUnitOfMeasure#21519627, unitOfMeasures#21519628, unitOfMeasureConversions#21519629, productionAspect#21519630, salesAspect#21519631, procurementAspect#21519632, productGroup#21519633, filter(unitOfMeasureConversions#21519629, lambdafunction((((lambda u#21518048.measurementUnit1.code = productPlant#21519621.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#21518048.measurementUnit1.internalRefUUID = productPlant#21519621.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#21518048.measurementUnit2.code = baseUnitOfMeasure#21519627.code) AND (lambda u#21518048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#21519627.internalRefUUID))), lambda u#21518048, false)) AS filteredUnitOfMeasureConversions#21519634]
(249) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21519634.quantityNumerator), true, [quantityNumerator#21519635]
(250) Project
Arguments: [product#21519609, plant#21519610, orderDateTime#21519611, productPlant#21519621, systemId#21519622, internalUUID#21519623, id#21519624, displayId#21519625, name#21519626, baseUnitOfMeasure#21519627, unitOfMeasures#21519628, unitOfMeasureConversions#21519629, productionAspect#21519630, salesAspect#21519631, procurementAspect#21519632, productGroup#21519633, filteredUnitOfMeasureConversions#21519634, quantityNumerator#21519635]
(251) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21519634.quantityDenominator), true, [quantityDenominator#21519636]
(252) Project
Arguments: [product#21519609, plant#21519610, orderDateTime#21519611, productPlant#21519621, systemId#21519622, internalUUID#21519623, id#21519624, displayId#21519625, name#21519626, baseUnitOfMeasure#21519627, unitOfMeasures#21519628, unitOfMeasureConversions#21519629, productionAspect#21519630, salesAspect#21519631, procurementAspect#21519632, productGroup#21519633, filteredUnitOfMeasureConversions#21519634, quantityNumerator#21519635, quantityDenominator#21519636]
(253) Project
Arguments: [product#21519609, plant#21519610, orderDateTime#21519611, productPlant#21519621, systemId#21519622, internalUUID#21519623, id#21519624, displayId#21519625, name#21519626, baseUnitOfMeasure#21519627, unitOfMeasures#21519628, unitOfMeasureConversions#21519629, productionAspect#21519630, salesAspect#21519631, procurementAspect#21519632, productGroup#21519633, filteredUnitOfMeasureConversions#21519634, quantityNumerator#21519635, quantityDenominator#21519636, (cast(quantityNumerator#21519635 as double) / cast(quantityDenominator#21519636 as double)) AS outboundUnit#21519637]
(254) Project
Arguments: [product#21519609, plant#21519610, orderDateTime#21519611, productPlant#21519621, systemId#21519622, internalUUID#21519623, id#21519624, displayId#21519625, name#21519626, baseUnitOfMeasure#21519627, unitOfMeasures#21519628, unitOfMeasureConversions#21519629, productionAspect#21519630, salesAspect#21519631, procurementAspect#21519632, productGroup#21519633, filteredUnitOfMeasureConversions#21519634, quantityNumerator#21519635, quantityDenominator#21519636, CASE WHEN (isnull(outboundUnit#21519637) OR (outboundUnit#21519637 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#21519637 END AS outboundUnit#21519638]
(255) Project
Arguments: [product#21519609, plant#21519610, orderDateTime#21519611, productPlant#21519621, outboundUnit#21519638]
(256) Join
Arguments: Inner, ((plantUuid#21519601 = plant#21519610) AND (productUuid#21519603 = product#21519609))
(257) Filter
Arguments: (calculationDateTime#21519597 <= orderDateTime#21519611)
(258) Project
Arguments: [plantUuid#21519601 AS plant#21519639, productUuid#21519603 AS product#21519640, storageLocId#21519604, calculationDateTime#21519597, quantity#21519606]
(259) LogicalRelation
Arguments: parquet, [systemId#21519641, internalUUID#21519642, product#21519643, plant#21519644, calculationDateTime#21519645, stockQuantities#21519646], false
(260) Repartition
Arguments: 25, true
(261) LogicalRelation
Arguments: parquet, [marketUnit#21519647, description#21519648, articleHierarchy#21519649, defaultCurrency#21519650, responsibilities#21519651, replenishmentTypes#21519652, distributionCenters#21519653, assignedArticleHierarchyNodes#21519654, minOrderQtySetting#21519655, listingCheck#21519656, odsSelection#21519657, demandProfiles#21519658, constraintProfiles#21519659, optimizationProfiles#21519660, orderGroupSplitProfiles#21519661, supplierMinimumProfiles#21519662, multipleRestrictionProfiles#21519663, preferredUomSource#21519664, handlingOfUnfulfilledDemands#21519665, negligibleQuantitiesThreshold#21519666, eventtype#21519667, minOrderQtySettingInternal#21519668], false
(262) Repartition
Arguments: 25, true
(263) Filter
Arguments: (marketUnit#21519647 <=> SS_Test_1)
(264) Project
Arguments: [marketUnit#21519647, description#21519648, articleHierarchy#21519649, defaultCurrency#21519650, responsibilities#21519651, replenishmentTypes#21519652, distributionCenters#21519653, assignedArticleHierarchyNodes#21519654, minOrderQtySetting#21519655, listingCheck#21519656, odsSelection#21519657, demandProfiles#21519658, constraintProfiles#21519659, optimizationProfiles#21519660, orderGroupSplitProfiles#21519661, supplierMinimumProfiles#21519662, multipleRestrictionProfiles#21519663, preferredUomSource#21519664, handlingOfUnfulfilledDemands#21519665, negligibleQuantitiesThreshold#21519666, eventtype#21519667, minOrderQtySettingInternal#21519668]
(265) Project
Arguments: [distributionCenters#21519653]
(266) Generate
Arguments: explode(distributionCenters#21519653), false, [distributionCenters#21519669]
(267) Project
Arguments: [distributionCenters#21519669]
(268) Generate
Arguments: explode(distributionCenters#21519669.storageLocations), false, [storageLocations#21519670]
(269) Project
Arguments: [distributionCenters#21519669.id AS plantId#21519671, distributionCenters#21519669.internalRefUUID AS plantUuid#21519672, storageLocations#21519670]
(270) Project
Arguments: [plantId#21519671, plantUuid#21519672, storageLocations#21519670.id AS storageLocId#21519673, storageLocations#21519670.internalRefUUID AS storageLocUuid#21519674]
(271) LogicalRelation
Arguments: parquet, [product#21519675, plant#21519676, orderDateTime#21519677, planningStartDateTime#21519678], false
(272) RepartitionByExpression
Arguments: [product#21519675, plant#21519676], 25
(273) Project
Arguments: [product#21519675, plant#21519676, orderDateTime#21519677]
(274) LogicalRelation
Arguments: parquet, [systemId#21519679, internalUUID#21519680, plant#21519681, product#21519682, blockedForReplenishmentStartingFrom#21519683, productionAspect#21519684, salesPlant#21519685, listing#21519686], false
(275) Repartition
Arguments: 25, true
(276) Project
Arguments: [systemId#21519679, internalUUID#21519680, plant#21519681, product#21519682, blockedForReplenishmentStartingFrom#21519683, productionAspect#21519684, salesPlant#21519685, listing#21519686, struct(systemId, systemId#21519679, internalUUID, internalUUID#21519680, plant, plant#21519681, product, product#21519682, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#21519683, productionAspect, productionAspect#21519684, salesPlant, salesPlant#21519685, listing, listing#21519686) AS productPlant#21519687]
(277) Project
Arguments: [productPlant#21519687]
(278) Join
Arguments: LeftOuter, ((product#21519675 <=> productPlant#21519687.product.internalRefUUID) AND (plant#21519676 <=> productPlant#21519687.plant.internalRefUUID))
(279) Project
Arguments: [product#21519675, plant#21519676, orderDateTime#21519677, productPlant#21519687]
(280) LogicalRelation
Arguments: parquet, [systemId#21519688, internalUUID#21519689, id#21519690, displayId#21519691, name#21519692, baseUnitOfMeasure#21519693, unitOfMeasures#21519694, unitOfMeasureConversions#21519695, productionAspect#21519696, salesAspect#21519697, procurementAspect#21519698, productGroup#21519699], false
(281) Repartition
Arguments: 25, true
(282) Join
Arguments: LeftOuter, (product#21519675 = internalUUID#21519689)
(283) Project
Arguments: [product#21519675, plant#21519676, orderDateTime#21519677, productPlant#21519687, systemId#21519688, internalUUID#21519689, id#21519690, displayId#21519691, name#21519692, baseUnitOfMeasure#21519693, unitOfMeasures#21519694, unitOfMeasureConversions#21519695, productionAspect#21519696, salesAspect#21519697, procurementAspect#21519698, productGroup#21519699, filter(unitOfMeasureConversions#21519695, lambdafunction((((lambda u#21518048.measurementUnit1.code = productPlant#21519687.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#21518048.measurementUnit1.internalRefUUID = productPlant#21519687.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#21518048.measurementUnit2.code = baseUnitOfMeasure#21519693.code) AND (lambda u#21518048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#21519693.internalRefUUID))), lambda u#21518048, false)) AS filteredUnitOfMeasureConversions#21519700]
(284) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21519700.quantityNumerator), true, [quantityNumerator#21519701]
(285) Project
Arguments: [product#21519675, plant#21519676, orderDateTime#21519677, productPlant#21519687, systemId#21519688, internalUUID#21519689, id#21519690, displayId#21519691, name#21519692, baseUnitOfMeasure#21519693, unitOfMeasures#21519694, unitOfMeasureConversions#21519695, productionAspect#21519696, salesAspect#21519697, procurementAspect#21519698, productGroup#21519699, filteredUnitOfMeasureConversions#21519700, quantityNumerator#21519701]
(286) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21519700.quantityDenominator), true, [quantityDenominator#21519702]
(287) Project
Arguments: [product#21519675, plant#21519676, orderDateTime#21519677, productPlant#21519687, systemId#21519688, internalUUID#21519689, id#21519690, displayId#21519691, name#21519692, baseUnitOfMeasure#21519693, unitOfMeasures#21519694, unitOfMeasureConversions#21519695, productionAspect#21519696, salesAspect#21519697, procurementAspect#21519698, productGroup#21519699, filteredUnitOfMeasureConversions#21519700, quantityNumerator#21519701, quantityDenominator#21519702]
(288) Project
Arguments: [product#21519675, plant#21519676, orderDateTime#21519677, productPlant#21519687, systemId#21519688, internalUUID#21519689, id#21519690, displayId#21519691, name#21519692, baseUnitOfMeasure#21519693, unitOfMeasures#21519694, unitOfMeasureConversions#21519695, productionAspect#21519696, salesAspect#21519697, procurementAspect#21519698, productGroup#21519699, filteredUnitOfMeasureConversions#21519700, quantityNumerator#21519701, quantityDenominator#21519702, (cast(quantityNumerator#21519701 as double) / cast(quantityDenominator#21519702 as double)) AS outboundUnit#21519703]
(289) Project
Arguments: [product#21519675, plant#21519676, orderDateTime#21519677, productPlant#21519687, systemId#21519688, internalUUID#21519689, id#21519690, displayId#21519691, name#21519692, baseUnitOfMeasure#21519693, unitOfMeasures#21519694, unitOfMeasureConversions#21519695, productionAspect#21519696, salesAspect#21519697, procurementAspect#21519698, productGroup#21519699, filteredUnitOfMeasureConversions#21519700, quantityNumerator#21519701, quantityDenominator#21519702, CASE WHEN (isnull(outboundUnit#21519703) OR (outboundUnit#21519703 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#21519703 END AS outboundUnit#21519704]
(290) Project
Arguments: [product#21519675, plant#21519676, orderDateTime#21519677, productPlant#21519687, outboundUnit#21519704]
(291) Project
Arguments: [plant#21519676]
(292) Deduplicate
Arguments: [plant#21519676]
(293) Join
Arguments: Inner, (plantUuid#21519672 = plant#21519676)
(294) Project
Arguments: [plantId#21519671, plantUuid#21519672, storageLocId#21519673, storageLocUuid#21519674]
(295) Join
Arguments: Inner, (plant#21519644.internalRefUUID <=> plantUuid#21519672)
(296) Generate
Arguments: explode(filter(stockQuantities#21519646, lambdafunction(((lambda x#21518157.storageLocation.internalRefUuid = storageLocUuid#21519674) AND (lambda x#21518157.storageLocation.Id = storageLocId#21519673)), lambda x#21518157, false))), false, [stockQuantity#21519705]
(297) Project
Arguments: [systemId#21519641, internalUUID#21519642, product#21519643, plant#21519644, calculationDateTime#21519645, stockQuantities#21519646, plantId#21519671, plantUuid#21519672, storageLocId#21519673, storageLocUuid#21519674, stockQuantity#21519705]
(298) Aggregate
Arguments: [plantUuid#21519672, internalUUID#21519642, plant#21519644, product#21519643, systemId#21519641], [plantUuid#21519672, internalUUID#21519642, plant#21519644, product#21519643, systemId#21519641, first(calculationDateTime#21519645, false) AS calculationDateTime#21519706, collect_list(stockQuantity#21519705, 0, 0) AS stockQuantities#21519707]
(299) Project
Arguments: [systemId#21519641, internalUUID#21519642, product#21519643, plant#21519644, calculationDateTime#21519706, stockQuantities#21519707]
(300) Generate
Arguments: explode(stockQuantities#21519707), false, [stockQuantity#21519708]
(301) Project
Arguments: [systemId#21519641, internalUUID#21519642, product#21519643, plant#21519644, calculationDateTime#21519706, stockQuantities#21519707, stockQuantity#21519708]
(302) Project
Arguments: [plant#21519644.id AS plant#21519709, plant#21519644.internalRefUUID AS plantUuid#21519710, product#21519643.id AS product#21519711, product#21519643.internalRefUUID AS productUuid#21519712, calculationDateTime#21519706, stockQuantity#21519708.storagelocation.id AS storageLocId#21519713, stockQuantity#21519708.storagelocation.internalRefUUID AS storageLocUuid#21519714, stockQuantity#21519708.quantity.measure AS quantity#21519715, stockQuantity#21519708.specialStockIndicator.code AS specialStockIndicator#21519716, stockQuantity#21519708.stockType.code AS stockType#21519717]
(303) Filter
Arguments: ((specialStockIndicator#21519716 = ) AND (stockType#21519717 = 01))
(304) LogicalRelation
Arguments: parquet, [product#21519718, plant#21519719, orderDateTime#21519720, planningStartDateTime#21519721], false
(305) RepartitionByExpression
Arguments: [product#21519718, plant#21519719], 25
(306) Project
Arguments: [product#21519718, plant#21519719, orderDateTime#21519720]
(307) LogicalRelation
Arguments: parquet, [systemId#21519722, internalUUID#21519723, plant#21519724, product#21519725, blockedForReplenishmentStartingFrom#21519726, productionAspect#21519727, salesPlant#21519728, listing#21519729], false
(308) Repartition
Arguments: 25, true
(309) Project
Arguments: [systemId#21519722, internalUUID#21519723, plant#21519724, product#21519725, blockedForReplenishmentStartingFrom#21519726, productionAspect#21519727, salesPlant#21519728, listing#21519729, struct(systemId, systemId#21519722, internalUUID, internalUUID#21519723, plant, plant#21519724, product, product#21519725, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#21519726, productionAspect, productionAspect#21519727, salesPlant, salesPlant#21519728, listing, listing#21519729) AS productPlant#21519730]
(310) Project
Arguments: [productPlant#21519730]
(311) Join
Arguments: LeftOuter, ((product#21519718 <=> productPlant#21519730.product.internalRefUUID) AND (plant#21519719 <=> productPlant#21519730.plant.internalRefUUID))
(312) Project
Arguments: [product#21519718, plant#21519719, orderDateTime#21519720, productPlant#21519730]
(313) LogicalRelation
Arguments: parquet, [systemId#21519731, internalUUID#21519732, id#21519733, displayId#21519734, name#21519735, baseUnitOfMeasure#21519736, unitOfMeasures#21519737, unitOfMeasureConversions#21519738, productionAspect#21519739, salesAspect#21519740, procurementAspect#21519741, productGroup#21519742], false
(314) Repartition
Arguments: 25, true
(315) Join
Arguments: LeftOuter, (product#21519718 = internalUUID#21519732)
(316) Project
Arguments: [product#21519718, plant#21519719, orderDateTime#21519720, productPlant#21519730, systemId#21519731, internalUUID#21519732, id#21519733, displayId#21519734, name#21519735, baseUnitOfMeasure#21519736, unitOfMeasures#21519737, unitOfMeasureConversions#21519738, productionAspect#21519739, salesAspect#21519740, procurementAspect#21519741, productGroup#21519742, filter(unitOfMeasureConversions#21519738, lambdafunction((((lambda u#21518048.measurementUnit1.code = productPlant#21519730.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#21518048.measurementUnit1.internalRefUUID = productPlant#21519730.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#21518048.measurementUnit2.code = baseUnitOfMeasure#21519736.code) AND (lambda u#21518048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#21519736.internalRefUUID))), lambda u#21518048, false)) AS filteredUnitOfMeasureConversions#21519743]
(317) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21519743.quantityNumerator), true, [quantityNumerator#21519744]
(318) Project
Arguments: [product#21519718, plant#21519719, orderDateTime#21519720, productPlant#21519730, systemId#21519731, internalUUID#21519732, id#21519733, displayId#21519734, name#21519735, baseUnitOfMeasure#21519736, unitOfMeasures#21519737, unitOfMeasureConversions#21519738, productionAspect#21519739, salesAspect#21519740, procurementAspect#21519741, productGroup#21519742, filteredUnitOfMeasureConversions#21519743, quantityNumerator#21519744]
(319) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21519743.quantityDenominator), true, [quantityDenominator#21519745]
(320) Project
Arguments: [product#21519718, plant#21519719, orderDateTime#21519720, productPlant#21519730, systemId#21519731, internalUUID#21519732, id#21519733, displayId#21519734, name#21519735, baseUnitOfMeasure#21519736, unitOfMeasures#21519737, unitOfMeasureConversions#21519738, productionAspect#21519739, salesAspect#21519740, procurementAspect#21519741, productGroup#21519742, filteredUnitOfMeasureConversions#21519743, quantityNumerator#21519744, quantityDenominator#21519745]
(321) Project
Arguments: [product#21519718, plant#21519719, orderDateTime#21519720, productPlant#21519730, systemId#21519731, internalUUID#21519732, id#21519733, displayId#21519734, name#21519735, baseUnitOfMeasure#21519736, unitOfMeasures#21519737, unitOfMeasureConversions#21519738, productionAspect#21519739, salesAspect#21519740, procurementAspect#21519741, productGroup#21519742, filteredUnitOfMeasureConversions#21519743, quantityNumerator#21519744, quantityDenominator#21519745, (cast(quantityNumerator#21519744 as double) / cast(quantityDenominator#21519745 as double)) AS outboundUnit#21519746]
(322) Project
Arguments: [product#21519718, plant#21519719, orderDateTime#21519720, productPlant#21519730, systemId#21519731, internalUUID#21519732, id#21519733, displayId#21519734, name#21519735, baseUnitOfMeasure#21519736, unitOfMeasures#21519737, unitOfMeasureConversions#21519738, productionAspect#21519739, salesAspect#21519740, procurementAspect#21519741, productGroup#21519742, filteredUnitOfMeasureConversions#21519743, quantityNumerator#21519744, quantityDenominator#21519745, CASE WHEN (isnull(outboundUnit#21519746) OR (outboundUnit#21519746 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#21519746 END AS outboundUnit#21519747]
(323) Project
Arguments: [product#21519718, plant#21519719, orderDateTime#21519720, productPlant#21519730, outboundUnit#21519747]
(324) Join
Arguments: Inner, ((plantUuid#21519710 = plant#21519719) AND (productUuid#21519712 = product#21519718))
(325) Filter
Arguments: (calculationDateTime#21519706 <= orderDateTime#21519720)
(326) Project
Arguments: [plantUuid#21519710 AS plant#21519748, productUuid#21519712 AS product#21519749, storageLocId#21519713, calculationDateTime#21519706, quantity#21519715]
(327) Aggregate
Arguments: [plant#21519748, product#21519749, storageLocId#21519713], [plant#21519748, product#21519749, storageLocId#21519713, max(calculationDateTime#21519706) AS max_calc_datetime#21519750]
(328) Join
Arguments: Inner, ((((plant#21519639 <=> plant#21519748) AND (product#21519640 <=> product#21519749)) AND (storageLocId#21519604 <=> storageLocId#21519713)) AND (calculationDateTime#21519597 <=> max_calc_datetime#21519750))
(329) Project
Arguments: [plant#21519639, product#21519640, storageLocId#21519604, calculationDateTime#21519597, quantity#21519606]
(330) Aggregate
Arguments: [product#21519640, plant#21519639], [product#21519640, plant#21519639, sum(quantity#21519606) AS quantitySum#21519751, min(calculationDateTime#21519597) AS minCalculationDateTime#21519752]
(331) Project
Arguments: [product#21519640, plant#21519639, quantitySum#21519751, minCalculationDateTime#21519752, round(quantitySum#21519751, 0) AS roundedQuantitySum#21519753]
(332) Join
Arguments: LeftOuter, ((plant#21519503 = plant#21519639) AND (product#21519502 = product#21519640))
(333) Project
Arguments: [product#21519502, plant#21519503, orderDateTime#21519504, productPlant#21519514, outboundUnit#21519531, roundedQuantitySum#21519753, minCalculationDateTime#21519752]
(334) Project
Arguments: [product#21519502, plant#21519503, orderDateTime#21519504, productPlant#21519514, outboundUnit#21519531, roundedQuantitySum#21519753, minCalculationDateTime#21519752, CASE WHEN isnotnull(minCalculationDateTime#21519752) THEN minCalculationDateTime#21519752 ELSE orderDateTime#21519504 END AS stockDatetime#21519754]
(335) Project
Arguments: [product#21519502, plant#21519503, orderDateTime#21519504, productPlant#21519514, outboundUnit#21519531, roundedQuantitySum#21519753, minCalculationDateTime#21519752, stockDatetime#21519754, CASE WHEN isnotnull(roundedQuantitySum#21519753) THEN array(roundedQuantitySum#21519753) ELSE array(0.0) END AS stockBatchQuantities#21519755]
(336) Project
Arguments: [product#21519502, plant#21519503, orderDateTime#21519504, productPlant#21519514, outboundUnit#21519531, roundedQuantitySum#21519753, minCalculationDateTime#21519752, stockDatetime#21519754, stockBatchQuantities#21519755, array(2199-01-01 00:00:00) AS stockBatchShelfLifeEndDatetimes#21519756]
(337) Project
Arguments: [product#21519502, plant#21519503, orderDateTime#21519504, productPlant#21519514, outboundUnit#21519531, roundedQuantitySum#21519753, stockDatetime#21519754, stockBatchQuantities#21519755, stockBatchShelfLifeEndDatetimes#21519756]
(338) Project
Arguments: [product#21519502, plant#21519503, orderDateTime#21519504, productPlant#21519514, outboundUnit#21519531, stockDatetime#21519754, stockBatchQuantities#21519755, stockBatchShelfLifeEndDatetimes#21519756]
(339) LogicalRelation
Arguments: parquet, [product#21518399, plant#21518400, demandChannel#21518401, demandStream#21518402, considerVariance#21518403, demandTimeBuckets#21518404, demandPointInTimeStart#21518405, demandPointInTimeEnd#21518406, demandPointInTime#21518407], false
(340) Join
Arguments: LeftOuter, ((plant#21518400 <=> plant#21519503) AND (product#21518399 <=> product#21519502))
(341) Project
Arguments: [product#21519502, plant#21519503, orderDateTime#21519504, productPlant#21519514, outboundUnit#21519531, stockDatetime#21519754, stockBatchQuantities#21519755, stockBatchShelfLifeEndDatetimes#21519756, product#21518399, plant#21518400, demandChannel#21518401, demandStream#21518402, considerVariance#21518403, demandTimeBuckets#21518404, demandPointInTimeStart#21518405, demandPointInTimeEnd#21518406, demandPointInTime#21518407, CASE WHEN isnotnull(product#21518399) THEN struct(demandChannel, demandChannel#21518401, demandStream, demandStream#21518402, considerVariance, considerVariance#21518403, demandTimeBuckets, demandTimeBuckets#21518404, demandPointInTimeStart, demandPointInTimeStart#21518405, demandPointInTimeEnd, demandPointInTimeEnd#21518406, demandPointInTime, demandPointInTime#21518407) 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#21518409]
(342) Aggregate
Arguments: [product#21519502, plant#21519503, orderDateTime#21519504, productPlant#21519514, outboundUnit#21519531, stockDatetime#21519754, stockBatchQuantities#21519755, stockBatchShelfLifeEndDatetimes#21519756], [product#21519502, plant#21519503, orderDateTime#21519504, productPlant#21519514, outboundUnit#21519531, stockDatetime#21519754, stockBatchQuantities#21519755, stockBatchShelfLifeEndDatetimes#21519756, collect_list(rawDemands#21518409, 0, 0) AS rawDemands#21518410]
(343) SubqueryAlias
Arguments: wl
(344) LogicalRelation
Arguments: parquet, [systemId#21519452, internalUUID#21519453, id#21519454, displayId#21519455, name#21519456, category#21519457, companyCode#21519458, address#21519459, mainDistributionChain#21519460, mainPurchasingOrganization#21519461, validPurchasingOrganizations#21519462, productGroup#21519463], false
(345) Repartition
Arguments: 25, true
(346) Project
Arguments: [systemId#21519452, internalUUID#21519453, id#21519454, displayId#21519455, name#21519456, category#21519457, companyCode#21519458, address#21519459, mainDistributionChain#21519460, mainPurchasingOrganization#21519461, validPurchasingOrganizations#21519462, productGroup#21519463, address#21519459.timezone.code AS timezonecode#21519465]
(347) Join
Arguments: LeftOuter, (plant#21519503 <=> internalUUID#21519453)
(348) Project
Arguments: [product#21519502, plant#21519503, orderDateTime#21519504, productPlant#21519514, outboundUnit#21519531, stockDatetime#21519754, stockBatchQuantities#21519755, stockBatchShelfLifeEndDatetimes#21519756, rawDemands#21518410, systemId#21519452, internalUUID#21519453, id#21519454, displayId#21519455, name#21519456, category#21519457, companyCode#21519458, address#21519459, mainDistributionChain#21519460, mainPurchasingOrganization#21519461, validPurchasingOrganizations#21519462, productGroup#21519463, CASE WHEN isnotnull(timezonecode#21519465) THEN timezonecode#21519465 ELSE UTC END AS timezonecode#21519467]
(349) Project
Arguments: [product#21519502, plant#21519503, orderDateTime#21519504, productPlant#21519514, outboundUnit#21519531, stockDatetime#21519754, stockBatchQuantities#21519755, stockBatchShelfLifeEndDatetimes#21519756, rawDemands#21518410, timezonecode#21519467]
(350) DeserializeToObject
Arguments: createexternalrow(invoke(product#21519502.toString()), invoke(plant#21519503.toString()), static_invoke(DateTimeUtils.toJavaTimestamp(orderDateTime#21519504)), if (isnull(productPlant#21519514)) null else createexternalrow(invoke(productPlant#21519514.systemId.toString()), invoke(productPlant#21519514.internalUUID.toString()), if (isnull(productPlant#21519514.plant)) null else createexternalrow(invoke(productPlant#21519514.plant.internalRefUUID.toString()), invoke(productPlant#21519514.plant.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), if (isnull(productPlant#21519514.product)) null else createexternalrow(invoke(productPlant#21519514.product.internalRefUUID.toString()), invoke(productPlant#21519514.product.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(DateTimeUtils.toJavaDate(productPlant#21519514.blockedForReplenishmentStartingFrom)), if (isnull(productPlant#21519514.productionAspect)) null else createexternalrow(if (isnull(productPlant#21519514.productionAspect.productMovementPlants)) null else createexternalrow(if (isnull(productPlant#21519514.productionAspect.productMovementPlants.unitOfIssue)) null else createexternalrow(invoke(productPlant#21519514.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID.toString()), invoke(productPlant#21519514.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#21519514.productionAspect.productPlanningPlants)) null else createexternalrow(if (isnull(productPlant#21519514.productionAspect.productPlanningPlants.mrpType)) null else createexternalrow(invoke(productPlant#21519514.productionAspect.productPlanningPlants.mrpType.internalRefUUID.toString()), invoke(productPlant#21519514.productionAspect.productPlanningPlants.mrpType.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#21519514.productionAspect.productPlanningPlants.abcIndicator)) null else createexternalrow(invoke(productPlant#21519514.productionAspect.productPlanningPlants.abcIndicator.internalRefUUID.toString()), invoke(productPlant#21519514.productionAspect.productPlanningPlants.abcIndicator.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#21519514.productionAspect.productPlanningPlants.mrpController)) null else createexternalrow(invoke(productPlant#21519514.productionAspect.productPlanningPlants.mrpController.internalRefUUID.toString()), invoke(productPlant#21519514.productionAspect.productPlanningPlants.mrpController.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(java.lang.Double.valueOf(productPlant#21519514.productionAspect.productPlanningPlants.minimumLotSize)), if (isnull(productPlant#21519514.productionAspect.productPlanningPlants.logisticalRoundingProfile)) null else createexternalrow(invoke(productPlant#21519514.productionAspect.productPlanningPlants.logisticalRoundingProfile.internalRefUUID.toString()), invoke(productPlant#21519514.productionAspect.productPlanningPlants.logisticalRoundingProfile.logisticalRoundingProfile.toString()), StructField(internalRefUUID,StringType,true), StructField(logisticalRoundingProfile,StringType,true)), if (isnull(productPlant#21519514.productionAspect.productPlanningPlants.sourceOfSupplyCategory)) null else createexternalrow(invoke(productPlant#21519514.productionAspect.productPlanningPlants.sourceOfSupplyCategory.internalRefUUID.toString()), invoke(productPlant#21519514.productionAspect.productPlanningPlants.sourceOfSupplyCategory.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true), StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true), StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(minimumLotSize,DoubleType,true), StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true), StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true), StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)), if (isnull(productPlant#21519514.salesPlant)) null else createexternalrow(if (isnull(productPlant#21519514.salesPlant.loadingGroup)) null else createexternalrow(invoke(productPlant#21519514.salesPlant.loadingGroup.internalRefUUID.toString()), invoke(productPlant#21519514.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, 2680280), if (isnull(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 2680280))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 2680280).validFrom)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 2680280).validTo)), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 2680280).isListed)), StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true)), productPlant#21519514.listing, Some(class scala.collection.mutable.ArraySeq)), StructField(systemId,StringType,true), StructField(internalUUID,StringType,true), StructField(plant,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(product,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(blockedForReplenishmentStartingFrom,DateType,true), StructField(productionAspect,StructType(StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)),true), StructField(salesPlant,StructType(StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true), StructField(listing,ArrayType(StructType(StructField(validFrom,TimestampType,true),StructField(validTo,TimestampType,true),StructField(isListed,BooleanType,true)),true),true)), static_invoke(java.lang.Double.valueOf(outboundUnit#21519531)), static_invoke(DateTimeUtils.toJavaTimestamp(stockDatetime#21519754)), mapobjects(lambdavariable(MapObject, DoubleType, true, 2680281), static_invoke(java.lang.Double.valueOf(cast(lambdavariable(MapObject, DoubleType, true, 2680281) as double))), stockBatchQuantities#21519755, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, false, 2680282), assertnotnull(static_invoke(DateTimeUtils.toJavaTimestamp(cast(lambdavariable(MapObject, TimestampType, false, 2680282) as timestamp)))), stockBatchShelfLifeEndDatetimes#21519756, 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, 2680283), 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, 2680283))) 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, 2680283).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, 2680283).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, 2680283).considerVariance)), mapobjects(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 2680284), if (isnull(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 2680284))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 2680284).demandStartDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 2680284).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 2680284).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, 2680283).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, 2680283).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, 2680283).demandPointInTimeEnd)), mapobjects(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 2680285), if (isnull(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 2680285))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 2680285).demandDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 2680285).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 2680285).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, 2680283).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#21518410, Some(class scala.collection.mutable.ArraySeq)), invoke(timezonecode#21519467.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),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)),true),StructField(salesPlant,StructType(StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(listing,ArrayType(StructType(StructField(validFrom,TimestampType,true),StructField(validTo,TimestampType,true),StructField(isListed,BooleanType,true)),true),true)),true), StructField(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#21519488: org.apache.spark.sql.Row
(351) MapElements
Arguments: com.sap.s4hana.eureka.business.crporderquantitykpiservice.core.business.datasnapshot.DemandTransformatorImpl$$Lambda/0x00000008021e99e0@10fe4db7, interface org.apache.spark.sql.Row, [StructField(product,StringType,true), StructField(plant,StringType,true), StructField(orderDateTime,TimestampType,true), StructField(productPlant,StructType(StructField(systemId,StringType,true),StructField(internalUUID,StringType,true),StructField(plant,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(product,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(blockedForReplenishmentStartingFrom,DateType,true),StructField(productionAspect,StructType(StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)),true),StructField(salesPlant,StructType(StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(listing,ArrayType(StructType(StructField(validFrom,TimestampType,true),StructField(validTo,TimestampType,true),StructField(isListed,BooleanType,true)),true),true)),true), StructField(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#21519493: 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#21519498, 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#21519499, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(2))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680270), assertnotnull(if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680271), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680271), DoubleType, ObjectType(class java.lang.Double)).doubleValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680272), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680272), DoubleType, ObjectType(class java.lang.Double)).doubleValue()), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680273), assertnotnull(static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680273), TimestampType, ObjectType(class java.sql.Timestamp))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680274), assertnotnull(static_invoke(UTF8String.fromString(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680274), StringType, ObjectType(class java.lang.String))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680275), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680275), IntegerType, ObjectType(class java.lang.Integer)).intValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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#21519500, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(3))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680276), assertnotnull(if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680277), assertnotnull(static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680277), TimestampType, ObjectType(class java.sql.Timestamp))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680278), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680278), DoubleType, ObjectType(class java.lang.Double)).doubleValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680279), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680279), DoubleType, ObjectType(class java.lang.Double)).doubleValue()), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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#21519501]
(353) Join
Arguments: LeftOuter, ((plant#21519499 <=> plant#21517976) AND (product#21519498 <=> product#21517975))
(354) Project
Arguments: [product#21517975, plant#21517976, orderDateTime#21517977, productPlant#21517989, outboundUnit#21518060, stockDatetime#21518396, stockBatchQuantities#21518397, stockBatchShelfLifeEndDatetimes#21518398, plant#21519499, dayBucketDemands#21519500, pointInTimeDemands#21519501]
(355) Project
Arguments: [product#21517975, plant#21517976, orderDateTime#21517977, productPlant#21517989, outboundUnit#21518060, stockDatetime#21518396, stockBatchQuantities#21518397, stockBatchShelfLifeEndDatetimes#21518398, dayBucketDemands#21519500, pointInTimeDemands#21519501]
(356) LogicalRelation
Arguments: parquet, [product#21522091, plant#21522092, orderDateTime#21522093, planningStartDateTime#21522094], false
(357) RepartitionByExpression
Arguments: [product#21522091, plant#21522092], 25
(358) Project
Arguments: [product#21522091, plant#21522092, orderDateTime#21522093]
(359) LogicalRelation
Arguments: parquet, [systemId#21522095, internalUUID#21522096, plant#21522097, product#21522098, blockedForReplenishmentStartingFrom#21522099, productionAspect#21522100, salesPlant#21522101, listing#21522102], false
(360) Repartition
Arguments: 25, true
(361) Project
Arguments: [systemId#21522095, internalUUID#21522096, plant#21522097, product#21522098, blockedForReplenishmentStartingFrom#21522099, productionAspect#21522100, salesPlant#21522101, listing#21522102, struct(systemId, systemId#21522095, internalUUID, internalUUID#21522096, plant, plant#21522097, product, product#21522098, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#21522099, productionAspect, productionAspect#21522100, salesPlant, salesPlant#21522101, listing, listing#21522102) AS productPlant#21522103]
(362) Project
Arguments: [productPlant#21522103]
(363) Join
Arguments: LeftOuter, ((product#21522091 <=> productPlant#21522103.product.internalRefUUID) AND (plant#21522092 <=> productPlant#21522103.plant.internalRefUUID))
(364) Project
Arguments: [product#21522091, plant#21522092, orderDateTime#21522093, productPlant#21522103]
(365) LogicalRelation
Arguments: parquet, [systemId#21522104, internalUUID#21522105, id#21522106, displayId#21522107, name#21522108, baseUnitOfMeasure#21522109, unitOfMeasures#21522110, unitOfMeasureConversions#21522111, productionAspect#21522112, salesAspect#21522113, procurementAspect#21522114, productGroup#21522115], false
(366) Repartition
Arguments: 25, true
(367) Join
Arguments: LeftOuter, (product#21522091 = internalUUID#21522105)
(368) Project
Arguments: [product#21522091, plant#21522092, orderDateTime#21522093, productPlant#21522103, systemId#21522104, internalUUID#21522105, id#21522106, displayId#21522107, name#21522108, baseUnitOfMeasure#21522109, unitOfMeasures#21522110, unitOfMeasureConversions#21522111, productionAspect#21522112, salesAspect#21522113, procurementAspect#21522114, productGroup#21522115, filter(unitOfMeasureConversions#21522111, lambdafunction((((lambda u#21518048.measurementUnit1.code = productPlant#21522103.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#21518048.measurementUnit1.internalRefUUID = productPlant#21522103.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#21518048.measurementUnit2.code = baseUnitOfMeasure#21522109.code) AND (lambda u#21518048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#21522109.internalRefUUID))), lambda u#21518048, false)) AS filteredUnitOfMeasureConversions#21522116]
(369) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21522116.quantityNumerator), true, [quantityNumerator#21522117]
(370) Project
Arguments: [product#21522091, plant#21522092, orderDateTime#21522093, productPlant#21522103, systemId#21522104, internalUUID#21522105, id#21522106, displayId#21522107, name#21522108, baseUnitOfMeasure#21522109, unitOfMeasures#21522110, unitOfMeasureConversions#21522111, productionAspect#21522112, salesAspect#21522113, procurementAspect#21522114, productGroup#21522115, filteredUnitOfMeasureConversions#21522116, quantityNumerator#21522117]
(371) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21522116.quantityDenominator), true, [quantityDenominator#21522118]
(372) Project
Arguments: [product#21522091, plant#21522092, orderDateTime#21522093, productPlant#21522103, systemId#21522104, internalUUID#21522105, id#21522106, displayId#21522107, name#21522108, baseUnitOfMeasure#21522109, unitOfMeasures#21522110, unitOfMeasureConversions#21522111, productionAspect#21522112, salesAspect#21522113, procurementAspect#21522114, productGroup#21522115, filteredUnitOfMeasureConversions#21522116, quantityNumerator#21522117, quantityDenominator#21522118]
(373) Project
Arguments: [product#21522091, plant#21522092, orderDateTime#21522093, productPlant#21522103, systemId#21522104, internalUUID#21522105, id#21522106, displayId#21522107, name#21522108, baseUnitOfMeasure#21522109, unitOfMeasures#21522110, unitOfMeasureConversions#21522111, productionAspect#21522112, salesAspect#21522113, procurementAspect#21522114, productGroup#21522115, filteredUnitOfMeasureConversions#21522116, quantityNumerator#21522117, quantityDenominator#21522118, (cast(quantityNumerator#21522117 as double) / cast(quantityDenominator#21522118 as double)) AS outboundUnit#21522119]
(374) Project
Arguments: [product#21522091, plant#21522092, orderDateTime#21522093, productPlant#21522103, systemId#21522104, internalUUID#21522105, id#21522106, displayId#21522107, name#21522108, baseUnitOfMeasure#21522109, unitOfMeasures#21522110, unitOfMeasureConversions#21522111, productionAspect#21522112, salesAspect#21522113, procurementAspect#21522114, productGroup#21522115, filteredUnitOfMeasureConversions#21522116, quantityNumerator#21522117, quantityDenominator#21522118, CASE WHEN (isnull(outboundUnit#21522119) OR (outboundUnit#21522119 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#21522119 END AS outboundUnit#21522120]
(375) Project
Arguments: [product#21522091, plant#21522092, orderDateTime#21522093, productPlant#21522103, outboundUnit#21522120]
(376) LogicalRelation
Arguments: parquet, [systemId#21522121, internalUUID#21522122, product#21522123, plant#21522124, calculationDateTime#21522125, stockQuantities#21522126], false
(377) Repartition
Arguments: 25, true
(378) LogicalRelation
Arguments: parquet, [marketUnit#21522127, description#21522128, articleHierarchy#21522129, defaultCurrency#21522130, responsibilities#21522131, replenishmentTypes#21522132, distributionCenters#21522133, assignedArticleHierarchyNodes#21522134, minOrderQtySetting#21522135, listingCheck#21522136, odsSelection#21522137, demandProfiles#21522138, constraintProfiles#21522139, optimizationProfiles#21522140, orderGroupSplitProfiles#21522141, supplierMinimumProfiles#21522142, multipleRestrictionProfiles#21522143, preferredUomSource#21522144, handlingOfUnfulfilledDemands#21522145, negligibleQuantitiesThreshold#21522146, eventtype#21522147, minOrderQtySettingInternal#21522148], false
(379) Repartition
Arguments: 25, true
(380) Filter
Arguments: (marketUnit#21522127 <=> SS_Test_1)
(381) Project
Arguments: [marketUnit#21522127, description#21522128, articleHierarchy#21522129, defaultCurrency#21522130, responsibilities#21522131, replenishmentTypes#21522132, distributionCenters#21522133, assignedArticleHierarchyNodes#21522134, minOrderQtySetting#21522135, listingCheck#21522136, odsSelection#21522137, demandProfiles#21522138, constraintProfiles#21522139, optimizationProfiles#21522140, orderGroupSplitProfiles#21522141, supplierMinimumProfiles#21522142, multipleRestrictionProfiles#21522143, preferredUomSource#21522144, handlingOfUnfulfilledDemands#21522145, negligibleQuantitiesThreshold#21522146, eventtype#21522147, minOrderQtySettingInternal#21522148]
(382) Project
Arguments: [distributionCenters#21522133]
(383) Generate
Arguments: explode(distributionCenters#21522133), false, [distributionCenters#21522149]
(384) Project
Arguments: [distributionCenters#21522149]
(385) Generate
Arguments: explode(distributionCenters#21522149.storageLocations), false, [storageLocations#21522150]
(386) Project
Arguments: [distributionCenters#21522149.id AS plantId#21522151, distributionCenters#21522149.internalRefUUID AS plantUuid#21522152, storageLocations#21522150]
(387) Project
Arguments: [plantId#21522151, plantUuid#21522152, storageLocations#21522150.id AS storageLocId#21522153, storageLocations#21522150.internalRefUUID AS storageLocUuid#21522154]
(388) LogicalRelation
Arguments: parquet, [product#21522155, plant#21522156, orderDateTime#21522157, planningStartDateTime#21522158], false
(389) RepartitionByExpression
Arguments: [product#21522155, plant#21522156], 25
(390) Project
Arguments: [product#21522155, plant#21522156, orderDateTime#21522157]
(391) LogicalRelation
Arguments: parquet, [systemId#21522159, internalUUID#21522160, plant#21522161, product#21522162, blockedForReplenishmentStartingFrom#21522163, productionAspect#21522164, salesPlant#21522165, listing#21522166], false
(392) Repartition
Arguments: 25, true
(393) Project
Arguments: [systemId#21522159, internalUUID#21522160, plant#21522161, product#21522162, blockedForReplenishmentStartingFrom#21522163, productionAspect#21522164, salesPlant#21522165, listing#21522166, struct(systemId, systemId#21522159, internalUUID, internalUUID#21522160, plant, plant#21522161, product, product#21522162, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#21522163, productionAspect, productionAspect#21522164, salesPlant, salesPlant#21522165, listing, listing#21522166) AS productPlant#21522167]
(394) Project
Arguments: [productPlant#21522167]
(395) Join
Arguments: LeftOuter, ((product#21522155 <=> productPlant#21522167.product.internalRefUUID) AND (plant#21522156 <=> productPlant#21522167.plant.internalRefUUID))
(396) Project
Arguments: [product#21522155, plant#21522156, orderDateTime#21522157, productPlant#21522167]
(397) LogicalRelation
Arguments: parquet, [systemId#21522168, internalUUID#21522169, id#21522170, displayId#21522171, name#21522172, baseUnitOfMeasure#21522173, unitOfMeasures#21522174, unitOfMeasureConversions#21522175, productionAspect#21522176, salesAspect#21522177, procurementAspect#21522178, productGroup#21522179], false
(398) Repartition
Arguments: 25, true
(399) Join
Arguments: LeftOuter, (product#21522155 = internalUUID#21522169)
(400) Project
Arguments: [product#21522155, plant#21522156, orderDateTime#21522157, productPlant#21522167, systemId#21522168, internalUUID#21522169, id#21522170, displayId#21522171, name#21522172, baseUnitOfMeasure#21522173, unitOfMeasures#21522174, unitOfMeasureConversions#21522175, productionAspect#21522176, salesAspect#21522177, procurementAspect#21522178, productGroup#21522179, filter(unitOfMeasureConversions#21522175, lambdafunction((((lambda u#21518048.measurementUnit1.code = productPlant#21522167.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#21518048.measurementUnit1.internalRefUUID = productPlant#21522167.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#21518048.measurementUnit2.code = baseUnitOfMeasure#21522173.code) AND (lambda u#21518048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#21522173.internalRefUUID))), lambda u#21518048, false)) AS filteredUnitOfMeasureConversions#21522180]
(401) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21522180.quantityNumerator), true, [quantityNumerator#21522181]
(402) Project
Arguments: [product#21522155, plant#21522156, orderDateTime#21522157, productPlant#21522167, systemId#21522168, internalUUID#21522169, id#21522170, displayId#21522171, name#21522172, baseUnitOfMeasure#21522173, unitOfMeasures#21522174, unitOfMeasureConversions#21522175, productionAspect#21522176, salesAspect#21522177, procurementAspect#21522178, productGroup#21522179, filteredUnitOfMeasureConversions#21522180, quantityNumerator#21522181]
(403) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21522180.quantityDenominator), true, [quantityDenominator#21522182]
(404) Project
Arguments: [product#21522155, plant#21522156, orderDateTime#21522157, productPlant#21522167, systemId#21522168, internalUUID#21522169, id#21522170, displayId#21522171, name#21522172, baseUnitOfMeasure#21522173, unitOfMeasures#21522174, unitOfMeasureConversions#21522175, productionAspect#21522176, salesAspect#21522177, procurementAspect#21522178, productGroup#21522179, filteredUnitOfMeasureConversions#21522180, quantityNumerator#21522181, quantityDenominator#21522182]
(405) Project
Arguments: [product#21522155, plant#21522156, orderDateTime#21522157, productPlant#21522167, systemId#21522168, internalUUID#21522169, id#21522170, displayId#21522171, name#21522172, baseUnitOfMeasure#21522173, unitOfMeasures#21522174, unitOfMeasureConversions#21522175, productionAspect#21522176, salesAspect#21522177, procurementAspect#21522178, productGroup#21522179, filteredUnitOfMeasureConversions#21522180, quantityNumerator#21522181, quantityDenominator#21522182, (cast(quantityNumerator#21522181 as double) / cast(quantityDenominator#21522182 as double)) AS outboundUnit#21522183]
(406) Project
Arguments: [product#21522155, plant#21522156, orderDateTime#21522157, productPlant#21522167, systemId#21522168, internalUUID#21522169, id#21522170, displayId#21522171, name#21522172, baseUnitOfMeasure#21522173, unitOfMeasures#21522174, unitOfMeasureConversions#21522175, productionAspect#21522176, salesAspect#21522177, procurementAspect#21522178, productGroup#21522179, filteredUnitOfMeasureConversions#21522180, quantityNumerator#21522181, quantityDenominator#21522182, CASE WHEN (isnull(outboundUnit#21522183) OR (outboundUnit#21522183 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#21522183 END AS outboundUnit#21522184]
(407) Project
Arguments: [product#21522155, plant#21522156, orderDateTime#21522157, productPlant#21522167, outboundUnit#21522184]
(408) Project
Arguments: [plant#21522156]
(409) Deduplicate
Arguments: [plant#21522156]
(410) Join
Arguments: Inner, (plantUuid#21522152 = plant#21522156)
(411) Project
Arguments: [plantId#21522151, plantUuid#21522152, storageLocId#21522153, storageLocUuid#21522154]
(412) Join
Arguments: Inner, (plant#21522124.internalRefUUID <=> plantUuid#21522152)
(413) Generate
Arguments: explode(filter(stockQuantities#21522126, lambdafunction(((lambda x#21518157.storageLocation.internalRefUuid = storageLocUuid#21522154) AND (lambda x#21518157.storageLocation.Id = storageLocId#21522153)), lambda x#21518157, false))), false, [stockQuantity#21522185]
(414) Project
Arguments: [systemId#21522121, internalUUID#21522122, product#21522123, plant#21522124, calculationDateTime#21522125, stockQuantities#21522126, plantId#21522151, plantUuid#21522152, storageLocId#21522153, storageLocUuid#21522154, stockQuantity#21522185]
(415) Aggregate
Arguments: [plantUuid#21522152, internalUUID#21522122, plant#21522124, product#21522123, systemId#21522121], [plantUuid#21522152, internalUUID#21522122, plant#21522124, product#21522123, systemId#21522121, first(calculationDateTime#21522125, false) AS calculationDateTime#21522186, collect_list(stockQuantity#21522185, 0, 0) AS stockQuantities#21522187]
(416) Project
Arguments: [systemId#21522121, internalUUID#21522122, product#21522123, plant#21522124, calculationDateTime#21522186, stockQuantities#21522187]
(417) Generate
Arguments: explode(stockQuantities#21522187), false, [stockQuantity#21522188]
(418) Project
Arguments: [systemId#21522121, internalUUID#21522122, product#21522123, plant#21522124, calculationDateTime#21522186, stockQuantities#21522187, stockQuantity#21522188]
(419) Project
Arguments: [plant#21522124.id AS plant#21522189, plant#21522124.internalRefUUID AS plantUuid#21522190, product#21522123.id AS product#21522191, product#21522123.internalRefUUID AS productUuid#21522192, calculationDateTime#21522186, stockQuantity#21522188.storagelocation.id AS storageLocId#21522193, stockQuantity#21522188.storagelocation.internalRefUUID AS storageLocUuid#21522194, stockQuantity#21522188.quantity.measure AS quantity#21522195, stockQuantity#21522188.specialStockIndicator.code AS specialStockIndicator#21522196, stockQuantity#21522188.stockType.code AS stockType#21522197]
(420) Filter
Arguments: ((specialStockIndicator#21522196 = ) AND (stockType#21522197 = 01))
(421) LogicalRelation
Arguments: parquet, [product#21522198, plant#21522199, orderDateTime#21522200, planningStartDateTime#21522201], false
(422) RepartitionByExpression
Arguments: [product#21522198, plant#21522199], 25
(423) Project
Arguments: [product#21522198, plant#21522199, orderDateTime#21522200]
(424) LogicalRelation
Arguments: parquet, [systemId#21522202, internalUUID#21522203, plant#21522204, product#21522205, blockedForReplenishmentStartingFrom#21522206, productionAspect#21522207, salesPlant#21522208, listing#21522209], false
(425) Repartition
Arguments: 25, true
(426) Project
Arguments: [systemId#21522202, internalUUID#21522203, plant#21522204, product#21522205, blockedForReplenishmentStartingFrom#21522206, productionAspect#21522207, salesPlant#21522208, listing#21522209, struct(systemId, systemId#21522202, internalUUID, internalUUID#21522203, plant, plant#21522204, product, product#21522205, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#21522206, productionAspect, productionAspect#21522207, salesPlant, salesPlant#21522208, listing, listing#21522209) AS productPlant#21522210]
(427) Project
Arguments: [productPlant#21522210]
(428) Join
Arguments: LeftOuter, ((product#21522198 <=> productPlant#21522210.product.internalRefUUID) AND (plant#21522199 <=> productPlant#21522210.plant.internalRefUUID))
(429) Project
Arguments: [product#21522198, plant#21522199, orderDateTime#21522200, productPlant#21522210]
(430) LogicalRelation
Arguments: parquet, [systemId#21522211, internalUUID#21522212, id#21522213, displayId#21522214, name#21522215, baseUnitOfMeasure#21522216, unitOfMeasures#21522217, unitOfMeasureConversions#21522218, productionAspect#21522219, salesAspect#21522220, procurementAspect#21522221, productGroup#21522222], false
(431) Repartition
Arguments: 25, true
(432) Join
Arguments: LeftOuter, (product#21522198 = internalUUID#21522212)
(433) Project
Arguments: [product#21522198, plant#21522199, orderDateTime#21522200, productPlant#21522210, systemId#21522211, internalUUID#21522212, id#21522213, displayId#21522214, name#21522215, baseUnitOfMeasure#21522216, unitOfMeasures#21522217, unitOfMeasureConversions#21522218, productionAspect#21522219, salesAspect#21522220, procurementAspect#21522221, productGroup#21522222, filter(unitOfMeasureConversions#21522218, lambdafunction((((lambda u#21518048.measurementUnit1.code = productPlant#21522210.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#21518048.measurementUnit1.internalRefUUID = productPlant#21522210.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#21518048.measurementUnit2.code = baseUnitOfMeasure#21522216.code) AND (lambda u#21518048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#21522216.internalRefUUID))), lambda u#21518048, false)) AS filteredUnitOfMeasureConversions#21522223]
(434) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21522223.quantityNumerator), true, [quantityNumerator#21522224]
(435) Project
Arguments: [product#21522198, plant#21522199, orderDateTime#21522200, productPlant#21522210, systemId#21522211, internalUUID#21522212, id#21522213, displayId#21522214, name#21522215, baseUnitOfMeasure#21522216, unitOfMeasures#21522217, unitOfMeasureConversions#21522218, productionAspect#21522219, salesAspect#21522220, procurementAspect#21522221, productGroup#21522222, filteredUnitOfMeasureConversions#21522223, quantityNumerator#21522224]
(436) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21522223.quantityDenominator), true, [quantityDenominator#21522225]
(437) Project
Arguments: [product#21522198, plant#21522199, orderDateTime#21522200, productPlant#21522210, systemId#21522211, internalUUID#21522212, id#21522213, displayId#21522214, name#21522215, baseUnitOfMeasure#21522216, unitOfMeasures#21522217, unitOfMeasureConversions#21522218, productionAspect#21522219, salesAspect#21522220, procurementAspect#21522221, productGroup#21522222, filteredUnitOfMeasureConversions#21522223, quantityNumerator#21522224, quantityDenominator#21522225]
(438) Project
Arguments: [product#21522198, plant#21522199, orderDateTime#21522200, productPlant#21522210, systemId#21522211, internalUUID#21522212, id#21522213, displayId#21522214, name#21522215, baseUnitOfMeasure#21522216, unitOfMeasures#21522217, unitOfMeasureConversions#21522218, productionAspect#21522219, salesAspect#21522220, procurementAspect#21522221, productGroup#21522222, filteredUnitOfMeasureConversions#21522223, quantityNumerator#21522224, quantityDenominator#21522225, (cast(quantityNumerator#21522224 as double) / cast(quantityDenominator#21522225 as double)) AS outboundUnit#21522226]
(439) Project
Arguments: [product#21522198, plant#21522199, orderDateTime#21522200, productPlant#21522210, systemId#21522211, internalUUID#21522212, id#21522213, displayId#21522214, name#21522215, baseUnitOfMeasure#21522216, unitOfMeasures#21522217, unitOfMeasureConversions#21522218, productionAspect#21522219, salesAspect#21522220, procurementAspect#21522221, productGroup#21522222, filteredUnitOfMeasureConversions#21522223, quantityNumerator#21522224, quantityDenominator#21522225, CASE WHEN (isnull(outboundUnit#21522226) OR (outboundUnit#21522226 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#21522226 END AS outboundUnit#21522227]
(440) Project
Arguments: [product#21522198, plant#21522199, orderDateTime#21522200, productPlant#21522210, outboundUnit#21522227]
(441) Join
Arguments: Inner, ((plantUuid#21522190 = plant#21522199) AND (productUuid#21522192 = product#21522198))
(442) Filter
Arguments: (calculationDateTime#21522186 <= orderDateTime#21522200)
(443) Project
Arguments: [plantUuid#21522190 AS plant#21522228, productUuid#21522192 AS product#21522229, storageLocId#21522193, calculationDateTime#21522186, quantity#21522195]
(444) LogicalRelation
Arguments: parquet, [systemId#21522230, internalUUID#21522231, product#21522232, plant#21522233, calculationDateTime#21522234, stockQuantities#21522235], false
(445) Repartition
Arguments: 25, true
(446) LogicalRelation
Arguments: parquet, [marketUnit#21522236, description#21522237, articleHierarchy#21522238, defaultCurrency#21522239, responsibilities#21522240, replenishmentTypes#21522241, distributionCenters#21522242, assignedArticleHierarchyNodes#21522243, minOrderQtySetting#21522244, listingCheck#21522245, odsSelection#21522246, demandProfiles#21522247, constraintProfiles#21522248, optimizationProfiles#21522249, orderGroupSplitProfiles#21522250, supplierMinimumProfiles#21522251, multipleRestrictionProfiles#21522252, preferredUomSource#21522253, handlingOfUnfulfilledDemands#21522254, negligibleQuantitiesThreshold#21522255, eventtype#21522256, minOrderQtySettingInternal#21522257], false
(447) Repartition
Arguments: 25, true
(448) Filter
Arguments: (marketUnit#21522236 <=> SS_Test_1)
(449) Project
Arguments: [marketUnit#21522236, description#21522237, articleHierarchy#21522238, defaultCurrency#21522239, responsibilities#21522240, replenishmentTypes#21522241, distributionCenters#21522242, assignedArticleHierarchyNodes#21522243, minOrderQtySetting#21522244, listingCheck#21522245, odsSelection#21522246, demandProfiles#21522247, constraintProfiles#21522248, optimizationProfiles#21522249, orderGroupSplitProfiles#21522250, supplierMinimumProfiles#21522251, multipleRestrictionProfiles#21522252, preferredUomSource#21522253, handlingOfUnfulfilledDemands#21522254, negligibleQuantitiesThreshold#21522255, eventtype#21522256, minOrderQtySettingInternal#21522257]
(450) Project
Arguments: [distributionCenters#21522242]
(451) Generate
Arguments: explode(distributionCenters#21522242), false, [distributionCenters#21522258]
(452) Project
Arguments: [distributionCenters#21522258]
(453) Generate
Arguments: explode(distributionCenters#21522258.storageLocations), false, [storageLocations#21522259]
(454) Project
Arguments: [distributionCenters#21522258.id AS plantId#21522260, distributionCenters#21522258.internalRefUUID AS plantUuid#21522261, storageLocations#21522259]
(455) Project
Arguments: [plantId#21522260, plantUuid#21522261, storageLocations#21522259.id AS storageLocId#21522262, storageLocations#21522259.internalRefUUID AS storageLocUuid#21522263]
(456) LogicalRelation
Arguments: parquet, [product#21522264, plant#21522265, orderDateTime#21522266, planningStartDateTime#21522267], false
(457) RepartitionByExpression
Arguments: [product#21522264, plant#21522265], 25
(458) Project
Arguments: [product#21522264, plant#21522265, orderDateTime#21522266]
(459) LogicalRelation
Arguments: parquet, [systemId#21522268, internalUUID#21522269, plant#21522270, product#21522271, blockedForReplenishmentStartingFrom#21522272, productionAspect#21522273, salesPlant#21522274, listing#21522275], false
(460) Repartition
Arguments: 25, true
(461) Project
Arguments: [systemId#21522268, internalUUID#21522269, plant#21522270, product#21522271, blockedForReplenishmentStartingFrom#21522272, productionAspect#21522273, salesPlant#21522274, listing#21522275, struct(systemId, systemId#21522268, internalUUID, internalUUID#21522269, plant, plant#21522270, product, product#21522271, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#21522272, productionAspect, productionAspect#21522273, salesPlant, salesPlant#21522274, listing, listing#21522275) AS productPlant#21522276]
(462) Project
Arguments: [productPlant#21522276]
(463) Join
Arguments: LeftOuter, ((product#21522264 <=> productPlant#21522276.product.internalRefUUID) AND (plant#21522265 <=> productPlant#21522276.plant.internalRefUUID))
(464) Project
Arguments: [product#21522264, plant#21522265, orderDateTime#21522266, productPlant#21522276]
(465) LogicalRelation
Arguments: parquet, [systemId#21522277, internalUUID#21522278, id#21522279, displayId#21522280, name#21522281, baseUnitOfMeasure#21522282, unitOfMeasures#21522283, unitOfMeasureConversions#21522284, productionAspect#21522285, salesAspect#21522286, procurementAspect#21522287, productGroup#21522288], false
(466) Repartition
Arguments: 25, true
(467) Join
Arguments: LeftOuter, (product#21522264 = internalUUID#21522278)
(468) Project
Arguments: [product#21522264, plant#21522265, orderDateTime#21522266, productPlant#21522276, systemId#21522277, internalUUID#21522278, id#21522279, displayId#21522280, name#21522281, baseUnitOfMeasure#21522282, unitOfMeasures#21522283, unitOfMeasureConversions#21522284, productionAspect#21522285, salesAspect#21522286, procurementAspect#21522287, productGroup#21522288, filter(unitOfMeasureConversions#21522284, lambdafunction((((lambda u#21518048.measurementUnit1.code = productPlant#21522276.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#21518048.measurementUnit1.internalRefUUID = productPlant#21522276.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#21518048.measurementUnit2.code = baseUnitOfMeasure#21522282.code) AND (lambda u#21518048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#21522282.internalRefUUID))), lambda u#21518048, false)) AS filteredUnitOfMeasureConversions#21522289]
(469) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21522289.quantityNumerator), true, [quantityNumerator#21522290]
(470) Project
Arguments: [product#21522264, plant#21522265, orderDateTime#21522266, productPlant#21522276, systemId#21522277, internalUUID#21522278, id#21522279, displayId#21522280, name#21522281, baseUnitOfMeasure#21522282, unitOfMeasures#21522283, unitOfMeasureConversions#21522284, productionAspect#21522285, salesAspect#21522286, procurementAspect#21522287, productGroup#21522288, filteredUnitOfMeasureConversions#21522289, quantityNumerator#21522290]
(471) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21522289.quantityDenominator), true, [quantityDenominator#21522291]
(472) Project
Arguments: [product#21522264, plant#21522265, orderDateTime#21522266, productPlant#21522276, systemId#21522277, internalUUID#21522278, id#21522279, displayId#21522280, name#21522281, baseUnitOfMeasure#21522282, unitOfMeasures#21522283, unitOfMeasureConversions#21522284, productionAspect#21522285, salesAspect#21522286, procurementAspect#21522287, productGroup#21522288, filteredUnitOfMeasureConversions#21522289, quantityNumerator#21522290, quantityDenominator#21522291]
(473) Project
Arguments: [product#21522264, plant#21522265, orderDateTime#21522266, productPlant#21522276, systemId#21522277, internalUUID#21522278, id#21522279, displayId#21522280, name#21522281, baseUnitOfMeasure#21522282, unitOfMeasures#21522283, unitOfMeasureConversions#21522284, productionAspect#21522285, salesAspect#21522286, procurementAspect#21522287, productGroup#21522288, filteredUnitOfMeasureConversions#21522289, quantityNumerator#21522290, quantityDenominator#21522291, (cast(quantityNumerator#21522290 as double) / cast(quantityDenominator#21522291 as double)) AS outboundUnit#21522292]
(474) Project
Arguments: [product#21522264, plant#21522265, orderDateTime#21522266, productPlant#21522276, systemId#21522277, internalUUID#21522278, id#21522279, displayId#21522280, name#21522281, baseUnitOfMeasure#21522282, unitOfMeasures#21522283, unitOfMeasureConversions#21522284, productionAspect#21522285, salesAspect#21522286, procurementAspect#21522287, productGroup#21522288, filteredUnitOfMeasureConversions#21522289, quantityNumerator#21522290, quantityDenominator#21522291, CASE WHEN (isnull(outboundUnit#21522292) OR (outboundUnit#21522292 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#21522292 END AS outboundUnit#21522293]
(475) Project
Arguments: [product#21522264, plant#21522265, orderDateTime#21522266, productPlant#21522276, outboundUnit#21522293]
(476) Project
Arguments: [plant#21522265]
(477) Deduplicate
Arguments: [plant#21522265]
(478) Join
Arguments: Inner, (plantUuid#21522261 = plant#21522265)
(479) Project
Arguments: [plantId#21522260, plantUuid#21522261, storageLocId#21522262, storageLocUuid#21522263]
(480) Join
Arguments: Inner, (plant#21522233.internalRefUUID <=> plantUuid#21522261)
(481) Generate
Arguments: explode(filter(stockQuantities#21522235, lambdafunction(((lambda x#21518157.storageLocation.internalRefUuid = storageLocUuid#21522263) AND (lambda x#21518157.storageLocation.Id = storageLocId#21522262)), lambda x#21518157, false))), false, [stockQuantity#21522294]
(482) Project
Arguments: [systemId#21522230, internalUUID#21522231, product#21522232, plant#21522233, calculationDateTime#21522234, stockQuantities#21522235, plantId#21522260, plantUuid#21522261, storageLocId#21522262, storageLocUuid#21522263, stockQuantity#21522294]
(483) Aggregate
Arguments: [plantUuid#21522261, internalUUID#21522231, plant#21522233, product#21522232, systemId#21522230], [plantUuid#21522261, internalUUID#21522231, plant#21522233, product#21522232, systemId#21522230, first(calculationDateTime#21522234, false) AS calculationDateTime#21522295, collect_list(stockQuantity#21522294, 0, 0) AS stockQuantities#21522296]
(484) Project
Arguments: [systemId#21522230, internalUUID#21522231, product#21522232, plant#21522233, calculationDateTime#21522295, stockQuantities#21522296]
(485) Generate
Arguments: explode(stockQuantities#21522296), false, [stockQuantity#21522297]
(486) Project
Arguments: [systemId#21522230, internalUUID#21522231, product#21522232, plant#21522233, calculationDateTime#21522295, stockQuantities#21522296, stockQuantity#21522297]
(487) Project
Arguments: [plant#21522233.id AS plant#21522298, plant#21522233.internalRefUUID AS plantUuid#21522299, product#21522232.id AS product#21522300, product#21522232.internalRefUUID AS productUuid#21522301, calculationDateTime#21522295, stockQuantity#21522297.storagelocation.id AS storageLocId#21522302, stockQuantity#21522297.storagelocation.internalRefUUID AS storageLocUuid#21522303, stockQuantity#21522297.quantity.measure AS quantity#21522304, stockQuantity#21522297.specialStockIndicator.code AS specialStockIndicator#21522305, stockQuantity#21522297.stockType.code AS stockType#21522306]
(488) Filter
Arguments: ((specialStockIndicator#21522305 = ) AND (stockType#21522306 = 01))
(489) LogicalRelation
Arguments: parquet, [product#21522307, plant#21522308, orderDateTime#21522309, planningStartDateTime#21522310], false
(490) RepartitionByExpression
Arguments: [product#21522307, plant#21522308], 25
(491) Project
Arguments: [product#21522307, plant#21522308, orderDateTime#21522309]
(492) LogicalRelation
Arguments: parquet, [systemId#21522311, internalUUID#21522312, plant#21522313, product#21522314, blockedForReplenishmentStartingFrom#21522315, productionAspect#21522316, salesPlant#21522317, listing#21522318], false
(493) Repartition
Arguments: 25, true
(494) Project
Arguments: [systemId#21522311, internalUUID#21522312, plant#21522313, product#21522314, blockedForReplenishmentStartingFrom#21522315, productionAspect#21522316, salesPlant#21522317, listing#21522318, struct(systemId, systemId#21522311, internalUUID, internalUUID#21522312, plant, plant#21522313, product, product#21522314, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#21522315, productionAspect, productionAspect#21522316, salesPlant, salesPlant#21522317, listing, listing#21522318) AS productPlant#21522319]
(495) Project
Arguments: [productPlant#21522319]
(496) Join
Arguments: LeftOuter, ((product#21522307 <=> productPlant#21522319.product.internalRefUUID) AND (plant#21522308 <=> productPlant#21522319.plant.internalRefUUID))
(497) Project
Arguments: [product#21522307, plant#21522308, orderDateTime#21522309, productPlant#21522319]
(498) LogicalRelation
Arguments: parquet, [systemId#21522320, internalUUID#21522321, id#21522322, displayId#21522323, name#21522324, baseUnitOfMeasure#21522325, unitOfMeasures#21522326, unitOfMeasureConversions#21522327, productionAspect#21522328, salesAspect#21522329, procurementAspect#21522330, productGroup#21522331], false
(499) Repartition
Arguments: 25, true
(500) Join
Arguments: LeftOuter, (product#21522307 = internalUUID#21522321)
(501) Project
Arguments: [product#21522307, plant#21522308, orderDateTime#21522309, productPlant#21522319, systemId#21522320, internalUUID#21522321, id#21522322, displayId#21522323, name#21522324, baseUnitOfMeasure#21522325, unitOfMeasures#21522326, unitOfMeasureConversions#21522327, productionAspect#21522328, salesAspect#21522329, procurementAspect#21522330, productGroup#21522331, filter(unitOfMeasureConversions#21522327, lambdafunction((((lambda u#21518048.measurementUnit1.code = productPlant#21522319.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#21518048.measurementUnit1.internalRefUUID = productPlant#21522319.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#21518048.measurementUnit2.code = baseUnitOfMeasure#21522325.code) AND (lambda u#21518048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#21522325.internalRefUUID))), lambda u#21518048, false)) AS filteredUnitOfMeasureConversions#21522332]
(502) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21522332.quantityNumerator), true, [quantityNumerator#21522333]
(503) Project
Arguments: [product#21522307, plant#21522308, orderDateTime#21522309, productPlant#21522319, systemId#21522320, internalUUID#21522321, id#21522322, displayId#21522323, name#21522324, baseUnitOfMeasure#21522325, unitOfMeasures#21522326, unitOfMeasureConversions#21522327, productionAspect#21522328, salesAspect#21522329, procurementAspect#21522330, productGroup#21522331, filteredUnitOfMeasureConversions#21522332, quantityNumerator#21522333]
(504) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21522332.quantityDenominator), true, [quantityDenominator#21522334]
(505) Project
Arguments: [product#21522307, plant#21522308, orderDateTime#21522309, productPlant#21522319, systemId#21522320, internalUUID#21522321, id#21522322, displayId#21522323, name#21522324, baseUnitOfMeasure#21522325, unitOfMeasures#21522326, unitOfMeasureConversions#21522327, productionAspect#21522328, salesAspect#21522329, procurementAspect#21522330, productGroup#21522331, filteredUnitOfMeasureConversions#21522332, quantityNumerator#21522333, quantityDenominator#21522334]
(506) Project
Arguments: [product#21522307, plant#21522308, orderDateTime#21522309, productPlant#21522319, systemId#21522320, internalUUID#21522321, id#21522322, displayId#21522323, name#21522324, baseUnitOfMeasure#21522325, unitOfMeasures#21522326, unitOfMeasureConversions#21522327, productionAspect#21522328, salesAspect#21522329, procurementAspect#21522330, productGroup#21522331, filteredUnitOfMeasureConversions#21522332, quantityNumerator#21522333, quantityDenominator#21522334, (cast(quantityNumerator#21522333 as double) / cast(quantityDenominator#21522334 as double)) AS outboundUnit#21522335]
(507) Project
Arguments: [product#21522307, plant#21522308, orderDateTime#21522309, productPlant#21522319, systemId#21522320, internalUUID#21522321, id#21522322, displayId#21522323, name#21522324, baseUnitOfMeasure#21522325, unitOfMeasures#21522326, unitOfMeasureConversions#21522327, productionAspect#21522328, salesAspect#21522329, procurementAspect#21522330, productGroup#21522331, filteredUnitOfMeasureConversions#21522332, quantityNumerator#21522333, quantityDenominator#21522334, CASE WHEN (isnull(outboundUnit#21522335) OR (outboundUnit#21522335 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#21522335 END AS outboundUnit#21522336]
(508) Project
Arguments: [product#21522307, plant#21522308, orderDateTime#21522309, productPlant#21522319, outboundUnit#21522336]
(509) Join
Arguments: Inner, ((plantUuid#21522299 = plant#21522308) AND (productUuid#21522301 = product#21522307))
(510) Filter
Arguments: (calculationDateTime#21522295 <= orderDateTime#21522309)
(511) Project
Arguments: [plantUuid#21522299 AS plant#21522337, productUuid#21522301 AS product#21522338, storageLocId#21522302, calculationDateTime#21522295, quantity#21522304]
(512) Aggregate
Arguments: [plant#21522337, product#21522338, storageLocId#21522302], [plant#21522337, product#21522338, storageLocId#21522302, max(calculationDateTime#21522295) AS max_calc_datetime#21522339]
(513) Join
Arguments: Inner, ((((plant#21522228 <=> plant#21522337) AND (product#21522229 <=> product#21522338)) AND (storageLocId#21522193 <=> storageLocId#21522302)) AND (calculationDateTime#21522186 <=> max_calc_datetime#21522339))
(514) Project
Arguments: [plant#21522228, product#21522229, storageLocId#21522193, calculationDateTime#21522186, quantity#21522195]
(515) Aggregate
Arguments: [product#21522229, plant#21522228], [product#21522229, plant#21522228, sum(quantity#21522195) AS quantitySum#21522340, min(calculationDateTime#21522186) AS minCalculationDateTime#21522341]
(516) Project
Arguments: [product#21522229, plant#21522228, quantitySum#21522340, minCalculationDateTime#21522341, round(quantitySum#21522340, 0) AS roundedQuantitySum#21522342]
(517) Join
Arguments: LeftOuter, ((plant#21522092 = plant#21522228) AND (product#21522091 = product#21522229))
(518) Project
Arguments: [product#21522091, plant#21522092, orderDateTime#21522093, productPlant#21522103, outboundUnit#21522120, roundedQuantitySum#21522342, minCalculationDateTime#21522341]
(519) Project
Arguments: [product#21522091, plant#21522092, orderDateTime#21522093, productPlant#21522103, outboundUnit#21522120, roundedQuantitySum#21522342, minCalculationDateTime#21522341, CASE WHEN isnotnull(minCalculationDateTime#21522341) THEN minCalculationDateTime#21522341 ELSE orderDateTime#21522093 END AS stockDatetime#21522343]
(520) Project
Arguments: [product#21522091, plant#21522092, orderDateTime#21522093, productPlant#21522103, outboundUnit#21522120, roundedQuantitySum#21522342, minCalculationDateTime#21522341, stockDatetime#21522343, CASE WHEN isnotnull(roundedQuantitySum#21522342) THEN array(roundedQuantitySum#21522342) ELSE array(0.0) END AS stockBatchQuantities#21522344]
(521) Project
Arguments: [product#21522091, plant#21522092, orderDateTime#21522093, productPlant#21522103, outboundUnit#21522120, roundedQuantitySum#21522342, minCalculationDateTime#21522341, stockDatetime#21522343, stockBatchQuantities#21522344, array(2199-01-01 00:00:00) AS stockBatchShelfLifeEndDatetimes#21522345]
(522) Project
Arguments: [product#21522091, plant#21522092, orderDateTime#21522093, productPlant#21522103, outboundUnit#21522120, roundedQuantitySum#21522342, stockDatetime#21522343, stockBatchQuantities#21522344, stockBatchShelfLifeEndDatetimes#21522345]
(523) Project
Arguments: [product#21522091, plant#21522092, orderDateTime#21522093, productPlant#21522103, outboundUnit#21522120, stockDatetime#21522343, stockBatchQuantities#21522344, stockBatchShelfLifeEndDatetimes#21522345]
(524) LogicalRelation
Arguments: parquet, [product#21522346, plant#21522347, orderDateTime#21522348, planningStartDateTime#21522349], false
(525) RepartitionByExpression
Arguments: [product#21522346, plant#21522347], 25
(526) Project
Arguments: [product#21522346, plant#21522347, orderDateTime#21522348]
(527) LogicalRelation
Arguments: parquet, [systemId#21522350, internalUUID#21522351, plant#21522352, product#21522353, blockedForReplenishmentStartingFrom#21522354, productionAspect#21522355, salesPlant#21522356, listing#21522357], false
(528) Repartition
Arguments: 25, true
(529) Project
Arguments: [systemId#21522350, internalUUID#21522351, plant#21522352, product#21522353, blockedForReplenishmentStartingFrom#21522354, productionAspect#21522355, salesPlant#21522356, listing#21522357, struct(systemId, systemId#21522350, internalUUID, internalUUID#21522351, plant, plant#21522352, product, product#21522353, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#21522354, productionAspect, productionAspect#21522355, salesPlant, salesPlant#21522356, listing, listing#21522357) AS productPlant#21522358]
(530) Project
Arguments: [productPlant#21522358]
(531) Join
Arguments: LeftOuter, ((product#21522346 <=> productPlant#21522358.product.internalRefUUID) AND (plant#21522347 <=> productPlant#21522358.plant.internalRefUUID))
(532) Project
Arguments: [product#21522346, plant#21522347, orderDateTime#21522348, productPlant#21522358]
(533) LogicalRelation
Arguments: parquet, [systemId#21522359, internalUUID#21522360, id#21522361, displayId#21522362, name#21522363, baseUnitOfMeasure#21522364, unitOfMeasures#21522365, unitOfMeasureConversions#21522366, productionAspect#21522367, salesAspect#21522368, procurementAspect#21522369, productGroup#21522370], false
(534) Repartition
Arguments: 25, true
(535) Join
Arguments: LeftOuter, (product#21522346 = internalUUID#21522360)
(536) Project
Arguments: [product#21522346, plant#21522347, orderDateTime#21522348, productPlant#21522358, systemId#21522359, internalUUID#21522360, id#21522361, displayId#21522362, name#21522363, baseUnitOfMeasure#21522364, unitOfMeasures#21522365, unitOfMeasureConversions#21522366, productionAspect#21522367, salesAspect#21522368, procurementAspect#21522369, productGroup#21522370, filter(unitOfMeasureConversions#21522366, lambdafunction((((lambda u#21518048.measurementUnit1.code = productPlant#21522358.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#21518048.measurementUnit1.internalRefUUID = productPlant#21522358.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#21518048.measurementUnit2.code = baseUnitOfMeasure#21522364.code) AND (lambda u#21518048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#21522364.internalRefUUID))), lambda u#21518048, false)) AS filteredUnitOfMeasureConversions#21522371]
(537) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21522371.quantityNumerator), true, [quantityNumerator#21522372]
(538) Project
Arguments: [product#21522346, plant#21522347, orderDateTime#21522348, productPlant#21522358, systemId#21522359, internalUUID#21522360, id#21522361, displayId#21522362, name#21522363, baseUnitOfMeasure#21522364, unitOfMeasures#21522365, unitOfMeasureConversions#21522366, productionAspect#21522367, salesAspect#21522368, procurementAspect#21522369, productGroup#21522370, filteredUnitOfMeasureConversions#21522371, quantityNumerator#21522372]
(539) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21522371.quantityDenominator), true, [quantityDenominator#21522373]
(540) Project
Arguments: [product#21522346, plant#21522347, orderDateTime#21522348, productPlant#21522358, systemId#21522359, internalUUID#21522360, id#21522361, displayId#21522362, name#21522363, baseUnitOfMeasure#21522364, unitOfMeasures#21522365, unitOfMeasureConversions#21522366, productionAspect#21522367, salesAspect#21522368, procurementAspect#21522369, productGroup#21522370, filteredUnitOfMeasureConversions#21522371, quantityNumerator#21522372, quantityDenominator#21522373]
(541) Project
Arguments: [product#21522346, plant#21522347, orderDateTime#21522348, productPlant#21522358, systemId#21522359, internalUUID#21522360, id#21522361, displayId#21522362, name#21522363, baseUnitOfMeasure#21522364, unitOfMeasures#21522365, unitOfMeasureConversions#21522366, productionAspect#21522367, salesAspect#21522368, procurementAspect#21522369, productGroup#21522370, filteredUnitOfMeasureConversions#21522371, quantityNumerator#21522372, quantityDenominator#21522373, (cast(quantityNumerator#21522372 as double) / cast(quantityDenominator#21522373 as double)) AS outboundUnit#21522374]
(542) Project
Arguments: [product#21522346, plant#21522347, orderDateTime#21522348, productPlant#21522358, systemId#21522359, internalUUID#21522360, id#21522361, displayId#21522362, name#21522363, baseUnitOfMeasure#21522364, unitOfMeasures#21522365, unitOfMeasureConversions#21522366, productionAspect#21522367, salesAspect#21522368, procurementAspect#21522369, productGroup#21522370, filteredUnitOfMeasureConversions#21522371, quantityNumerator#21522372, quantityDenominator#21522373, CASE WHEN (isnull(outboundUnit#21522374) OR (outboundUnit#21522374 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#21522374 END AS outboundUnit#21522375]
(543) Project
Arguments: [product#21522346, plant#21522347, orderDateTime#21522348, productPlant#21522358, outboundUnit#21522375]
(544) LogicalRelation
Arguments: parquet, [systemId#21522376, internalUUID#21522377, product#21522378, plant#21522379, calculationDateTime#21522380, stockQuantities#21522381], false
(545) Repartition
Arguments: 25, true
(546) LogicalRelation
Arguments: parquet, [marketUnit#21522382, description#21522383, articleHierarchy#21522384, defaultCurrency#21522385, responsibilities#21522386, replenishmentTypes#21522387, distributionCenters#21522388, assignedArticleHierarchyNodes#21522389, minOrderQtySetting#21522390, listingCheck#21522391, odsSelection#21522392, demandProfiles#21522393, constraintProfiles#21522394, optimizationProfiles#21522395, orderGroupSplitProfiles#21522396, supplierMinimumProfiles#21522397, multipleRestrictionProfiles#21522398, preferredUomSource#21522399, handlingOfUnfulfilledDemands#21522400, negligibleQuantitiesThreshold#21522401, eventtype#21522402, minOrderQtySettingInternal#21522403], false
(547) Repartition
Arguments: 25, true
(548) Filter
Arguments: (marketUnit#21522382 <=> SS_Test_1)
(549) Project
Arguments: [marketUnit#21522382, description#21522383, articleHierarchy#21522384, defaultCurrency#21522385, responsibilities#21522386, replenishmentTypes#21522387, distributionCenters#21522388, assignedArticleHierarchyNodes#21522389, minOrderQtySetting#21522390, listingCheck#21522391, odsSelection#21522392, demandProfiles#21522393, constraintProfiles#21522394, optimizationProfiles#21522395, orderGroupSplitProfiles#21522396, supplierMinimumProfiles#21522397, multipleRestrictionProfiles#21522398, preferredUomSource#21522399, handlingOfUnfulfilledDemands#21522400, negligibleQuantitiesThreshold#21522401, eventtype#21522402, minOrderQtySettingInternal#21522403]
(550) Project
Arguments: [distributionCenters#21522388]
(551) Generate
Arguments: explode(distributionCenters#21522388), false, [distributionCenters#21522404]
(552) Project
Arguments: [distributionCenters#21522404]
(553) Generate
Arguments: explode(distributionCenters#21522404.storageLocations), false, [storageLocations#21522405]
(554) Project
Arguments: [distributionCenters#21522404.id AS plantId#21522406, distributionCenters#21522404.internalRefUUID AS plantUuid#21522407, storageLocations#21522405]
(555) Project
Arguments: [plantId#21522406, plantUuid#21522407, storageLocations#21522405.id AS storageLocId#21522408, storageLocations#21522405.internalRefUUID AS storageLocUuid#21522409]
(556) LogicalRelation
Arguments: parquet, [product#21522410, plant#21522411, orderDateTime#21522412, planningStartDateTime#21522413], false
(557) RepartitionByExpression
Arguments: [product#21522410, plant#21522411], 25
(558) Project
Arguments: [product#21522410, plant#21522411, orderDateTime#21522412]
(559) LogicalRelation
Arguments: parquet, [systemId#21522414, internalUUID#21522415, plant#21522416, product#21522417, blockedForReplenishmentStartingFrom#21522418, productionAspect#21522419, salesPlant#21522420, listing#21522421], false
(560) Repartition
Arguments: 25, true
(561) Project
Arguments: [systemId#21522414, internalUUID#21522415, plant#21522416, product#21522417, blockedForReplenishmentStartingFrom#21522418, productionAspect#21522419, salesPlant#21522420, listing#21522421, struct(systemId, systemId#21522414, internalUUID, internalUUID#21522415, plant, plant#21522416, product, product#21522417, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#21522418, productionAspect, productionAspect#21522419, salesPlant, salesPlant#21522420, listing, listing#21522421) AS productPlant#21522422]
(562) Project
Arguments: [productPlant#21522422]
(563) Join
Arguments: LeftOuter, ((product#21522410 <=> productPlant#21522422.product.internalRefUUID) AND (plant#21522411 <=> productPlant#21522422.plant.internalRefUUID))
(564) Project
Arguments: [product#21522410, plant#21522411, orderDateTime#21522412, productPlant#21522422]
(565) LogicalRelation
Arguments: parquet, [systemId#21522423, internalUUID#21522424, id#21522425, displayId#21522426, name#21522427, baseUnitOfMeasure#21522428, unitOfMeasures#21522429, unitOfMeasureConversions#21522430, productionAspect#21522431, salesAspect#21522432, procurementAspect#21522433, productGroup#21522434], false
(566) Repartition
Arguments: 25, true
(567) Join
Arguments: LeftOuter, (product#21522410 = internalUUID#21522424)
(568) Project
Arguments: [product#21522410, plant#21522411, orderDateTime#21522412, productPlant#21522422, systemId#21522423, internalUUID#21522424, id#21522425, displayId#21522426, name#21522427, baseUnitOfMeasure#21522428, unitOfMeasures#21522429, unitOfMeasureConversions#21522430, productionAspect#21522431, salesAspect#21522432, procurementAspect#21522433, productGroup#21522434, filter(unitOfMeasureConversions#21522430, lambdafunction((((lambda u#21518048.measurementUnit1.code = productPlant#21522422.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#21518048.measurementUnit1.internalRefUUID = productPlant#21522422.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#21518048.measurementUnit2.code = baseUnitOfMeasure#21522428.code) AND (lambda u#21518048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#21522428.internalRefUUID))), lambda u#21518048, false)) AS filteredUnitOfMeasureConversions#21522435]
(569) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21522435.quantityNumerator), true, [quantityNumerator#21522436]
(570) Project
Arguments: [product#21522410, plant#21522411, orderDateTime#21522412, productPlant#21522422, systemId#21522423, internalUUID#21522424, id#21522425, displayId#21522426, name#21522427, baseUnitOfMeasure#21522428, unitOfMeasures#21522429, unitOfMeasureConversions#21522430, productionAspect#21522431, salesAspect#21522432, procurementAspect#21522433, productGroup#21522434, filteredUnitOfMeasureConversions#21522435, quantityNumerator#21522436]
(571) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21522435.quantityDenominator), true, [quantityDenominator#21522437]
(572) Project
Arguments: [product#21522410, plant#21522411, orderDateTime#21522412, productPlant#21522422, systemId#21522423, internalUUID#21522424, id#21522425, displayId#21522426, name#21522427, baseUnitOfMeasure#21522428, unitOfMeasures#21522429, unitOfMeasureConversions#21522430, productionAspect#21522431, salesAspect#21522432, procurementAspect#21522433, productGroup#21522434, filteredUnitOfMeasureConversions#21522435, quantityNumerator#21522436, quantityDenominator#21522437]
(573) Project
Arguments: [product#21522410, plant#21522411, orderDateTime#21522412, productPlant#21522422, systemId#21522423, internalUUID#21522424, id#21522425, displayId#21522426, name#21522427, baseUnitOfMeasure#21522428, unitOfMeasures#21522429, unitOfMeasureConversions#21522430, productionAspect#21522431, salesAspect#21522432, procurementAspect#21522433, productGroup#21522434, filteredUnitOfMeasureConversions#21522435, quantityNumerator#21522436, quantityDenominator#21522437, (cast(quantityNumerator#21522436 as double) / cast(quantityDenominator#21522437 as double)) AS outboundUnit#21522438]
(574) Project
Arguments: [product#21522410, plant#21522411, orderDateTime#21522412, productPlant#21522422, systemId#21522423, internalUUID#21522424, id#21522425, displayId#21522426, name#21522427, baseUnitOfMeasure#21522428, unitOfMeasures#21522429, unitOfMeasureConversions#21522430, productionAspect#21522431, salesAspect#21522432, procurementAspect#21522433, productGroup#21522434, filteredUnitOfMeasureConversions#21522435, quantityNumerator#21522436, quantityDenominator#21522437, CASE WHEN (isnull(outboundUnit#21522438) OR (outboundUnit#21522438 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#21522438 END AS outboundUnit#21522439]
(575) Project
Arguments: [product#21522410, plant#21522411, orderDateTime#21522412, productPlant#21522422, outboundUnit#21522439]
(576) Project
Arguments: [plant#21522411]
(577) Deduplicate
Arguments: [plant#21522411]
(578) Join
Arguments: Inner, (plantUuid#21522407 = plant#21522411)
(579) Project
Arguments: [plantId#21522406, plantUuid#21522407, storageLocId#21522408, storageLocUuid#21522409]
(580) Join
Arguments: Inner, (plant#21522379.internalRefUUID <=> plantUuid#21522407)
(581) Generate
Arguments: explode(filter(stockQuantities#21522381, lambdafunction(((lambda x#21518157.storageLocation.internalRefUuid = storageLocUuid#21522409) AND (lambda x#21518157.storageLocation.Id = storageLocId#21522408)), lambda x#21518157, false))), false, [stockQuantity#21522440]
(582) Project
Arguments: [systemId#21522376, internalUUID#21522377, product#21522378, plant#21522379, calculationDateTime#21522380, stockQuantities#21522381, plantId#21522406, plantUuid#21522407, storageLocId#21522408, storageLocUuid#21522409, stockQuantity#21522440]
(583) Aggregate
Arguments: [plantUuid#21522407, internalUUID#21522377, plant#21522379, product#21522378, systemId#21522376], [plantUuid#21522407, internalUUID#21522377, plant#21522379, product#21522378, systemId#21522376, first(calculationDateTime#21522380, false) AS calculationDateTime#21522441, collect_list(stockQuantity#21522440, 0, 0) AS stockQuantities#21522442]
(584) Project
Arguments: [systemId#21522376, internalUUID#21522377, product#21522378, plant#21522379, calculationDateTime#21522441, stockQuantities#21522442]
(585) Generate
Arguments: explode(stockQuantities#21522442), false, [stockQuantity#21522443]
(586) Project
Arguments: [systemId#21522376, internalUUID#21522377, product#21522378, plant#21522379, calculationDateTime#21522441, stockQuantities#21522442, stockQuantity#21522443]
(587) Project
Arguments: [plant#21522379.id AS plant#21522444, plant#21522379.internalRefUUID AS plantUuid#21522445, product#21522378.id AS product#21522446, product#21522378.internalRefUUID AS productUuid#21522447, calculationDateTime#21522441, stockQuantity#21522443.storagelocation.id AS storageLocId#21522448, stockQuantity#21522443.storagelocation.internalRefUUID AS storageLocUuid#21522449, stockQuantity#21522443.quantity.measure AS quantity#21522450, stockQuantity#21522443.specialStockIndicator.code AS specialStockIndicator#21522451, stockQuantity#21522443.stockType.code AS stockType#21522452]
(588) Filter
Arguments: ((specialStockIndicator#21522451 = ) AND (stockType#21522452 = 01))
(589) LogicalRelation
Arguments: parquet, [product#21522453, plant#21522454, orderDateTime#21522455, planningStartDateTime#21522456], false
(590) RepartitionByExpression
Arguments: [product#21522453, plant#21522454], 25
(591) Project
Arguments: [product#21522453, plant#21522454, orderDateTime#21522455]
(592) LogicalRelation
Arguments: parquet, [systemId#21522457, internalUUID#21522458, plant#21522459, product#21522460, blockedForReplenishmentStartingFrom#21522461, productionAspect#21522462, salesPlant#21522463, listing#21522464], false
(593) Repartition
Arguments: 25, true
(594) Project
Arguments: [systemId#21522457, internalUUID#21522458, plant#21522459, product#21522460, blockedForReplenishmentStartingFrom#21522461, productionAspect#21522462, salesPlant#21522463, listing#21522464, struct(systemId, systemId#21522457, internalUUID, internalUUID#21522458, plant, plant#21522459, product, product#21522460, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#21522461, productionAspect, productionAspect#21522462, salesPlant, salesPlant#21522463, listing, listing#21522464) AS productPlant#21522465]
(595) Project
Arguments: [productPlant#21522465]
(596) Join
Arguments: LeftOuter, ((product#21522453 <=> productPlant#21522465.product.internalRefUUID) AND (plant#21522454 <=> productPlant#21522465.plant.internalRefUUID))
(597) Project
Arguments: [product#21522453, plant#21522454, orderDateTime#21522455, productPlant#21522465]
(598) LogicalRelation
Arguments: parquet, [systemId#21522466, internalUUID#21522467, id#21522468, displayId#21522469, name#21522470, baseUnitOfMeasure#21522471, unitOfMeasures#21522472, unitOfMeasureConversions#21522473, productionAspect#21522474, salesAspect#21522475, procurementAspect#21522476, productGroup#21522477], false
(599) Repartition
Arguments: 25, true
(600) Join
Arguments: LeftOuter, (product#21522453 = internalUUID#21522467)
(601) Project
Arguments: [product#21522453, plant#21522454, orderDateTime#21522455, productPlant#21522465, systemId#21522466, internalUUID#21522467, id#21522468, displayId#21522469, name#21522470, baseUnitOfMeasure#21522471, unitOfMeasures#21522472, unitOfMeasureConversions#21522473, productionAspect#21522474, salesAspect#21522475, procurementAspect#21522476, productGroup#21522477, filter(unitOfMeasureConversions#21522473, lambdafunction((((lambda u#21518048.measurementUnit1.code = productPlant#21522465.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#21518048.measurementUnit1.internalRefUUID = productPlant#21522465.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#21518048.measurementUnit2.code = baseUnitOfMeasure#21522471.code) AND (lambda u#21518048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#21522471.internalRefUUID))), lambda u#21518048, false)) AS filteredUnitOfMeasureConversions#21522478]
(602) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21522478.quantityNumerator), true, [quantityNumerator#21522479]
(603) Project
Arguments: [product#21522453, plant#21522454, orderDateTime#21522455, productPlant#21522465, systemId#21522466, internalUUID#21522467, id#21522468, displayId#21522469, name#21522470, baseUnitOfMeasure#21522471, unitOfMeasures#21522472, unitOfMeasureConversions#21522473, productionAspect#21522474, salesAspect#21522475, procurementAspect#21522476, productGroup#21522477, filteredUnitOfMeasureConversions#21522478, quantityNumerator#21522479]
(604) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21522478.quantityDenominator), true, [quantityDenominator#21522480]
(605) Project
Arguments: [product#21522453, plant#21522454, orderDateTime#21522455, productPlant#21522465, systemId#21522466, internalUUID#21522467, id#21522468, displayId#21522469, name#21522470, baseUnitOfMeasure#21522471, unitOfMeasures#21522472, unitOfMeasureConversions#21522473, productionAspect#21522474, salesAspect#21522475, procurementAspect#21522476, productGroup#21522477, filteredUnitOfMeasureConversions#21522478, quantityNumerator#21522479, quantityDenominator#21522480]
(606) Project
Arguments: [product#21522453, plant#21522454, orderDateTime#21522455, productPlant#21522465, systemId#21522466, internalUUID#21522467, id#21522468, displayId#21522469, name#21522470, baseUnitOfMeasure#21522471, unitOfMeasures#21522472, unitOfMeasureConversions#21522473, productionAspect#21522474, salesAspect#21522475, procurementAspect#21522476, productGroup#21522477, filteredUnitOfMeasureConversions#21522478, quantityNumerator#21522479, quantityDenominator#21522480, (cast(quantityNumerator#21522479 as double) / cast(quantityDenominator#21522480 as double)) AS outboundUnit#21522481]
(607) Project
Arguments: [product#21522453, plant#21522454, orderDateTime#21522455, productPlant#21522465, systemId#21522466, internalUUID#21522467, id#21522468, displayId#21522469, name#21522470, baseUnitOfMeasure#21522471, unitOfMeasures#21522472, unitOfMeasureConversions#21522473, productionAspect#21522474, salesAspect#21522475, procurementAspect#21522476, productGroup#21522477, filteredUnitOfMeasureConversions#21522478, quantityNumerator#21522479, quantityDenominator#21522480, CASE WHEN (isnull(outboundUnit#21522481) OR (outboundUnit#21522481 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#21522481 END AS outboundUnit#21522482]
(608) Project
Arguments: [product#21522453, plant#21522454, orderDateTime#21522455, productPlant#21522465, outboundUnit#21522482]
(609) Join
Arguments: Inner, ((plantUuid#21522445 = plant#21522454) AND (productUuid#21522447 = product#21522453))
(610) Filter
Arguments: (calculationDateTime#21522441 <= orderDateTime#21522455)
(611) Project
Arguments: [plantUuid#21522445 AS plant#21522483, productUuid#21522447 AS product#21522484, storageLocId#21522448, calculationDateTime#21522441, quantity#21522450]
(612) LogicalRelation
Arguments: parquet, [systemId#21522485, internalUUID#21522486, product#21522487, plant#21522488, calculationDateTime#21522489, stockQuantities#21522490], false
(613) Repartition
Arguments: 25, true
(614) LogicalRelation
Arguments: parquet, [marketUnit#21522491, description#21522492, articleHierarchy#21522493, defaultCurrency#21522494, responsibilities#21522495, replenishmentTypes#21522496, distributionCenters#21522497, assignedArticleHierarchyNodes#21522498, minOrderQtySetting#21522499, listingCheck#21522500, odsSelection#21522501, demandProfiles#21522502, constraintProfiles#21522503, optimizationProfiles#21522504, orderGroupSplitProfiles#21522505, supplierMinimumProfiles#21522506, multipleRestrictionProfiles#21522507, preferredUomSource#21522508, handlingOfUnfulfilledDemands#21522509, negligibleQuantitiesThreshold#21522510, eventtype#21522511, minOrderQtySettingInternal#21522512], false
(615) Repartition
Arguments: 25, true
(616) Filter
Arguments: (marketUnit#21522491 <=> SS_Test_1)
(617) Project
Arguments: [marketUnit#21522491, description#21522492, articleHierarchy#21522493, defaultCurrency#21522494, responsibilities#21522495, replenishmentTypes#21522496, distributionCenters#21522497, assignedArticleHierarchyNodes#21522498, minOrderQtySetting#21522499, listingCheck#21522500, odsSelection#21522501, demandProfiles#21522502, constraintProfiles#21522503, optimizationProfiles#21522504, orderGroupSplitProfiles#21522505, supplierMinimumProfiles#21522506, multipleRestrictionProfiles#21522507, preferredUomSource#21522508, handlingOfUnfulfilledDemands#21522509, negligibleQuantitiesThreshold#21522510, eventtype#21522511, minOrderQtySettingInternal#21522512]
(618) Project
Arguments: [distributionCenters#21522497]
(619) Generate
Arguments: explode(distributionCenters#21522497), false, [distributionCenters#21522513]
(620) Project
Arguments: [distributionCenters#21522513]
(621) Generate
Arguments: explode(distributionCenters#21522513.storageLocations), false, [storageLocations#21522514]
(622) Project
Arguments: [distributionCenters#21522513.id AS plantId#21522515, distributionCenters#21522513.internalRefUUID AS plantUuid#21522516, storageLocations#21522514]
(623) Project
Arguments: [plantId#21522515, plantUuid#21522516, storageLocations#21522514.id AS storageLocId#21522517, storageLocations#21522514.internalRefUUID AS storageLocUuid#21522518]
(624) LogicalRelation
Arguments: parquet, [product#21522519, plant#21522520, orderDateTime#21522521, planningStartDateTime#21522522], false
(625) RepartitionByExpression
Arguments: [product#21522519, plant#21522520], 25
(626) Project
Arguments: [product#21522519, plant#21522520, orderDateTime#21522521]
(627) LogicalRelation
Arguments: parquet, [systemId#21522523, internalUUID#21522524, plant#21522525, product#21522526, blockedForReplenishmentStartingFrom#21522527, productionAspect#21522528, salesPlant#21522529, listing#21522530], false
(628) Repartition
Arguments: 25, true
(629) Project
Arguments: [systemId#21522523, internalUUID#21522524, plant#21522525, product#21522526, blockedForReplenishmentStartingFrom#21522527, productionAspect#21522528, salesPlant#21522529, listing#21522530, struct(systemId, systemId#21522523, internalUUID, internalUUID#21522524, plant, plant#21522525, product, product#21522526, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#21522527, productionAspect, productionAspect#21522528, salesPlant, salesPlant#21522529, listing, listing#21522530) AS productPlant#21522531]
(630) Project
Arguments: [productPlant#21522531]
(631) Join
Arguments: LeftOuter, ((product#21522519 <=> productPlant#21522531.product.internalRefUUID) AND (plant#21522520 <=> productPlant#21522531.plant.internalRefUUID))
(632) Project
Arguments: [product#21522519, plant#21522520, orderDateTime#21522521, productPlant#21522531]
(633) LogicalRelation
Arguments: parquet, [systemId#21522532, internalUUID#21522533, id#21522534, displayId#21522535, name#21522536, baseUnitOfMeasure#21522537, unitOfMeasures#21522538, unitOfMeasureConversions#21522539, productionAspect#21522540, salesAspect#21522541, procurementAspect#21522542, productGroup#21522543], false
(634) Repartition
Arguments: 25, true
(635) Join
Arguments: LeftOuter, (product#21522519 = internalUUID#21522533)
(636) Project
Arguments: [product#21522519, plant#21522520, orderDateTime#21522521, productPlant#21522531, systemId#21522532, internalUUID#21522533, id#21522534, displayId#21522535, name#21522536, baseUnitOfMeasure#21522537, unitOfMeasures#21522538, unitOfMeasureConversions#21522539, productionAspect#21522540, salesAspect#21522541, procurementAspect#21522542, productGroup#21522543, filter(unitOfMeasureConversions#21522539, lambdafunction((((lambda u#21518048.measurementUnit1.code = productPlant#21522531.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#21518048.measurementUnit1.internalRefUUID = productPlant#21522531.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#21518048.measurementUnit2.code = baseUnitOfMeasure#21522537.code) AND (lambda u#21518048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#21522537.internalRefUUID))), lambda u#21518048, false)) AS filteredUnitOfMeasureConversions#21522544]
(637) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21522544.quantityNumerator), true, [quantityNumerator#21522545]
(638) Project
Arguments: [product#21522519, plant#21522520, orderDateTime#21522521, productPlant#21522531, systemId#21522532, internalUUID#21522533, id#21522534, displayId#21522535, name#21522536, baseUnitOfMeasure#21522537, unitOfMeasures#21522538, unitOfMeasureConversions#21522539, productionAspect#21522540, salesAspect#21522541, procurementAspect#21522542, productGroup#21522543, filteredUnitOfMeasureConversions#21522544, quantityNumerator#21522545]
(639) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21522544.quantityDenominator), true, [quantityDenominator#21522546]
(640) Project
Arguments: [product#21522519, plant#21522520, orderDateTime#21522521, productPlant#21522531, systemId#21522532, internalUUID#21522533, id#21522534, displayId#21522535, name#21522536, baseUnitOfMeasure#21522537, unitOfMeasures#21522538, unitOfMeasureConversions#21522539, productionAspect#21522540, salesAspect#21522541, procurementAspect#21522542, productGroup#21522543, filteredUnitOfMeasureConversions#21522544, quantityNumerator#21522545, quantityDenominator#21522546]
(641) Project
Arguments: [product#21522519, plant#21522520, orderDateTime#21522521, productPlant#21522531, systemId#21522532, internalUUID#21522533, id#21522534, displayId#21522535, name#21522536, baseUnitOfMeasure#21522537, unitOfMeasures#21522538, unitOfMeasureConversions#21522539, productionAspect#21522540, salesAspect#21522541, procurementAspect#21522542, productGroup#21522543, filteredUnitOfMeasureConversions#21522544, quantityNumerator#21522545, quantityDenominator#21522546, (cast(quantityNumerator#21522545 as double) / cast(quantityDenominator#21522546 as double)) AS outboundUnit#21522547]
(642) Project
Arguments: [product#21522519, plant#21522520, orderDateTime#21522521, productPlant#21522531, systemId#21522532, internalUUID#21522533, id#21522534, displayId#21522535, name#21522536, baseUnitOfMeasure#21522537, unitOfMeasures#21522538, unitOfMeasureConversions#21522539, productionAspect#21522540, salesAspect#21522541, procurementAspect#21522542, productGroup#21522543, filteredUnitOfMeasureConversions#21522544, quantityNumerator#21522545, quantityDenominator#21522546, CASE WHEN (isnull(outboundUnit#21522547) OR (outboundUnit#21522547 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#21522547 END AS outboundUnit#21522548]
(643) Project
Arguments: [product#21522519, plant#21522520, orderDateTime#21522521, productPlant#21522531, outboundUnit#21522548]
(644) Project
Arguments: [plant#21522520]
(645) Deduplicate
Arguments: [plant#21522520]
(646) Join
Arguments: Inner, (plantUuid#21522516 = plant#21522520)
(647) Project
Arguments: [plantId#21522515, plantUuid#21522516, storageLocId#21522517, storageLocUuid#21522518]
(648) Join
Arguments: Inner, (plant#21522488.internalRefUUID <=> plantUuid#21522516)
(649) Generate
Arguments: explode(filter(stockQuantities#21522490, lambdafunction(((lambda x#21518157.storageLocation.internalRefUuid = storageLocUuid#21522518) AND (lambda x#21518157.storageLocation.Id = storageLocId#21522517)), lambda x#21518157, false))), false, [stockQuantity#21522549]
(650) Project
Arguments: [systemId#21522485, internalUUID#21522486, product#21522487, plant#21522488, calculationDateTime#21522489, stockQuantities#21522490, plantId#21522515, plantUuid#21522516, storageLocId#21522517, storageLocUuid#21522518, stockQuantity#21522549]
(651) Aggregate
Arguments: [plantUuid#21522516, internalUUID#21522486, plant#21522488, product#21522487, systemId#21522485], [plantUuid#21522516, internalUUID#21522486, plant#21522488, product#21522487, systemId#21522485, first(calculationDateTime#21522489, false) AS calculationDateTime#21522550, collect_list(stockQuantity#21522549, 0, 0) AS stockQuantities#21522551]
(652) Project
Arguments: [systemId#21522485, internalUUID#21522486, product#21522487, plant#21522488, calculationDateTime#21522550, stockQuantities#21522551]
(653) Generate
Arguments: explode(stockQuantities#21522551), false, [stockQuantity#21522552]
(654) Project
Arguments: [systemId#21522485, internalUUID#21522486, product#21522487, plant#21522488, calculationDateTime#21522550, stockQuantities#21522551, stockQuantity#21522552]
(655) Project
Arguments: [plant#21522488.id AS plant#21522553, plant#21522488.internalRefUUID AS plantUuid#21522554, product#21522487.id AS product#21522555, product#21522487.internalRefUUID AS productUuid#21522556, calculationDateTime#21522550, stockQuantity#21522552.storagelocation.id AS storageLocId#21522557, stockQuantity#21522552.storagelocation.internalRefUUID AS storageLocUuid#21522558, stockQuantity#21522552.quantity.measure AS quantity#21522559, stockQuantity#21522552.specialStockIndicator.code AS specialStockIndicator#21522560, stockQuantity#21522552.stockType.code AS stockType#21522561]
(656) Filter
Arguments: ((specialStockIndicator#21522560 = ) AND (stockType#21522561 = 01))
(657) LogicalRelation
Arguments: parquet, [product#21522562, plant#21522563, orderDateTime#21522564, planningStartDateTime#21522565], false
(658) RepartitionByExpression
Arguments: [product#21522562, plant#21522563], 25
(659) Project
Arguments: [product#21522562, plant#21522563, orderDateTime#21522564]
(660) LogicalRelation
Arguments: parquet, [systemId#21522566, internalUUID#21522567, plant#21522568, product#21522569, blockedForReplenishmentStartingFrom#21522570, productionAspect#21522571, salesPlant#21522572, listing#21522573], false
(661) Repartition
Arguments: 25, true
(662) Project
Arguments: [systemId#21522566, internalUUID#21522567, plant#21522568, product#21522569, blockedForReplenishmentStartingFrom#21522570, productionAspect#21522571, salesPlant#21522572, listing#21522573, struct(systemId, systemId#21522566, internalUUID, internalUUID#21522567, plant, plant#21522568, product, product#21522569, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#21522570, productionAspect, productionAspect#21522571, salesPlant, salesPlant#21522572, listing, listing#21522573) AS productPlant#21522574]
(663) Project
Arguments: [productPlant#21522574]
(664) Join
Arguments: LeftOuter, ((product#21522562 <=> productPlant#21522574.product.internalRefUUID) AND (plant#21522563 <=> productPlant#21522574.plant.internalRefUUID))
(665) Project
Arguments: [product#21522562, plant#21522563, orderDateTime#21522564, productPlant#21522574]
(666) LogicalRelation
Arguments: parquet, [systemId#21522575, internalUUID#21522576, id#21522577, displayId#21522578, name#21522579, baseUnitOfMeasure#21522580, unitOfMeasures#21522581, unitOfMeasureConversions#21522582, productionAspect#21522583, salesAspect#21522584, procurementAspect#21522585, productGroup#21522586], false
(667) Repartition
Arguments: 25, true
(668) Join
Arguments: LeftOuter, (product#21522562 = internalUUID#21522576)
(669) Project
Arguments: [product#21522562, plant#21522563, orderDateTime#21522564, productPlant#21522574, systemId#21522575, internalUUID#21522576, id#21522577, displayId#21522578, name#21522579, baseUnitOfMeasure#21522580, unitOfMeasures#21522581, unitOfMeasureConversions#21522582, productionAspect#21522583, salesAspect#21522584, procurementAspect#21522585, productGroup#21522586, filter(unitOfMeasureConversions#21522582, lambdafunction((((lambda u#21518048.measurementUnit1.code = productPlant#21522574.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#21518048.measurementUnit1.internalRefUUID = productPlant#21522574.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#21518048.measurementUnit2.code = baseUnitOfMeasure#21522580.code) AND (lambda u#21518048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#21522580.internalRefUUID))), lambda u#21518048, false)) AS filteredUnitOfMeasureConversions#21522587]
(670) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21522587.quantityNumerator), true, [quantityNumerator#21522588]
(671) Project
Arguments: [product#21522562, plant#21522563, orderDateTime#21522564, productPlant#21522574, systemId#21522575, internalUUID#21522576, id#21522577, displayId#21522578, name#21522579, baseUnitOfMeasure#21522580, unitOfMeasures#21522581, unitOfMeasureConversions#21522582, productionAspect#21522583, salesAspect#21522584, procurementAspect#21522585, productGroup#21522586, filteredUnitOfMeasureConversions#21522587, quantityNumerator#21522588]
(672) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21522587.quantityDenominator), true, [quantityDenominator#21522589]
(673) Project
Arguments: [product#21522562, plant#21522563, orderDateTime#21522564, productPlant#21522574, systemId#21522575, internalUUID#21522576, id#21522577, displayId#21522578, name#21522579, baseUnitOfMeasure#21522580, unitOfMeasures#21522581, unitOfMeasureConversions#21522582, productionAspect#21522583, salesAspect#21522584, procurementAspect#21522585, productGroup#21522586, filteredUnitOfMeasureConversions#21522587, quantityNumerator#21522588, quantityDenominator#21522589]
(674) Project
Arguments: [product#21522562, plant#21522563, orderDateTime#21522564, productPlant#21522574, systemId#21522575, internalUUID#21522576, id#21522577, displayId#21522578, name#21522579, baseUnitOfMeasure#21522580, unitOfMeasures#21522581, unitOfMeasureConversions#21522582, productionAspect#21522583, salesAspect#21522584, procurementAspect#21522585, productGroup#21522586, filteredUnitOfMeasureConversions#21522587, quantityNumerator#21522588, quantityDenominator#21522589, (cast(quantityNumerator#21522588 as double) / cast(quantityDenominator#21522589 as double)) AS outboundUnit#21522590]
(675) Project
Arguments: [product#21522562, plant#21522563, orderDateTime#21522564, productPlant#21522574, systemId#21522575, internalUUID#21522576, id#21522577, displayId#21522578, name#21522579, baseUnitOfMeasure#21522580, unitOfMeasures#21522581, unitOfMeasureConversions#21522582, productionAspect#21522583, salesAspect#21522584, procurementAspect#21522585, productGroup#21522586, filteredUnitOfMeasureConversions#21522587, quantityNumerator#21522588, quantityDenominator#21522589, CASE WHEN (isnull(outboundUnit#21522590) OR (outboundUnit#21522590 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#21522590 END AS outboundUnit#21522591]
(676) Project
Arguments: [product#21522562, plant#21522563, orderDateTime#21522564, productPlant#21522574, outboundUnit#21522591]
(677) Join
Arguments: Inner, ((plantUuid#21522554 = plant#21522563) AND (productUuid#21522556 = product#21522562))
(678) Filter
Arguments: (calculationDateTime#21522550 <= orderDateTime#21522564)
(679) Project
Arguments: [plantUuid#21522554 AS plant#21522592, productUuid#21522556 AS product#21522593, storageLocId#21522557, calculationDateTime#21522550, quantity#21522559]
(680) Aggregate
Arguments: [plant#21522592, product#21522593, storageLocId#21522557], [plant#21522592, product#21522593, storageLocId#21522557, max(calculationDateTime#21522550) AS max_calc_datetime#21522594]
(681) Join
Arguments: Inner, ((((plant#21522483 <=> plant#21522592) AND (product#21522484 <=> product#21522593)) AND (storageLocId#21522448 <=> storageLocId#21522557)) AND (calculationDateTime#21522441 <=> max_calc_datetime#21522594))
(682) Project
Arguments: [plant#21522483, product#21522484, storageLocId#21522448, calculationDateTime#21522441, quantity#21522450]
(683) Aggregate
Arguments: [product#21522484, plant#21522483], [product#21522484, plant#21522483, sum(quantity#21522450) AS quantitySum#21522595, min(calculationDateTime#21522441) AS minCalculationDateTime#21522596]
(684) Project
Arguments: [product#21522484, plant#21522483, quantitySum#21522595, minCalculationDateTime#21522596, round(quantitySum#21522595, 0) AS roundedQuantitySum#21522597]
(685) Join
Arguments: LeftOuter, ((plant#21522347 = plant#21522483) AND (product#21522346 = product#21522484))
(686) Project
Arguments: [product#21522346, plant#21522347, orderDateTime#21522348, productPlant#21522358, outboundUnit#21522375, roundedQuantitySum#21522597, minCalculationDateTime#21522596]
(687) Project
Arguments: [product#21522346, plant#21522347, orderDateTime#21522348, productPlant#21522358, outboundUnit#21522375, roundedQuantitySum#21522597, minCalculationDateTime#21522596, CASE WHEN isnotnull(minCalculationDateTime#21522596) THEN minCalculationDateTime#21522596 ELSE orderDateTime#21522348 END AS stockDatetime#21522598]
(688) Project
Arguments: [product#21522346, plant#21522347, orderDateTime#21522348, productPlant#21522358, outboundUnit#21522375, roundedQuantitySum#21522597, minCalculationDateTime#21522596, stockDatetime#21522598, CASE WHEN isnotnull(roundedQuantitySum#21522597) THEN array(roundedQuantitySum#21522597) ELSE array(0.0) END AS stockBatchQuantities#21522599]
(689) Project
Arguments: [product#21522346, plant#21522347, orderDateTime#21522348, productPlant#21522358, outboundUnit#21522375, roundedQuantitySum#21522597, minCalculationDateTime#21522596, stockDatetime#21522598, stockBatchQuantities#21522599, array(2199-01-01 00:00:00) AS stockBatchShelfLifeEndDatetimes#21522600]
(690) Project
Arguments: [product#21522346, plant#21522347, orderDateTime#21522348, productPlant#21522358, outboundUnit#21522375, roundedQuantitySum#21522597, stockDatetime#21522598, stockBatchQuantities#21522599, stockBatchShelfLifeEndDatetimes#21522600]
(691) Project
Arguments: [product#21522346, plant#21522347, orderDateTime#21522348, productPlant#21522358, outboundUnit#21522375, stockDatetime#21522598, stockBatchQuantities#21522599, stockBatchShelfLifeEndDatetimes#21522600]
(692) LogicalRelation
Arguments: parquet, [product#21522601, plant#21522602, demandChannel#21522603, demandStream#21522604, considerVariance#21522605, demandTimeBuckets#21522606, demandPointInTimeStart#21522607, demandPointInTimeEnd#21522608, demandPointInTime#21522609], false
(693) Join
Arguments: LeftOuter, ((plant#21522602 <=> plant#21522347) AND (product#21522601 <=> product#21522346))
(694) Project
Arguments: [product#21522346, plant#21522347, orderDateTime#21522348, productPlant#21522358, outboundUnit#21522375, stockDatetime#21522598, stockBatchQuantities#21522599, stockBatchShelfLifeEndDatetimes#21522600, product#21522601, plant#21522602, demandChannel#21522603, demandStream#21522604, considerVariance#21522605, demandTimeBuckets#21522606, demandPointInTimeStart#21522607, demandPointInTimeEnd#21522608, demandPointInTime#21522609, CASE WHEN isnotnull(product#21522601) THEN struct(demandChannel, demandChannel#21522603, demandStream, demandStream#21522604, considerVariance, considerVariance#21522605, demandTimeBuckets, demandTimeBuckets#21522606, demandPointInTimeStart, demandPointInTimeStart#21522607, demandPointInTimeEnd, demandPointInTimeEnd#21522608, demandPointInTime, demandPointInTime#21522609) 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#21522610]
(695) Aggregate
Arguments: [product#21522346, plant#21522347, orderDateTime#21522348, productPlant#21522358, outboundUnit#21522375, stockDatetime#21522598, stockBatchQuantities#21522599, stockBatchShelfLifeEndDatetimes#21522600], [product#21522346, plant#21522347, orderDateTime#21522348, productPlant#21522358, outboundUnit#21522375, stockDatetime#21522598, stockBatchQuantities#21522599, stockBatchShelfLifeEndDatetimes#21522600, collect_list(rawDemands#21522610, 0, 0) AS rawDemands#21522611]
(696) SubqueryAlias
Arguments: wl
(697) LogicalRelation
Arguments: parquet, [systemId#21522612, internalUUID#21522613, id#21522614, displayId#21522615, name#21522616, category#21522617, companyCode#21522618, address#21522619, mainDistributionChain#21522620, mainPurchasingOrganization#21522621, validPurchasingOrganizations#21522622, productGroup#21522623], false
(698) Repartition
Arguments: 25, true
(699) Project
Arguments: [systemId#21522612, internalUUID#21522613, id#21522614, displayId#21522615, name#21522616, category#21522617, companyCode#21522618, address#21522619, mainDistributionChain#21522620, mainPurchasingOrganization#21522621, validPurchasingOrganizations#21522622, productGroup#21522623, address#21522619.timezone.code AS timezonecode#21522624]
(700) Join
Arguments: LeftOuter, (plant#21522347 <=> internalUUID#21522613)
(701) Project
Arguments: [product#21522346, plant#21522347, orderDateTime#21522348, productPlant#21522358, outboundUnit#21522375, stockDatetime#21522598, stockBatchQuantities#21522599, stockBatchShelfLifeEndDatetimes#21522600, rawDemands#21522611, systemId#21522612, internalUUID#21522613, id#21522614, displayId#21522615, name#21522616, category#21522617, companyCode#21522618, address#21522619, mainDistributionChain#21522620, mainPurchasingOrganization#21522621, validPurchasingOrganizations#21522622, productGroup#21522623, CASE WHEN isnotnull(timezonecode#21522624) THEN timezonecode#21522624 ELSE UTC END AS timezonecode#21522625]
(702) Project
Arguments: [product#21522346, plant#21522347, orderDateTime#21522348, productPlant#21522358, outboundUnit#21522375, stockDatetime#21522598, stockBatchQuantities#21522599, stockBatchShelfLifeEndDatetimes#21522600, rawDemands#21522611, timezonecode#21522625]
(703) DeserializeToObject
Arguments: createexternalrow(invoke(product#21522346.toString()), invoke(plant#21522347.toString()), static_invoke(DateTimeUtils.toJavaTimestamp(orderDateTime#21522348)), if (isnull(productPlant#21522358)) null else createexternalrow(invoke(productPlant#21522358.systemId.toString()), invoke(productPlant#21522358.internalUUID.toString()), if (isnull(productPlant#21522358.plant)) null else createexternalrow(invoke(productPlant#21522358.plant.internalRefUUID.toString()), invoke(productPlant#21522358.plant.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), if (isnull(productPlant#21522358.product)) null else createexternalrow(invoke(productPlant#21522358.product.internalRefUUID.toString()), invoke(productPlant#21522358.product.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(DateTimeUtils.toJavaDate(productPlant#21522358.blockedForReplenishmentStartingFrom)), if (isnull(productPlant#21522358.productionAspect)) null else createexternalrow(if (isnull(productPlant#21522358.productionAspect.productMovementPlants)) null else createexternalrow(if (isnull(productPlant#21522358.productionAspect.productMovementPlants.unitOfIssue)) null else createexternalrow(invoke(productPlant#21522358.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID.toString()), invoke(productPlant#21522358.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#21522358.productionAspect.productPlanningPlants)) null else createexternalrow(if (isnull(productPlant#21522358.productionAspect.productPlanningPlants.mrpType)) null else createexternalrow(invoke(productPlant#21522358.productionAspect.productPlanningPlants.mrpType.internalRefUUID.toString()), invoke(productPlant#21522358.productionAspect.productPlanningPlants.mrpType.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#21522358.productionAspect.productPlanningPlants.abcIndicator)) null else createexternalrow(invoke(productPlant#21522358.productionAspect.productPlanningPlants.abcIndicator.internalRefUUID.toString()), invoke(productPlant#21522358.productionAspect.productPlanningPlants.abcIndicator.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#21522358.productionAspect.productPlanningPlants.mrpController)) null else createexternalrow(invoke(productPlant#21522358.productionAspect.productPlanningPlants.mrpController.internalRefUUID.toString()), invoke(productPlant#21522358.productionAspect.productPlanningPlants.mrpController.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(java.lang.Double.valueOf(productPlant#21522358.productionAspect.productPlanningPlants.minimumLotSize)), if (isnull(productPlant#21522358.productionAspect.productPlanningPlants.logisticalRoundingProfile)) null else createexternalrow(invoke(productPlant#21522358.productionAspect.productPlanningPlants.logisticalRoundingProfile.internalRefUUID.toString()), invoke(productPlant#21522358.productionAspect.productPlanningPlants.logisticalRoundingProfile.logisticalRoundingProfile.toString()), StructField(internalRefUUID,StringType,true), StructField(logisticalRoundingProfile,StringType,true)), if (isnull(productPlant#21522358.productionAspect.productPlanningPlants.sourceOfSupplyCategory)) null else createexternalrow(invoke(productPlant#21522358.productionAspect.productPlanningPlants.sourceOfSupplyCategory.internalRefUUID.toString()), invoke(productPlant#21522358.productionAspect.productPlanningPlants.sourceOfSupplyCategory.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true), StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true), StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(minimumLotSize,DoubleType,true), StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true), StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true), StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)), if (isnull(productPlant#21522358.salesPlant)) null else createexternalrow(if (isnull(productPlant#21522358.salesPlant.loadingGroup)) null else createexternalrow(invoke(productPlant#21522358.salesPlant.loadingGroup.internalRefUUID.toString()), invoke(productPlant#21522358.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, 2680280), if (isnull(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 2680280))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 2680280).validFrom)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 2680280).validTo)), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 2680280).isListed)), StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true)), productPlant#21522358.listing, Some(class scala.collection.mutable.ArraySeq)), StructField(systemId,StringType,true), StructField(internalUUID,StringType,true), StructField(plant,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(product,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(blockedForReplenishmentStartingFrom,DateType,true), StructField(productionAspect,StructType(StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)),true), StructField(salesPlant,StructType(StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true), StructField(listing,ArrayType(StructType(StructField(validFrom,TimestampType,true),StructField(validTo,TimestampType,true),StructField(isListed,BooleanType,true)),true),true)), static_invoke(java.lang.Double.valueOf(outboundUnit#21522375)), static_invoke(DateTimeUtils.toJavaTimestamp(stockDatetime#21522598)), mapobjects(lambdavariable(MapObject, DoubleType, true, 2680281), static_invoke(java.lang.Double.valueOf(cast(lambdavariable(MapObject, DoubleType, true, 2680281) as double))), stockBatchQuantities#21522599, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, false, 2680282), assertnotnull(static_invoke(DateTimeUtils.toJavaTimestamp(cast(lambdavariable(MapObject, TimestampType, false, 2680282) as timestamp)))), stockBatchShelfLifeEndDatetimes#21522600, 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, 2680283), 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, 2680283))) 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, 2680283).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, 2680283).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, 2680283).considerVariance)), mapobjects(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 2680284), if (isnull(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 2680284))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 2680284).demandStartDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 2680284).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 2680284).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, 2680283).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, 2680283).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, 2680283).demandPointInTimeEnd)), mapobjects(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 2680285), if (isnull(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 2680285))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 2680285).demandDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 2680285).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 2680285).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, 2680283).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#21522611, Some(class scala.collection.mutable.ArraySeq)), invoke(timezonecode#21522625.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),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)),true),StructField(salesPlant,StructType(StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(listing,ArrayType(StructType(StructField(validFrom,TimestampType,true),StructField(validTo,TimestampType,true),StructField(isListed,BooleanType,true)),true),true)),true), StructField(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#21519488: org.apache.spark.sql.Row
(704) MapElements
Arguments: com.sap.s4hana.eureka.business.crporderquantitykpiservice.core.business.datasnapshot.DemandTransformatorImpl$$Lambda/0x00000008021e99e0@10fe4db7, interface org.apache.spark.sql.Row, [StructField(product,StringType,true), StructField(plant,StringType,true), StructField(orderDateTime,TimestampType,true), StructField(productPlant,StructType(StructField(systemId,StringType,true),StructField(internalUUID,StringType,true),StructField(plant,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(product,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(blockedForReplenishmentStartingFrom,DateType,true),StructField(productionAspect,StructType(StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)),true),StructField(salesPlant,StructType(StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(listing,ArrayType(StructType(StructField(validFrom,TimestampType,true),StructField(validTo,TimestampType,true),StructField(isListed,BooleanType,true)),true),true)),true), StructField(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#21519493: 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#21522626, 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#21522627, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(2))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680270), assertnotnull(if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680271), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680271), DoubleType, ObjectType(class java.lang.Double)).doubleValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680272), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680272), DoubleType, ObjectType(class java.lang.Double)).doubleValue()), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680273), assertnotnull(static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680273), TimestampType, ObjectType(class java.sql.Timestamp))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680274), assertnotnull(static_invoke(UTF8String.fromString(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680274), StringType, ObjectType(class java.lang.String))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680275), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680275), IntegerType, ObjectType(class java.lang.Integer)).intValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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#21522628, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(3))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680276), assertnotnull(if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680277), assertnotnull(static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680277), TimestampType, ObjectType(class java.sql.Timestamp))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680278), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680278), DoubleType, ObjectType(class java.lang.Double)).doubleValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680279), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680279), DoubleType, ObjectType(class java.lang.Double)).doubleValue()), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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#21522629]
(706) Join
Arguments: LeftOuter, ((plant#21522627 <=> plant#21522092) AND (product#21522626 <=> product#21522091))
(707) Project
Arguments: [product#21522091, plant#21522092, orderDateTime#21522093, productPlant#21522103, outboundUnit#21522120, stockDatetime#21522343, stockBatchQuantities#21522344, stockBatchShelfLifeEndDatetimes#21522345, plant#21522627, dayBucketDemands#21522628, pointInTimeDemands#21522629]
(708) Project
Arguments: [product#21522091, plant#21522092, orderDateTime#21522093, productPlant#21522103, outboundUnit#21522120, stockDatetime#21522343, stockBatchQuantities#21522344, stockBatchShelfLifeEndDatetimes#21522345, dayBucketDemands#21522628, pointInTimeDemands#21522629]
(709) LogicalRelation
Arguments: parquet, [marketUnit#21519812, description#21519813, articleHierarchy#21519814, defaultCurrency#21519815, responsibilities#21519816, replenishmentTypes#21519817, distributionCenters#21519818, assignedArticleHierarchyNodes#21519819, minOrderQtySetting#21519820, listingCheck#21519821, odsSelection#21519822, demandProfiles#21519823, constraintProfiles#21519824, optimizationProfiles#21519825, orderGroupSplitProfiles#21519826, supplierMinimumProfiles#21519827, multipleRestrictionProfiles#21519828, preferredUomSource#21519829, handlingOfUnfulfilledDemands#21519830, negligibleQuantitiesThreshold#21519831, eventtype#21519832, minOrderQtySettingInternal#21519833], false
(710) Repartition
Arguments: 25, true
(711) Filter
Arguments: (marketUnit#21519812 <=> SS_Test_1)
(712) Project
Arguments: [marketUnit#21519812, description#21519813, articleHierarchy#21519814, defaultCurrency#21519815, responsibilities#21519816, replenishmentTypes#21519817, distributionCenters#21519818, assignedArticleHierarchyNodes#21519819, minOrderQtySetting#21519820, listingCheck#21519821, odsSelection#21519822, demandProfiles#21519823, constraintProfiles#21519824, optimizationProfiles#21519825, orderGroupSplitProfiles#21519826, supplierMinimumProfiles#21519827, multipleRestrictionProfiles#21519828, preferredUomSource#21519829, handlingOfUnfulfilledDemands#21519830, negligibleQuantitiesThreshold#21519831, eventtype#21519832, minOrderQtySettingInternal#21519833]
(713) Project
Arguments: [distributionCenters#21519818]
(714) Generate
Arguments: explode(distributionCenters#21519818), false, [distributionCenters#21519834]
(715) Project
Arguments: [distributionCenters#21519834]
(716) Generate
Arguments: explode(distributionCenters#21519834.storageLocations), false, [storageLocations#21519835]
(717) Project
Arguments: [distributionCenters#21519834.id AS plantId#21519836, distributionCenters#21519834.internalRefUUID AS plantUuid#21519837, storageLocations#21519835]
(718) Project
Arguments: [plantId#21519836, plantUuid#21519837, storageLocations#21519835.id AS storageLocId#21519838, storageLocations#21519835.internalRefUUID AS storageLocUuid#21519839]
(719) LogicalRelation
Arguments: parquet, [product#21519840, plant#21519841, orderDateTime#21519842, planningStartDateTime#21519843], false
(720) RepartitionByExpression
Arguments: [product#21519840, plant#21519841], 25
(721) Project
Arguments: [product#21519840, plant#21519841, orderDateTime#21519842]
(722) LogicalRelation
Arguments: parquet, [systemId#21519844, internalUUID#21519845, plant#21519846, product#21519847, blockedForReplenishmentStartingFrom#21519848, productionAspect#21519849, salesPlant#21519850, listing#21519851], false
(723) Repartition
Arguments: 25, true
(724) Project
Arguments: [systemId#21519844, internalUUID#21519845, plant#21519846, product#21519847, blockedForReplenishmentStartingFrom#21519848, productionAspect#21519849, salesPlant#21519850, listing#21519851, struct(systemId, systemId#21519844, internalUUID, internalUUID#21519845, plant, plant#21519846, product, product#21519847, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#21519848, productionAspect, productionAspect#21519849, salesPlant, salesPlant#21519850, listing, listing#21519851) AS productPlant#21519852]
(725) Project
Arguments: [productPlant#21519852]
(726) Join
Arguments: LeftOuter, ((product#21519840 <=> productPlant#21519852.product.internalRefUUID) AND (plant#21519841 <=> productPlant#21519852.plant.internalRefUUID))
(727) Project
Arguments: [product#21519840, plant#21519841, orderDateTime#21519842, productPlant#21519852]
(728) LogicalRelation
Arguments: parquet, [systemId#21519853, internalUUID#21519854, id#21519855, displayId#21519856, name#21519857, baseUnitOfMeasure#21519858, unitOfMeasures#21519859, unitOfMeasureConversions#21519860, productionAspect#21519861, salesAspect#21519862, procurementAspect#21519863, productGroup#21519864], false
(729) Repartition
Arguments: 25, true
(730) Join
Arguments: LeftOuter, (product#21519840 = internalUUID#21519854)
(731) Project
Arguments: [product#21519840, plant#21519841, orderDateTime#21519842, productPlant#21519852, systemId#21519853, internalUUID#21519854, id#21519855, displayId#21519856, name#21519857, baseUnitOfMeasure#21519858, unitOfMeasures#21519859, unitOfMeasureConversions#21519860, productionAspect#21519861, salesAspect#21519862, procurementAspect#21519863, productGroup#21519864, filter(unitOfMeasureConversions#21519860, lambdafunction((((lambda u#21518048.measurementUnit1.code = productPlant#21519852.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#21518048.measurementUnit1.internalRefUUID = productPlant#21519852.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#21518048.measurementUnit2.code = baseUnitOfMeasure#21519858.code) AND (lambda u#21518048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#21519858.internalRefUUID))), lambda u#21518048, false)) AS filteredUnitOfMeasureConversions#21519865]
(732) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21519865.quantityNumerator), true, [quantityNumerator#21519866]
(733) Project
Arguments: [product#21519840, plant#21519841, orderDateTime#21519842, productPlant#21519852, systemId#21519853, internalUUID#21519854, id#21519855, displayId#21519856, name#21519857, baseUnitOfMeasure#21519858, unitOfMeasures#21519859, unitOfMeasureConversions#21519860, productionAspect#21519861, salesAspect#21519862, procurementAspect#21519863, productGroup#21519864, filteredUnitOfMeasureConversions#21519865, quantityNumerator#21519866]
(734) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21519865.quantityDenominator), true, [quantityDenominator#21519867]
(735) Project
Arguments: [product#21519840, plant#21519841, orderDateTime#21519842, productPlant#21519852, systemId#21519853, internalUUID#21519854, id#21519855, displayId#21519856, name#21519857, baseUnitOfMeasure#21519858, unitOfMeasures#21519859, unitOfMeasureConversions#21519860, productionAspect#21519861, salesAspect#21519862, procurementAspect#21519863, productGroup#21519864, filteredUnitOfMeasureConversions#21519865, quantityNumerator#21519866, quantityDenominator#21519867]
(736) Project
Arguments: [product#21519840, plant#21519841, orderDateTime#21519842, productPlant#21519852, systemId#21519853, internalUUID#21519854, id#21519855, displayId#21519856, name#21519857, baseUnitOfMeasure#21519858, unitOfMeasures#21519859, unitOfMeasureConversions#21519860, productionAspect#21519861, salesAspect#21519862, procurementAspect#21519863, productGroup#21519864, filteredUnitOfMeasureConversions#21519865, quantityNumerator#21519866, quantityDenominator#21519867, (cast(quantityNumerator#21519866 as double) / cast(quantityDenominator#21519867 as double)) AS outboundUnit#21519868]
(737) Project
Arguments: [product#21519840, plant#21519841, orderDateTime#21519842, productPlant#21519852, systemId#21519853, internalUUID#21519854, id#21519855, displayId#21519856, name#21519857, baseUnitOfMeasure#21519858, unitOfMeasures#21519859, unitOfMeasureConversions#21519860, productionAspect#21519861, salesAspect#21519862, procurementAspect#21519863, productGroup#21519864, filteredUnitOfMeasureConversions#21519865, quantityNumerator#21519866, quantityDenominator#21519867, CASE WHEN (isnull(outboundUnit#21519868) OR (outboundUnit#21519868 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#21519868 END AS outboundUnit#21519869]
(738) Project
Arguments: [product#21519840, plant#21519841, orderDateTime#21519842, productPlant#21519852, outboundUnit#21519869]
(739) Project
Arguments: [plant#21519841]
(740) Deduplicate
Arguments: [plant#21519841]
(741) Join
Arguments: Inner, (plantUuid#21519837 = plant#21519841)
(742) Project
Arguments: [plantId#21519836, plantUuid#21519837, storageLocId#21519838, storageLocUuid#21519839]
(743) Project
Arguments: [plantId#21519836, plantUuid#21519837 AS plant#21519811, storageLocId#21519838, storageLocUuid#21519839]
(744) Join
Arguments: Inner, (plant#21522092 = plant#21519811)
(745) Project
Arguments: [plant#21522092, product#21522091, orderDateTime#21522093, productPlant#21522103, outboundUnit#21522120, stockDatetime#21522343, stockBatchQuantities#21522344, stockBatchShelfLifeEndDatetimes#21522345, dayBucketDemands#21522628, pointInTimeDemands#21522629, plantId#21519836, storageLocId#21519838, storageLocUuid#21519839, plant#21519811]
(746) LogicalRelation
Arguments: parquet, [systemId#21519776, internalUUID#21519777, id#21519778, displayId#21519779, supplier#21519780, type#21519781, status#21519782, isMarkedForDeletion#21519783, items#21519784], false
(747) Repartition
Arguments: 25, true
(748) Generate
Arguments: explode(items#21519784), false, [item#21519788]
(749) Project
Arguments: [id#21519778, internalUUID#21519777, isMarkedForDeletion#21519783, supplier#21519780.internalRefUUID AS supplierUuid#21519785, item#21519788]
(750) Filter
Arguments: (((NOT isMarkedForDeletion#21519783 AND NOT item#21519788.deletionIndicator) AND NOT item#21519788.completeIndicator) AND NOT item#21519788.returnIndicator)
(751) Project
Arguments: [id#21519778, internalUUID#21519777, supplierUuid#21519785, item#21519788.plant.internalRefUUID AS plant#21519793, item#21519788.product.internalRefUUID AS product#21519794, item#21519788.storageLocation.internalRefUUID AS storageLocUuid#21519795, item#21519788.quantityUnit.code AS quantityUom#21519796, item#21519788.quantityUnit.internalRefUUID AS quantityUomUuid#21519797, item#21519788.quantityNumerator AS quantityNumerator#21519798, item#21519788.quantityDenominator AS quantityDenominator#21519799, item#21519788.scheduleLines AS scheduleLines#21519800, item#21519788.confirmations AS confirmations#21519801]
(752) Join
Arguments: Inner, (((product#21522091 = product#21519794) AND (plant#21522092 = plant#21519793)) AND (storageLocUuid#21519839 = storageLocUuid#21519795))
(753) Project
Arguments: [product#21522091, plant#21522092, storageLocUuid#21519839, orderDateTime#21522093, productPlant#21522103, outboundUnit#21522120, stockDatetime#21522343, stockBatchQuantities#21522344, stockBatchShelfLifeEndDatetimes#21522345, dayBucketDemands#21522628, pointInTimeDemands#21522629, plantId#21519836, storageLocId#21519838, id#21519778, internalUUID#21519777, supplierUuid#21519785, quantityUom#21519796, quantityUomUuid#21519797, quantityNumerator#21519798, quantityDenominator#21519799, scheduleLines#21519800, confirmations#21519801, product#21519794, plant#21519793, storageLocUuid#21519795, ... 1 more fields]
(754) Project
Arguments: [id#21519778, internalUUID#21519777, supplierUuid#21519785, plant#21519793, product#21519794, storageLocUuid#21519795, quantityUom#21519796, quantityUomUuid#21519797, quantityNumerator#21519798, quantityDenominator#21519799, scheduleLines#21519800, confirmations#21519801, stockDatetime#21522343]
(755) Project
Arguments: [id#21519778, internalUUID#21519777, supplierUuid#21519785, plant#21519793, product#21519794, storageLocUuid#21519795, quantityUom#21519796, quantityUomUuid#21519797, quantityNumerator#21519798, quantityDenominator#21519799, scheduleLines#21519800, confirmations#21519801, stockDatetime#21522343, array_size(filter(confirmations#21519801, lambdafunction((((lambda x_1552#21519885.deletionIndicator = false) AND (lambda x_1552#21519885.isRelevantForConfirmation = true)) AND isnotnull(lambda x_1552#21519885.confirmedDeliveryAt)), lambda x_1552#21519885, false))) AS _w0#21519892]
(756) Window
Arguments: [sum(_w0#21519892) windowspecdefinition(internalUUID#21519777, specifiedwindowframe(RowFrame, unboundedpreceding$(), unboundedfollowing$())) AS _we0#21519893L], [internalUUID#21519777]
(757) Project
Arguments: [id#21519778, internalUUID#21519777, supplierUuid#21519785, plant#21519793, product#21519794, storageLocUuid#21519795, quantityUom#21519796, quantityUomUuid#21519797, quantityNumerator#21519798, quantityDenominator#21519799, scheduleLines#21519800, confirmations#21519801, stockDatetime#21522343, _w0#21519892, _we0#21519893L, filter(transform(CASE WHEN (_we0#21519893L > cast(0 as bigint)) THEN transform(filter(confirmations#21519801, lambdafunction((((lambda x_1552#21519886.deletionIndicator = false) AND (lambda x_1552#21519886.isRelevantForConfirmation = true)) AND isnotnull(lambda x_1552#21519886.confirmedDeliveryAt)), lambda x_1552#21519886, false)), lambdafunction(struct(openQty, greatest((lambda x_1553#21519889.confirmedQuantity - coalesce(lambda x_1553#21519889.mrpRelevantQuantity, 0.0)), 0.0), availabilityDatetime, lambda x_1553#21519889.confirmedDeliveryAt), lambda x_1553#21519889, false)) ELSE transform(scheduleLines#21519800, lambdafunction(struct(openQty, greatest((lambda x_1551#21519887.quantity - coalesce(lambda x_1551#21519887.receivedQuantity, 0.0)), 0.0), availabilityDatetime, lambda x_1551#21519887.deliveryAt), lambda x_1551#21519887, false)) END, lambdafunction(struct(documentId, id#21519778, documentUuid, internalUUID#21519777, openQty, lambda x_1554#21519890.openQty, openQtyInBaseUnit, ((lambda x_1554#21519890.openQty * quantityNumerator#21519798) / quantityDenominator#21519799), qtyUom, quantityUom#21519796, qtyUomUuid, quantityUomUuid#21519797, availabilityDatetime, lambda x_1554#21519890.availabilityDatetime, shelfLifeEndDatetime, 2199-01-01 00:00:00), lambda x_1554#21519890, false)), lambdafunction(NOT (lambda x_1555#21519891.openQty = 0.0), lambda x_1555#21519891, false)) AS openGoodsMovements#21519884]
(758) Project
Arguments: [id#21519778, internalUUID#21519777, supplierUuid#21519785, plant#21519793, product#21519794, storageLocUuid#21519795, quantityUom#21519796, quantityUomUuid#21519797, quantityNumerator#21519798, quantityDenominator#21519799, scheduleLines#21519800, confirmations#21519801, stockDatetime#21522343, openGoodsMovements#21519884]
(759) Aggregate
Arguments: [product#21519794, plant#21519793], [product#21519794, plant#21519793, flatten(collect_list(openGoodsMovements#21519884, 0, 0)) AS openGoodsMovements#21519894]
(760) Filter
Arguments: (array_size(openGoodsMovements#21519894) > 0)
(761) LogicalRelation
Arguments: parquet, [product#21521486, plant#21521487, orderDateTime#21521488, planningStartDateTime#21521489], false
(762) RepartitionByExpression
Arguments: [product#21521486, plant#21521487], 25
(763) Project
Arguments: [product#21521486, plant#21521487, orderDateTime#21521488]
(764) LogicalRelation
Arguments: parquet, [systemId#21521490, internalUUID#21521491, plant#21521492, product#21521493, blockedForReplenishmentStartingFrom#21521494, productionAspect#21521495, salesPlant#21521496, listing#21521497], false
(765) Repartition
Arguments: 25, true
(766) Project
Arguments: [systemId#21521490, internalUUID#21521491, plant#21521492, product#21521493, blockedForReplenishmentStartingFrom#21521494, productionAspect#21521495, salesPlant#21521496, listing#21521497, struct(systemId, systemId#21521490, internalUUID, internalUUID#21521491, plant, plant#21521492, product, product#21521493, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#21521494, productionAspect, productionAspect#21521495, salesPlant, salesPlant#21521496, listing, listing#21521497) AS productPlant#21521498]
(767) Project
Arguments: [productPlant#21521498]
(768) Join
Arguments: LeftOuter, ((product#21521486 <=> productPlant#21521498.product.internalRefUUID) AND (plant#21521487 <=> productPlant#21521498.plant.internalRefUUID))
(769) Project
Arguments: [product#21521486, plant#21521487, orderDateTime#21521488, productPlant#21521498]
(770) LogicalRelation
Arguments: parquet, [systemId#21521499, internalUUID#21521500, id#21521501, displayId#21521502, name#21521503, baseUnitOfMeasure#21521504, unitOfMeasures#21521505, unitOfMeasureConversions#21521506, productionAspect#21521507, salesAspect#21521508, procurementAspect#21521509, productGroup#21521510], false
(771) Repartition
Arguments: 25, true
(772) Join
Arguments: LeftOuter, (product#21521486 = internalUUID#21521500)
(773) Project
Arguments: [product#21521486, plant#21521487, orderDateTime#21521488, productPlant#21521498, systemId#21521499, internalUUID#21521500, id#21521501, displayId#21521502, name#21521503, baseUnitOfMeasure#21521504, unitOfMeasures#21521505, unitOfMeasureConversions#21521506, productionAspect#21521507, salesAspect#21521508, procurementAspect#21521509, productGroup#21521510, filter(unitOfMeasureConversions#21521506, lambdafunction((((lambda u#21518048.measurementUnit1.code = productPlant#21521498.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#21518048.measurementUnit1.internalRefUUID = productPlant#21521498.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#21518048.measurementUnit2.code = baseUnitOfMeasure#21521504.code) AND (lambda u#21518048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#21521504.internalRefUUID))), lambda u#21518048, false)) AS filteredUnitOfMeasureConversions#21521511]
(774) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21521511.quantityNumerator), true, [quantityNumerator#21521512]
(775) Project
Arguments: [product#21521486, plant#21521487, orderDateTime#21521488, productPlant#21521498, systemId#21521499, internalUUID#21521500, id#21521501, displayId#21521502, name#21521503, baseUnitOfMeasure#21521504, unitOfMeasures#21521505, unitOfMeasureConversions#21521506, productionAspect#21521507, salesAspect#21521508, procurementAspect#21521509, productGroup#21521510, filteredUnitOfMeasureConversions#21521511, quantityNumerator#21521512]
(776) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21521511.quantityDenominator), true, [quantityDenominator#21521513]
(777) Project
Arguments: [product#21521486, plant#21521487, orderDateTime#21521488, productPlant#21521498, systemId#21521499, internalUUID#21521500, id#21521501, displayId#21521502, name#21521503, baseUnitOfMeasure#21521504, unitOfMeasures#21521505, unitOfMeasureConversions#21521506, productionAspect#21521507, salesAspect#21521508, procurementAspect#21521509, productGroup#21521510, filteredUnitOfMeasureConversions#21521511, quantityNumerator#21521512, quantityDenominator#21521513]
(778) Project
Arguments: [product#21521486, plant#21521487, orderDateTime#21521488, productPlant#21521498, systemId#21521499, internalUUID#21521500, id#21521501, displayId#21521502, name#21521503, baseUnitOfMeasure#21521504, unitOfMeasures#21521505, unitOfMeasureConversions#21521506, productionAspect#21521507, salesAspect#21521508, procurementAspect#21521509, productGroup#21521510, filteredUnitOfMeasureConversions#21521511, quantityNumerator#21521512, quantityDenominator#21521513, (cast(quantityNumerator#21521512 as double) / cast(quantityDenominator#21521513 as double)) AS outboundUnit#21521514]
(779) Project
Arguments: [product#21521486, plant#21521487, orderDateTime#21521488, productPlant#21521498, systemId#21521499, internalUUID#21521500, id#21521501, displayId#21521502, name#21521503, baseUnitOfMeasure#21521504, unitOfMeasures#21521505, unitOfMeasureConversions#21521506, productionAspect#21521507, salesAspect#21521508, procurementAspect#21521509, productGroup#21521510, filteredUnitOfMeasureConversions#21521511, quantityNumerator#21521512, quantityDenominator#21521513, CASE WHEN (isnull(outboundUnit#21521514) OR (outboundUnit#21521514 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#21521514 END AS outboundUnit#21521515]
(780) Project
Arguments: [product#21521486, plant#21521487, orderDateTime#21521488, productPlant#21521498, outboundUnit#21521515]
(781) LogicalRelation
Arguments: parquet, [systemId#21521516, internalUUID#21521517, product#21521518, plant#21521519, calculationDateTime#21521520, stockQuantities#21521521], false
(782) Repartition
Arguments: 25, true
(783) LogicalRelation
Arguments: parquet, [marketUnit#21521522, description#21521523, articleHierarchy#21521524, defaultCurrency#21521525, responsibilities#21521526, replenishmentTypes#21521527, distributionCenters#21521528, assignedArticleHierarchyNodes#21521529, minOrderQtySetting#21521530, listingCheck#21521531, odsSelection#21521532, demandProfiles#21521533, constraintProfiles#21521534, optimizationProfiles#21521535, orderGroupSplitProfiles#21521536, supplierMinimumProfiles#21521537, multipleRestrictionProfiles#21521538, preferredUomSource#21521539, handlingOfUnfulfilledDemands#21521540, negligibleQuantitiesThreshold#21521541, eventtype#21521542, minOrderQtySettingInternal#21521543], false
(784) Repartition
Arguments: 25, true
(785) Filter
Arguments: (marketUnit#21521522 <=> SS_Test_1)
(786) Project
Arguments: [marketUnit#21521522, description#21521523, articleHierarchy#21521524, defaultCurrency#21521525, responsibilities#21521526, replenishmentTypes#21521527, distributionCenters#21521528, assignedArticleHierarchyNodes#21521529, minOrderQtySetting#21521530, listingCheck#21521531, odsSelection#21521532, demandProfiles#21521533, constraintProfiles#21521534, optimizationProfiles#21521535, orderGroupSplitProfiles#21521536, supplierMinimumProfiles#21521537, multipleRestrictionProfiles#21521538, preferredUomSource#21521539, handlingOfUnfulfilledDemands#21521540, negligibleQuantitiesThreshold#21521541, eventtype#21521542, minOrderQtySettingInternal#21521543]
(787) Project
Arguments: [distributionCenters#21521528]
(788) Generate
Arguments: explode(distributionCenters#21521528), false, [distributionCenters#21521544]
(789) Project
Arguments: [distributionCenters#21521544]
(790) Generate
Arguments: explode(distributionCenters#21521544.storageLocations), false, [storageLocations#21521545]
(791) Project
Arguments: [distributionCenters#21521544.id AS plantId#21521546, distributionCenters#21521544.internalRefUUID AS plantUuid#21521547, storageLocations#21521545]
(792) Project
Arguments: [plantId#21521546, plantUuid#21521547, storageLocations#21521545.id AS storageLocId#21521548, storageLocations#21521545.internalRefUUID AS storageLocUuid#21521549]
(793) LogicalRelation
Arguments: parquet, [product#21521550, plant#21521551, orderDateTime#21521552, planningStartDateTime#21521553], false
(794) RepartitionByExpression
Arguments: [product#21521550, plant#21521551], 25
(795) Project
Arguments: [product#21521550, plant#21521551, orderDateTime#21521552]
(796) LogicalRelation
Arguments: parquet, [systemId#21521554, internalUUID#21521555, plant#21521556, product#21521557, blockedForReplenishmentStartingFrom#21521558, productionAspect#21521559, salesPlant#21521560, listing#21521561], false
(797) Repartition
Arguments: 25, true
(798) Project
Arguments: [systemId#21521554, internalUUID#21521555, plant#21521556, product#21521557, blockedForReplenishmentStartingFrom#21521558, productionAspect#21521559, salesPlant#21521560, listing#21521561, struct(systemId, systemId#21521554, internalUUID, internalUUID#21521555, plant, plant#21521556, product, product#21521557, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#21521558, productionAspect, productionAspect#21521559, salesPlant, salesPlant#21521560, listing, listing#21521561) AS productPlant#21521562]
(799) Project
Arguments: [productPlant#21521562]
(800) Join
Arguments: LeftOuter, ((product#21521550 <=> productPlant#21521562.product.internalRefUUID) AND (plant#21521551 <=> productPlant#21521562.plant.internalRefUUID))
(801) Project
Arguments: [product#21521550, plant#21521551, orderDateTime#21521552, productPlant#21521562]
(802) LogicalRelation
Arguments: parquet, [systemId#21521563, internalUUID#21521564, id#21521565, displayId#21521566, name#21521567, baseUnitOfMeasure#21521568, unitOfMeasures#21521569, unitOfMeasureConversions#21521570, productionAspect#21521571, salesAspect#21521572, procurementAspect#21521573, productGroup#21521574], false
(803) Repartition
Arguments: 25, true
(804) Join
Arguments: LeftOuter, (product#21521550 = internalUUID#21521564)
(805) Project
Arguments: [product#21521550, plant#21521551, orderDateTime#21521552, productPlant#21521562, systemId#21521563, internalUUID#21521564, id#21521565, displayId#21521566, name#21521567, baseUnitOfMeasure#21521568, unitOfMeasures#21521569, unitOfMeasureConversions#21521570, productionAspect#21521571, salesAspect#21521572, procurementAspect#21521573, productGroup#21521574, filter(unitOfMeasureConversions#21521570, lambdafunction((((lambda u#21518048.measurementUnit1.code = productPlant#21521562.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#21518048.measurementUnit1.internalRefUUID = productPlant#21521562.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#21518048.measurementUnit2.code = baseUnitOfMeasure#21521568.code) AND (lambda u#21518048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#21521568.internalRefUUID))), lambda u#21518048, false)) AS filteredUnitOfMeasureConversions#21521575]
(806) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21521575.quantityNumerator), true, [quantityNumerator#21521576]
(807) Project
Arguments: [product#21521550, plant#21521551, orderDateTime#21521552, productPlant#21521562, systemId#21521563, internalUUID#21521564, id#21521565, displayId#21521566, name#21521567, baseUnitOfMeasure#21521568, unitOfMeasures#21521569, unitOfMeasureConversions#21521570, productionAspect#21521571, salesAspect#21521572, procurementAspect#21521573, productGroup#21521574, filteredUnitOfMeasureConversions#21521575, quantityNumerator#21521576]
(808) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21521575.quantityDenominator), true, [quantityDenominator#21521577]
(809) Project
Arguments: [product#21521550, plant#21521551, orderDateTime#21521552, productPlant#21521562, systemId#21521563, internalUUID#21521564, id#21521565, displayId#21521566, name#21521567, baseUnitOfMeasure#21521568, unitOfMeasures#21521569, unitOfMeasureConversions#21521570, productionAspect#21521571, salesAspect#21521572, procurementAspect#21521573, productGroup#21521574, filteredUnitOfMeasureConversions#21521575, quantityNumerator#21521576, quantityDenominator#21521577]
(810) Project
Arguments: [product#21521550, plant#21521551, orderDateTime#21521552, productPlant#21521562, systemId#21521563, internalUUID#21521564, id#21521565, displayId#21521566, name#21521567, baseUnitOfMeasure#21521568, unitOfMeasures#21521569, unitOfMeasureConversions#21521570, productionAspect#21521571, salesAspect#21521572, procurementAspect#21521573, productGroup#21521574, filteredUnitOfMeasureConversions#21521575, quantityNumerator#21521576, quantityDenominator#21521577, (cast(quantityNumerator#21521576 as double) / cast(quantityDenominator#21521577 as double)) AS outboundUnit#21521578]
(811) Project
Arguments: [product#21521550, plant#21521551, orderDateTime#21521552, productPlant#21521562, systemId#21521563, internalUUID#21521564, id#21521565, displayId#21521566, name#21521567, baseUnitOfMeasure#21521568, unitOfMeasures#21521569, unitOfMeasureConversions#21521570, productionAspect#21521571, salesAspect#21521572, procurementAspect#21521573, productGroup#21521574, filteredUnitOfMeasureConversions#21521575, quantityNumerator#21521576, quantityDenominator#21521577, CASE WHEN (isnull(outboundUnit#21521578) OR (outboundUnit#21521578 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#21521578 END AS outboundUnit#21521579]
(812) Project
Arguments: [product#21521550, plant#21521551, orderDateTime#21521552, productPlant#21521562, outboundUnit#21521579]
(813) Project
Arguments: [plant#21521551]
(814) Deduplicate
Arguments: [plant#21521551]
(815) Join
Arguments: Inner, (plantUuid#21521547 = plant#21521551)
(816) Project
Arguments: [plantId#21521546, plantUuid#21521547, storageLocId#21521548, storageLocUuid#21521549]
(817) Join
Arguments: Inner, (plant#21521519.internalRefUUID <=> plantUuid#21521547)
(818) Generate
Arguments: explode(filter(stockQuantities#21521521, lambdafunction(((lambda x#21518157.storageLocation.internalRefUuid = storageLocUuid#21521549) AND (lambda x#21518157.storageLocation.Id = storageLocId#21521548)), lambda x#21518157, false))), false, [stockQuantity#21521580]
(819) Project
Arguments: [systemId#21521516, internalUUID#21521517, product#21521518, plant#21521519, calculationDateTime#21521520, stockQuantities#21521521, plantId#21521546, plantUuid#21521547, storageLocId#21521548, storageLocUuid#21521549, stockQuantity#21521580]
(820) Aggregate
Arguments: [plantUuid#21521547, internalUUID#21521517, plant#21521519, product#21521518, systemId#21521516], [plantUuid#21521547, internalUUID#21521517, plant#21521519, product#21521518, systemId#21521516, first(calculationDateTime#21521520, false) AS calculationDateTime#21521581, collect_list(stockQuantity#21521580, 0, 0) AS stockQuantities#21521582]
(821) Project
Arguments: [systemId#21521516, internalUUID#21521517, product#21521518, plant#21521519, calculationDateTime#21521581, stockQuantities#21521582]
(822) Generate
Arguments: explode(stockQuantities#21521582), false, [stockQuantity#21521583]
(823) Project
Arguments: [systemId#21521516, internalUUID#21521517, product#21521518, plant#21521519, calculationDateTime#21521581, stockQuantities#21521582, stockQuantity#21521583]
(824) Project
Arguments: [plant#21521519.id AS plant#21521584, plant#21521519.internalRefUUID AS plantUuid#21521585, product#21521518.id AS product#21521586, product#21521518.internalRefUUID AS productUuid#21521587, calculationDateTime#21521581, stockQuantity#21521583.storagelocation.id AS storageLocId#21521588, stockQuantity#21521583.storagelocation.internalRefUUID AS storageLocUuid#21521589, stockQuantity#21521583.quantity.measure AS quantity#21521590, stockQuantity#21521583.specialStockIndicator.code AS specialStockIndicator#21521591, stockQuantity#21521583.stockType.code AS stockType#21521592]
(825) Filter
Arguments: ((specialStockIndicator#21521591 = ) AND (stockType#21521592 = 01))
(826) LogicalRelation
Arguments: parquet, [product#21521593, plant#21521594, orderDateTime#21521595, planningStartDateTime#21521596], false
(827) RepartitionByExpression
Arguments: [product#21521593, plant#21521594], 25
(828) Project
Arguments: [product#21521593, plant#21521594, orderDateTime#21521595]
(829) LogicalRelation
Arguments: parquet, [systemId#21521597, internalUUID#21521598, plant#21521599, product#21521600, blockedForReplenishmentStartingFrom#21521601, productionAspect#21521602, salesPlant#21521603, listing#21521604], false
(830) Repartition
Arguments: 25, true
(831) Project
Arguments: [systemId#21521597, internalUUID#21521598, plant#21521599, product#21521600, blockedForReplenishmentStartingFrom#21521601, productionAspect#21521602, salesPlant#21521603, listing#21521604, struct(systemId, systemId#21521597, internalUUID, internalUUID#21521598, plant, plant#21521599, product, product#21521600, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#21521601, productionAspect, productionAspect#21521602, salesPlant, salesPlant#21521603, listing, listing#21521604) AS productPlant#21521605]
(832) Project
Arguments: [productPlant#21521605]
(833) Join
Arguments: LeftOuter, ((product#21521593 <=> productPlant#21521605.product.internalRefUUID) AND (plant#21521594 <=> productPlant#21521605.plant.internalRefUUID))
(834) Project
Arguments: [product#21521593, plant#21521594, orderDateTime#21521595, productPlant#21521605]
(835) LogicalRelation
Arguments: parquet, [systemId#21521606, internalUUID#21521607, id#21521608, displayId#21521609, name#21521610, baseUnitOfMeasure#21521611, unitOfMeasures#21521612, unitOfMeasureConversions#21521613, productionAspect#21521614, salesAspect#21521615, procurementAspect#21521616, productGroup#21521617], false
(836) Repartition
Arguments: 25, true
(837) Join
Arguments: LeftOuter, (product#21521593 = internalUUID#21521607)
(838) Project
Arguments: [product#21521593, plant#21521594, orderDateTime#21521595, productPlant#21521605, systemId#21521606, internalUUID#21521607, id#21521608, displayId#21521609, name#21521610, baseUnitOfMeasure#21521611, unitOfMeasures#21521612, unitOfMeasureConversions#21521613, productionAspect#21521614, salesAspect#21521615, procurementAspect#21521616, productGroup#21521617, filter(unitOfMeasureConversions#21521613, lambdafunction((((lambda u#21518048.measurementUnit1.code = productPlant#21521605.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#21518048.measurementUnit1.internalRefUUID = productPlant#21521605.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#21518048.measurementUnit2.code = baseUnitOfMeasure#21521611.code) AND (lambda u#21518048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#21521611.internalRefUUID))), lambda u#21518048, false)) AS filteredUnitOfMeasureConversions#21521618]
(839) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21521618.quantityNumerator), true, [quantityNumerator#21521619]
(840) Project
Arguments: [product#21521593, plant#21521594, orderDateTime#21521595, productPlant#21521605, systemId#21521606, internalUUID#21521607, id#21521608, displayId#21521609, name#21521610, baseUnitOfMeasure#21521611, unitOfMeasures#21521612, unitOfMeasureConversions#21521613, productionAspect#21521614, salesAspect#21521615, procurementAspect#21521616, productGroup#21521617, filteredUnitOfMeasureConversions#21521618, quantityNumerator#21521619]
(841) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21521618.quantityDenominator), true, [quantityDenominator#21521620]
(842) Project
Arguments: [product#21521593, plant#21521594, orderDateTime#21521595, productPlant#21521605, systemId#21521606, internalUUID#21521607, id#21521608, displayId#21521609, name#21521610, baseUnitOfMeasure#21521611, unitOfMeasures#21521612, unitOfMeasureConversions#21521613, productionAspect#21521614, salesAspect#21521615, procurementAspect#21521616, productGroup#21521617, filteredUnitOfMeasureConversions#21521618, quantityNumerator#21521619, quantityDenominator#21521620]
(843) Project
Arguments: [product#21521593, plant#21521594, orderDateTime#21521595, productPlant#21521605, systemId#21521606, internalUUID#21521607, id#21521608, displayId#21521609, name#21521610, baseUnitOfMeasure#21521611, unitOfMeasures#21521612, unitOfMeasureConversions#21521613, productionAspect#21521614, salesAspect#21521615, procurementAspect#21521616, productGroup#21521617, filteredUnitOfMeasureConversions#21521618, quantityNumerator#21521619, quantityDenominator#21521620, (cast(quantityNumerator#21521619 as double) / cast(quantityDenominator#21521620 as double)) AS outboundUnit#21521621]
(844) Project
Arguments: [product#21521593, plant#21521594, orderDateTime#21521595, productPlant#21521605, systemId#21521606, internalUUID#21521607, id#21521608, displayId#21521609, name#21521610, baseUnitOfMeasure#21521611, unitOfMeasures#21521612, unitOfMeasureConversions#21521613, productionAspect#21521614, salesAspect#21521615, procurementAspect#21521616, productGroup#21521617, filteredUnitOfMeasureConversions#21521618, quantityNumerator#21521619, quantityDenominator#21521620, CASE WHEN (isnull(outboundUnit#21521621) OR (outboundUnit#21521621 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#21521621 END AS outboundUnit#21521622]
(845) Project
Arguments: [product#21521593, plant#21521594, orderDateTime#21521595, productPlant#21521605, outboundUnit#21521622]
(846) Join
Arguments: Inner, ((plantUuid#21521585 = plant#21521594) AND (productUuid#21521587 = product#21521593))
(847) Filter
Arguments: (calculationDateTime#21521581 <= orderDateTime#21521595)
(848) Project
Arguments: [plantUuid#21521585 AS plant#21521623, productUuid#21521587 AS product#21521624, storageLocId#21521588, calculationDateTime#21521581, quantity#21521590]
(849) LogicalRelation
Arguments: parquet, [systemId#21521625, internalUUID#21521626, product#21521627, plant#21521628, calculationDateTime#21521629, stockQuantities#21521630], false
(850) Repartition
Arguments: 25, true
(851) LogicalRelation
Arguments: parquet, [marketUnit#21521631, description#21521632, articleHierarchy#21521633, defaultCurrency#21521634, responsibilities#21521635, replenishmentTypes#21521636, distributionCenters#21521637, assignedArticleHierarchyNodes#21521638, minOrderQtySetting#21521639, listingCheck#21521640, odsSelection#21521641, demandProfiles#21521642, constraintProfiles#21521643, optimizationProfiles#21521644, orderGroupSplitProfiles#21521645, supplierMinimumProfiles#21521646, multipleRestrictionProfiles#21521647, preferredUomSource#21521648, handlingOfUnfulfilledDemands#21521649, negligibleQuantitiesThreshold#21521650, eventtype#21521651, minOrderQtySettingInternal#21521652], false
(852) Repartition
Arguments: 25, true
(853) Filter
Arguments: (marketUnit#21521631 <=> SS_Test_1)
(854) Project
Arguments: [marketUnit#21521631, description#21521632, articleHierarchy#21521633, defaultCurrency#21521634, responsibilities#21521635, replenishmentTypes#21521636, distributionCenters#21521637, assignedArticleHierarchyNodes#21521638, minOrderQtySetting#21521639, listingCheck#21521640, odsSelection#21521641, demandProfiles#21521642, constraintProfiles#21521643, optimizationProfiles#21521644, orderGroupSplitProfiles#21521645, supplierMinimumProfiles#21521646, multipleRestrictionProfiles#21521647, preferredUomSource#21521648, handlingOfUnfulfilledDemands#21521649, negligibleQuantitiesThreshold#21521650, eventtype#21521651, minOrderQtySettingInternal#21521652]
(855) Project
Arguments: [distributionCenters#21521637]
(856) Generate
Arguments: explode(distributionCenters#21521637), false, [distributionCenters#21521653]
(857) Project
Arguments: [distributionCenters#21521653]
(858) Generate
Arguments: explode(distributionCenters#21521653.storageLocations), false, [storageLocations#21521654]
(859) Project
Arguments: [distributionCenters#21521653.id AS plantId#21521655, distributionCenters#21521653.internalRefUUID AS plantUuid#21521656, storageLocations#21521654]
(860) Project
Arguments: [plantId#21521655, plantUuid#21521656, storageLocations#21521654.id AS storageLocId#21521657, storageLocations#21521654.internalRefUUID AS storageLocUuid#21521658]
(861) LogicalRelation
Arguments: parquet, [product#21521659, plant#21521660, orderDateTime#21521661, planningStartDateTime#21521662], false
(862) RepartitionByExpression
Arguments: [product#21521659, plant#21521660], 25
(863) Project
Arguments: [product#21521659, plant#21521660, orderDateTime#21521661]
(864) LogicalRelation
Arguments: parquet, [systemId#21521663, internalUUID#21521664, plant#21521665, product#21521666, blockedForReplenishmentStartingFrom#21521667, productionAspect#21521668, salesPlant#21521669, listing#21521670], false
(865) Repartition
Arguments: 25, true
(866) Project
Arguments: [systemId#21521663, internalUUID#21521664, plant#21521665, product#21521666, blockedForReplenishmentStartingFrom#21521667, productionAspect#21521668, salesPlant#21521669, listing#21521670, struct(systemId, systemId#21521663, internalUUID, internalUUID#21521664, plant, plant#21521665, product, product#21521666, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#21521667, productionAspect, productionAspect#21521668, salesPlant, salesPlant#21521669, listing, listing#21521670) AS productPlant#21521671]
(867) Project
Arguments: [productPlant#21521671]
(868) Join
Arguments: LeftOuter, ((product#21521659 <=> productPlant#21521671.product.internalRefUUID) AND (plant#21521660 <=> productPlant#21521671.plant.internalRefUUID))
(869) Project
Arguments: [product#21521659, plant#21521660, orderDateTime#21521661, productPlant#21521671]
(870) LogicalRelation
Arguments: parquet, [systemId#21521672, internalUUID#21521673, id#21521674, displayId#21521675, name#21521676, baseUnitOfMeasure#21521677, unitOfMeasures#21521678, unitOfMeasureConversions#21521679, productionAspect#21521680, salesAspect#21521681, procurementAspect#21521682, productGroup#21521683], false
(871) Repartition
Arguments: 25, true
(872) Join
Arguments: LeftOuter, (product#21521659 = internalUUID#21521673)
(873) Project
Arguments: [product#21521659, plant#21521660, orderDateTime#21521661, productPlant#21521671, systemId#21521672, internalUUID#21521673, id#21521674, displayId#21521675, name#21521676, baseUnitOfMeasure#21521677, unitOfMeasures#21521678, unitOfMeasureConversions#21521679, productionAspect#21521680, salesAspect#21521681, procurementAspect#21521682, productGroup#21521683, filter(unitOfMeasureConversions#21521679, lambdafunction((((lambda u#21518048.measurementUnit1.code = productPlant#21521671.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#21518048.measurementUnit1.internalRefUUID = productPlant#21521671.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#21518048.measurementUnit2.code = baseUnitOfMeasure#21521677.code) AND (lambda u#21518048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#21521677.internalRefUUID))), lambda u#21518048, false)) AS filteredUnitOfMeasureConversions#21521684]
(874) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21521684.quantityNumerator), true, [quantityNumerator#21521685]
(875) Project
Arguments: [product#21521659, plant#21521660, orderDateTime#21521661, productPlant#21521671, systemId#21521672, internalUUID#21521673, id#21521674, displayId#21521675, name#21521676, baseUnitOfMeasure#21521677, unitOfMeasures#21521678, unitOfMeasureConversions#21521679, productionAspect#21521680, salesAspect#21521681, procurementAspect#21521682, productGroup#21521683, filteredUnitOfMeasureConversions#21521684, quantityNumerator#21521685]
(876) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21521684.quantityDenominator), true, [quantityDenominator#21521686]
(877) Project
Arguments: [product#21521659, plant#21521660, orderDateTime#21521661, productPlant#21521671, systemId#21521672, internalUUID#21521673, id#21521674, displayId#21521675, name#21521676, baseUnitOfMeasure#21521677, unitOfMeasures#21521678, unitOfMeasureConversions#21521679, productionAspect#21521680, salesAspect#21521681, procurementAspect#21521682, productGroup#21521683, filteredUnitOfMeasureConversions#21521684, quantityNumerator#21521685, quantityDenominator#21521686]
(878) Project
Arguments: [product#21521659, plant#21521660, orderDateTime#21521661, productPlant#21521671, systemId#21521672, internalUUID#21521673, id#21521674, displayId#21521675, name#21521676, baseUnitOfMeasure#21521677, unitOfMeasures#21521678, unitOfMeasureConversions#21521679, productionAspect#21521680, salesAspect#21521681, procurementAspect#21521682, productGroup#21521683, filteredUnitOfMeasureConversions#21521684, quantityNumerator#21521685, quantityDenominator#21521686, (cast(quantityNumerator#21521685 as double) / cast(quantityDenominator#21521686 as double)) AS outboundUnit#21521687]
(879) Project
Arguments: [product#21521659, plant#21521660, orderDateTime#21521661, productPlant#21521671, systemId#21521672, internalUUID#21521673, id#21521674, displayId#21521675, name#21521676, baseUnitOfMeasure#21521677, unitOfMeasures#21521678, unitOfMeasureConversions#21521679, productionAspect#21521680, salesAspect#21521681, procurementAspect#21521682, productGroup#21521683, filteredUnitOfMeasureConversions#21521684, quantityNumerator#21521685, quantityDenominator#21521686, CASE WHEN (isnull(outboundUnit#21521687) OR (outboundUnit#21521687 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#21521687 END AS outboundUnit#21521688]
(880) Project
Arguments: [product#21521659, plant#21521660, orderDateTime#21521661, productPlant#21521671, outboundUnit#21521688]
(881) Project
Arguments: [plant#21521660]
(882) Deduplicate
Arguments: [plant#21521660]
(883) Join
Arguments: Inner, (plantUuid#21521656 = plant#21521660)
(884) Project
Arguments: [plantId#21521655, plantUuid#21521656, storageLocId#21521657, storageLocUuid#21521658]
(885) Join
Arguments: Inner, (plant#21521628.internalRefUUID <=> plantUuid#21521656)
(886) Generate
Arguments: explode(filter(stockQuantities#21521630, lambdafunction(((lambda x#21518157.storageLocation.internalRefUuid = storageLocUuid#21521658) AND (lambda x#21518157.storageLocation.Id = storageLocId#21521657)), lambda x#21518157, false))), false, [stockQuantity#21521689]
(887) Project
Arguments: [systemId#21521625, internalUUID#21521626, product#21521627, plant#21521628, calculationDateTime#21521629, stockQuantities#21521630, plantId#21521655, plantUuid#21521656, storageLocId#21521657, storageLocUuid#21521658, stockQuantity#21521689]
(888) Aggregate
Arguments: [plantUuid#21521656, internalUUID#21521626, plant#21521628, product#21521627, systemId#21521625], [plantUuid#21521656, internalUUID#21521626, plant#21521628, product#21521627, systemId#21521625, first(calculationDateTime#21521629, false) AS calculationDateTime#21521690, collect_list(stockQuantity#21521689, 0, 0) AS stockQuantities#21521691]
(889) Project
Arguments: [systemId#21521625, internalUUID#21521626, product#21521627, plant#21521628, calculationDateTime#21521690, stockQuantities#21521691]
(890) Generate
Arguments: explode(stockQuantities#21521691), false, [stockQuantity#21521692]
(891) Project
Arguments: [systemId#21521625, internalUUID#21521626, product#21521627, plant#21521628, calculationDateTime#21521690, stockQuantities#21521691, stockQuantity#21521692]
(892) Project
Arguments: [plant#21521628.id AS plant#21521693, plant#21521628.internalRefUUID AS plantUuid#21521694, product#21521627.id AS product#21521695, product#21521627.internalRefUUID AS productUuid#21521696, calculationDateTime#21521690, stockQuantity#21521692.storagelocation.id AS storageLocId#21521697, stockQuantity#21521692.storagelocation.internalRefUUID AS storageLocUuid#21521698, stockQuantity#21521692.quantity.measure AS quantity#21521699, stockQuantity#21521692.specialStockIndicator.code AS specialStockIndicator#21521700, stockQuantity#21521692.stockType.code AS stockType#21521701]
(893) Filter
Arguments: ((specialStockIndicator#21521700 = ) AND (stockType#21521701 = 01))
(894) LogicalRelation
Arguments: parquet, [product#21521702, plant#21521703, orderDateTime#21521704, planningStartDateTime#21521705], false
(895) RepartitionByExpression
Arguments: [product#21521702, plant#21521703], 25
(896) Project
Arguments: [product#21521702, plant#21521703, orderDateTime#21521704]
(897) LogicalRelation
Arguments: parquet, [systemId#21521706, internalUUID#21521707, plant#21521708, product#21521709, blockedForReplenishmentStartingFrom#21521710, productionAspect#21521711, salesPlant#21521712, listing#21521713], false
(898) Repartition
Arguments: 25, true
(899) Project
Arguments: [systemId#21521706, internalUUID#21521707, plant#21521708, product#21521709, blockedForReplenishmentStartingFrom#21521710, productionAspect#21521711, salesPlant#21521712, listing#21521713, struct(systemId, systemId#21521706, internalUUID, internalUUID#21521707, plant, plant#21521708, product, product#21521709, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#21521710, productionAspect, productionAspect#21521711, salesPlant, salesPlant#21521712, listing, listing#21521713) AS productPlant#21521714]
(900) Project
Arguments: [productPlant#21521714]
(901) Join
Arguments: LeftOuter, ((product#21521702 <=> productPlant#21521714.product.internalRefUUID) AND (plant#21521703 <=> productPlant#21521714.plant.internalRefUUID))
(902) Project
Arguments: [product#21521702, plant#21521703, orderDateTime#21521704, productPlant#21521714]
(903) LogicalRelation
Arguments: parquet, [systemId#21521715, internalUUID#21521716, id#21521717, displayId#21521718, name#21521719, baseUnitOfMeasure#21521720, unitOfMeasures#21521721, unitOfMeasureConversions#21521722, productionAspect#21521723, salesAspect#21521724, procurementAspect#21521725, productGroup#21521726], false
(904) Repartition
Arguments: 25, true
(905) Join
Arguments: LeftOuter, (product#21521702 = internalUUID#21521716)
(906) Project
Arguments: [product#21521702, plant#21521703, orderDateTime#21521704, productPlant#21521714, systemId#21521715, internalUUID#21521716, id#21521717, displayId#21521718, name#21521719, baseUnitOfMeasure#21521720, unitOfMeasures#21521721, unitOfMeasureConversions#21521722, productionAspect#21521723, salesAspect#21521724, procurementAspect#21521725, productGroup#21521726, filter(unitOfMeasureConversions#21521722, lambdafunction((((lambda u#21518048.measurementUnit1.code = productPlant#21521714.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#21518048.measurementUnit1.internalRefUUID = productPlant#21521714.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#21518048.measurementUnit2.code = baseUnitOfMeasure#21521720.code) AND (lambda u#21518048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#21521720.internalRefUUID))), lambda u#21518048, false)) AS filteredUnitOfMeasureConversions#21521727]
(907) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21521727.quantityNumerator), true, [quantityNumerator#21521728]
(908) Project
Arguments: [product#21521702, plant#21521703, orderDateTime#21521704, productPlant#21521714, systemId#21521715, internalUUID#21521716, id#21521717, displayId#21521718, name#21521719, baseUnitOfMeasure#21521720, unitOfMeasures#21521721, unitOfMeasureConversions#21521722, productionAspect#21521723, salesAspect#21521724, procurementAspect#21521725, productGroup#21521726, filteredUnitOfMeasureConversions#21521727, quantityNumerator#21521728]
(909) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21521727.quantityDenominator), true, [quantityDenominator#21521729]
(910) Project
Arguments: [product#21521702, plant#21521703, orderDateTime#21521704, productPlant#21521714, systemId#21521715, internalUUID#21521716, id#21521717, displayId#21521718, name#21521719, baseUnitOfMeasure#21521720, unitOfMeasures#21521721, unitOfMeasureConversions#21521722, productionAspect#21521723, salesAspect#21521724, procurementAspect#21521725, productGroup#21521726, filteredUnitOfMeasureConversions#21521727, quantityNumerator#21521728, quantityDenominator#21521729]
(911) Project
Arguments: [product#21521702, plant#21521703, orderDateTime#21521704, productPlant#21521714, systemId#21521715, internalUUID#21521716, id#21521717, displayId#21521718, name#21521719, baseUnitOfMeasure#21521720, unitOfMeasures#21521721, unitOfMeasureConversions#21521722, productionAspect#21521723, salesAspect#21521724, procurementAspect#21521725, productGroup#21521726, filteredUnitOfMeasureConversions#21521727, quantityNumerator#21521728, quantityDenominator#21521729, (cast(quantityNumerator#21521728 as double) / cast(quantityDenominator#21521729 as double)) AS outboundUnit#21521730]
(912) Project
Arguments: [product#21521702, plant#21521703, orderDateTime#21521704, productPlant#21521714, systemId#21521715, internalUUID#21521716, id#21521717, displayId#21521718, name#21521719, baseUnitOfMeasure#21521720, unitOfMeasures#21521721, unitOfMeasureConversions#21521722, productionAspect#21521723, salesAspect#21521724, procurementAspect#21521725, productGroup#21521726, filteredUnitOfMeasureConversions#21521727, quantityNumerator#21521728, quantityDenominator#21521729, CASE WHEN (isnull(outboundUnit#21521730) OR (outboundUnit#21521730 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#21521730 END AS outboundUnit#21521731]
(913) Project
Arguments: [product#21521702, plant#21521703, orderDateTime#21521704, productPlant#21521714, outboundUnit#21521731]
(914) Join
Arguments: Inner, ((plantUuid#21521694 = plant#21521703) AND (productUuid#21521696 = product#21521702))
(915) Filter
Arguments: (calculationDateTime#21521690 <= orderDateTime#21521704)
(916) Project
Arguments: [plantUuid#21521694 AS plant#21521732, productUuid#21521696 AS product#21521733, storageLocId#21521697, calculationDateTime#21521690, quantity#21521699]
(917) Aggregate
Arguments: [plant#21521732, product#21521733, storageLocId#21521697], [plant#21521732, product#21521733, storageLocId#21521697, max(calculationDateTime#21521690) AS max_calc_datetime#21521734]
(918) Join
Arguments: Inner, ((((plant#21521623 <=> plant#21521732) AND (product#21521624 <=> product#21521733)) AND (storageLocId#21521588 <=> storageLocId#21521697)) AND (calculationDateTime#21521581 <=> max_calc_datetime#21521734))
(919) Project
Arguments: [plant#21521623, product#21521624, storageLocId#21521588, calculationDateTime#21521581, quantity#21521590]
(920) Aggregate
Arguments: [product#21521624, plant#21521623], [product#21521624, plant#21521623, sum(quantity#21521590) AS quantitySum#21521735, min(calculationDateTime#21521581) AS minCalculationDateTime#21521736]
(921) Project
Arguments: [product#21521624, plant#21521623, quantitySum#21521735, minCalculationDateTime#21521736, round(quantitySum#21521735, 0) AS roundedQuantitySum#21521737]
(922) Join
Arguments: LeftOuter, ((plant#21521487 = plant#21521623) AND (product#21521486 = product#21521624))
(923) Project
Arguments: [product#21521486, plant#21521487, orderDateTime#21521488, productPlant#21521498, outboundUnit#21521515, roundedQuantitySum#21521737, minCalculationDateTime#21521736]
(924) Project
Arguments: [product#21521486, plant#21521487, orderDateTime#21521488, productPlant#21521498, outboundUnit#21521515, roundedQuantitySum#21521737, minCalculationDateTime#21521736, CASE WHEN isnotnull(minCalculationDateTime#21521736) THEN minCalculationDateTime#21521736 ELSE orderDateTime#21521488 END AS stockDatetime#21521738]
(925) Project
Arguments: [product#21521486, plant#21521487, orderDateTime#21521488, productPlant#21521498, outboundUnit#21521515, roundedQuantitySum#21521737, minCalculationDateTime#21521736, stockDatetime#21521738, CASE WHEN isnotnull(roundedQuantitySum#21521737) THEN array(roundedQuantitySum#21521737) ELSE array(0.0) END AS stockBatchQuantities#21521739]
(926) Project
Arguments: [product#21521486, plant#21521487, orderDateTime#21521488, productPlant#21521498, outboundUnit#21521515, roundedQuantitySum#21521737, minCalculationDateTime#21521736, stockDatetime#21521738, stockBatchQuantities#21521739, array(2199-01-01 00:00:00) AS stockBatchShelfLifeEndDatetimes#21521740]
(927) Project
Arguments: [product#21521486, plant#21521487, orderDateTime#21521488, productPlant#21521498, outboundUnit#21521515, roundedQuantitySum#21521737, stockDatetime#21521738, stockBatchQuantities#21521739, stockBatchShelfLifeEndDatetimes#21521740]
(928) Project
Arguments: [product#21521486, plant#21521487, orderDateTime#21521488, productPlant#21521498, outboundUnit#21521515, stockDatetime#21521738, stockBatchQuantities#21521739, stockBatchShelfLifeEndDatetimes#21521740]
(929) LogicalRelation
Arguments: parquet, [product#21521741, plant#21521742, orderDateTime#21521743, planningStartDateTime#21521744], false
(930) RepartitionByExpression
Arguments: [product#21521741, plant#21521742], 25
(931) Project
Arguments: [product#21521741, plant#21521742, orderDateTime#21521743]
(932) LogicalRelation
Arguments: parquet, [systemId#21521745, internalUUID#21521746, plant#21521747, product#21521748, blockedForReplenishmentStartingFrom#21521749, productionAspect#21521750, salesPlant#21521751, listing#21521752], false
(933) Repartition
Arguments: 25, true
(934) Project
Arguments: [systemId#21521745, internalUUID#21521746, plant#21521747, product#21521748, blockedForReplenishmentStartingFrom#21521749, productionAspect#21521750, salesPlant#21521751, listing#21521752, struct(systemId, systemId#21521745, internalUUID, internalUUID#21521746, plant, plant#21521747, product, product#21521748, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#21521749, productionAspect, productionAspect#21521750, salesPlant, salesPlant#21521751, listing, listing#21521752) AS productPlant#21521753]
(935) Project
Arguments: [productPlant#21521753]
(936) Join
Arguments: LeftOuter, ((product#21521741 <=> productPlant#21521753.product.internalRefUUID) AND (plant#21521742 <=> productPlant#21521753.plant.internalRefUUID))
(937) Project
Arguments: [product#21521741, plant#21521742, orderDateTime#21521743, productPlant#21521753]
(938) LogicalRelation
Arguments: parquet, [systemId#21521754, internalUUID#21521755, id#21521756, displayId#21521757, name#21521758, baseUnitOfMeasure#21521759, unitOfMeasures#21521760, unitOfMeasureConversions#21521761, productionAspect#21521762, salesAspect#21521763, procurementAspect#21521764, productGroup#21521765], false
(939) Repartition
Arguments: 25, true
(940) Join
Arguments: LeftOuter, (product#21521741 = internalUUID#21521755)
(941) Project
Arguments: [product#21521741, plant#21521742, orderDateTime#21521743, productPlant#21521753, systemId#21521754, internalUUID#21521755, id#21521756, displayId#21521757, name#21521758, baseUnitOfMeasure#21521759, unitOfMeasures#21521760, unitOfMeasureConversions#21521761, productionAspect#21521762, salesAspect#21521763, procurementAspect#21521764, productGroup#21521765, filter(unitOfMeasureConversions#21521761, lambdafunction((((lambda u#21518048.measurementUnit1.code = productPlant#21521753.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#21518048.measurementUnit1.internalRefUUID = productPlant#21521753.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#21518048.measurementUnit2.code = baseUnitOfMeasure#21521759.code) AND (lambda u#21518048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#21521759.internalRefUUID))), lambda u#21518048, false)) AS filteredUnitOfMeasureConversions#21521766]
(942) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21521766.quantityNumerator), true, [quantityNumerator#21521767]
(943) Project
Arguments: [product#21521741, plant#21521742, orderDateTime#21521743, productPlant#21521753, systemId#21521754, internalUUID#21521755, id#21521756, displayId#21521757, name#21521758, baseUnitOfMeasure#21521759, unitOfMeasures#21521760, unitOfMeasureConversions#21521761, productionAspect#21521762, salesAspect#21521763, procurementAspect#21521764, productGroup#21521765, filteredUnitOfMeasureConversions#21521766, quantityNumerator#21521767]
(944) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21521766.quantityDenominator), true, [quantityDenominator#21521768]
(945) Project
Arguments: [product#21521741, plant#21521742, orderDateTime#21521743, productPlant#21521753, systemId#21521754, internalUUID#21521755, id#21521756, displayId#21521757, name#21521758, baseUnitOfMeasure#21521759, unitOfMeasures#21521760, unitOfMeasureConversions#21521761, productionAspect#21521762, salesAspect#21521763, procurementAspect#21521764, productGroup#21521765, filteredUnitOfMeasureConversions#21521766, quantityNumerator#21521767, quantityDenominator#21521768]
(946) Project
Arguments: [product#21521741, plant#21521742, orderDateTime#21521743, productPlant#21521753, systemId#21521754, internalUUID#21521755, id#21521756, displayId#21521757, name#21521758, baseUnitOfMeasure#21521759, unitOfMeasures#21521760, unitOfMeasureConversions#21521761, productionAspect#21521762, salesAspect#21521763, procurementAspect#21521764, productGroup#21521765, filteredUnitOfMeasureConversions#21521766, quantityNumerator#21521767, quantityDenominator#21521768, (cast(quantityNumerator#21521767 as double) / cast(quantityDenominator#21521768 as double)) AS outboundUnit#21521769]
(947) Project
Arguments: [product#21521741, plant#21521742, orderDateTime#21521743, productPlant#21521753, systemId#21521754, internalUUID#21521755, id#21521756, displayId#21521757, name#21521758, baseUnitOfMeasure#21521759, unitOfMeasures#21521760, unitOfMeasureConversions#21521761, productionAspect#21521762, salesAspect#21521763, procurementAspect#21521764, productGroup#21521765, filteredUnitOfMeasureConversions#21521766, quantityNumerator#21521767, quantityDenominator#21521768, CASE WHEN (isnull(outboundUnit#21521769) OR (outboundUnit#21521769 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#21521769 END AS outboundUnit#21521770]
(948) Project
Arguments: [product#21521741, plant#21521742, orderDateTime#21521743, productPlant#21521753, outboundUnit#21521770]
(949) LogicalRelation
Arguments: parquet, [systemId#21521771, internalUUID#21521772, product#21521773, plant#21521774, calculationDateTime#21521775, stockQuantities#21521776], false
(950) Repartition
Arguments: 25, true
(951) LogicalRelation
Arguments: parquet, [marketUnit#21521777, description#21521778, articleHierarchy#21521779, defaultCurrency#21521780, responsibilities#21521781, replenishmentTypes#21521782, distributionCenters#21521783, assignedArticleHierarchyNodes#21521784, minOrderQtySetting#21521785, listingCheck#21521786, odsSelection#21521787, demandProfiles#21521788, constraintProfiles#21521789, optimizationProfiles#21521790, orderGroupSplitProfiles#21521791, supplierMinimumProfiles#21521792, multipleRestrictionProfiles#21521793, preferredUomSource#21521794, handlingOfUnfulfilledDemands#21521795, negligibleQuantitiesThreshold#21521796, eventtype#21521797, minOrderQtySettingInternal#21521798], false
(952) Repartition
Arguments: 25, true
(953) Filter
Arguments: (marketUnit#21521777 <=> SS_Test_1)
(954) Project
Arguments: [marketUnit#21521777, description#21521778, articleHierarchy#21521779, defaultCurrency#21521780, responsibilities#21521781, replenishmentTypes#21521782, distributionCenters#21521783, assignedArticleHierarchyNodes#21521784, minOrderQtySetting#21521785, listingCheck#21521786, odsSelection#21521787, demandProfiles#21521788, constraintProfiles#21521789, optimizationProfiles#21521790, orderGroupSplitProfiles#21521791, supplierMinimumProfiles#21521792, multipleRestrictionProfiles#21521793, preferredUomSource#21521794, handlingOfUnfulfilledDemands#21521795, negligibleQuantitiesThreshold#21521796, eventtype#21521797, minOrderQtySettingInternal#21521798]
(955) Project
Arguments: [distributionCenters#21521783]
(956) Generate
Arguments: explode(distributionCenters#21521783), false, [distributionCenters#21521799]
(957) Project
Arguments: [distributionCenters#21521799]
(958) Generate
Arguments: explode(distributionCenters#21521799.storageLocations), false, [storageLocations#21521800]
(959) Project
Arguments: [distributionCenters#21521799.id AS plantId#21521801, distributionCenters#21521799.internalRefUUID AS plantUuid#21521802, storageLocations#21521800]
(960) Project
Arguments: [plantId#21521801, plantUuid#21521802, storageLocations#21521800.id AS storageLocId#21521803, storageLocations#21521800.internalRefUUID AS storageLocUuid#21521804]
(961) LogicalRelation
Arguments: parquet, [product#21521805, plant#21521806, orderDateTime#21521807, planningStartDateTime#21521808], false
(962) RepartitionByExpression
Arguments: [product#21521805, plant#21521806], 25
(963) Project
Arguments: [product#21521805, plant#21521806, orderDateTime#21521807]
(964) LogicalRelation
Arguments: parquet, [systemId#21521809, internalUUID#21521810, plant#21521811, product#21521812, blockedForReplenishmentStartingFrom#21521813, productionAspect#21521814, salesPlant#21521815, listing#21521816], false
(965) Repartition
Arguments: 25, true
(966) Project
Arguments: [systemId#21521809, internalUUID#21521810, plant#21521811, product#21521812, blockedForReplenishmentStartingFrom#21521813, productionAspect#21521814, salesPlant#21521815, listing#21521816, struct(systemId, systemId#21521809, internalUUID, internalUUID#21521810, plant, plant#21521811, product, product#21521812, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#21521813, productionAspect, productionAspect#21521814, salesPlant, salesPlant#21521815, listing, listing#21521816) AS productPlant#21521817]
(967) Project
Arguments: [productPlant#21521817]
(968) Join
Arguments: LeftOuter, ((product#21521805 <=> productPlant#21521817.product.internalRefUUID) AND (plant#21521806 <=> productPlant#21521817.plant.internalRefUUID))
(969) Project
Arguments: [product#21521805, plant#21521806, orderDateTime#21521807, productPlant#21521817]
(970) LogicalRelation
Arguments: parquet, [systemId#21521818, internalUUID#21521819, id#21521820, displayId#21521821, name#21521822, baseUnitOfMeasure#21521823, unitOfMeasures#21521824, unitOfMeasureConversions#21521825, productionAspect#21521826, salesAspect#21521827, procurementAspect#21521828, productGroup#21521829], false
(971) Repartition
Arguments: 25, true
(972) Join
Arguments: LeftOuter, (product#21521805 = internalUUID#21521819)
(973) Project
Arguments: [product#21521805, plant#21521806, orderDateTime#21521807, productPlant#21521817, systemId#21521818, internalUUID#21521819, id#21521820, displayId#21521821, name#21521822, baseUnitOfMeasure#21521823, unitOfMeasures#21521824, unitOfMeasureConversions#21521825, productionAspect#21521826, salesAspect#21521827, procurementAspect#21521828, productGroup#21521829, filter(unitOfMeasureConversions#21521825, lambdafunction((((lambda u#21518048.measurementUnit1.code = productPlant#21521817.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#21518048.measurementUnit1.internalRefUUID = productPlant#21521817.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#21518048.measurementUnit2.code = baseUnitOfMeasure#21521823.code) AND (lambda u#21518048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#21521823.internalRefUUID))), lambda u#21518048, false)) AS filteredUnitOfMeasureConversions#21521830]
(974) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21521830.quantityNumerator), true, [quantityNumerator#21521831]
(975) Project
Arguments: [product#21521805, plant#21521806, orderDateTime#21521807, productPlant#21521817, systemId#21521818, internalUUID#21521819, id#21521820, displayId#21521821, name#21521822, baseUnitOfMeasure#21521823, unitOfMeasures#21521824, unitOfMeasureConversions#21521825, productionAspect#21521826, salesAspect#21521827, procurementAspect#21521828, productGroup#21521829, filteredUnitOfMeasureConversions#21521830, quantityNumerator#21521831]
(976) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21521830.quantityDenominator), true, [quantityDenominator#21521832]
(977) Project
Arguments: [product#21521805, plant#21521806, orderDateTime#21521807, productPlant#21521817, systemId#21521818, internalUUID#21521819, id#21521820, displayId#21521821, name#21521822, baseUnitOfMeasure#21521823, unitOfMeasures#21521824, unitOfMeasureConversions#21521825, productionAspect#21521826, salesAspect#21521827, procurementAspect#21521828, productGroup#21521829, filteredUnitOfMeasureConversions#21521830, quantityNumerator#21521831, quantityDenominator#21521832]
(978) Project
Arguments: [product#21521805, plant#21521806, orderDateTime#21521807, productPlant#21521817, systemId#21521818, internalUUID#21521819, id#21521820, displayId#21521821, name#21521822, baseUnitOfMeasure#21521823, unitOfMeasures#21521824, unitOfMeasureConversions#21521825, productionAspect#21521826, salesAspect#21521827, procurementAspect#21521828, productGroup#21521829, filteredUnitOfMeasureConversions#21521830, quantityNumerator#21521831, quantityDenominator#21521832, (cast(quantityNumerator#21521831 as double) / cast(quantityDenominator#21521832 as double)) AS outboundUnit#21521833]
(979) Project
Arguments: [product#21521805, plant#21521806, orderDateTime#21521807, productPlant#21521817, systemId#21521818, internalUUID#21521819, id#21521820, displayId#21521821, name#21521822, baseUnitOfMeasure#21521823, unitOfMeasures#21521824, unitOfMeasureConversions#21521825, productionAspect#21521826, salesAspect#21521827, procurementAspect#21521828, productGroup#21521829, filteredUnitOfMeasureConversions#21521830, quantityNumerator#21521831, quantityDenominator#21521832, CASE WHEN (isnull(outboundUnit#21521833) OR (outboundUnit#21521833 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#21521833 END AS outboundUnit#21521834]
(980) Project
Arguments: [product#21521805, plant#21521806, orderDateTime#21521807, productPlant#21521817, outboundUnit#21521834]
(981) Project
Arguments: [plant#21521806]
(982) Deduplicate
Arguments: [plant#21521806]
(983) Join
Arguments: Inner, (plantUuid#21521802 = plant#21521806)
(984) Project
Arguments: [plantId#21521801, plantUuid#21521802, storageLocId#21521803, storageLocUuid#21521804]
(985) Join
Arguments: Inner, (plant#21521774.internalRefUUID <=> plantUuid#21521802)
(986) Generate
Arguments: explode(filter(stockQuantities#21521776, lambdafunction(((lambda x#21518157.storageLocation.internalRefUuid = storageLocUuid#21521804) AND (lambda x#21518157.storageLocation.Id = storageLocId#21521803)), lambda x#21518157, false))), false, [stockQuantity#21521835]
(987) Project
Arguments: [systemId#21521771, internalUUID#21521772, product#21521773, plant#21521774, calculationDateTime#21521775, stockQuantities#21521776, plantId#21521801, plantUuid#21521802, storageLocId#21521803, storageLocUuid#21521804, stockQuantity#21521835]
(988) Aggregate
Arguments: [plantUuid#21521802, internalUUID#21521772, plant#21521774, product#21521773, systemId#21521771], [plantUuid#21521802, internalUUID#21521772, plant#21521774, product#21521773, systemId#21521771, first(calculationDateTime#21521775, false) AS calculationDateTime#21521836, collect_list(stockQuantity#21521835, 0, 0) AS stockQuantities#21521837]
(989) Project
Arguments: [systemId#21521771, internalUUID#21521772, product#21521773, plant#21521774, calculationDateTime#21521836, stockQuantities#21521837]
(990) Generate
Arguments: explode(stockQuantities#21521837), false, [stockQuantity#21521838]
(991) Project
Arguments: [systemId#21521771, internalUUID#21521772, product#21521773, plant#21521774, calculationDateTime#21521836, stockQuantities#21521837, stockQuantity#21521838]
(992) Project
Arguments: [plant#21521774.id AS plant#21521839, plant#21521774.internalRefUUID AS plantUuid#21521840, product#21521773.id AS product#21521841, product#21521773.internalRefUUID AS productUuid#21521842, calculationDateTime#21521836, stockQuantity#21521838.storagelocation.id AS storageLocId#21521843, stockQuantity#21521838.storagelocation.internalRefUUID AS storageLocUuid#21521844, stockQuantity#21521838.quantity.measure AS quantity#21521845, stockQuantity#21521838.specialStockIndicator.code AS specialStockIndicator#21521846, stockQuantity#21521838.stockType.code AS stockType#21521847]
(993) Filter
Arguments: ((specialStockIndicator#21521846 = ) AND (stockType#21521847 = 01))
(994) LogicalRelation
Arguments: parquet, [product#21521848, plant#21521849, orderDateTime#21521850, planningStartDateTime#21521851], false
(995) RepartitionByExpression
Arguments: [product#21521848, plant#21521849], 25
(996) Project
Arguments: [product#21521848, plant#21521849, orderDateTime#21521850]
(997) LogicalRelation
Arguments: parquet, [systemId#21521852, internalUUID#21521853, plant#21521854, product#21521855, blockedForReplenishmentStartingFrom#21521856, productionAspect#21521857, salesPlant#21521858, listing#21521859], false
(998) Repartition
Arguments: 25, true
(999) Project
Arguments: [systemId#21521852, internalUUID#21521853, plant#21521854, product#21521855, blockedForReplenishmentStartingFrom#21521856, productionAspect#21521857, salesPlant#21521858, listing#21521859, struct(systemId, systemId#21521852, internalUUID, internalUUID#21521853, plant, plant#21521854, product, product#21521855, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#21521856, productionAspect, productionAspect#21521857, salesPlant, salesPlant#21521858, listing, listing#21521859) AS productPlant#21521860]
(1000) Project
Arguments: [productPlant#21521860]
(1001) Join
Arguments: LeftOuter, ((product#21521848 <=> productPlant#21521860.product.internalRefUUID) AND (plant#21521849 <=> productPlant#21521860.plant.internalRefUUID))
(1002) Project
Arguments: [product#21521848, plant#21521849, orderDateTime#21521850, productPlant#21521860]
(1003) LogicalRelation
Arguments: parquet, [systemId#21521861, internalUUID#21521862, id#21521863, displayId#21521864, name#21521865, baseUnitOfMeasure#21521866, unitOfMeasures#21521867, unitOfMeasureConversions#21521868, productionAspect#21521869, salesAspect#21521870, procurementAspect#21521871, productGroup#21521872], false
(1004) Repartition
Arguments: 25, true
(1005) Join
Arguments: LeftOuter, (product#21521848 = internalUUID#21521862)
(1006) Project
Arguments: [product#21521848, plant#21521849, orderDateTime#21521850, productPlant#21521860, systemId#21521861, internalUUID#21521862, id#21521863, displayId#21521864, name#21521865, baseUnitOfMeasure#21521866, unitOfMeasures#21521867, unitOfMeasureConversions#21521868, productionAspect#21521869, salesAspect#21521870, procurementAspect#21521871, productGroup#21521872, filter(unitOfMeasureConversions#21521868, lambdafunction((((lambda u#21518048.measurementUnit1.code = productPlant#21521860.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#21518048.measurementUnit1.internalRefUUID = productPlant#21521860.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#21518048.measurementUnit2.code = baseUnitOfMeasure#21521866.code) AND (lambda u#21518048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#21521866.internalRefUUID))), lambda u#21518048, false)) AS filteredUnitOfMeasureConversions#21521873]
(1007) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21521873.quantityNumerator), true, [quantityNumerator#21521874]
(1008) Project
Arguments: [product#21521848, plant#21521849, orderDateTime#21521850, productPlant#21521860, systemId#21521861, internalUUID#21521862, id#21521863, displayId#21521864, name#21521865, baseUnitOfMeasure#21521866, unitOfMeasures#21521867, unitOfMeasureConversions#21521868, productionAspect#21521869, salesAspect#21521870, procurementAspect#21521871, productGroup#21521872, filteredUnitOfMeasureConversions#21521873, quantityNumerator#21521874]
(1009) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21521873.quantityDenominator), true, [quantityDenominator#21521875]
(1010) Project
Arguments: [product#21521848, plant#21521849, orderDateTime#21521850, productPlant#21521860, systemId#21521861, internalUUID#21521862, id#21521863, displayId#21521864, name#21521865, baseUnitOfMeasure#21521866, unitOfMeasures#21521867, unitOfMeasureConversions#21521868, productionAspect#21521869, salesAspect#21521870, procurementAspect#21521871, productGroup#21521872, filteredUnitOfMeasureConversions#21521873, quantityNumerator#21521874, quantityDenominator#21521875]
(1011) Project
Arguments: [product#21521848, plant#21521849, orderDateTime#21521850, productPlant#21521860, systemId#21521861, internalUUID#21521862, id#21521863, displayId#21521864, name#21521865, baseUnitOfMeasure#21521866, unitOfMeasures#21521867, unitOfMeasureConversions#21521868, productionAspect#21521869, salesAspect#21521870, procurementAspect#21521871, productGroup#21521872, filteredUnitOfMeasureConversions#21521873, quantityNumerator#21521874, quantityDenominator#21521875, (cast(quantityNumerator#21521874 as double) / cast(quantityDenominator#21521875 as double)) AS outboundUnit#21521876]
(1012) Project
Arguments: [product#21521848, plant#21521849, orderDateTime#21521850, productPlant#21521860, systemId#21521861, internalUUID#21521862, id#21521863, displayId#21521864, name#21521865, baseUnitOfMeasure#21521866, unitOfMeasures#21521867, unitOfMeasureConversions#21521868, productionAspect#21521869, salesAspect#21521870, procurementAspect#21521871, productGroup#21521872, filteredUnitOfMeasureConversions#21521873, quantityNumerator#21521874, quantityDenominator#21521875, CASE WHEN (isnull(outboundUnit#21521876) OR (outboundUnit#21521876 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#21521876 END AS outboundUnit#21521877]
(1013) Project
Arguments: [product#21521848, plant#21521849, orderDateTime#21521850, productPlant#21521860, outboundUnit#21521877]
(1014) Join
Arguments: Inner, ((plantUuid#21521840 = plant#21521849) AND (productUuid#21521842 = product#21521848))
(1015) Filter
Arguments: (calculationDateTime#21521836 <= orderDateTime#21521850)
(1016) Project
Arguments: [plantUuid#21521840 AS plant#21521878, productUuid#21521842 AS product#21521879, storageLocId#21521843, calculationDateTime#21521836, quantity#21521845]
(1017) LogicalRelation
Arguments: parquet, [systemId#21521880, internalUUID#21521881, product#21521882, plant#21521883, calculationDateTime#21521884, stockQuantities#21521885], false
(1018) Repartition
Arguments: 25, true
(1019) LogicalRelation
Arguments: parquet, [marketUnit#21521886, description#21521887, articleHierarchy#21521888, defaultCurrency#21521889, responsibilities#21521890, replenishmentTypes#21521891, distributionCenters#21521892, assignedArticleHierarchyNodes#21521893, minOrderQtySetting#21521894, listingCheck#21521895, odsSelection#21521896, demandProfiles#21521897, constraintProfiles#21521898, optimizationProfiles#21521899, orderGroupSplitProfiles#21521900, supplierMinimumProfiles#21521901, multipleRestrictionProfiles#21521902, preferredUomSource#21521903, handlingOfUnfulfilledDemands#21521904, negligibleQuantitiesThreshold#21521905, eventtype#21521906, minOrderQtySettingInternal#21521907], false
(1020) Repartition
Arguments: 25, true
(1021) Filter
Arguments: (marketUnit#21521886 <=> SS_Test_1)
(1022) Project
Arguments: [marketUnit#21521886, description#21521887, articleHierarchy#21521888, defaultCurrency#21521889, responsibilities#21521890, replenishmentTypes#21521891, distributionCenters#21521892, assignedArticleHierarchyNodes#21521893, minOrderQtySetting#21521894, listingCheck#21521895, odsSelection#21521896, demandProfiles#21521897, constraintProfiles#21521898, optimizationProfiles#21521899, orderGroupSplitProfiles#21521900, supplierMinimumProfiles#21521901, multipleRestrictionProfiles#21521902, preferredUomSource#21521903, handlingOfUnfulfilledDemands#21521904, negligibleQuantitiesThreshold#21521905, eventtype#21521906, minOrderQtySettingInternal#21521907]
(1023) Project
Arguments: [distributionCenters#21521892]
(1024) Generate
Arguments: explode(distributionCenters#21521892), false, [distributionCenters#21521908]
(1025) Project
Arguments: [distributionCenters#21521908]
(1026) Generate
Arguments: explode(distributionCenters#21521908.storageLocations), false, [storageLocations#21521909]
(1027) Project
Arguments: [distributionCenters#21521908.id AS plantId#21521910, distributionCenters#21521908.internalRefUUID AS plantUuid#21521911, storageLocations#21521909]
(1028) Project
Arguments: [plantId#21521910, plantUuid#21521911, storageLocations#21521909.id AS storageLocId#21521912, storageLocations#21521909.internalRefUUID AS storageLocUuid#21521913]
(1029) LogicalRelation
Arguments: parquet, [product#21521914, plant#21521915, orderDateTime#21521916, planningStartDateTime#21521917], false
(1030) RepartitionByExpression
Arguments: [product#21521914, plant#21521915], 25
(1031) Project
Arguments: [product#21521914, plant#21521915, orderDateTime#21521916]
(1032) LogicalRelation
Arguments: parquet, [systemId#21521918, internalUUID#21521919, plant#21521920, product#21521921, blockedForReplenishmentStartingFrom#21521922, productionAspect#21521923, salesPlant#21521924, listing#21521925], false
(1033) Repartition
Arguments: 25, true
(1034) Project
Arguments: [systemId#21521918, internalUUID#21521919, plant#21521920, product#21521921, blockedForReplenishmentStartingFrom#21521922, productionAspect#21521923, salesPlant#21521924, listing#21521925, struct(systemId, systemId#21521918, internalUUID, internalUUID#21521919, plant, plant#21521920, product, product#21521921, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#21521922, productionAspect, productionAspect#21521923, salesPlant, salesPlant#21521924, listing, listing#21521925) AS productPlant#21521926]
(1035) Project
Arguments: [productPlant#21521926]
(1036) Join
Arguments: LeftOuter, ((product#21521914 <=> productPlant#21521926.product.internalRefUUID) AND (plant#21521915 <=> productPlant#21521926.plant.internalRefUUID))
(1037) Project
Arguments: [product#21521914, plant#21521915, orderDateTime#21521916, productPlant#21521926]
(1038) LogicalRelation
Arguments: parquet, [systemId#21521927, internalUUID#21521928, id#21521929, displayId#21521930, name#21521931, baseUnitOfMeasure#21521932, unitOfMeasures#21521933, unitOfMeasureConversions#21521934, productionAspect#21521935, salesAspect#21521936, procurementAspect#21521937, productGroup#21521938], false
(1039) Repartition
Arguments: 25, true
(1040) Join
Arguments: LeftOuter, (product#21521914 = internalUUID#21521928)
(1041) Project
Arguments: [product#21521914, plant#21521915, orderDateTime#21521916, productPlant#21521926, systemId#21521927, internalUUID#21521928, id#21521929, displayId#21521930, name#21521931, baseUnitOfMeasure#21521932, unitOfMeasures#21521933, unitOfMeasureConversions#21521934, productionAspect#21521935, salesAspect#21521936, procurementAspect#21521937, productGroup#21521938, filter(unitOfMeasureConversions#21521934, lambdafunction((((lambda u#21518048.measurementUnit1.code = productPlant#21521926.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#21518048.measurementUnit1.internalRefUUID = productPlant#21521926.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#21518048.measurementUnit2.code = baseUnitOfMeasure#21521932.code) AND (lambda u#21518048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#21521932.internalRefUUID))), lambda u#21518048, false)) AS filteredUnitOfMeasureConversions#21521939]
(1042) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21521939.quantityNumerator), true, [quantityNumerator#21521940]
(1043) Project
Arguments: [product#21521914, plant#21521915, orderDateTime#21521916, productPlant#21521926, systemId#21521927, internalUUID#21521928, id#21521929, displayId#21521930, name#21521931, baseUnitOfMeasure#21521932, unitOfMeasures#21521933, unitOfMeasureConversions#21521934, productionAspect#21521935, salesAspect#21521936, procurementAspect#21521937, productGroup#21521938, filteredUnitOfMeasureConversions#21521939, quantityNumerator#21521940]
(1044) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21521939.quantityDenominator), true, [quantityDenominator#21521941]
(1045) Project
Arguments: [product#21521914, plant#21521915, orderDateTime#21521916, productPlant#21521926, systemId#21521927, internalUUID#21521928, id#21521929, displayId#21521930, name#21521931, baseUnitOfMeasure#21521932, unitOfMeasures#21521933, unitOfMeasureConversions#21521934, productionAspect#21521935, salesAspect#21521936, procurementAspect#21521937, productGroup#21521938, filteredUnitOfMeasureConversions#21521939, quantityNumerator#21521940, quantityDenominator#21521941]
(1046) Project
Arguments: [product#21521914, plant#21521915, orderDateTime#21521916, productPlant#21521926, systemId#21521927, internalUUID#21521928, id#21521929, displayId#21521930, name#21521931, baseUnitOfMeasure#21521932, unitOfMeasures#21521933, unitOfMeasureConversions#21521934, productionAspect#21521935, salesAspect#21521936, procurementAspect#21521937, productGroup#21521938, filteredUnitOfMeasureConversions#21521939, quantityNumerator#21521940, quantityDenominator#21521941, (cast(quantityNumerator#21521940 as double) / cast(quantityDenominator#21521941 as double)) AS outboundUnit#21521942]
(1047) Project
Arguments: [product#21521914, plant#21521915, orderDateTime#21521916, productPlant#21521926, systemId#21521927, internalUUID#21521928, id#21521929, displayId#21521930, name#21521931, baseUnitOfMeasure#21521932, unitOfMeasures#21521933, unitOfMeasureConversions#21521934, productionAspect#21521935, salesAspect#21521936, procurementAspect#21521937, productGroup#21521938, filteredUnitOfMeasureConversions#21521939, quantityNumerator#21521940, quantityDenominator#21521941, CASE WHEN (isnull(outboundUnit#21521942) OR (outboundUnit#21521942 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#21521942 END AS outboundUnit#21521943]
(1048) Project
Arguments: [product#21521914, plant#21521915, orderDateTime#21521916, productPlant#21521926, outboundUnit#21521943]
(1049) Project
Arguments: [plant#21521915]
(1050) Deduplicate
Arguments: [plant#21521915]
(1051) Join
Arguments: Inner, (plantUuid#21521911 = plant#21521915)
(1052) Project
Arguments: [plantId#21521910, plantUuid#21521911, storageLocId#21521912, storageLocUuid#21521913]
(1053) Join
Arguments: Inner, (plant#21521883.internalRefUUID <=> plantUuid#21521911)
(1054) Generate
Arguments: explode(filter(stockQuantities#21521885, lambdafunction(((lambda x#21518157.storageLocation.internalRefUuid = storageLocUuid#21521913) AND (lambda x#21518157.storageLocation.Id = storageLocId#21521912)), lambda x#21518157, false))), false, [stockQuantity#21521944]
(1055) Project
Arguments: [systemId#21521880, internalUUID#21521881, product#21521882, plant#21521883, calculationDateTime#21521884, stockQuantities#21521885, plantId#21521910, plantUuid#21521911, storageLocId#21521912, storageLocUuid#21521913, stockQuantity#21521944]
(1056) Aggregate
Arguments: [plantUuid#21521911, internalUUID#21521881, plant#21521883, product#21521882, systemId#21521880], [plantUuid#21521911, internalUUID#21521881, plant#21521883, product#21521882, systemId#21521880, first(calculationDateTime#21521884, false) AS calculationDateTime#21521945, collect_list(stockQuantity#21521944, 0, 0) AS stockQuantities#21521946]
(1057) Project
Arguments: [systemId#21521880, internalUUID#21521881, product#21521882, plant#21521883, calculationDateTime#21521945, stockQuantities#21521946]
(1058) Generate
Arguments: explode(stockQuantities#21521946), false, [stockQuantity#21521947]
(1059) Project
Arguments: [systemId#21521880, internalUUID#21521881, product#21521882, plant#21521883, calculationDateTime#21521945, stockQuantities#21521946, stockQuantity#21521947]
(1060) Project
Arguments: [plant#21521883.id AS plant#21521948, plant#21521883.internalRefUUID AS plantUuid#21521949, product#21521882.id AS product#21521950, product#21521882.internalRefUUID AS productUuid#21521951, calculationDateTime#21521945, stockQuantity#21521947.storagelocation.id AS storageLocId#21521952, stockQuantity#21521947.storagelocation.internalRefUUID AS storageLocUuid#21521953, stockQuantity#21521947.quantity.measure AS quantity#21521954, stockQuantity#21521947.specialStockIndicator.code AS specialStockIndicator#21521955, stockQuantity#21521947.stockType.code AS stockType#21521956]
(1061) Filter
Arguments: ((specialStockIndicator#21521955 = ) AND (stockType#21521956 = 01))
(1062) LogicalRelation
Arguments: parquet, [product#21521957, plant#21521958, orderDateTime#21521959, planningStartDateTime#21521960], false
(1063) RepartitionByExpression
Arguments: [product#21521957, plant#21521958], 25
(1064) Project
Arguments: [product#21521957, plant#21521958, orderDateTime#21521959]
(1065) LogicalRelation
Arguments: parquet, [systemId#21521961, internalUUID#21521962, plant#21521963, product#21521964, blockedForReplenishmentStartingFrom#21521965, productionAspect#21521966, salesPlant#21521967, listing#21521968], false
(1066) Repartition
Arguments: 25, true
(1067) Project
Arguments: [systemId#21521961, internalUUID#21521962, plant#21521963, product#21521964, blockedForReplenishmentStartingFrom#21521965, productionAspect#21521966, salesPlant#21521967, listing#21521968, struct(systemId, systemId#21521961, internalUUID, internalUUID#21521962, plant, plant#21521963, product, product#21521964, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#21521965, productionAspect, productionAspect#21521966, salesPlant, salesPlant#21521967, listing, listing#21521968) AS productPlant#21521969]
(1068) Project
Arguments: [productPlant#21521969]
(1069) Join
Arguments: LeftOuter, ((product#21521957 <=> productPlant#21521969.product.internalRefUUID) AND (plant#21521958 <=> productPlant#21521969.plant.internalRefUUID))
(1070) Project
Arguments: [product#21521957, plant#21521958, orderDateTime#21521959, productPlant#21521969]
(1071) LogicalRelation
Arguments: parquet, [systemId#21521970, internalUUID#21521971, id#21521972, displayId#21521973, name#21521974, baseUnitOfMeasure#21521975, unitOfMeasures#21521976, unitOfMeasureConversions#21521977, productionAspect#21521978, salesAspect#21521979, procurementAspect#21521980, productGroup#21521981], false
(1072) Repartition
Arguments: 25, true
(1073) Join
Arguments: LeftOuter, (product#21521957 = internalUUID#21521971)
(1074) Project
Arguments: [product#21521957, plant#21521958, orderDateTime#21521959, productPlant#21521969, systemId#21521970, internalUUID#21521971, id#21521972, displayId#21521973, name#21521974, baseUnitOfMeasure#21521975, unitOfMeasures#21521976, unitOfMeasureConversions#21521977, productionAspect#21521978, salesAspect#21521979, procurementAspect#21521980, productGroup#21521981, filter(unitOfMeasureConversions#21521977, lambdafunction((((lambda u#21518048.measurementUnit1.code = productPlant#21521969.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#21518048.measurementUnit1.internalRefUUID = productPlant#21521969.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#21518048.measurementUnit2.code = baseUnitOfMeasure#21521975.code) AND (lambda u#21518048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#21521975.internalRefUUID))), lambda u#21518048, false)) AS filteredUnitOfMeasureConversions#21521982]
(1075) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21521982.quantityNumerator), true, [quantityNumerator#21521983]
(1076) Project
Arguments: [product#21521957, plant#21521958, orderDateTime#21521959, productPlant#21521969, systemId#21521970, internalUUID#21521971, id#21521972, displayId#21521973, name#21521974, baseUnitOfMeasure#21521975, unitOfMeasures#21521976, unitOfMeasureConversions#21521977, productionAspect#21521978, salesAspect#21521979, procurementAspect#21521980, productGroup#21521981, filteredUnitOfMeasureConversions#21521982, quantityNumerator#21521983]
(1077) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21521982.quantityDenominator), true, [quantityDenominator#21521984]
(1078) Project
Arguments: [product#21521957, plant#21521958, orderDateTime#21521959, productPlant#21521969, systemId#21521970, internalUUID#21521971, id#21521972, displayId#21521973, name#21521974, baseUnitOfMeasure#21521975, unitOfMeasures#21521976, unitOfMeasureConversions#21521977, productionAspect#21521978, salesAspect#21521979, procurementAspect#21521980, productGroup#21521981, filteredUnitOfMeasureConversions#21521982, quantityNumerator#21521983, quantityDenominator#21521984]
(1079) Project
Arguments: [product#21521957, plant#21521958, orderDateTime#21521959, productPlant#21521969, systemId#21521970, internalUUID#21521971, id#21521972, displayId#21521973, name#21521974, baseUnitOfMeasure#21521975, unitOfMeasures#21521976, unitOfMeasureConversions#21521977, productionAspect#21521978, salesAspect#21521979, procurementAspect#21521980, productGroup#21521981, filteredUnitOfMeasureConversions#21521982, quantityNumerator#21521983, quantityDenominator#21521984, (cast(quantityNumerator#21521983 as double) / cast(quantityDenominator#21521984 as double)) AS outboundUnit#21521985]
(1080) Project
Arguments: [product#21521957, plant#21521958, orderDateTime#21521959, productPlant#21521969, systemId#21521970, internalUUID#21521971, id#21521972, displayId#21521973, name#21521974, baseUnitOfMeasure#21521975, unitOfMeasures#21521976, unitOfMeasureConversions#21521977, productionAspect#21521978, salesAspect#21521979, procurementAspect#21521980, productGroup#21521981, filteredUnitOfMeasureConversions#21521982, quantityNumerator#21521983, quantityDenominator#21521984, CASE WHEN (isnull(outboundUnit#21521985) OR (outboundUnit#21521985 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#21521985 END AS outboundUnit#21521986]
(1081) Project
Arguments: [product#21521957, plant#21521958, orderDateTime#21521959, productPlant#21521969, outboundUnit#21521986]
(1082) Join
Arguments: Inner, ((plantUuid#21521949 = plant#21521958) AND (productUuid#21521951 = product#21521957))
(1083) Filter
Arguments: (calculationDateTime#21521945 <= orderDateTime#21521959)
(1084) Project
Arguments: [plantUuid#21521949 AS plant#21521987, productUuid#21521951 AS product#21521988, storageLocId#21521952, calculationDateTime#21521945, quantity#21521954]
(1085) Aggregate
Arguments: [plant#21521987, product#21521988, storageLocId#21521952], [plant#21521987, product#21521988, storageLocId#21521952, max(calculationDateTime#21521945) AS max_calc_datetime#21521989]
(1086) Join
Arguments: Inner, ((((plant#21521878 <=> plant#21521987) AND (product#21521879 <=> product#21521988)) AND (storageLocId#21521843 <=> storageLocId#21521952)) AND (calculationDateTime#21521836 <=> max_calc_datetime#21521989))
(1087) Project
Arguments: [plant#21521878, product#21521879, storageLocId#21521843, calculationDateTime#21521836, quantity#21521845]
(1088) Aggregate
Arguments: [product#21521879, plant#21521878], [product#21521879, plant#21521878, sum(quantity#21521845) AS quantitySum#21521990, min(calculationDateTime#21521836) AS minCalculationDateTime#21521991]
(1089) Project
Arguments: [product#21521879, plant#21521878, quantitySum#21521990, minCalculationDateTime#21521991, round(quantitySum#21521990, 0) AS roundedQuantitySum#21521992]
(1090) Join
Arguments: LeftOuter, ((plant#21521742 = plant#21521878) AND (product#21521741 = product#21521879))
(1091) Project
Arguments: [product#21521741, plant#21521742, orderDateTime#21521743, productPlant#21521753, outboundUnit#21521770, roundedQuantitySum#21521992, minCalculationDateTime#21521991]
(1092) Project
Arguments: [product#21521741, plant#21521742, orderDateTime#21521743, productPlant#21521753, outboundUnit#21521770, roundedQuantitySum#21521992, minCalculationDateTime#21521991, CASE WHEN isnotnull(minCalculationDateTime#21521991) THEN minCalculationDateTime#21521991 ELSE orderDateTime#21521743 END AS stockDatetime#21521993]
(1093) Project
Arguments: [product#21521741, plant#21521742, orderDateTime#21521743, productPlant#21521753, outboundUnit#21521770, roundedQuantitySum#21521992, minCalculationDateTime#21521991, stockDatetime#21521993, CASE WHEN isnotnull(roundedQuantitySum#21521992) THEN array(roundedQuantitySum#21521992) ELSE array(0.0) END AS stockBatchQuantities#21521994]
(1094) Project
Arguments: [product#21521741, plant#21521742, orderDateTime#21521743, productPlant#21521753, outboundUnit#21521770, roundedQuantitySum#21521992, minCalculationDateTime#21521991, stockDatetime#21521993, stockBatchQuantities#21521994, array(2199-01-01 00:00:00) AS stockBatchShelfLifeEndDatetimes#21521995]
(1095) Project
Arguments: [product#21521741, plant#21521742, orderDateTime#21521743, productPlant#21521753, outboundUnit#21521770, roundedQuantitySum#21521992, stockDatetime#21521993, stockBatchQuantities#21521994, stockBatchShelfLifeEndDatetimes#21521995]
(1096) Project
Arguments: [product#21521741, plant#21521742, orderDateTime#21521743, productPlant#21521753, outboundUnit#21521770, stockDatetime#21521993, stockBatchQuantities#21521994, stockBatchShelfLifeEndDatetimes#21521995]
(1097) LogicalRelation
Arguments: parquet, [product#21521996, plant#21521997, demandChannel#21521998, demandStream#21521999, considerVariance#21522000, demandTimeBuckets#21522001, demandPointInTimeStart#21522002, demandPointInTimeEnd#21522003, demandPointInTime#21522004], false
(1098) Join
Arguments: LeftOuter, ((plant#21521997 <=> plant#21521742) AND (product#21521996 <=> product#21521741))
(1099) Project
Arguments: [product#21521741, plant#21521742, orderDateTime#21521743, productPlant#21521753, outboundUnit#21521770, stockDatetime#21521993, stockBatchQuantities#21521994, stockBatchShelfLifeEndDatetimes#21521995, product#21521996, plant#21521997, demandChannel#21521998, demandStream#21521999, considerVariance#21522000, demandTimeBuckets#21522001, demandPointInTimeStart#21522002, demandPointInTimeEnd#21522003, demandPointInTime#21522004, CASE WHEN isnotnull(product#21521996) THEN struct(demandChannel, demandChannel#21521998, demandStream, demandStream#21521999, considerVariance, considerVariance#21522000, demandTimeBuckets, demandTimeBuckets#21522001, demandPointInTimeStart, demandPointInTimeStart#21522002, demandPointInTimeEnd, demandPointInTimeEnd#21522003, demandPointInTime, demandPointInTime#21522004) 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#21522005]
(1100) Aggregate
Arguments: [product#21521741, plant#21521742, orderDateTime#21521743, productPlant#21521753, outboundUnit#21521770, stockDatetime#21521993, stockBatchQuantities#21521994, stockBatchShelfLifeEndDatetimes#21521995], [product#21521741, plant#21521742, orderDateTime#21521743, productPlant#21521753, outboundUnit#21521770, stockDatetime#21521993, stockBatchQuantities#21521994, stockBatchShelfLifeEndDatetimes#21521995, collect_list(rawDemands#21522005, 0, 0) AS rawDemands#21522006]
(1101) SubqueryAlias
Arguments: wl
(1102) LogicalRelation
Arguments: parquet, [systemId#21522007, internalUUID#21522008, id#21522009, displayId#21522010, name#21522011, category#21522012, companyCode#21522013, address#21522014, mainDistributionChain#21522015, mainPurchasingOrganization#21522016, validPurchasingOrganizations#21522017, productGroup#21522018], false
(1103) Repartition
Arguments: 25, true
(1104) Project
Arguments: [systemId#21522007, internalUUID#21522008, id#21522009, displayId#21522010, name#21522011, category#21522012, companyCode#21522013, address#21522014, mainDistributionChain#21522015, mainPurchasingOrganization#21522016, validPurchasingOrganizations#21522017, productGroup#21522018, address#21522014.timezone.code AS timezonecode#21522019]
(1105) Join
Arguments: LeftOuter, (plant#21521742 <=> internalUUID#21522008)
(1106) Project
Arguments: [product#21521741, plant#21521742, orderDateTime#21521743, productPlant#21521753, outboundUnit#21521770, stockDatetime#21521993, stockBatchQuantities#21521994, stockBatchShelfLifeEndDatetimes#21521995, rawDemands#21522006, systemId#21522007, internalUUID#21522008, id#21522009, displayId#21522010, name#21522011, category#21522012, companyCode#21522013, address#21522014, mainDistributionChain#21522015, mainPurchasingOrganization#21522016, validPurchasingOrganizations#21522017, productGroup#21522018, CASE WHEN isnotnull(timezonecode#21522019) THEN timezonecode#21522019 ELSE UTC END AS timezonecode#21522020]
(1107) Project
Arguments: [product#21521741, plant#21521742, orderDateTime#21521743, productPlant#21521753, outboundUnit#21521770, stockDatetime#21521993, stockBatchQuantities#21521994, stockBatchShelfLifeEndDatetimes#21521995, rawDemands#21522006, timezonecode#21522020]
(1108) DeserializeToObject
Arguments: createexternalrow(invoke(product#21521741.toString()), invoke(plant#21521742.toString()), static_invoke(DateTimeUtils.toJavaTimestamp(orderDateTime#21521743)), if (isnull(productPlant#21521753)) null else createexternalrow(invoke(productPlant#21521753.systemId.toString()), invoke(productPlant#21521753.internalUUID.toString()), if (isnull(productPlant#21521753.plant)) null else createexternalrow(invoke(productPlant#21521753.plant.internalRefUUID.toString()), invoke(productPlant#21521753.plant.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), if (isnull(productPlant#21521753.product)) null else createexternalrow(invoke(productPlant#21521753.product.internalRefUUID.toString()), invoke(productPlant#21521753.product.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(DateTimeUtils.toJavaDate(productPlant#21521753.blockedForReplenishmentStartingFrom)), if (isnull(productPlant#21521753.productionAspect)) null else createexternalrow(if (isnull(productPlant#21521753.productionAspect.productMovementPlants)) null else createexternalrow(if (isnull(productPlant#21521753.productionAspect.productMovementPlants.unitOfIssue)) null else createexternalrow(invoke(productPlant#21521753.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID.toString()), invoke(productPlant#21521753.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#21521753.productionAspect.productPlanningPlants)) null else createexternalrow(if (isnull(productPlant#21521753.productionAspect.productPlanningPlants.mrpType)) null else createexternalrow(invoke(productPlant#21521753.productionAspect.productPlanningPlants.mrpType.internalRefUUID.toString()), invoke(productPlant#21521753.productionAspect.productPlanningPlants.mrpType.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#21521753.productionAspect.productPlanningPlants.abcIndicator)) null else createexternalrow(invoke(productPlant#21521753.productionAspect.productPlanningPlants.abcIndicator.internalRefUUID.toString()), invoke(productPlant#21521753.productionAspect.productPlanningPlants.abcIndicator.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#21521753.productionAspect.productPlanningPlants.mrpController)) null else createexternalrow(invoke(productPlant#21521753.productionAspect.productPlanningPlants.mrpController.internalRefUUID.toString()), invoke(productPlant#21521753.productionAspect.productPlanningPlants.mrpController.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(java.lang.Double.valueOf(productPlant#21521753.productionAspect.productPlanningPlants.minimumLotSize)), if (isnull(productPlant#21521753.productionAspect.productPlanningPlants.logisticalRoundingProfile)) null else createexternalrow(invoke(productPlant#21521753.productionAspect.productPlanningPlants.logisticalRoundingProfile.internalRefUUID.toString()), invoke(productPlant#21521753.productionAspect.productPlanningPlants.logisticalRoundingProfile.logisticalRoundingProfile.toString()), StructField(internalRefUUID,StringType,true), StructField(logisticalRoundingProfile,StringType,true)), if (isnull(productPlant#21521753.productionAspect.productPlanningPlants.sourceOfSupplyCategory)) null else createexternalrow(invoke(productPlant#21521753.productionAspect.productPlanningPlants.sourceOfSupplyCategory.internalRefUUID.toString()), invoke(productPlant#21521753.productionAspect.productPlanningPlants.sourceOfSupplyCategory.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true), StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true), StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(minimumLotSize,DoubleType,true), StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true), StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true), StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)), if (isnull(productPlant#21521753.salesPlant)) null else createexternalrow(if (isnull(productPlant#21521753.salesPlant.loadingGroup)) null else createexternalrow(invoke(productPlant#21521753.salesPlant.loadingGroup.internalRefUUID.toString()), invoke(productPlant#21521753.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, 2680280), if (isnull(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 2680280))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 2680280).validFrom)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 2680280).validTo)), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 2680280).isListed)), StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true)), productPlant#21521753.listing, Some(class scala.collection.mutable.ArraySeq)), StructField(systemId,StringType,true), StructField(internalUUID,StringType,true), StructField(plant,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(product,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(blockedForReplenishmentStartingFrom,DateType,true), StructField(productionAspect,StructType(StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)),true), StructField(salesPlant,StructType(StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true), StructField(listing,ArrayType(StructType(StructField(validFrom,TimestampType,true),StructField(validTo,TimestampType,true),StructField(isListed,BooleanType,true)),true),true)), static_invoke(java.lang.Double.valueOf(outboundUnit#21521770)), static_invoke(DateTimeUtils.toJavaTimestamp(stockDatetime#21521993)), mapobjects(lambdavariable(MapObject, DoubleType, true, 2680281), static_invoke(java.lang.Double.valueOf(cast(lambdavariable(MapObject, DoubleType, true, 2680281) as double))), stockBatchQuantities#21521994, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, false, 2680282), assertnotnull(static_invoke(DateTimeUtils.toJavaTimestamp(cast(lambdavariable(MapObject, TimestampType, false, 2680282) as timestamp)))), stockBatchShelfLifeEndDatetimes#21521995, 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, 2680283), 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, 2680283))) 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, 2680283).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, 2680283).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, 2680283).considerVariance)), mapobjects(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 2680284), if (isnull(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 2680284))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 2680284).demandStartDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 2680284).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 2680284).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, 2680283).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, 2680283).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, 2680283).demandPointInTimeEnd)), mapobjects(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 2680285), if (isnull(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 2680285))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 2680285).demandDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 2680285).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 2680285).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, 2680283).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#21522006, Some(class scala.collection.mutable.ArraySeq)), invoke(timezonecode#21522020.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),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)),true),StructField(salesPlant,StructType(StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(listing,ArrayType(StructType(StructField(validFrom,TimestampType,true),StructField(validTo,TimestampType,true),StructField(isListed,BooleanType,true)),true),true)),true), StructField(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#21519488: org.apache.spark.sql.Row
(1109) MapElements
Arguments: com.sap.s4hana.eureka.business.crporderquantitykpiservice.core.business.datasnapshot.DemandTransformatorImpl$$Lambda/0x00000008021e99e0@10fe4db7, interface org.apache.spark.sql.Row, [StructField(product,StringType,true), StructField(plant,StringType,true), StructField(orderDateTime,TimestampType,true), StructField(productPlant,StructType(StructField(systemId,StringType,true),StructField(internalUUID,StringType,true),StructField(plant,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(product,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(blockedForReplenishmentStartingFrom,DateType,true),StructField(productionAspect,StructType(StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)),true),StructField(salesPlant,StructType(StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(listing,ArrayType(StructType(StructField(validFrom,TimestampType,true),StructField(validTo,TimestampType,true),StructField(isListed,BooleanType,true)),true),true)),true), StructField(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#21519493: org.apache.spark.sql.Row
(1110) 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#21522021, 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#21522022, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(2))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680270), assertnotnull(if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680271), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680271), DoubleType, ObjectType(class java.lang.Double)).doubleValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680272), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680272), DoubleType, ObjectType(class java.lang.Double)).doubleValue()), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680273), assertnotnull(static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680273), TimestampType, ObjectType(class java.sql.Timestamp))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680274), assertnotnull(static_invoke(UTF8String.fromString(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680274), StringType, ObjectType(class java.lang.String))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680275), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680275), IntegerType, ObjectType(class java.lang.Integer)).intValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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#21522023, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(3))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680276), assertnotnull(if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680277), assertnotnull(static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680277), TimestampType, ObjectType(class java.sql.Timestamp))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680278), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680278), DoubleType, ObjectType(class java.lang.Double)).doubleValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680279), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680279), DoubleType, ObjectType(class java.lang.Double)).doubleValue()), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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#21522024]
(1111) Join
Arguments: LeftOuter, ((plant#21522022 <=> plant#21521487) AND (product#21522021 <=> product#21521486))
(1112) Project
Arguments: [product#21521486, plant#21521487, orderDateTime#21521488, productPlant#21521498, outboundUnit#21521515, stockDatetime#21521738, stockBatchQuantities#21521739, stockBatchShelfLifeEndDatetimes#21521740, plant#21522022, dayBucketDemands#21522023, pointInTimeDemands#21522024]
(1113) Project
Arguments: [product#21521486, plant#21521487, orderDateTime#21521488, productPlant#21521498, outboundUnit#21521515, stockDatetime#21521738, stockBatchQuantities#21521739, stockBatchShelfLifeEndDatetimes#21521740, dayBucketDemands#21522023, pointInTimeDemands#21522024]
(1114) LogicalRelation
Arguments: parquet, [systemId#21522025, internalUUID#21522026, id#21522027, displayId#21522028, supplier#21522029, type#21522030, status#21522031, isMarkedForDeletion#21522032, items#21522033], false
(1115) Repartition
Arguments: 25, true
(1116) Generate
Arguments: explode(items#21522033), false, [item#21522034]
(1117) Project
Arguments: [id#21522027, internalUUID#21522026, isMarkedForDeletion#21522032, supplier#21522029.internalRefUUID AS supplierUuid#21522035, item#21522034]
(1118) Filter
Arguments: (((NOT isMarkedForDeletion#21522032 AND NOT item#21522034.deletionIndicator) AND NOT item#21522034.completeIndicator) AND NOT item#21522034.returnIndicator)
(1119) Project
Arguments: [id#21522027, internalUUID#21522026, supplierUuid#21522035, item#21522034.plant.internalRefUUID AS plant#21522036, item#21522034.product.internalRefUUID AS product#21522037, item#21522034.storageLocation.internalRefUUID AS storageLocUuid#21522038, item#21522034.quantityUnit.code AS quantityUom#21522039, item#21522034.quantityUnit.internalRefUUID AS quantityUomUuid#21522040, item#21522034.quantityNumerator AS quantityNumerator#21522041, item#21522034.quantityDenominator AS quantityDenominator#21522042, item#21522034.scheduleLines AS scheduleLines#21522043, item#21522034.confirmations AS confirmations#21522044]
(1120) Join
Arguments: Inner, ((product#21521486 <=> product#21522037) AND (plant#21521487 <=> supplierUuid#21522035))
(1121) Project
Arguments: [id#21522027, internalUUID#21522026, supplierUuid#21522035, plant#21522036, product#21522037, storageLocUuid#21522038, quantityUom#21522039, quantityUomUuid#21522040, quantityNumerator#21522041, quantityDenominator#21522042, scheduleLines#21522043, confirmations#21522044, stockDatetime#21521738, plant#21521487]
(1122) Project
Arguments: [id#21522027, internalUUID#21522026, supplierUuid#21522035, product#21522037, storageLocUuid#21522038, quantityUom#21522039, quantityUomUuid#21522040, quantityNumerator#21522041, quantityDenominator#21522042, scheduleLines#21522043, confirmations#21522044, stockDatetime#21521738, plant#21521487]
(1123) Project
Arguments: [id#21522027, internalUUID#21522026, supplierUuid#21522035, product#21522037, storageLocUuid#21522038, quantityUom#21522039, quantityUomUuid#21522040, quantityNumerator#21522041, quantityDenominator#21522042, scheduleLines#21522043, confirmations#21522044, stockDatetime#21521738, plant#21521487, filter(transform(filter(transform(scheduleLines#21522043, lambdafunction(struct(openQty, (greatest((lambda x_1556#21521466.quantity - coalesce(lambda x_1556#21521466.deliveredQuantity, 0.0)), 0.0) * -1.0), availabilityDatetime, coalesce(lambda x_1556#21521466.productAvailabilityDateTime, lambda x_1556#21521466.deliveryAt)), lambda x_1556#21521466, false)), lambdafunction((lambda x_1557#21521467.availabilityDatetime < stockDatetime#21521738), lambda x_1557#21521467, false)), lambdafunction(struct(documentId, id#21522027, documentUuid, internalUUID#21522026, openQty, lambda x_1558#21521468.openQty, openQtyInBaseUnit, ((lambda x_1558#21521468.openQty * quantityNumerator#21522041) / quantityDenominator#21522042), qtyUom, quantityUom#21522039, qtyUomUuid, quantityUomUuid#21522040, availabilityDatetime, lambda x_1558#21521468.availabilityDatetime, shelfLifeEndDatetime, 2199-01-01 00:00:00), lambda x_1558#21521468, false)), lambdafunction(NOT (lambda x_1559#21521469.openQty = 0.0), lambda x_1559#21521469, false)) AS openGoodsMovements#21521465]
(1124) Aggregate
Arguments: [product#21522037, plant#21521487], [product#21522037, plant#21521487, flatten(collect_list(openGoodsMovements#21521465, 0, 0)) AS openGoodsMovements#21521470]
(1125) Filter
Arguments: (array_size(openGoodsMovements#21521470) > 0)
(1126) Union
Arguments: false, false
(1127) Aggregate
Arguments: [product#21519794, plant#21519793], [product#21519794, plant#21519793, flatten(collect_list(openGoodsMovements#21519894, 0, 0)) AS openGoodsMovements#21522086]
(1128) Join
Arguments: LeftOuter, ((product#21517975 = product#21519794) AND (plant#21517976 = plant#21519793))
(1129) Project
Arguments: [product#21517975, plant#21517976, orderDateTime#21517977, productPlant#21517989, outboundUnit#21518060, stockDatetime#21518396, stockBatchQuantities#21518397, stockBatchShelfLifeEndDatetimes#21518398, dayBucketDemands#21519500, pointInTimeDemands#21519501, openGoodsMovements#21522086]
(1130) Project
Arguments: [product#21517975, plant#21517976, orderDateTime#21517977, productPlant#21517989, outboundUnit#21518060, stockDatetime#21518396, stockBatchQuantities#21518397, stockBatchShelfLifeEndDatetimes#21518398, dayBucketDemands#21519500, pointInTimeDemands#21519501, coalesce(openGoodsMovements#21522086.openQtyInBaseUnit, cast(array() as array<double>)) AS openGoodsMovementQuantities#21522670, coalesce(openGoodsMovements#21522086.availabilityDatetime, cast(array() as array<timestamp>)) AS openGoodsMovementAvailabilityDatetimes#21522671, coalesce(openGoodsMovements#21522086.shelfLifeEndDatetime, cast(array() as array<timestamp>)) AS openGoodsMovementShelfLifeEndDatetimes#21522672]
(1131) Project
Arguments: [product#21517975, plant#21517976, orderDateTime#21517977, productPlant#21517989, outboundUnit#21518060, stockDatetime#21518396, stockBatchQuantities#21518397, stockBatchShelfLifeEndDatetimes#21518398, dayBucketDemands#21519500, pointInTimeDemands#21519501, openGoodsMovementQuantities#21522670, openGoodsMovementAvailabilityDatetimes#21522671, openGoodsMovementShelfLifeEndDatetimes#21522672, 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#21522773]
(1132) LogicalRelation
Arguments: parquet, [product#21522970, plant#21522971, orderDateTime#21522972, planningStartDateTime#21522973], false
(1133) RepartitionByExpression
Arguments: [product#21522970, plant#21522971], 25
(1134) Project
Arguments: [product#21522970, plant#21522971, orderDateTime#21522972]
(1135) LogicalRelation
Arguments: parquet, [systemId#21522974, internalUUID#21522975, plant#21522976, product#21522977, blockedForReplenishmentStartingFrom#21522978, productionAspect#21522979, salesPlant#21522980, listing#21522981], false
(1136) Repartition
Arguments: 25, true
(1137) Project
Arguments: [systemId#21522974, internalUUID#21522975, plant#21522976, product#21522977, blockedForReplenishmentStartingFrom#21522978, productionAspect#21522979, salesPlant#21522980, listing#21522981, struct(systemId, systemId#21522974, internalUUID, internalUUID#21522975, plant, plant#21522976, product, product#21522977, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#21522978, productionAspect, productionAspect#21522979, salesPlant, salesPlant#21522980, listing, listing#21522981) AS productPlant#21522982]
(1138) Project
Arguments: [productPlant#21522982]
(1139) Join
Arguments: LeftOuter, ((product#21522970 <=> productPlant#21522982.product.internalRefUUID) AND (plant#21522971 <=> productPlant#21522982.plant.internalRefUUID))
(1140) Project
Arguments: [product#21522970, plant#21522971, orderDateTime#21522972, productPlant#21522982]
(1141) LogicalRelation
Arguments: parquet, [systemId#21522983, internalUUID#21522984, id#21522985, displayId#21522986, name#21522987, baseUnitOfMeasure#21522988, unitOfMeasures#21522989, unitOfMeasureConversions#21522990, productionAspect#21522991, salesAspect#21522992, procurementAspect#21522993, productGroup#21522994], false
(1142) Repartition
Arguments: 25, true
(1143) Join
Arguments: LeftOuter, (product#21522970 = internalUUID#21522984)
(1144) Project
Arguments: [product#21522970, plant#21522971, orderDateTime#21522972, productPlant#21522982, systemId#21522983, internalUUID#21522984, id#21522985, displayId#21522986, name#21522987, baseUnitOfMeasure#21522988, unitOfMeasures#21522989, unitOfMeasureConversions#21522990, productionAspect#21522991, salesAspect#21522992, procurementAspect#21522993, productGroup#21522994, filter(unitOfMeasureConversions#21522990, lambdafunction((((lambda u#21518048.measurementUnit1.code = productPlant#21522982.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#21518048.measurementUnit1.internalRefUUID = productPlant#21522982.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#21518048.measurementUnit2.code = baseUnitOfMeasure#21522988.code) AND (lambda u#21518048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#21522988.internalRefUUID))), lambda u#21518048, false)) AS filteredUnitOfMeasureConversions#21522995]
(1145) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21522995.quantityNumerator), true, [quantityNumerator#21522996]
(1146) Project
Arguments: [product#21522970, plant#21522971, orderDateTime#21522972, productPlant#21522982, systemId#21522983, internalUUID#21522984, id#21522985, displayId#21522986, name#21522987, baseUnitOfMeasure#21522988, unitOfMeasures#21522989, unitOfMeasureConversions#21522990, productionAspect#21522991, salesAspect#21522992, procurementAspect#21522993, productGroup#21522994, filteredUnitOfMeasureConversions#21522995, quantityNumerator#21522996]
(1147) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21522995.quantityDenominator), true, [quantityDenominator#21522997]
(1148) Project
Arguments: [product#21522970, plant#21522971, orderDateTime#21522972, productPlant#21522982, systemId#21522983, internalUUID#21522984, id#21522985, displayId#21522986, name#21522987, baseUnitOfMeasure#21522988, unitOfMeasures#21522989, unitOfMeasureConversions#21522990, productionAspect#21522991, salesAspect#21522992, procurementAspect#21522993, productGroup#21522994, filteredUnitOfMeasureConversions#21522995, quantityNumerator#21522996, quantityDenominator#21522997]
(1149) Project
Arguments: [product#21522970, plant#21522971, orderDateTime#21522972, productPlant#21522982, systemId#21522983, internalUUID#21522984, id#21522985, displayId#21522986, name#21522987, baseUnitOfMeasure#21522988, unitOfMeasures#21522989, unitOfMeasureConversions#21522990, productionAspect#21522991, salesAspect#21522992, procurementAspect#21522993, productGroup#21522994, filteredUnitOfMeasureConversions#21522995, quantityNumerator#21522996, quantityDenominator#21522997, (cast(quantityNumerator#21522996 as double) / cast(quantityDenominator#21522997 as double)) AS outboundUnit#21522998]
(1150) Project
Arguments: [product#21522970, plant#21522971, orderDateTime#21522972, productPlant#21522982, systemId#21522983, internalUUID#21522984, id#21522985, displayId#21522986, name#21522987, baseUnitOfMeasure#21522988, unitOfMeasures#21522989, unitOfMeasureConversions#21522990, productionAspect#21522991, salesAspect#21522992, procurementAspect#21522993, productGroup#21522994, filteredUnitOfMeasureConversions#21522995, quantityNumerator#21522996, quantityDenominator#21522997, CASE WHEN (isnull(outboundUnit#21522998) OR (outboundUnit#21522998 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#21522998 END AS outboundUnit#21522999]
(1151) Project
Arguments: [product#21522970, plant#21522971, orderDateTime#21522972, productPlant#21522982, outboundUnit#21522999]
(1152) LogicalRelation
Arguments: parquet, [systemId#21523000, internalUUID#21523001, product#21523002, plant#21523003, calculationDateTime#21523004, stockQuantities#21523005], false
(1153) Repartition
Arguments: 25, true
(1154) LogicalRelation
Arguments: parquet, [marketUnit#21523006, description#21523007, articleHierarchy#21523008, defaultCurrency#21523009, responsibilities#21523010, replenishmentTypes#21523011, distributionCenters#21523012, assignedArticleHierarchyNodes#21523013, minOrderQtySetting#21523014, listingCheck#21523015, odsSelection#21523016, demandProfiles#21523017, constraintProfiles#21523018, optimizationProfiles#21523019, orderGroupSplitProfiles#21523020, supplierMinimumProfiles#21523021, multipleRestrictionProfiles#21523022, preferredUomSource#21523023, handlingOfUnfulfilledDemands#21523024, negligibleQuantitiesThreshold#21523025, eventtype#21523026, minOrderQtySettingInternal#21523027], false
(1155) Repartition
Arguments: 25, true
(1156) Filter
Arguments: (marketUnit#21523006 <=> SS_Test_1)
(1157) Project
Arguments: [marketUnit#21523006, description#21523007, articleHierarchy#21523008, defaultCurrency#21523009, responsibilities#21523010, replenishmentTypes#21523011, distributionCenters#21523012, assignedArticleHierarchyNodes#21523013, minOrderQtySetting#21523014, listingCheck#21523015, odsSelection#21523016, demandProfiles#21523017, constraintProfiles#21523018, optimizationProfiles#21523019, orderGroupSplitProfiles#21523020, supplierMinimumProfiles#21523021, multipleRestrictionProfiles#21523022, preferredUomSource#21523023, handlingOfUnfulfilledDemands#21523024, negligibleQuantitiesThreshold#21523025, eventtype#21523026, minOrderQtySettingInternal#21523027]
(1158) Project
Arguments: [distributionCenters#21523012]
(1159) Generate
Arguments: explode(distributionCenters#21523012), false, [distributionCenters#21523028]
(1160) Project
Arguments: [distributionCenters#21523028]
(1161) Generate
Arguments: explode(distributionCenters#21523028.storageLocations), false, [storageLocations#21523029]
(1162) Project
Arguments: [distributionCenters#21523028.id AS plantId#21523030, distributionCenters#21523028.internalRefUUID AS plantUuid#21523031, storageLocations#21523029]
(1163) Project
Arguments: [plantId#21523030, plantUuid#21523031, storageLocations#21523029.id AS storageLocId#21523032, storageLocations#21523029.internalRefUUID AS storageLocUuid#21523033]
(1164) LogicalRelation
Arguments: parquet, [product#21523034, plant#21523035, orderDateTime#21523036, planningStartDateTime#21523037], false
(1165) RepartitionByExpression
Arguments: [product#21523034, plant#21523035], 25
(1166) Project
Arguments: [product#21523034, plant#21523035, orderDateTime#21523036]
(1167) LogicalRelation
Arguments: parquet, [systemId#21523038, internalUUID#21523039, plant#21523040, product#21523041, blockedForReplenishmentStartingFrom#21523042, productionAspect#21523043, salesPlant#21523044, listing#21523045], false
(1168) Repartition
Arguments: 25, true
(1169) Project
Arguments: [systemId#21523038, internalUUID#21523039, plant#21523040, product#21523041, blockedForReplenishmentStartingFrom#21523042, productionAspect#21523043, salesPlant#21523044, listing#21523045, struct(systemId, systemId#21523038, internalUUID, internalUUID#21523039, plant, plant#21523040, product, product#21523041, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#21523042, productionAspect, productionAspect#21523043, salesPlant, salesPlant#21523044, listing, listing#21523045) AS productPlant#21523046]
(1170) Project
Arguments: [productPlant#21523046]
(1171) Join
Arguments: LeftOuter, ((product#21523034 <=> productPlant#21523046.product.internalRefUUID) AND (plant#21523035 <=> productPlant#21523046.plant.internalRefUUID))
(1172) Project
Arguments: [product#21523034, plant#21523035, orderDateTime#21523036, productPlant#21523046]
(1173) LogicalRelation
Arguments: parquet, [systemId#21523047, internalUUID#21523048, id#21523049, displayId#21523050, name#21523051, baseUnitOfMeasure#21523052, unitOfMeasures#21523053, unitOfMeasureConversions#21523054, productionAspect#21523055, salesAspect#21523056, procurementAspect#21523057, productGroup#21523058], false
(1174) Repartition
Arguments: 25, true
(1175) Join
Arguments: LeftOuter, (product#21523034 = internalUUID#21523048)
(1176) Project
Arguments: [product#21523034, plant#21523035, orderDateTime#21523036, productPlant#21523046, systemId#21523047, internalUUID#21523048, id#21523049, displayId#21523050, name#21523051, baseUnitOfMeasure#21523052, unitOfMeasures#21523053, unitOfMeasureConversions#21523054, productionAspect#21523055, salesAspect#21523056, procurementAspect#21523057, productGroup#21523058, filter(unitOfMeasureConversions#21523054, lambdafunction((((lambda u#21518048.measurementUnit1.code = productPlant#21523046.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#21518048.measurementUnit1.internalRefUUID = productPlant#21523046.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#21518048.measurementUnit2.code = baseUnitOfMeasure#21523052.code) AND (lambda u#21518048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#21523052.internalRefUUID))), lambda u#21518048, false)) AS filteredUnitOfMeasureConversions#21523059]
(1177) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21523059.quantityNumerator), true, [quantityNumerator#21523060]
(1178) Project
Arguments: [product#21523034, plant#21523035, orderDateTime#21523036, productPlant#21523046, systemId#21523047, internalUUID#21523048, id#21523049, displayId#21523050, name#21523051, baseUnitOfMeasure#21523052, unitOfMeasures#21523053, unitOfMeasureConversions#21523054, productionAspect#21523055, salesAspect#21523056, procurementAspect#21523057, productGroup#21523058, filteredUnitOfMeasureConversions#21523059, quantityNumerator#21523060]
(1179) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21523059.quantityDenominator), true, [quantityDenominator#21523061]
(1180) Project
Arguments: [product#21523034, plant#21523035, orderDateTime#21523036, productPlant#21523046, systemId#21523047, internalUUID#21523048, id#21523049, displayId#21523050, name#21523051, baseUnitOfMeasure#21523052, unitOfMeasures#21523053, unitOfMeasureConversions#21523054, productionAspect#21523055, salesAspect#21523056, procurementAspect#21523057, productGroup#21523058, filteredUnitOfMeasureConversions#21523059, quantityNumerator#21523060, quantityDenominator#21523061]
(1181) Project
Arguments: [product#21523034, plant#21523035, orderDateTime#21523036, productPlant#21523046, systemId#21523047, internalUUID#21523048, id#21523049, displayId#21523050, name#21523051, baseUnitOfMeasure#21523052, unitOfMeasures#21523053, unitOfMeasureConversions#21523054, productionAspect#21523055, salesAspect#21523056, procurementAspect#21523057, productGroup#21523058, filteredUnitOfMeasureConversions#21523059, quantityNumerator#21523060, quantityDenominator#21523061, (cast(quantityNumerator#21523060 as double) / cast(quantityDenominator#21523061 as double)) AS outboundUnit#21523062]
(1182) Project
Arguments: [product#21523034, plant#21523035, orderDateTime#21523036, productPlant#21523046, systemId#21523047, internalUUID#21523048, id#21523049, displayId#21523050, name#21523051, baseUnitOfMeasure#21523052, unitOfMeasures#21523053, unitOfMeasureConversions#21523054, productionAspect#21523055, salesAspect#21523056, procurementAspect#21523057, productGroup#21523058, filteredUnitOfMeasureConversions#21523059, quantityNumerator#21523060, quantityDenominator#21523061, CASE WHEN (isnull(outboundUnit#21523062) OR (outboundUnit#21523062 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#21523062 END AS outboundUnit#21523063]
(1183) Project
Arguments: [product#21523034, plant#21523035, orderDateTime#21523036, productPlant#21523046, outboundUnit#21523063]
(1184) Project
Arguments: [plant#21523035]
(1185) Deduplicate
Arguments: [plant#21523035]
(1186) Join
Arguments: Inner, (plantUuid#21523031 = plant#21523035)
(1187) Project
Arguments: [plantId#21523030, plantUuid#21523031, storageLocId#21523032, storageLocUuid#21523033]
(1188) Join
Arguments: Inner, (plant#21523003.internalRefUUID <=> plantUuid#21523031)
(1189) Generate
Arguments: explode(filter(stockQuantities#21523005, lambdafunction(((lambda x#21518157.storageLocation.internalRefUuid = storageLocUuid#21523033) AND (lambda x#21518157.storageLocation.Id = storageLocId#21523032)), lambda x#21518157, false))), false, [stockQuantity#21523064]
(1190) Project
Arguments: [systemId#21523000, internalUUID#21523001, product#21523002, plant#21523003, calculationDateTime#21523004, stockQuantities#21523005, plantId#21523030, plantUuid#21523031, storageLocId#21523032, storageLocUuid#21523033, stockQuantity#21523064]
(1191) Aggregate
Arguments: [plantUuid#21523031, internalUUID#21523001, plant#21523003, product#21523002, systemId#21523000], [plantUuid#21523031, internalUUID#21523001, plant#21523003, product#21523002, systemId#21523000, first(calculationDateTime#21523004, false) AS calculationDateTime#21523065, collect_list(stockQuantity#21523064, 0, 0) AS stockQuantities#21523066]
(1192) Project
Arguments: [systemId#21523000, internalUUID#21523001, product#21523002, plant#21523003, calculationDateTime#21523065, stockQuantities#21523066]
(1193) Generate
Arguments: explode(stockQuantities#21523066), false, [stockQuantity#21523067]
(1194) Project
Arguments: [systemId#21523000, internalUUID#21523001, product#21523002, plant#21523003, calculationDateTime#21523065, stockQuantities#21523066, stockQuantity#21523067]
(1195) Project
Arguments: [plant#21523003.id AS plant#21523068, plant#21523003.internalRefUUID AS plantUuid#21523069, product#21523002.id AS product#21523070, product#21523002.internalRefUUID AS productUuid#21523071, calculationDateTime#21523065, stockQuantity#21523067.storagelocation.id AS storageLocId#21523072, stockQuantity#21523067.storagelocation.internalRefUUID AS storageLocUuid#21523073, stockQuantity#21523067.quantity.measure AS quantity#21523074, stockQuantity#21523067.specialStockIndicator.code AS specialStockIndicator#21523075, stockQuantity#21523067.stockType.code AS stockType#21523076]
(1196) Filter
Arguments: ((specialStockIndicator#21523075 = ) AND (stockType#21523076 = 01))
(1197) LogicalRelation
Arguments: parquet, [product#21523077, plant#21523078, orderDateTime#21523079, planningStartDateTime#21523080], false
(1198) RepartitionByExpression
Arguments: [product#21523077, plant#21523078], 25
(1199) Project
Arguments: [product#21523077, plant#21523078, orderDateTime#21523079]
(1200) LogicalRelation
Arguments: parquet, [systemId#21523081, internalUUID#21523082, plant#21523083, product#21523084, blockedForReplenishmentStartingFrom#21523085, productionAspect#21523086, salesPlant#21523087, listing#21523088], false
(1201) Repartition
Arguments: 25, true
(1202) Project
Arguments: [systemId#21523081, internalUUID#21523082, plant#21523083, product#21523084, blockedForReplenishmentStartingFrom#21523085, productionAspect#21523086, salesPlant#21523087, listing#21523088, struct(systemId, systemId#21523081, internalUUID, internalUUID#21523082, plant, plant#21523083, product, product#21523084, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#21523085, productionAspect, productionAspect#21523086, salesPlant, salesPlant#21523087, listing, listing#21523088) AS productPlant#21523089]
(1203) Project
Arguments: [productPlant#21523089]
(1204) Join
Arguments: LeftOuter, ((product#21523077 <=> productPlant#21523089.product.internalRefUUID) AND (plant#21523078 <=> productPlant#21523089.plant.internalRefUUID))
(1205) Project
Arguments: [product#21523077, plant#21523078, orderDateTime#21523079, productPlant#21523089]
(1206) LogicalRelation
Arguments: parquet, [systemId#21523090, internalUUID#21523091, id#21523092, displayId#21523093, name#21523094, baseUnitOfMeasure#21523095, unitOfMeasures#21523096, unitOfMeasureConversions#21523097, productionAspect#21523098, salesAspect#21523099, procurementAspect#21523100, productGroup#21523101], false
(1207) Repartition
Arguments: 25, true
(1208) Join
Arguments: LeftOuter, (product#21523077 = internalUUID#21523091)
(1209) Project
Arguments: [product#21523077, plant#21523078, orderDateTime#21523079, productPlant#21523089, systemId#21523090, internalUUID#21523091, id#21523092, displayId#21523093, name#21523094, baseUnitOfMeasure#21523095, unitOfMeasures#21523096, unitOfMeasureConversions#21523097, productionAspect#21523098, salesAspect#21523099, procurementAspect#21523100, productGroup#21523101, filter(unitOfMeasureConversions#21523097, lambdafunction((((lambda u#21518048.measurementUnit1.code = productPlant#21523089.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#21518048.measurementUnit1.internalRefUUID = productPlant#21523089.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#21518048.measurementUnit2.code = baseUnitOfMeasure#21523095.code) AND (lambda u#21518048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#21523095.internalRefUUID))), lambda u#21518048, false)) AS filteredUnitOfMeasureConversions#21523102]
(1210) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21523102.quantityNumerator), true, [quantityNumerator#21523103]
(1211) Project
Arguments: [product#21523077, plant#21523078, orderDateTime#21523079, productPlant#21523089, systemId#21523090, internalUUID#21523091, id#21523092, displayId#21523093, name#21523094, baseUnitOfMeasure#21523095, unitOfMeasures#21523096, unitOfMeasureConversions#21523097, productionAspect#21523098, salesAspect#21523099, procurementAspect#21523100, productGroup#21523101, filteredUnitOfMeasureConversions#21523102, quantityNumerator#21523103]
(1212) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21523102.quantityDenominator), true, [quantityDenominator#21523104]
(1213) Project
Arguments: [product#21523077, plant#21523078, orderDateTime#21523079, productPlant#21523089, systemId#21523090, internalUUID#21523091, id#21523092, displayId#21523093, name#21523094, baseUnitOfMeasure#21523095, unitOfMeasures#21523096, unitOfMeasureConversions#21523097, productionAspect#21523098, salesAspect#21523099, procurementAspect#21523100, productGroup#21523101, filteredUnitOfMeasureConversions#21523102, quantityNumerator#21523103, quantityDenominator#21523104]
(1214) Project
Arguments: [product#21523077, plant#21523078, orderDateTime#21523079, productPlant#21523089, systemId#21523090, internalUUID#21523091, id#21523092, displayId#21523093, name#21523094, baseUnitOfMeasure#21523095, unitOfMeasures#21523096, unitOfMeasureConversions#21523097, productionAspect#21523098, salesAspect#21523099, procurementAspect#21523100, productGroup#21523101, filteredUnitOfMeasureConversions#21523102, quantityNumerator#21523103, quantityDenominator#21523104, (cast(quantityNumerator#21523103 as double) / cast(quantityDenominator#21523104 as double)) AS outboundUnit#21523105]
(1215) Project
Arguments: [product#21523077, plant#21523078, orderDateTime#21523079, productPlant#21523089, systemId#21523090, internalUUID#21523091, id#21523092, displayId#21523093, name#21523094, baseUnitOfMeasure#21523095, unitOfMeasures#21523096, unitOfMeasureConversions#21523097, productionAspect#21523098, salesAspect#21523099, procurementAspect#21523100, productGroup#21523101, filteredUnitOfMeasureConversions#21523102, quantityNumerator#21523103, quantityDenominator#21523104, CASE WHEN (isnull(outboundUnit#21523105) OR (outboundUnit#21523105 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#21523105 END AS outboundUnit#21523106]
(1216) Project
Arguments: [product#21523077, plant#21523078, orderDateTime#21523079, productPlant#21523089, outboundUnit#21523106]
(1217) Join
Arguments: Inner, ((plantUuid#21523069 = plant#21523078) AND (productUuid#21523071 = product#21523077))
(1218) Filter
Arguments: (calculationDateTime#21523065 <= orderDateTime#21523079)
(1219) Project
Arguments: [plantUuid#21523069 AS plant#21523107, productUuid#21523071 AS product#21523108, storageLocId#21523072, calculationDateTime#21523065, quantity#21523074]
(1220) LogicalRelation
Arguments: parquet, [systemId#21523109, internalUUID#21523110, product#21523111, plant#21523112, calculationDateTime#21523113, stockQuantities#21523114], false
(1221) Repartition
Arguments: 25, true
(1222) LogicalRelation
Arguments: parquet, [marketUnit#21523115, description#21523116, articleHierarchy#21523117, defaultCurrency#21523118, responsibilities#21523119, replenishmentTypes#21523120, distributionCenters#21523121, assignedArticleHierarchyNodes#21523122, minOrderQtySetting#21523123, listingCheck#21523124, odsSelection#21523125, demandProfiles#21523126, constraintProfiles#21523127, optimizationProfiles#21523128, orderGroupSplitProfiles#21523129, supplierMinimumProfiles#21523130, multipleRestrictionProfiles#21523131, preferredUomSource#21523132, handlingOfUnfulfilledDemands#21523133, negligibleQuantitiesThreshold#21523134, eventtype#21523135, minOrderQtySettingInternal#21523136], false
(1223) Repartition
Arguments: 25, true
(1224) Filter
Arguments: (marketUnit#21523115 <=> SS_Test_1)
(1225) Project
Arguments: [marketUnit#21523115, description#21523116, articleHierarchy#21523117, defaultCurrency#21523118, responsibilities#21523119, replenishmentTypes#21523120, distributionCenters#21523121, assignedArticleHierarchyNodes#21523122, minOrderQtySetting#21523123, listingCheck#21523124, odsSelection#21523125, demandProfiles#21523126, constraintProfiles#21523127, optimizationProfiles#21523128, orderGroupSplitProfiles#21523129, supplierMinimumProfiles#21523130, multipleRestrictionProfiles#21523131, preferredUomSource#21523132, handlingOfUnfulfilledDemands#21523133, negligibleQuantitiesThreshold#21523134, eventtype#21523135, minOrderQtySettingInternal#21523136]
(1226) Project
Arguments: [distributionCenters#21523121]
(1227) Generate
Arguments: explode(distributionCenters#21523121), false, [distributionCenters#21523137]
(1228) Project
Arguments: [distributionCenters#21523137]
(1229) Generate
Arguments: explode(distributionCenters#21523137.storageLocations), false, [storageLocations#21523138]
(1230) Project
Arguments: [distributionCenters#21523137.id AS plantId#21523139, distributionCenters#21523137.internalRefUUID AS plantUuid#21523140, storageLocations#21523138]
(1231) Project
Arguments: [plantId#21523139, plantUuid#21523140, storageLocations#21523138.id AS storageLocId#21523141, storageLocations#21523138.internalRefUUID AS storageLocUuid#21523142]
(1232) LogicalRelation
Arguments: parquet, [product#21523143, plant#21523144, orderDateTime#21523145, planningStartDateTime#21523146], false
(1233) RepartitionByExpression
Arguments: [product#21523143, plant#21523144], 25
(1234) Project
Arguments: [product#21523143, plant#21523144, orderDateTime#21523145]
(1235) LogicalRelation
Arguments: parquet, [systemId#21523147, internalUUID#21523148, plant#21523149, product#21523150, blockedForReplenishmentStartingFrom#21523151, productionAspect#21523152, salesPlant#21523153, listing#21523154], false
(1236) Repartition
Arguments: 25, true
(1237) Project
Arguments: [systemId#21523147, internalUUID#21523148, plant#21523149, product#21523150, blockedForReplenishmentStartingFrom#21523151, productionAspect#21523152, salesPlant#21523153, listing#21523154, struct(systemId, systemId#21523147, internalUUID, internalUUID#21523148, plant, plant#21523149, product, product#21523150, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#21523151, productionAspect, productionAspect#21523152, salesPlant, salesPlant#21523153, listing, listing#21523154) AS productPlant#21523155]
(1238) Project
Arguments: [productPlant#21523155]
(1239) Join
Arguments: LeftOuter, ((product#21523143 <=> productPlant#21523155.product.internalRefUUID) AND (plant#21523144 <=> productPlant#21523155.plant.internalRefUUID))
(1240) Project
Arguments: [product#21523143, plant#21523144, orderDateTime#21523145, productPlant#21523155]
(1241) LogicalRelation
Arguments: parquet, [systemId#21523156, internalUUID#21523157, id#21523158, displayId#21523159, name#21523160, baseUnitOfMeasure#21523161, unitOfMeasures#21523162, unitOfMeasureConversions#21523163, productionAspect#21523164, salesAspect#21523165, procurementAspect#21523166, productGroup#21523167], false
(1242) Repartition
Arguments: 25, true
(1243) Join
Arguments: LeftOuter, (product#21523143 = internalUUID#21523157)
(1244) Project
Arguments: [product#21523143, plant#21523144, orderDateTime#21523145, productPlant#21523155, systemId#21523156, internalUUID#21523157, id#21523158, displayId#21523159, name#21523160, baseUnitOfMeasure#21523161, unitOfMeasures#21523162, unitOfMeasureConversions#21523163, productionAspect#21523164, salesAspect#21523165, procurementAspect#21523166, productGroup#21523167, filter(unitOfMeasureConversions#21523163, lambdafunction((((lambda u#21518048.measurementUnit1.code = productPlant#21523155.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#21518048.measurementUnit1.internalRefUUID = productPlant#21523155.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#21518048.measurementUnit2.code = baseUnitOfMeasure#21523161.code) AND (lambda u#21518048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#21523161.internalRefUUID))), lambda u#21518048, false)) AS filteredUnitOfMeasureConversions#21523168]
(1245) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21523168.quantityNumerator), true, [quantityNumerator#21523169]
(1246) Project
Arguments: [product#21523143, plant#21523144, orderDateTime#21523145, productPlant#21523155, systemId#21523156, internalUUID#21523157, id#21523158, displayId#21523159, name#21523160, baseUnitOfMeasure#21523161, unitOfMeasures#21523162, unitOfMeasureConversions#21523163, productionAspect#21523164, salesAspect#21523165, procurementAspect#21523166, productGroup#21523167, filteredUnitOfMeasureConversions#21523168, quantityNumerator#21523169]
(1247) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21523168.quantityDenominator), true, [quantityDenominator#21523170]
(1248) Project
Arguments: [product#21523143, plant#21523144, orderDateTime#21523145, productPlant#21523155, systemId#21523156, internalUUID#21523157, id#21523158, displayId#21523159, name#21523160, baseUnitOfMeasure#21523161, unitOfMeasures#21523162, unitOfMeasureConversions#21523163, productionAspect#21523164, salesAspect#21523165, procurementAspect#21523166, productGroup#21523167, filteredUnitOfMeasureConversions#21523168, quantityNumerator#21523169, quantityDenominator#21523170]
(1249) Project
Arguments: [product#21523143, plant#21523144, orderDateTime#21523145, productPlant#21523155, systemId#21523156, internalUUID#21523157, id#21523158, displayId#21523159, name#21523160, baseUnitOfMeasure#21523161, unitOfMeasures#21523162, unitOfMeasureConversions#21523163, productionAspect#21523164, salesAspect#21523165, procurementAspect#21523166, productGroup#21523167, filteredUnitOfMeasureConversions#21523168, quantityNumerator#21523169, quantityDenominator#21523170, (cast(quantityNumerator#21523169 as double) / cast(quantityDenominator#21523170 as double)) AS outboundUnit#21523171]
(1250) Project
Arguments: [product#21523143, plant#21523144, orderDateTime#21523145, productPlant#21523155, systemId#21523156, internalUUID#21523157, id#21523158, displayId#21523159, name#21523160, baseUnitOfMeasure#21523161, unitOfMeasures#21523162, unitOfMeasureConversions#21523163, productionAspect#21523164, salesAspect#21523165, procurementAspect#21523166, productGroup#21523167, filteredUnitOfMeasureConversions#21523168, quantityNumerator#21523169, quantityDenominator#21523170, CASE WHEN (isnull(outboundUnit#21523171) OR (outboundUnit#21523171 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#21523171 END AS outboundUnit#21523172]
(1251) Project
Arguments: [product#21523143, plant#21523144, orderDateTime#21523145, productPlant#21523155, outboundUnit#21523172]
(1252) Project
Arguments: [plant#21523144]
(1253) Deduplicate
Arguments: [plant#21523144]
(1254) Join
Arguments: Inner, (plantUuid#21523140 = plant#21523144)
(1255) Project
Arguments: [plantId#21523139, plantUuid#21523140, storageLocId#21523141, storageLocUuid#21523142]
(1256) Join
Arguments: Inner, (plant#21523112.internalRefUUID <=> plantUuid#21523140)
(1257) Generate
Arguments: explode(filter(stockQuantities#21523114, lambdafunction(((lambda x#21518157.storageLocation.internalRefUuid = storageLocUuid#21523142) AND (lambda x#21518157.storageLocation.Id = storageLocId#21523141)), lambda x#21518157, false))), false, [stockQuantity#21523173]
(1258) Project
Arguments: [systemId#21523109, internalUUID#21523110, product#21523111, plant#21523112, calculationDateTime#21523113, stockQuantities#21523114, plantId#21523139, plantUuid#21523140, storageLocId#21523141, storageLocUuid#21523142, stockQuantity#21523173]
(1259) Aggregate
Arguments: [plantUuid#21523140, internalUUID#21523110, plant#21523112, product#21523111, systemId#21523109], [plantUuid#21523140, internalUUID#21523110, plant#21523112, product#21523111, systemId#21523109, first(calculationDateTime#21523113, false) AS calculationDateTime#21523174, collect_list(stockQuantity#21523173, 0, 0) AS stockQuantities#21523175]
(1260) Project
Arguments: [systemId#21523109, internalUUID#21523110, product#21523111, plant#21523112, calculationDateTime#21523174, stockQuantities#21523175]
(1261) Generate
Arguments: explode(stockQuantities#21523175), false, [stockQuantity#21523176]
(1262) Project
Arguments: [systemId#21523109, internalUUID#21523110, product#21523111, plant#21523112, calculationDateTime#21523174, stockQuantities#21523175, stockQuantity#21523176]
(1263) Project
Arguments: [plant#21523112.id AS plant#21523177, plant#21523112.internalRefUUID AS plantUuid#21523178, product#21523111.id AS product#21523179, product#21523111.internalRefUUID AS productUuid#21523180, calculationDateTime#21523174, stockQuantity#21523176.storagelocation.id AS storageLocId#21523181, stockQuantity#21523176.storagelocation.internalRefUUID AS storageLocUuid#21523182, stockQuantity#21523176.quantity.measure AS quantity#21523183, stockQuantity#21523176.specialStockIndicator.code AS specialStockIndicator#21523184, stockQuantity#21523176.stockType.code AS stockType#21523185]
(1264) Filter
Arguments: ((specialStockIndicator#21523184 = ) AND (stockType#21523185 = 01))
(1265) LogicalRelation
Arguments: parquet, [product#21523186, plant#21523187, orderDateTime#21523188, planningStartDateTime#21523189], false
(1266) RepartitionByExpression
Arguments: [product#21523186, plant#21523187], 25
(1267) Project
Arguments: [product#21523186, plant#21523187, orderDateTime#21523188]
(1268) LogicalRelation
Arguments: parquet, [systemId#21523190, internalUUID#21523191, plant#21523192, product#21523193, blockedForReplenishmentStartingFrom#21523194, productionAspect#21523195, salesPlant#21523196, listing#21523197], false
(1269) Repartition
Arguments: 25, true
(1270) Project
Arguments: [systemId#21523190, internalUUID#21523191, plant#21523192, product#21523193, blockedForReplenishmentStartingFrom#21523194, productionAspect#21523195, salesPlant#21523196, listing#21523197, struct(systemId, systemId#21523190, internalUUID, internalUUID#21523191, plant, plant#21523192, product, product#21523193, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#21523194, productionAspect, productionAspect#21523195, salesPlant, salesPlant#21523196, listing, listing#21523197) AS productPlant#21523198]
(1271) Project
Arguments: [productPlant#21523198]
(1272) Join
Arguments: LeftOuter, ((product#21523186 <=> productPlant#21523198.product.internalRefUUID) AND (plant#21523187 <=> productPlant#21523198.plant.internalRefUUID))
(1273) Project
Arguments: [product#21523186, plant#21523187, orderDateTime#21523188, productPlant#21523198]
(1274) LogicalRelation
Arguments: parquet, [systemId#21523199, internalUUID#21523200, id#21523201, displayId#21523202, name#21523203, baseUnitOfMeasure#21523204, unitOfMeasures#21523205, unitOfMeasureConversions#21523206, productionAspect#21523207, salesAspect#21523208, procurementAspect#21523209, productGroup#21523210], false
(1275) Repartition
Arguments: 25, true
(1276) Join
Arguments: LeftOuter, (product#21523186 = internalUUID#21523200)
(1277) Project
Arguments: [product#21523186, plant#21523187, orderDateTime#21523188, productPlant#21523198, systemId#21523199, internalUUID#21523200, id#21523201, displayId#21523202, name#21523203, baseUnitOfMeasure#21523204, unitOfMeasures#21523205, unitOfMeasureConversions#21523206, productionAspect#21523207, salesAspect#21523208, procurementAspect#21523209, productGroup#21523210, filter(unitOfMeasureConversions#21523206, lambdafunction((((lambda u#21518048.measurementUnit1.code = productPlant#21523198.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#21518048.measurementUnit1.internalRefUUID = productPlant#21523198.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#21518048.measurementUnit2.code = baseUnitOfMeasure#21523204.code) AND (lambda u#21518048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#21523204.internalRefUUID))), lambda u#21518048, false)) AS filteredUnitOfMeasureConversions#21523211]
(1278) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21523211.quantityNumerator), true, [quantityNumerator#21523212]
(1279) Project
Arguments: [product#21523186, plant#21523187, orderDateTime#21523188, productPlant#21523198, systemId#21523199, internalUUID#21523200, id#21523201, displayId#21523202, name#21523203, baseUnitOfMeasure#21523204, unitOfMeasures#21523205, unitOfMeasureConversions#21523206, productionAspect#21523207, salesAspect#21523208, procurementAspect#21523209, productGroup#21523210, filteredUnitOfMeasureConversions#21523211, quantityNumerator#21523212]
(1280) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21523211.quantityDenominator), true, [quantityDenominator#21523213]
(1281) Project
Arguments: [product#21523186, plant#21523187, orderDateTime#21523188, productPlant#21523198, systemId#21523199, internalUUID#21523200, id#21523201, displayId#21523202, name#21523203, baseUnitOfMeasure#21523204, unitOfMeasures#21523205, unitOfMeasureConversions#21523206, productionAspect#21523207, salesAspect#21523208, procurementAspect#21523209, productGroup#21523210, filteredUnitOfMeasureConversions#21523211, quantityNumerator#21523212, quantityDenominator#21523213]
(1282) Project
Arguments: [product#21523186, plant#21523187, orderDateTime#21523188, productPlant#21523198, systemId#21523199, internalUUID#21523200, id#21523201, displayId#21523202, name#21523203, baseUnitOfMeasure#21523204, unitOfMeasures#21523205, unitOfMeasureConversions#21523206, productionAspect#21523207, salesAspect#21523208, procurementAspect#21523209, productGroup#21523210, filteredUnitOfMeasureConversions#21523211, quantityNumerator#21523212, quantityDenominator#21523213, (cast(quantityNumerator#21523212 as double) / cast(quantityDenominator#21523213 as double)) AS outboundUnit#21523214]
(1283) Project
Arguments: [product#21523186, plant#21523187, orderDateTime#21523188, productPlant#21523198, systemId#21523199, internalUUID#21523200, id#21523201, displayId#21523202, name#21523203, baseUnitOfMeasure#21523204, unitOfMeasures#21523205, unitOfMeasureConversions#21523206, productionAspect#21523207, salesAspect#21523208, procurementAspect#21523209, productGroup#21523210, filteredUnitOfMeasureConversions#21523211, quantityNumerator#21523212, quantityDenominator#21523213, CASE WHEN (isnull(outboundUnit#21523214) OR (outboundUnit#21523214 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#21523214 END AS outboundUnit#21523215]
(1284) Project
Arguments: [product#21523186, plant#21523187, orderDateTime#21523188, productPlant#21523198, outboundUnit#21523215]
(1285) Join
Arguments: Inner, ((plantUuid#21523178 = plant#21523187) AND (productUuid#21523180 = product#21523186))
(1286) Filter
Arguments: (calculationDateTime#21523174 <= orderDateTime#21523188)
(1287) Project
Arguments: [plantUuid#21523178 AS plant#21523216, productUuid#21523180 AS product#21523217, storageLocId#21523181, calculationDateTime#21523174, quantity#21523183]
(1288) Aggregate
Arguments: [plant#21523216, product#21523217, storageLocId#21523181], [plant#21523216, product#21523217, storageLocId#21523181, max(calculationDateTime#21523174) AS max_calc_datetime#21523218]
(1289) Join
Arguments: Inner, ((((plant#21523107 <=> plant#21523216) AND (product#21523108 <=> product#21523217)) AND (storageLocId#21523072 <=> storageLocId#21523181)) AND (calculationDateTime#21523065 <=> max_calc_datetime#21523218))
(1290) Project
Arguments: [plant#21523107, product#21523108, storageLocId#21523072, calculationDateTime#21523065, quantity#21523074]
(1291) Aggregate
Arguments: [product#21523108, plant#21523107], [product#21523108, plant#21523107, sum(quantity#21523074) AS quantitySum#21523219, min(calculationDateTime#21523065) AS minCalculationDateTime#21523220]
(1292) Project
Arguments: [product#21523108, plant#21523107, quantitySum#21523219, minCalculationDateTime#21523220, round(quantitySum#21523219, 0) AS roundedQuantitySum#21523221]
(1293) Join
Arguments: LeftOuter, ((plant#21522971 = plant#21523107) AND (product#21522970 = product#21523108))
(1294) Project
Arguments: [product#21522970, plant#21522971, orderDateTime#21522972, productPlant#21522982, outboundUnit#21522999, roundedQuantitySum#21523221, minCalculationDateTime#21523220]
(1295) Project
Arguments: [product#21522970, plant#21522971, orderDateTime#21522972, productPlant#21522982, outboundUnit#21522999, roundedQuantitySum#21523221, minCalculationDateTime#21523220, CASE WHEN isnotnull(minCalculationDateTime#21523220) THEN minCalculationDateTime#21523220 ELSE orderDateTime#21522972 END AS stockDatetime#21523222]
(1296) Project
Arguments: [product#21522970, plant#21522971, orderDateTime#21522972, productPlant#21522982, outboundUnit#21522999, roundedQuantitySum#21523221, minCalculationDateTime#21523220, stockDatetime#21523222, CASE WHEN isnotnull(roundedQuantitySum#21523221) THEN array(roundedQuantitySum#21523221) ELSE array(0.0) END AS stockBatchQuantities#21523223]
(1297) Project
Arguments: [product#21522970, plant#21522971, orderDateTime#21522972, productPlant#21522982, outboundUnit#21522999, roundedQuantitySum#21523221, minCalculationDateTime#21523220, stockDatetime#21523222, stockBatchQuantities#21523223, array(2199-01-01 00:00:00) AS stockBatchShelfLifeEndDatetimes#21523224]
(1298) Project
Arguments: [product#21522970, plant#21522971, orderDateTime#21522972, productPlant#21522982, outboundUnit#21522999, roundedQuantitySum#21523221, stockDatetime#21523222, stockBatchQuantities#21523223, stockBatchShelfLifeEndDatetimes#21523224]
(1299) Project
Arguments: [product#21522970, plant#21522971, orderDateTime#21522972, productPlant#21522982, outboundUnit#21522999, stockDatetime#21523222, stockBatchQuantities#21523223, stockBatchShelfLifeEndDatetimes#21523224]
(1300) LogicalRelation
Arguments: parquet, [product#21523225, plant#21523226, orderDateTime#21523227, planningStartDateTime#21523228], false
(1301) RepartitionByExpression
Arguments: [product#21523225, plant#21523226], 25
(1302) Project
Arguments: [product#21523225, plant#21523226, orderDateTime#21523227]
(1303) LogicalRelation
Arguments: parquet, [systemId#21523229, internalUUID#21523230, plant#21523231, product#21523232, blockedForReplenishmentStartingFrom#21523233, productionAspect#21523234, salesPlant#21523235, listing#21523236], false
(1304) Repartition
Arguments: 25, true
(1305) Project
Arguments: [systemId#21523229, internalUUID#21523230, plant#21523231, product#21523232, blockedForReplenishmentStartingFrom#21523233, productionAspect#21523234, salesPlant#21523235, listing#21523236, struct(systemId, systemId#21523229, internalUUID, internalUUID#21523230, plant, plant#21523231, product, product#21523232, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#21523233, productionAspect, productionAspect#21523234, salesPlant, salesPlant#21523235, listing, listing#21523236) AS productPlant#21523237]
(1306) Project
Arguments: [productPlant#21523237]
(1307) Join
Arguments: LeftOuter, ((product#21523225 <=> productPlant#21523237.product.internalRefUUID) AND (plant#21523226 <=> productPlant#21523237.plant.internalRefUUID))
(1308) Project
Arguments: [product#21523225, plant#21523226, orderDateTime#21523227, productPlant#21523237]
(1309) LogicalRelation
Arguments: parquet, [systemId#21523238, internalUUID#21523239, id#21523240, displayId#21523241, name#21523242, baseUnitOfMeasure#21523243, unitOfMeasures#21523244, unitOfMeasureConversions#21523245, productionAspect#21523246, salesAspect#21523247, procurementAspect#21523248, productGroup#21523249], false
(1310) Repartition
Arguments: 25, true
(1311) Join
Arguments: LeftOuter, (product#21523225 = internalUUID#21523239)
(1312) Project
Arguments: [product#21523225, plant#21523226, orderDateTime#21523227, productPlant#21523237, systemId#21523238, internalUUID#21523239, id#21523240, displayId#21523241, name#21523242, baseUnitOfMeasure#21523243, unitOfMeasures#21523244, unitOfMeasureConversions#21523245, productionAspect#21523246, salesAspect#21523247, procurementAspect#21523248, productGroup#21523249, filter(unitOfMeasureConversions#21523245, lambdafunction((((lambda u#21518048.measurementUnit1.code = productPlant#21523237.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#21518048.measurementUnit1.internalRefUUID = productPlant#21523237.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#21518048.measurementUnit2.code = baseUnitOfMeasure#21523243.code) AND (lambda u#21518048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#21523243.internalRefUUID))), lambda u#21518048, false)) AS filteredUnitOfMeasureConversions#21523250]
(1313) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21523250.quantityNumerator), true, [quantityNumerator#21523251]
(1314) Project
Arguments: [product#21523225, plant#21523226, orderDateTime#21523227, productPlant#21523237, systemId#21523238, internalUUID#21523239, id#21523240, displayId#21523241, name#21523242, baseUnitOfMeasure#21523243, unitOfMeasures#21523244, unitOfMeasureConversions#21523245, productionAspect#21523246, salesAspect#21523247, procurementAspect#21523248, productGroup#21523249, filteredUnitOfMeasureConversions#21523250, quantityNumerator#21523251]
(1315) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21523250.quantityDenominator), true, [quantityDenominator#21523252]
(1316) Project
Arguments: [product#21523225, plant#21523226, orderDateTime#21523227, productPlant#21523237, systemId#21523238, internalUUID#21523239, id#21523240, displayId#21523241, name#21523242, baseUnitOfMeasure#21523243, unitOfMeasures#21523244, unitOfMeasureConversions#21523245, productionAspect#21523246, salesAspect#21523247, procurementAspect#21523248, productGroup#21523249, filteredUnitOfMeasureConversions#21523250, quantityNumerator#21523251, quantityDenominator#21523252]
(1317) Project
Arguments: [product#21523225, plant#21523226, orderDateTime#21523227, productPlant#21523237, systemId#21523238, internalUUID#21523239, id#21523240, displayId#21523241, name#21523242, baseUnitOfMeasure#21523243, unitOfMeasures#21523244, unitOfMeasureConversions#21523245, productionAspect#21523246, salesAspect#21523247, procurementAspect#21523248, productGroup#21523249, filteredUnitOfMeasureConversions#21523250, quantityNumerator#21523251, quantityDenominator#21523252, (cast(quantityNumerator#21523251 as double) / cast(quantityDenominator#21523252 as double)) AS outboundUnit#21523253]
(1318) Project
Arguments: [product#21523225, plant#21523226, orderDateTime#21523227, productPlant#21523237, systemId#21523238, internalUUID#21523239, id#21523240, displayId#21523241, name#21523242, baseUnitOfMeasure#21523243, unitOfMeasures#21523244, unitOfMeasureConversions#21523245, productionAspect#21523246, salesAspect#21523247, procurementAspect#21523248, productGroup#21523249, filteredUnitOfMeasureConversions#21523250, quantityNumerator#21523251, quantityDenominator#21523252, CASE WHEN (isnull(outboundUnit#21523253) OR (outboundUnit#21523253 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#21523253 END AS outboundUnit#21523254]
(1319) Project
Arguments: [product#21523225, plant#21523226, orderDateTime#21523227, productPlant#21523237, outboundUnit#21523254]
(1320) LogicalRelation
Arguments: parquet, [systemId#21523255, internalUUID#21523256, product#21523257, plant#21523258, calculationDateTime#21523259, stockQuantities#21523260], false
(1321) Repartition
Arguments: 25, true
(1322) LogicalRelation
Arguments: parquet, [marketUnit#21523261, description#21523262, articleHierarchy#21523263, defaultCurrency#21523264, responsibilities#21523265, replenishmentTypes#21523266, distributionCenters#21523267, assignedArticleHierarchyNodes#21523268, minOrderQtySetting#21523269, listingCheck#21523270, odsSelection#21523271, demandProfiles#21523272, constraintProfiles#21523273, optimizationProfiles#21523274, orderGroupSplitProfiles#21523275, supplierMinimumProfiles#21523276, multipleRestrictionProfiles#21523277, preferredUomSource#21523278, handlingOfUnfulfilledDemands#21523279, negligibleQuantitiesThreshold#21523280, eventtype#21523281, minOrderQtySettingInternal#21523282], false
(1323) Repartition
Arguments: 25, true
(1324) Filter
Arguments: (marketUnit#21523261 <=> SS_Test_1)
(1325) Project
Arguments: [marketUnit#21523261, description#21523262, articleHierarchy#21523263, defaultCurrency#21523264, responsibilities#21523265, replenishmentTypes#21523266, distributionCenters#21523267, assignedArticleHierarchyNodes#21523268, minOrderQtySetting#21523269, listingCheck#21523270, odsSelection#21523271, demandProfiles#21523272, constraintProfiles#21523273, optimizationProfiles#21523274, orderGroupSplitProfiles#21523275, supplierMinimumProfiles#21523276, multipleRestrictionProfiles#21523277, preferredUomSource#21523278, handlingOfUnfulfilledDemands#21523279, negligibleQuantitiesThreshold#21523280, eventtype#21523281, minOrderQtySettingInternal#21523282]
(1326) Project
Arguments: [distributionCenters#21523267]
(1327) Generate
Arguments: explode(distributionCenters#21523267), false, [distributionCenters#21523283]
(1328) Project
Arguments: [distributionCenters#21523283]
(1329) Generate
Arguments: explode(distributionCenters#21523283.storageLocations), false, [storageLocations#21523284]
(1330) Project
Arguments: [distributionCenters#21523283.id AS plantId#21523285, distributionCenters#21523283.internalRefUUID AS plantUuid#21523286, storageLocations#21523284]
(1331) Project
Arguments: [plantId#21523285, plantUuid#21523286, storageLocations#21523284.id AS storageLocId#21523287, storageLocations#21523284.internalRefUUID AS storageLocUuid#21523288]
(1332) LogicalRelation
Arguments: parquet, [product#21523289, plant#21523290, orderDateTime#21523291, planningStartDateTime#21523292], false
(1333) RepartitionByExpression
Arguments: [product#21523289, plant#21523290], 25
(1334) Project
Arguments: [product#21523289, plant#21523290, orderDateTime#21523291]
(1335) LogicalRelation
Arguments: parquet, [systemId#21523293, internalUUID#21523294, plant#21523295, product#21523296, blockedForReplenishmentStartingFrom#21523297, productionAspect#21523298, salesPlant#21523299, listing#21523300], false
(1336) Repartition
Arguments: 25, true
(1337) Project
Arguments: [systemId#21523293, internalUUID#21523294, plant#21523295, product#21523296, blockedForReplenishmentStartingFrom#21523297, productionAspect#21523298, salesPlant#21523299, listing#21523300, struct(systemId, systemId#21523293, internalUUID, internalUUID#21523294, plant, plant#21523295, product, product#21523296, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#21523297, productionAspect, productionAspect#21523298, salesPlant, salesPlant#21523299, listing, listing#21523300) AS productPlant#21523301]
(1338) Project
Arguments: [productPlant#21523301]
(1339) Join
Arguments: LeftOuter, ((product#21523289 <=> productPlant#21523301.product.internalRefUUID) AND (plant#21523290 <=> productPlant#21523301.plant.internalRefUUID))
(1340) Project
Arguments: [product#21523289, plant#21523290, orderDateTime#21523291, productPlant#21523301]
(1341) LogicalRelation
Arguments: parquet, [systemId#21523302, internalUUID#21523303, id#21523304, displayId#21523305, name#21523306, baseUnitOfMeasure#21523307, unitOfMeasures#21523308, unitOfMeasureConversions#21523309, productionAspect#21523310, salesAspect#21523311, procurementAspect#21523312, productGroup#21523313], false
(1342) Repartition
Arguments: 25, true
(1343) Join
Arguments: LeftOuter, (product#21523289 = internalUUID#21523303)
(1344) Project
Arguments: [product#21523289, plant#21523290, orderDateTime#21523291, productPlant#21523301, systemId#21523302, internalUUID#21523303, id#21523304, displayId#21523305, name#21523306, baseUnitOfMeasure#21523307, unitOfMeasures#21523308, unitOfMeasureConversions#21523309, productionAspect#21523310, salesAspect#21523311, procurementAspect#21523312, productGroup#21523313, filter(unitOfMeasureConversions#21523309, lambdafunction((((lambda u#21518048.measurementUnit1.code = productPlant#21523301.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#21518048.measurementUnit1.internalRefUUID = productPlant#21523301.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#21518048.measurementUnit2.code = baseUnitOfMeasure#21523307.code) AND (lambda u#21518048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#21523307.internalRefUUID))), lambda u#21518048, false)) AS filteredUnitOfMeasureConversions#21523314]
(1345) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21523314.quantityNumerator), true, [quantityNumerator#21523315]
(1346) Project
Arguments: [product#21523289, plant#21523290, orderDateTime#21523291, productPlant#21523301, systemId#21523302, internalUUID#21523303, id#21523304, displayId#21523305, name#21523306, baseUnitOfMeasure#21523307, unitOfMeasures#21523308, unitOfMeasureConversions#21523309, productionAspect#21523310, salesAspect#21523311, procurementAspect#21523312, productGroup#21523313, filteredUnitOfMeasureConversions#21523314, quantityNumerator#21523315]
(1347) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21523314.quantityDenominator), true, [quantityDenominator#21523316]
(1348) Project
Arguments: [product#21523289, plant#21523290, orderDateTime#21523291, productPlant#21523301, systemId#21523302, internalUUID#21523303, id#21523304, displayId#21523305, name#21523306, baseUnitOfMeasure#21523307, unitOfMeasures#21523308, unitOfMeasureConversions#21523309, productionAspect#21523310, salesAspect#21523311, procurementAspect#21523312, productGroup#21523313, filteredUnitOfMeasureConversions#21523314, quantityNumerator#21523315, quantityDenominator#21523316]
(1349) Project
Arguments: [product#21523289, plant#21523290, orderDateTime#21523291, productPlant#21523301, systemId#21523302, internalUUID#21523303, id#21523304, displayId#21523305, name#21523306, baseUnitOfMeasure#21523307, unitOfMeasures#21523308, unitOfMeasureConversions#21523309, productionAspect#21523310, salesAspect#21523311, procurementAspect#21523312, productGroup#21523313, filteredUnitOfMeasureConversions#21523314, quantityNumerator#21523315, quantityDenominator#21523316, (cast(quantityNumerator#21523315 as double) / cast(quantityDenominator#21523316 as double)) AS outboundUnit#21523317]
(1350) Project
Arguments: [product#21523289, plant#21523290, orderDateTime#21523291, productPlant#21523301, systemId#21523302, internalUUID#21523303, id#21523304, displayId#21523305, name#21523306, baseUnitOfMeasure#21523307, unitOfMeasures#21523308, unitOfMeasureConversions#21523309, productionAspect#21523310, salesAspect#21523311, procurementAspect#21523312, productGroup#21523313, filteredUnitOfMeasureConversions#21523314, quantityNumerator#21523315, quantityDenominator#21523316, CASE WHEN (isnull(outboundUnit#21523317) OR (outboundUnit#21523317 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#21523317 END AS outboundUnit#21523318]
(1351) Project
Arguments: [product#21523289, plant#21523290, orderDateTime#21523291, productPlant#21523301, outboundUnit#21523318]
(1352) Project
Arguments: [plant#21523290]
(1353) Deduplicate
Arguments: [plant#21523290]
(1354) Join
Arguments: Inner, (plantUuid#21523286 = plant#21523290)
(1355) Project
Arguments: [plantId#21523285, plantUuid#21523286, storageLocId#21523287, storageLocUuid#21523288]
(1356) Join
Arguments: Inner, (plant#21523258.internalRefUUID <=> plantUuid#21523286)
(1357) Generate
Arguments: explode(filter(stockQuantities#21523260, lambdafunction(((lambda x#21518157.storageLocation.internalRefUuid = storageLocUuid#21523288) AND (lambda x#21518157.storageLocation.Id = storageLocId#21523287)), lambda x#21518157, false))), false, [stockQuantity#21523319]
(1358) Project
Arguments: [systemId#21523255, internalUUID#21523256, product#21523257, plant#21523258, calculationDateTime#21523259, stockQuantities#21523260, plantId#21523285, plantUuid#21523286, storageLocId#21523287, storageLocUuid#21523288, stockQuantity#21523319]
(1359) Aggregate
Arguments: [plantUuid#21523286, internalUUID#21523256, plant#21523258, product#21523257, systemId#21523255], [plantUuid#21523286, internalUUID#21523256, plant#21523258, product#21523257, systemId#21523255, first(calculationDateTime#21523259, false) AS calculationDateTime#21523320, collect_list(stockQuantity#21523319, 0, 0) AS stockQuantities#21523321]
(1360) Project
Arguments: [systemId#21523255, internalUUID#21523256, product#21523257, plant#21523258, calculationDateTime#21523320, stockQuantities#21523321]
(1361) Generate
Arguments: explode(stockQuantities#21523321), false, [stockQuantity#21523322]
(1362) Project
Arguments: [systemId#21523255, internalUUID#21523256, product#21523257, plant#21523258, calculationDateTime#21523320, stockQuantities#21523321, stockQuantity#21523322]
(1363) Project
Arguments: [plant#21523258.id AS plant#21523323, plant#21523258.internalRefUUID AS plantUuid#21523324, product#21523257.id AS product#21523325, product#21523257.internalRefUUID AS productUuid#21523326, calculationDateTime#21523320, stockQuantity#21523322.storagelocation.id AS storageLocId#21523327, stockQuantity#21523322.storagelocation.internalRefUUID AS storageLocUuid#21523328, stockQuantity#21523322.quantity.measure AS quantity#21523329, stockQuantity#21523322.specialStockIndicator.code AS specialStockIndicator#21523330, stockQuantity#21523322.stockType.code AS stockType#21523331]
(1364) Filter
Arguments: ((specialStockIndicator#21523330 = ) AND (stockType#21523331 = 01))
(1365) LogicalRelation
Arguments: parquet, [product#21523332, plant#21523333, orderDateTime#21523334, planningStartDateTime#21523335], false
(1366) RepartitionByExpression
Arguments: [product#21523332, plant#21523333], 25
(1367) Project
Arguments: [product#21523332, plant#21523333, orderDateTime#21523334]
(1368) LogicalRelation
Arguments: parquet, [systemId#21523336, internalUUID#21523337, plant#21523338, product#21523339, blockedForReplenishmentStartingFrom#21523340, productionAspect#21523341, salesPlant#21523342, listing#21523343], false
(1369) Repartition
Arguments: 25, true
(1370) Project
Arguments: [systemId#21523336, internalUUID#21523337, plant#21523338, product#21523339, blockedForReplenishmentStartingFrom#21523340, productionAspect#21523341, salesPlant#21523342, listing#21523343, struct(systemId, systemId#21523336, internalUUID, internalUUID#21523337, plant, plant#21523338, product, product#21523339, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#21523340, productionAspect, productionAspect#21523341, salesPlant, salesPlant#21523342, listing, listing#21523343) AS productPlant#21523344]
(1371) Project
Arguments: [productPlant#21523344]
(1372) Join
Arguments: LeftOuter, ((product#21523332 <=> productPlant#21523344.product.internalRefUUID) AND (plant#21523333 <=> productPlant#21523344.plant.internalRefUUID))
(1373) Project
Arguments: [product#21523332, plant#21523333, orderDateTime#21523334, productPlant#21523344]
(1374) LogicalRelation
Arguments: parquet, [systemId#21523345, internalUUID#21523346, id#21523347, displayId#21523348, name#21523349, baseUnitOfMeasure#21523350, unitOfMeasures#21523351, unitOfMeasureConversions#21523352, productionAspect#21523353, salesAspect#21523354, procurementAspect#21523355, productGroup#21523356], false
(1375) Repartition
Arguments: 25, true
(1376) Join
Arguments: LeftOuter, (product#21523332 = internalUUID#21523346)
(1377) Project
Arguments: [product#21523332, plant#21523333, orderDateTime#21523334, productPlant#21523344, systemId#21523345, internalUUID#21523346, id#21523347, displayId#21523348, name#21523349, baseUnitOfMeasure#21523350, unitOfMeasures#21523351, unitOfMeasureConversions#21523352, productionAspect#21523353, salesAspect#21523354, procurementAspect#21523355, productGroup#21523356, filter(unitOfMeasureConversions#21523352, lambdafunction((((lambda u#21518048.measurementUnit1.code = productPlant#21523344.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#21518048.measurementUnit1.internalRefUUID = productPlant#21523344.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#21518048.measurementUnit2.code = baseUnitOfMeasure#21523350.code) AND (lambda u#21518048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#21523350.internalRefUUID))), lambda u#21518048, false)) AS filteredUnitOfMeasureConversions#21523357]
(1378) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21523357.quantityNumerator), true, [quantityNumerator#21523358]
(1379) Project
Arguments: [product#21523332, plant#21523333, orderDateTime#21523334, productPlant#21523344, systemId#21523345, internalUUID#21523346, id#21523347, displayId#21523348, name#21523349, baseUnitOfMeasure#21523350, unitOfMeasures#21523351, unitOfMeasureConversions#21523352, productionAspect#21523353, salesAspect#21523354, procurementAspect#21523355, productGroup#21523356, filteredUnitOfMeasureConversions#21523357, quantityNumerator#21523358]
(1380) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21523357.quantityDenominator), true, [quantityDenominator#21523359]
(1381) Project
Arguments: [product#21523332, plant#21523333, orderDateTime#21523334, productPlant#21523344, systemId#21523345, internalUUID#21523346, id#21523347, displayId#21523348, name#21523349, baseUnitOfMeasure#21523350, unitOfMeasures#21523351, unitOfMeasureConversions#21523352, productionAspect#21523353, salesAspect#21523354, procurementAspect#21523355, productGroup#21523356, filteredUnitOfMeasureConversions#21523357, quantityNumerator#21523358, quantityDenominator#21523359]
(1382) Project
Arguments: [product#21523332, plant#21523333, orderDateTime#21523334, productPlant#21523344, systemId#21523345, internalUUID#21523346, id#21523347, displayId#21523348, name#21523349, baseUnitOfMeasure#21523350, unitOfMeasures#21523351, unitOfMeasureConversions#21523352, productionAspect#21523353, salesAspect#21523354, procurementAspect#21523355, productGroup#21523356, filteredUnitOfMeasureConversions#21523357, quantityNumerator#21523358, quantityDenominator#21523359, (cast(quantityNumerator#21523358 as double) / cast(quantityDenominator#21523359 as double)) AS outboundUnit#21523360]
(1383) Project
Arguments: [product#21523332, plant#21523333, orderDateTime#21523334, productPlant#21523344, systemId#21523345, internalUUID#21523346, id#21523347, displayId#21523348, name#21523349, baseUnitOfMeasure#21523350, unitOfMeasures#21523351, unitOfMeasureConversions#21523352, productionAspect#21523353, salesAspect#21523354, procurementAspect#21523355, productGroup#21523356, filteredUnitOfMeasureConversions#21523357, quantityNumerator#21523358, quantityDenominator#21523359, CASE WHEN (isnull(outboundUnit#21523360) OR (outboundUnit#21523360 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#21523360 END AS outboundUnit#21523361]
(1384) Project
Arguments: [product#21523332, plant#21523333, orderDateTime#21523334, productPlant#21523344, outboundUnit#21523361]
(1385) Join
Arguments: Inner, ((plantUuid#21523324 = plant#21523333) AND (productUuid#21523326 = product#21523332))
(1386) Filter
Arguments: (calculationDateTime#21523320 <= orderDateTime#21523334)
(1387) Project
Arguments: [plantUuid#21523324 AS plant#21523362, productUuid#21523326 AS product#21523363, storageLocId#21523327, calculationDateTime#21523320, quantity#21523329]
(1388) LogicalRelation
Arguments: parquet, [systemId#21523364, internalUUID#21523365, product#21523366, plant#21523367, calculationDateTime#21523368, stockQuantities#21523369], false
(1389) Repartition
Arguments: 25, true
(1390) LogicalRelation
Arguments: parquet, [marketUnit#21523370, description#21523371, articleHierarchy#21523372, defaultCurrency#21523373, responsibilities#21523374, replenishmentTypes#21523375, distributionCenters#21523376, assignedArticleHierarchyNodes#21523377, minOrderQtySetting#21523378, listingCheck#21523379, odsSelection#21523380, demandProfiles#21523381, constraintProfiles#21523382, optimizationProfiles#21523383, orderGroupSplitProfiles#21523384, supplierMinimumProfiles#21523385, multipleRestrictionProfiles#21523386, preferredUomSource#21523387, handlingOfUnfulfilledDemands#21523388, negligibleQuantitiesThreshold#21523389, eventtype#21523390, minOrderQtySettingInternal#21523391], false
(1391) Repartition
Arguments: 25, true
(1392) Filter
Arguments: (marketUnit#21523370 <=> SS_Test_1)
(1393) Project
Arguments: [marketUnit#21523370, description#21523371, articleHierarchy#21523372, defaultCurrency#21523373, responsibilities#21523374, replenishmentTypes#21523375, distributionCenters#21523376, assignedArticleHierarchyNodes#21523377, minOrderQtySetting#21523378, listingCheck#21523379, odsSelection#21523380, demandProfiles#21523381, constraintProfiles#21523382, optimizationProfiles#21523383, orderGroupSplitProfiles#21523384, supplierMinimumProfiles#21523385, multipleRestrictionProfiles#21523386, preferredUomSource#21523387, handlingOfUnfulfilledDemands#21523388, negligibleQuantitiesThreshold#21523389, eventtype#21523390, minOrderQtySettingInternal#21523391]
(1394) Project
Arguments: [distributionCenters#21523376]
(1395) Generate
Arguments: explode(distributionCenters#21523376), false, [distributionCenters#21523392]
(1396) Project
Arguments: [distributionCenters#21523392]
(1397) Generate
Arguments: explode(distributionCenters#21523392.storageLocations), false, [storageLocations#21523393]
(1398) Project
Arguments: [distributionCenters#21523392.id AS plantId#21523394, distributionCenters#21523392.internalRefUUID AS plantUuid#21523395, storageLocations#21523393]
(1399) Project
Arguments: [plantId#21523394, plantUuid#21523395, storageLocations#21523393.id AS storageLocId#21523396, storageLocations#21523393.internalRefUUID AS storageLocUuid#21523397]
(1400) LogicalRelation
Arguments: parquet, [product#21523398, plant#21523399, orderDateTime#21523400, planningStartDateTime#21523401], false
(1401) RepartitionByExpression
Arguments: [product#21523398, plant#21523399], 25
(1402) Project
Arguments: [product#21523398, plant#21523399, orderDateTime#21523400]
(1403) LogicalRelation
Arguments: parquet, [systemId#21523402, internalUUID#21523403, plant#21523404, product#21523405, blockedForReplenishmentStartingFrom#21523406, productionAspect#21523407, salesPlant#21523408, listing#21523409], false
(1404) Repartition
Arguments: 25, true
(1405) Project
Arguments: [systemId#21523402, internalUUID#21523403, plant#21523404, product#21523405, blockedForReplenishmentStartingFrom#21523406, productionAspect#21523407, salesPlant#21523408, listing#21523409, struct(systemId, systemId#21523402, internalUUID, internalUUID#21523403, plant, plant#21523404, product, product#21523405, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#21523406, productionAspect, productionAspect#21523407, salesPlant, salesPlant#21523408, listing, listing#21523409) AS productPlant#21523410]
(1406) Project
Arguments: [productPlant#21523410]
(1407) Join
Arguments: LeftOuter, ((product#21523398 <=> productPlant#21523410.product.internalRefUUID) AND (plant#21523399 <=> productPlant#21523410.plant.internalRefUUID))
(1408) Project
Arguments: [product#21523398, plant#21523399, orderDateTime#21523400, productPlant#21523410]
(1409) LogicalRelation
Arguments: parquet, [systemId#21523411, internalUUID#21523412, id#21523413, displayId#21523414, name#21523415, baseUnitOfMeasure#21523416, unitOfMeasures#21523417, unitOfMeasureConversions#21523418, productionAspect#21523419, salesAspect#21523420, procurementAspect#21523421, productGroup#21523422], false
(1410) Repartition
Arguments: 25, true
(1411) Join
Arguments: LeftOuter, (product#21523398 = internalUUID#21523412)
(1412) Project
Arguments: [product#21523398, plant#21523399, orderDateTime#21523400, productPlant#21523410, systemId#21523411, internalUUID#21523412, id#21523413, displayId#21523414, name#21523415, baseUnitOfMeasure#21523416, unitOfMeasures#21523417, unitOfMeasureConversions#21523418, productionAspect#21523419, salesAspect#21523420, procurementAspect#21523421, productGroup#21523422, filter(unitOfMeasureConversions#21523418, lambdafunction((((lambda u#21518048.measurementUnit1.code = productPlant#21523410.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#21518048.measurementUnit1.internalRefUUID = productPlant#21523410.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#21518048.measurementUnit2.code = baseUnitOfMeasure#21523416.code) AND (lambda u#21518048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#21523416.internalRefUUID))), lambda u#21518048, false)) AS filteredUnitOfMeasureConversions#21523423]
(1413) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21523423.quantityNumerator), true, [quantityNumerator#21523424]
(1414) Project
Arguments: [product#21523398, plant#21523399, orderDateTime#21523400, productPlant#21523410, systemId#21523411, internalUUID#21523412, id#21523413, displayId#21523414, name#21523415, baseUnitOfMeasure#21523416, unitOfMeasures#21523417, unitOfMeasureConversions#21523418, productionAspect#21523419, salesAspect#21523420, procurementAspect#21523421, productGroup#21523422, filteredUnitOfMeasureConversions#21523423, quantityNumerator#21523424]
(1415) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21523423.quantityDenominator), true, [quantityDenominator#21523425]
(1416) Project
Arguments: [product#21523398, plant#21523399, orderDateTime#21523400, productPlant#21523410, systemId#21523411, internalUUID#21523412, id#21523413, displayId#21523414, name#21523415, baseUnitOfMeasure#21523416, unitOfMeasures#21523417, unitOfMeasureConversions#21523418, productionAspect#21523419, salesAspect#21523420, procurementAspect#21523421, productGroup#21523422, filteredUnitOfMeasureConversions#21523423, quantityNumerator#21523424, quantityDenominator#21523425]
(1417) Project
Arguments: [product#21523398, plant#21523399, orderDateTime#21523400, productPlant#21523410, systemId#21523411, internalUUID#21523412, id#21523413, displayId#21523414, name#21523415, baseUnitOfMeasure#21523416, unitOfMeasures#21523417, unitOfMeasureConversions#21523418, productionAspect#21523419, salesAspect#21523420, procurementAspect#21523421, productGroup#21523422, filteredUnitOfMeasureConversions#21523423, quantityNumerator#21523424, quantityDenominator#21523425, (cast(quantityNumerator#21523424 as double) / cast(quantityDenominator#21523425 as double)) AS outboundUnit#21523426]
(1418) Project
Arguments: [product#21523398, plant#21523399, orderDateTime#21523400, productPlant#21523410, systemId#21523411, internalUUID#21523412, id#21523413, displayId#21523414, name#21523415, baseUnitOfMeasure#21523416, unitOfMeasures#21523417, unitOfMeasureConversions#21523418, productionAspect#21523419, salesAspect#21523420, procurementAspect#21523421, productGroup#21523422, filteredUnitOfMeasureConversions#21523423, quantityNumerator#21523424, quantityDenominator#21523425, CASE WHEN (isnull(outboundUnit#21523426) OR (outboundUnit#21523426 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#21523426 END AS outboundUnit#21523427]
(1419) Project
Arguments: [product#21523398, plant#21523399, orderDateTime#21523400, productPlant#21523410, outboundUnit#21523427]
(1420) Project
Arguments: [plant#21523399]
(1421) Deduplicate
Arguments: [plant#21523399]
(1422) Join
Arguments: Inner, (plantUuid#21523395 = plant#21523399)
(1423) Project
Arguments: [plantId#21523394, plantUuid#21523395, storageLocId#21523396, storageLocUuid#21523397]
(1424) Join
Arguments: Inner, (plant#21523367.internalRefUUID <=> plantUuid#21523395)
(1425) Generate
Arguments: explode(filter(stockQuantities#21523369, lambdafunction(((lambda x#21518157.storageLocation.internalRefUuid = storageLocUuid#21523397) AND (lambda x#21518157.storageLocation.Id = storageLocId#21523396)), lambda x#21518157, false))), false, [stockQuantity#21523428]
(1426) Project
Arguments: [systemId#21523364, internalUUID#21523365, product#21523366, plant#21523367, calculationDateTime#21523368, stockQuantities#21523369, plantId#21523394, plantUuid#21523395, storageLocId#21523396, storageLocUuid#21523397, stockQuantity#21523428]
(1427) Aggregate
Arguments: [plantUuid#21523395, internalUUID#21523365, plant#21523367, product#21523366, systemId#21523364], [plantUuid#21523395, internalUUID#21523365, plant#21523367, product#21523366, systemId#21523364, first(calculationDateTime#21523368, false) AS calculationDateTime#21523429, collect_list(stockQuantity#21523428, 0, 0) AS stockQuantities#21523430]
(1428) Project
Arguments: [systemId#21523364, internalUUID#21523365, product#21523366, plant#21523367, calculationDateTime#21523429, stockQuantities#21523430]
(1429) Generate
Arguments: explode(stockQuantities#21523430), false, [stockQuantity#21523431]
(1430) Project
Arguments: [systemId#21523364, internalUUID#21523365, product#21523366, plant#21523367, calculationDateTime#21523429, stockQuantities#21523430, stockQuantity#21523431]
(1431) Project
Arguments: [plant#21523367.id AS plant#21523432, plant#21523367.internalRefUUID AS plantUuid#21523433, product#21523366.id AS product#21523434, product#21523366.internalRefUUID AS productUuid#21523435, calculationDateTime#21523429, stockQuantity#21523431.storagelocation.id AS storageLocId#21523436, stockQuantity#21523431.storagelocation.internalRefUUID AS storageLocUuid#21523437, stockQuantity#21523431.quantity.measure AS quantity#21523438, stockQuantity#21523431.specialStockIndicator.code AS specialStockIndicator#21523439, stockQuantity#21523431.stockType.code AS stockType#21523440]
(1432) Filter
Arguments: ((specialStockIndicator#21523439 = ) AND (stockType#21523440 = 01))
(1433) LogicalRelation
Arguments: parquet, [product#21523441, plant#21523442, orderDateTime#21523443, planningStartDateTime#21523444], false
(1434) RepartitionByExpression
Arguments: [product#21523441, plant#21523442], 25
(1435) Project
Arguments: [product#21523441, plant#21523442, orderDateTime#21523443]
(1436) LogicalRelation
Arguments: parquet, [systemId#21523445, internalUUID#21523446, plant#21523447, product#21523448, blockedForReplenishmentStartingFrom#21523449, productionAspect#21523450, salesPlant#21523451, listing#21523452], false
(1437) Repartition
Arguments: 25, true
(1438) Project
Arguments: [systemId#21523445, internalUUID#21523446, plant#21523447, product#21523448, blockedForReplenishmentStartingFrom#21523449, productionAspect#21523450, salesPlant#21523451, listing#21523452, struct(systemId, systemId#21523445, internalUUID, internalUUID#21523446, plant, plant#21523447, product, product#21523448, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#21523449, productionAspect, productionAspect#21523450, salesPlant, salesPlant#21523451, listing, listing#21523452) AS productPlant#21523453]
(1439) Project
Arguments: [productPlant#21523453]
(1440) Join
Arguments: LeftOuter, ((product#21523441 <=> productPlant#21523453.product.internalRefUUID) AND (plant#21523442 <=> productPlant#21523453.plant.internalRefUUID))
(1441) Project
Arguments: [product#21523441, plant#21523442, orderDateTime#21523443, productPlant#21523453]
(1442) LogicalRelation
Arguments: parquet, [systemId#21523454, internalUUID#21523455, id#21523456, displayId#21523457, name#21523458, baseUnitOfMeasure#21523459, unitOfMeasures#21523460, unitOfMeasureConversions#21523461, productionAspect#21523462, salesAspect#21523463, procurementAspect#21523464, productGroup#21523465], false
(1443) Repartition
Arguments: 25, true
(1444) Join
Arguments: LeftOuter, (product#21523441 = internalUUID#21523455)
(1445) Project
Arguments: [product#21523441, plant#21523442, orderDateTime#21523443, productPlant#21523453, systemId#21523454, internalUUID#21523455, id#21523456, displayId#21523457, name#21523458, baseUnitOfMeasure#21523459, unitOfMeasures#21523460, unitOfMeasureConversions#21523461, productionAspect#21523462, salesAspect#21523463, procurementAspect#21523464, productGroup#21523465, filter(unitOfMeasureConversions#21523461, lambdafunction((((lambda u#21518048.measurementUnit1.code = productPlant#21523453.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#21518048.measurementUnit1.internalRefUUID = productPlant#21523453.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#21518048.measurementUnit2.code = baseUnitOfMeasure#21523459.code) AND (lambda u#21518048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#21523459.internalRefUUID))), lambda u#21518048, false)) AS filteredUnitOfMeasureConversions#21523466]
(1446) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21523466.quantityNumerator), true, [quantityNumerator#21523467]
(1447) Project
Arguments: [product#21523441, plant#21523442, orderDateTime#21523443, productPlant#21523453, systemId#21523454, internalUUID#21523455, id#21523456, displayId#21523457, name#21523458, baseUnitOfMeasure#21523459, unitOfMeasures#21523460, unitOfMeasureConversions#21523461, productionAspect#21523462, salesAspect#21523463, procurementAspect#21523464, productGroup#21523465, filteredUnitOfMeasureConversions#21523466, quantityNumerator#21523467]
(1448) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21523466.quantityDenominator), true, [quantityDenominator#21523468]
(1449) Project
Arguments: [product#21523441, plant#21523442, orderDateTime#21523443, productPlant#21523453, systemId#21523454, internalUUID#21523455, id#21523456, displayId#21523457, name#21523458, baseUnitOfMeasure#21523459, unitOfMeasures#21523460, unitOfMeasureConversions#21523461, productionAspect#21523462, salesAspect#21523463, procurementAspect#21523464, productGroup#21523465, filteredUnitOfMeasureConversions#21523466, quantityNumerator#21523467, quantityDenominator#21523468]
(1450) Project
Arguments: [product#21523441, plant#21523442, orderDateTime#21523443, productPlant#21523453, systemId#21523454, internalUUID#21523455, id#21523456, displayId#21523457, name#21523458, baseUnitOfMeasure#21523459, unitOfMeasures#21523460, unitOfMeasureConversions#21523461, productionAspect#21523462, salesAspect#21523463, procurementAspect#21523464, productGroup#21523465, filteredUnitOfMeasureConversions#21523466, quantityNumerator#21523467, quantityDenominator#21523468, (cast(quantityNumerator#21523467 as double) / cast(quantityDenominator#21523468 as double)) AS outboundUnit#21523469]
(1451) Project
Arguments: [product#21523441, plant#21523442, orderDateTime#21523443, productPlant#21523453, systemId#21523454, internalUUID#21523455, id#21523456, displayId#21523457, name#21523458, baseUnitOfMeasure#21523459, unitOfMeasures#21523460, unitOfMeasureConversions#21523461, productionAspect#21523462, salesAspect#21523463, procurementAspect#21523464, productGroup#21523465, filteredUnitOfMeasureConversions#21523466, quantityNumerator#21523467, quantityDenominator#21523468, CASE WHEN (isnull(outboundUnit#21523469) OR (outboundUnit#21523469 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#21523469 END AS outboundUnit#21523470]
(1452) Project
Arguments: [product#21523441, plant#21523442, orderDateTime#21523443, productPlant#21523453, outboundUnit#21523470]
(1453) Join
Arguments: Inner, ((plantUuid#21523433 = plant#21523442) AND (productUuid#21523435 = product#21523441))
(1454) Filter
Arguments: (calculationDateTime#21523429 <= orderDateTime#21523443)
(1455) Project
Arguments: [plantUuid#21523433 AS plant#21523471, productUuid#21523435 AS product#21523472, storageLocId#21523436, calculationDateTime#21523429, quantity#21523438]
(1456) Aggregate
Arguments: [plant#21523471, product#21523472, storageLocId#21523436], [plant#21523471, product#21523472, storageLocId#21523436, max(calculationDateTime#21523429) AS max_calc_datetime#21523473]
(1457) Join
Arguments: Inner, ((((plant#21523362 <=> plant#21523471) AND (product#21523363 <=> product#21523472)) AND (storageLocId#21523327 <=> storageLocId#21523436)) AND (calculationDateTime#21523320 <=> max_calc_datetime#21523473))
(1458) Project
Arguments: [plant#21523362, product#21523363, storageLocId#21523327, calculationDateTime#21523320, quantity#21523329]
(1459) Aggregate
Arguments: [product#21523363, plant#21523362], [product#21523363, plant#21523362, sum(quantity#21523329) AS quantitySum#21523474, min(calculationDateTime#21523320) AS minCalculationDateTime#21523475]
(1460) Project
Arguments: [product#21523363, plant#21523362, quantitySum#21523474, minCalculationDateTime#21523475, round(quantitySum#21523474, 0) AS roundedQuantitySum#21523476]
(1461) Join
Arguments: LeftOuter, ((plant#21523226 = plant#21523362) AND (product#21523225 = product#21523363))
(1462) Project
Arguments: [product#21523225, plant#21523226, orderDateTime#21523227, productPlant#21523237, outboundUnit#21523254, roundedQuantitySum#21523476, minCalculationDateTime#21523475]
(1463) Project
Arguments: [product#21523225, plant#21523226, orderDateTime#21523227, productPlant#21523237, outboundUnit#21523254, roundedQuantitySum#21523476, minCalculationDateTime#21523475, CASE WHEN isnotnull(minCalculationDateTime#21523475) THEN minCalculationDateTime#21523475 ELSE orderDateTime#21523227 END AS stockDatetime#21523477]
(1464) Project
Arguments: [product#21523225, plant#21523226, orderDateTime#21523227, productPlant#21523237, outboundUnit#21523254, roundedQuantitySum#21523476, minCalculationDateTime#21523475, stockDatetime#21523477, CASE WHEN isnotnull(roundedQuantitySum#21523476) THEN array(roundedQuantitySum#21523476) ELSE array(0.0) END AS stockBatchQuantities#21523478]
(1465) Project
Arguments: [product#21523225, plant#21523226, orderDateTime#21523227, productPlant#21523237, outboundUnit#21523254, roundedQuantitySum#21523476, minCalculationDateTime#21523475, stockDatetime#21523477, stockBatchQuantities#21523478, array(2199-01-01 00:00:00) AS stockBatchShelfLifeEndDatetimes#21523479]
(1466) Project
Arguments: [product#21523225, plant#21523226, orderDateTime#21523227, productPlant#21523237, outboundUnit#21523254, roundedQuantitySum#21523476, stockDatetime#21523477, stockBatchQuantities#21523478, stockBatchShelfLifeEndDatetimes#21523479]
(1467) Project
Arguments: [product#21523225, plant#21523226, orderDateTime#21523227, productPlant#21523237, outboundUnit#21523254, stockDatetime#21523477, stockBatchQuantities#21523478, stockBatchShelfLifeEndDatetimes#21523479]
(1468) LogicalRelation
Arguments: parquet, [product#21523480, plant#21523481, demandChannel#21523482, demandStream#21523483, considerVariance#21523484, demandTimeBuckets#21523485, demandPointInTimeStart#21523486, demandPointInTimeEnd#21523487, demandPointInTime#21523488], false
(1469) Join
Arguments: LeftOuter, ((plant#21523481 <=> plant#21523226) AND (product#21523480 <=> product#21523225))
(1470) Project
Arguments: [product#21523225, plant#21523226, orderDateTime#21523227, productPlant#21523237, outboundUnit#21523254, stockDatetime#21523477, stockBatchQuantities#21523478, stockBatchShelfLifeEndDatetimes#21523479, product#21523480, plant#21523481, demandChannel#21523482, demandStream#21523483, considerVariance#21523484, demandTimeBuckets#21523485, demandPointInTimeStart#21523486, demandPointInTimeEnd#21523487, demandPointInTime#21523488, CASE WHEN isnotnull(product#21523480) THEN struct(demandChannel, demandChannel#21523482, demandStream, demandStream#21523483, considerVariance, considerVariance#21523484, demandTimeBuckets, demandTimeBuckets#21523485, demandPointInTimeStart, demandPointInTimeStart#21523486, demandPointInTimeEnd, demandPointInTimeEnd#21523487, demandPointInTime, demandPointInTime#21523488) 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#21523489]
(1471) Aggregate
Arguments: [product#21523225, plant#21523226, orderDateTime#21523227, productPlant#21523237, outboundUnit#21523254, stockDatetime#21523477, stockBatchQuantities#21523478, stockBatchShelfLifeEndDatetimes#21523479], [product#21523225, plant#21523226, orderDateTime#21523227, productPlant#21523237, outboundUnit#21523254, stockDatetime#21523477, stockBatchQuantities#21523478, stockBatchShelfLifeEndDatetimes#21523479, collect_list(rawDemands#21523489, 0, 0) AS rawDemands#21523490]
(1472) SubqueryAlias
Arguments: wl
(1473) LogicalRelation
Arguments: parquet, [systemId#21523491, internalUUID#21523492, id#21523493, displayId#21523494, name#21523495, category#21523496, companyCode#21523497, address#21523498, mainDistributionChain#21523499, mainPurchasingOrganization#21523500, validPurchasingOrganizations#21523501, productGroup#21523502], false
(1474) Repartition
Arguments: 25, true
(1475) Project
Arguments: [systemId#21523491, internalUUID#21523492, id#21523493, displayId#21523494, name#21523495, category#21523496, companyCode#21523497, address#21523498, mainDistributionChain#21523499, mainPurchasingOrganization#21523500, validPurchasingOrganizations#21523501, productGroup#21523502, address#21523498.timezone.code AS timezonecode#21523503]
(1476) Join
Arguments: LeftOuter, (plant#21523226 <=> internalUUID#21523492)
(1477) Project
Arguments: [product#21523225, plant#21523226, orderDateTime#21523227, productPlant#21523237, outboundUnit#21523254, stockDatetime#21523477, stockBatchQuantities#21523478, stockBatchShelfLifeEndDatetimes#21523479, rawDemands#21523490, systemId#21523491, internalUUID#21523492, id#21523493, displayId#21523494, name#21523495, category#21523496, companyCode#21523497, address#21523498, mainDistributionChain#21523499, mainPurchasingOrganization#21523500, validPurchasingOrganizations#21523501, productGroup#21523502, CASE WHEN isnotnull(timezonecode#21523503) THEN timezonecode#21523503 ELSE UTC END AS timezonecode#21523504]
(1478) Project
Arguments: [product#21523225, plant#21523226, orderDateTime#21523227, productPlant#21523237, outboundUnit#21523254, stockDatetime#21523477, stockBatchQuantities#21523478, stockBatchShelfLifeEndDatetimes#21523479, rawDemands#21523490, timezonecode#21523504]
(1479) DeserializeToObject
Arguments: createexternalrow(invoke(product#21523225.toString()), invoke(plant#21523226.toString()), static_invoke(DateTimeUtils.toJavaTimestamp(orderDateTime#21523227)), if (isnull(productPlant#21523237)) null else createexternalrow(invoke(productPlant#21523237.systemId.toString()), invoke(productPlant#21523237.internalUUID.toString()), if (isnull(productPlant#21523237.plant)) null else createexternalrow(invoke(productPlant#21523237.plant.internalRefUUID.toString()), invoke(productPlant#21523237.plant.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), if (isnull(productPlant#21523237.product)) null else createexternalrow(invoke(productPlant#21523237.product.internalRefUUID.toString()), invoke(productPlant#21523237.product.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(DateTimeUtils.toJavaDate(productPlant#21523237.blockedForReplenishmentStartingFrom)), if (isnull(productPlant#21523237.productionAspect)) null else createexternalrow(if (isnull(productPlant#21523237.productionAspect.productMovementPlants)) null else createexternalrow(if (isnull(productPlant#21523237.productionAspect.productMovementPlants.unitOfIssue)) null else createexternalrow(invoke(productPlant#21523237.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID.toString()), invoke(productPlant#21523237.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#21523237.productionAspect.productPlanningPlants)) null else createexternalrow(if (isnull(productPlant#21523237.productionAspect.productPlanningPlants.mrpType)) null else createexternalrow(invoke(productPlant#21523237.productionAspect.productPlanningPlants.mrpType.internalRefUUID.toString()), invoke(productPlant#21523237.productionAspect.productPlanningPlants.mrpType.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#21523237.productionAspect.productPlanningPlants.abcIndicator)) null else createexternalrow(invoke(productPlant#21523237.productionAspect.productPlanningPlants.abcIndicator.internalRefUUID.toString()), invoke(productPlant#21523237.productionAspect.productPlanningPlants.abcIndicator.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#21523237.productionAspect.productPlanningPlants.mrpController)) null else createexternalrow(invoke(productPlant#21523237.productionAspect.productPlanningPlants.mrpController.internalRefUUID.toString()), invoke(productPlant#21523237.productionAspect.productPlanningPlants.mrpController.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(java.lang.Double.valueOf(productPlant#21523237.productionAspect.productPlanningPlants.minimumLotSize)), if (isnull(productPlant#21523237.productionAspect.productPlanningPlants.logisticalRoundingProfile)) null else createexternalrow(invoke(productPlant#21523237.productionAspect.productPlanningPlants.logisticalRoundingProfile.internalRefUUID.toString()), invoke(productPlant#21523237.productionAspect.productPlanningPlants.logisticalRoundingProfile.logisticalRoundingProfile.toString()), StructField(internalRefUUID,StringType,true), StructField(logisticalRoundingProfile,StringType,true)), if (isnull(productPlant#21523237.productionAspect.productPlanningPlants.sourceOfSupplyCategory)) null else createexternalrow(invoke(productPlant#21523237.productionAspect.productPlanningPlants.sourceOfSupplyCategory.internalRefUUID.toString()), invoke(productPlant#21523237.productionAspect.productPlanningPlants.sourceOfSupplyCategory.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true), StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true), StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(minimumLotSize,DoubleType,true), StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true), StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true), StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)), if (isnull(productPlant#21523237.salesPlant)) null else createexternalrow(if (isnull(productPlant#21523237.salesPlant.loadingGroup)) null else createexternalrow(invoke(productPlant#21523237.salesPlant.loadingGroup.internalRefUUID.toString()), invoke(productPlant#21523237.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, 2680280), if (isnull(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 2680280))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 2680280).validFrom)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 2680280).validTo)), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 2680280).isListed)), StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true)), productPlant#21523237.listing, Some(class scala.collection.mutable.ArraySeq)), StructField(systemId,StringType,true), StructField(internalUUID,StringType,true), StructField(plant,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(product,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(blockedForReplenishmentStartingFrom,DateType,true), StructField(productionAspect,StructType(StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)),true), StructField(salesPlant,StructType(StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true), StructField(listing,ArrayType(StructType(StructField(validFrom,TimestampType,true),StructField(validTo,TimestampType,true),StructField(isListed,BooleanType,true)),true),true)), static_invoke(java.lang.Double.valueOf(outboundUnit#21523254)), static_invoke(DateTimeUtils.toJavaTimestamp(stockDatetime#21523477)), mapobjects(lambdavariable(MapObject, DoubleType, true, 2680281), static_invoke(java.lang.Double.valueOf(cast(lambdavariable(MapObject, DoubleType, true, 2680281) as double))), stockBatchQuantities#21523478, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, false, 2680282), assertnotnull(static_invoke(DateTimeUtils.toJavaTimestamp(cast(lambdavariable(MapObject, TimestampType, false, 2680282) as timestamp)))), stockBatchShelfLifeEndDatetimes#21523479, 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, 2680283), 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, 2680283))) 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, 2680283).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, 2680283).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, 2680283).considerVariance)), mapobjects(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 2680284), if (isnull(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 2680284))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 2680284).demandStartDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 2680284).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 2680284).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, 2680283).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, 2680283).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, 2680283).demandPointInTimeEnd)), mapobjects(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 2680285), if (isnull(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 2680285))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 2680285).demandDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 2680285).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 2680285).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, 2680283).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#21523490, Some(class scala.collection.mutable.ArraySeq)), invoke(timezonecode#21523504.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),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)),true),StructField(salesPlant,StructType(StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(listing,ArrayType(StructType(StructField(validFrom,TimestampType,true),StructField(validTo,TimestampType,true),StructField(isListed,BooleanType,true)),true),true)),true), StructField(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#21519488: org.apache.spark.sql.Row
(1480) MapElements
Arguments: com.sap.s4hana.eureka.business.crporderquantitykpiservice.core.business.datasnapshot.DemandTransformatorImpl$$Lambda/0x00000008021e99e0@10fe4db7, interface org.apache.spark.sql.Row, [StructField(product,StringType,true), StructField(plant,StringType,true), StructField(orderDateTime,TimestampType,true), StructField(productPlant,StructType(StructField(systemId,StringType,true),StructField(internalUUID,StringType,true),StructField(plant,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(product,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(blockedForReplenishmentStartingFrom,DateType,true),StructField(productionAspect,StructType(StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)),true),StructField(salesPlant,StructType(StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(listing,ArrayType(StructType(StructField(validFrom,TimestampType,true),StructField(validTo,TimestampType,true),StructField(isListed,BooleanType,true)),true),true)),true), StructField(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#21519493: org.apache.spark.sql.Row
(1481) 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#21523505, 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#21523506, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(2))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680270), assertnotnull(if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680271), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680271), DoubleType, ObjectType(class java.lang.Double)).doubleValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680272), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680272), DoubleType, ObjectType(class java.lang.Double)).doubleValue()), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680273), assertnotnull(static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680273), TimestampType, ObjectType(class java.sql.Timestamp))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680274), assertnotnull(static_invoke(UTF8String.fromString(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680274), StringType, ObjectType(class java.lang.String))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680275), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680275), IntegerType, ObjectType(class java.lang.Integer)).intValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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#21523507, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(3))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680276), assertnotnull(if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680277), assertnotnull(static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680277), TimestampType, ObjectType(class java.sql.Timestamp))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680278), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680278), DoubleType, ObjectType(class java.lang.Double)).doubleValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680279), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680279), DoubleType, ObjectType(class java.lang.Double)).doubleValue()), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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#21523508]
(1482) Join
Arguments: LeftOuter, ((plant#21523506 <=> plant#21522971) AND (product#21523505 <=> product#21522970))
(1483) Project
Arguments: [product#21522970, plant#21522971, orderDateTime#21522972, productPlant#21522982, outboundUnit#21522999, stockDatetime#21523222, stockBatchQuantities#21523223, stockBatchShelfLifeEndDatetimes#21523224, plant#21523506, dayBucketDemands#21523507, pointInTimeDemands#21523508]
(1484) Project
Arguments: [product#21522970, plant#21522971, orderDateTime#21522972, productPlant#21522982, outboundUnit#21522999, stockDatetime#21523222, stockBatchQuantities#21523223, stockBatchShelfLifeEndDatetimes#21523224, dayBucketDemands#21523507, pointInTimeDemands#21523508]
(1485) LogicalRelation
Arguments: parquet, [product#21523509, plant#21523510, orderDateTime#21523511, planningStartDateTime#21523512], false
(1486) RepartitionByExpression
Arguments: [product#21523509, plant#21523510], 25
(1487) Project
Arguments: [product#21523509, plant#21523510, orderDateTime#21523511]
(1488) LogicalRelation
Arguments: parquet, [systemId#21523513, internalUUID#21523514, plant#21523515, product#21523516, blockedForReplenishmentStartingFrom#21523517, productionAspect#21523518, salesPlant#21523519, listing#21523520], false
(1489) Repartition
Arguments: 25, true
(1490) Project
Arguments: [systemId#21523513, internalUUID#21523514, plant#21523515, product#21523516, blockedForReplenishmentStartingFrom#21523517, productionAspect#21523518, salesPlant#21523519, listing#21523520, struct(systemId, systemId#21523513, internalUUID, internalUUID#21523514, plant, plant#21523515, product, product#21523516, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#21523517, productionAspect, productionAspect#21523518, salesPlant, salesPlant#21523519, listing, listing#21523520) AS productPlant#21523521]
(1491) Project
Arguments: [productPlant#21523521]
(1492) Join
Arguments: LeftOuter, ((product#21523509 <=> productPlant#21523521.product.internalRefUUID) AND (plant#21523510 <=> productPlant#21523521.plant.internalRefUUID))
(1493) Project
Arguments: [product#21523509, plant#21523510, orderDateTime#21523511, productPlant#21523521]
(1494) LogicalRelation
Arguments: parquet, [systemId#21523522, internalUUID#21523523, id#21523524, displayId#21523525, name#21523526, baseUnitOfMeasure#21523527, unitOfMeasures#21523528, unitOfMeasureConversions#21523529, productionAspect#21523530, salesAspect#21523531, procurementAspect#21523532, productGroup#21523533], false
(1495) Repartition
Arguments: 25, true
(1496) Join
Arguments: LeftOuter, (product#21523509 = internalUUID#21523523)
(1497) Project
Arguments: [product#21523509, plant#21523510, orderDateTime#21523511, productPlant#21523521, systemId#21523522, internalUUID#21523523, id#21523524, displayId#21523525, name#21523526, baseUnitOfMeasure#21523527, unitOfMeasures#21523528, unitOfMeasureConversions#21523529, productionAspect#21523530, salesAspect#21523531, procurementAspect#21523532, productGroup#21523533, filter(unitOfMeasureConversions#21523529, lambdafunction((((lambda u#21518048.measurementUnit1.code = productPlant#21523521.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#21518048.measurementUnit1.internalRefUUID = productPlant#21523521.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#21518048.measurementUnit2.code = baseUnitOfMeasure#21523527.code) AND (lambda u#21518048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#21523527.internalRefUUID))), lambda u#21518048, false)) AS filteredUnitOfMeasureConversions#21523534]
(1498) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21523534.quantityNumerator), true, [quantityNumerator#21523535]
(1499) Project
Arguments: [product#21523509, plant#21523510, orderDateTime#21523511, productPlant#21523521, systemId#21523522, internalUUID#21523523, id#21523524, displayId#21523525, name#21523526, baseUnitOfMeasure#21523527, unitOfMeasures#21523528, unitOfMeasureConversions#21523529, productionAspect#21523530, salesAspect#21523531, procurementAspect#21523532, productGroup#21523533, filteredUnitOfMeasureConversions#21523534, quantityNumerator#21523535]
(1500) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21523534.quantityDenominator), true, [quantityDenominator#21523536]
(1501) Project
Arguments: [product#21523509, plant#21523510, orderDateTime#21523511, productPlant#21523521, systemId#21523522, internalUUID#21523523, id#21523524, displayId#21523525, name#21523526, baseUnitOfMeasure#21523527, unitOfMeasures#21523528, unitOfMeasureConversions#21523529, productionAspect#21523530, salesAspect#21523531, procurementAspect#21523532, productGroup#21523533, filteredUnitOfMeasureConversions#21523534, quantityNumerator#21523535, quantityDenominator#21523536]
(1502) Project
Arguments: [product#21523509, plant#21523510, orderDateTime#21523511, productPlant#21523521, systemId#21523522, internalUUID#21523523, id#21523524, displayId#21523525, name#21523526, baseUnitOfMeasure#21523527, unitOfMeasures#21523528, unitOfMeasureConversions#21523529, productionAspect#21523530, salesAspect#21523531, procurementAspect#21523532, productGroup#21523533, filteredUnitOfMeasureConversions#21523534, quantityNumerator#21523535, quantityDenominator#21523536, (cast(quantityNumerator#21523535 as double) / cast(quantityDenominator#21523536 as double)) AS outboundUnit#21523537]
(1503) Project
Arguments: [product#21523509, plant#21523510, orderDateTime#21523511, productPlant#21523521, systemId#21523522, internalUUID#21523523, id#21523524, displayId#21523525, name#21523526, baseUnitOfMeasure#21523527, unitOfMeasures#21523528, unitOfMeasureConversions#21523529, productionAspect#21523530, salesAspect#21523531, procurementAspect#21523532, productGroup#21523533, filteredUnitOfMeasureConversions#21523534, quantityNumerator#21523535, quantityDenominator#21523536, CASE WHEN (isnull(outboundUnit#21523537) OR (outboundUnit#21523537 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#21523537 END AS outboundUnit#21523538]
(1504) Project
Arguments: [product#21523509, plant#21523510, orderDateTime#21523511, productPlant#21523521, outboundUnit#21523538]
(1505) LogicalRelation
Arguments: parquet, [systemId#21523539, internalUUID#21523540, product#21523541, plant#21523542, calculationDateTime#21523543, stockQuantities#21523544], false
(1506) Repartition
Arguments: 25, true
(1507) LogicalRelation
Arguments: parquet, [marketUnit#21523545, description#21523546, articleHierarchy#21523547, defaultCurrency#21523548, responsibilities#21523549, replenishmentTypes#21523550, distributionCenters#21523551, assignedArticleHierarchyNodes#21523552, minOrderQtySetting#21523553, listingCheck#21523554, odsSelection#21523555, demandProfiles#21523556, constraintProfiles#21523557, optimizationProfiles#21523558, orderGroupSplitProfiles#21523559, supplierMinimumProfiles#21523560, multipleRestrictionProfiles#21523561, preferredUomSource#21523562, handlingOfUnfulfilledDemands#21523563, negligibleQuantitiesThreshold#21523564, eventtype#21523565, minOrderQtySettingInternal#21523566], false
(1508) Repartition
Arguments: 25, true
(1509) Filter
Arguments: (marketUnit#21523545 <=> SS_Test_1)
(1510) Project
Arguments: [marketUnit#21523545, description#21523546, articleHierarchy#21523547, defaultCurrency#21523548, responsibilities#21523549, replenishmentTypes#21523550, distributionCenters#21523551, assignedArticleHierarchyNodes#21523552, minOrderQtySetting#21523553, listingCheck#21523554, odsSelection#21523555, demandProfiles#21523556, constraintProfiles#21523557, optimizationProfiles#21523558, orderGroupSplitProfiles#21523559, supplierMinimumProfiles#21523560, multipleRestrictionProfiles#21523561, preferredUomSource#21523562, handlingOfUnfulfilledDemands#21523563, negligibleQuantitiesThreshold#21523564, eventtype#21523565, minOrderQtySettingInternal#21523566]
(1511) Project
Arguments: [distributionCenters#21523551]
(1512) Generate
Arguments: explode(distributionCenters#21523551), false, [distributionCenters#21523567]
(1513) Project
Arguments: [distributionCenters#21523567]
(1514) Generate
Arguments: explode(distributionCenters#21523567.storageLocations), false, [storageLocations#21523568]
(1515) Project
Arguments: [distributionCenters#21523567.id AS plantId#21523569, distributionCenters#21523567.internalRefUUID AS plantUuid#21523570, storageLocations#21523568]
(1516) Project
Arguments: [plantId#21523569, plantUuid#21523570, storageLocations#21523568.id AS storageLocId#21523571, storageLocations#21523568.internalRefUUID AS storageLocUuid#21523572]
(1517) LogicalRelation
Arguments: parquet, [product#21523573, plant#21523574, orderDateTime#21523575, planningStartDateTime#21523576], false
(1518) RepartitionByExpression
Arguments: [product#21523573, plant#21523574], 25
(1519) Project
Arguments: [product#21523573, plant#21523574, orderDateTime#21523575]
(1520) LogicalRelation
Arguments: parquet, [systemId#21523577, internalUUID#21523578, plant#21523579, product#21523580, blockedForReplenishmentStartingFrom#21523581, productionAspect#21523582, salesPlant#21523583, listing#21523584], false
(1521) Repartition
Arguments: 25, true
(1522) Project
Arguments: [systemId#21523577, internalUUID#21523578, plant#21523579, product#21523580, blockedForReplenishmentStartingFrom#21523581, productionAspect#21523582, salesPlant#21523583, listing#21523584, struct(systemId, systemId#21523577, internalUUID, internalUUID#21523578, plant, plant#21523579, product, product#21523580, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#21523581, productionAspect, productionAspect#21523582, salesPlant, salesPlant#21523583, listing, listing#21523584) AS productPlant#21523585]
(1523) Project
Arguments: [productPlant#21523585]
(1524) Join
Arguments: LeftOuter, ((product#21523573 <=> productPlant#21523585.product.internalRefUUID) AND (plant#21523574 <=> productPlant#21523585.plant.internalRefUUID))
(1525) Project
Arguments: [product#21523573, plant#21523574, orderDateTime#21523575, productPlant#21523585]
(1526) LogicalRelation
Arguments: parquet, [systemId#21523586, internalUUID#21523587, id#21523588, displayId#21523589, name#21523590, baseUnitOfMeasure#21523591, unitOfMeasures#21523592, unitOfMeasureConversions#21523593, productionAspect#21523594, salesAspect#21523595, procurementAspect#21523596, productGroup#21523597], false
(1527) Repartition
Arguments: 25, true
(1528) Join
Arguments: LeftOuter, (product#21523573 = internalUUID#21523587)
(1529) Project
Arguments: [product#21523573, plant#21523574, orderDateTime#21523575, productPlant#21523585, systemId#21523586, internalUUID#21523587, id#21523588, displayId#21523589, name#21523590, baseUnitOfMeasure#21523591, unitOfMeasures#21523592, unitOfMeasureConversions#21523593, productionAspect#21523594, salesAspect#21523595, procurementAspect#21523596, productGroup#21523597, filter(unitOfMeasureConversions#21523593, lambdafunction((((lambda u#21518048.measurementUnit1.code = productPlant#21523585.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#21518048.measurementUnit1.internalRefUUID = productPlant#21523585.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#21518048.measurementUnit2.code = baseUnitOfMeasure#21523591.code) AND (lambda u#21518048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#21523591.internalRefUUID))), lambda u#21518048, false)) AS filteredUnitOfMeasureConversions#21523598]
(1530) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21523598.quantityNumerator), true, [quantityNumerator#21523599]
(1531) Project
Arguments: [product#21523573, plant#21523574, orderDateTime#21523575, productPlant#21523585, systemId#21523586, internalUUID#21523587, id#21523588, displayId#21523589, name#21523590, baseUnitOfMeasure#21523591, unitOfMeasures#21523592, unitOfMeasureConversions#21523593, productionAspect#21523594, salesAspect#21523595, procurementAspect#21523596, productGroup#21523597, filteredUnitOfMeasureConversions#21523598, quantityNumerator#21523599]
(1532) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21523598.quantityDenominator), true, [quantityDenominator#21523600]
(1533) Project
Arguments: [product#21523573, plant#21523574, orderDateTime#21523575, productPlant#21523585, systemId#21523586, internalUUID#21523587, id#21523588, displayId#21523589, name#21523590, baseUnitOfMeasure#21523591, unitOfMeasures#21523592, unitOfMeasureConversions#21523593, productionAspect#21523594, salesAspect#21523595, procurementAspect#21523596, productGroup#21523597, filteredUnitOfMeasureConversions#21523598, quantityNumerator#21523599, quantityDenominator#21523600]
(1534) Project
Arguments: [product#21523573, plant#21523574, orderDateTime#21523575, productPlant#21523585, systemId#21523586, internalUUID#21523587, id#21523588, displayId#21523589, name#21523590, baseUnitOfMeasure#21523591, unitOfMeasures#21523592, unitOfMeasureConversions#21523593, productionAspect#21523594, salesAspect#21523595, procurementAspect#21523596, productGroup#21523597, filteredUnitOfMeasureConversions#21523598, quantityNumerator#21523599, quantityDenominator#21523600, (cast(quantityNumerator#21523599 as double) / cast(quantityDenominator#21523600 as double)) AS outboundUnit#21523601]
(1535) Project
Arguments: [product#21523573, plant#21523574, orderDateTime#21523575, productPlant#21523585, systemId#21523586, internalUUID#21523587, id#21523588, displayId#21523589, name#21523590, baseUnitOfMeasure#21523591, unitOfMeasures#21523592, unitOfMeasureConversions#21523593, productionAspect#21523594, salesAspect#21523595, procurementAspect#21523596, productGroup#21523597, filteredUnitOfMeasureConversions#21523598, quantityNumerator#21523599, quantityDenominator#21523600, CASE WHEN (isnull(outboundUnit#21523601) OR (outboundUnit#21523601 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#21523601 END AS outboundUnit#21523602]
(1536) Project
Arguments: [product#21523573, plant#21523574, orderDateTime#21523575, productPlant#21523585, outboundUnit#21523602]
(1537) Project
Arguments: [plant#21523574]
(1538) Deduplicate
Arguments: [plant#21523574]
(1539) Join
Arguments: Inner, (plantUuid#21523570 = plant#21523574)
(1540) Project
Arguments: [plantId#21523569, plantUuid#21523570, storageLocId#21523571, storageLocUuid#21523572]
(1541) Join
Arguments: Inner, (plant#21523542.internalRefUUID <=> plantUuid#21523570)
(1542) Generate
Arguments: explode(filter(stockQuantities#21523544, lambdafunction(((lambda x#21518157.storageLocation.internalRefUuid = storageLocUuid#21523572) AND (lambda x#21518157.storageLocation.Id = storageLocId#21523571)), lambda x#21518157, false))), false, [stockQuantity#21523603]
(1543) Project
Arguments: [systemId#21523539, internalUUID#21523540, product#21523541, plant#21523542, calculationDateTime#21523543, stockQuantities#21523544, plantId#21523569, plantUuid#21523570, storageLocId#21523571, storageLocUuid#21523572, stockQuantity#21523603]
(1544) Aggregate
Arguments: [plantUuid#21523570, internalUUID#21523540, plant#21523542, product#21523541, systemId#21523539], [plantUuid#21523570, internalUUID#21523540, plant#21523542, product#21523541, systemId#21523539, first(calculationDateTime#21523543, false) AS calculationDateTime#21523604, collect_list(stockQuantity#21523603, 0, 0) AS stockQuantities#21523605]
(1545) Project
Arguments: [systemId#21523539, internalUUID#21523540, product#21523541, plant#21523542, calculationDateTime#21523604, stockQuantities#21523605]
(1546) Generate
Arguments: explode(stockQuantities#21523605), false, [stockQuantity#21523606]
(1547) Project
Arguments: [systemId#21523539, internalUUID#21523540, product#21523541, plant#21523542, calculationDateTime#21523604, stockQuantities#21523605, stockQuantity#21523606]
(1548) Project
Arguments: [plant#21523542.id AS plant#21523607, plant#21523542.internalRefUUID AS plantUuid#21523608, product#21523541.id AS product#21523609, product#21523541.internalRefUUID AS productUuid#21523610, calculationDateTime#21523604, stockQuantity#21523606.storagelocation.id AS storageLocId#21523611, stockQuantity#21523606.storagelocation.internalRefUUID AS storageLocUuid#21523612, stockQuantity#21523606.quantity.measure AS quantity#21523613, stockQuantity#21523606.specialStockIndicator.code AS specialStockIndicator#21523614, stockQuantity#21523606.stockType.code AS stockType#21523615]
(1549) Filter
Arguments: ((specialStockIndicator#21523614 = ) AND (stockType#21523615 = 01))
(1550) LogicalRelation
Arguments: parquet, [product#21523616, plant#21523617, orderDateTime#21523618, planningStartDateTime#21523619], false
(1551) RepartitionByExpression
Arguments: [product#21523616, plant#21523617], 25
(1552) Project
Arguments: [product#21523616, plant#21523617, orderDateTime#21523618]
(1553) LogicalRelation
Arguments: parquet, [systemId#21523620, internalUUID#21523621, plant#21523622, product#21523623, blockedForReplenishmentStartingFrom#21523624, productionAspect#21523625, salesPlant#21523626, listing#21523627], false
(1554) Repartition
Arguments: 25, true
(1555) Project
Arguments: [systemId#21523620, internalUUID#21523621, plant#21523622, product#21523623, blockedForReplenishmentStartingFrom#21523624, productionAspect#21523625, salesPlant#21523626, listing#21523627, struct(systemId, systemId#21523620, internalUUID, internalUUID#21523621, plant, plant#21523622, product, product#21523623, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#21523624, productionAspect, productionAspect#21523625, salesPlant, salesPlant#21523626, listing, listing#21523627) AS productPlant#21523628]
(1556) Project
Arguments: [productPlant#21523628]
(1557) Join
Arguments: LeftOuter, ((product#21523616 <=> productPlant#21523628.product.internalRefUUID) AND (plant#21523617 <=> productPlant#21523628.plant.internalRefUUID))
(1558) Project
Arguments: [product#21523616, plant#21523617, orderDateTime#21523618, productPlant#21523628]
(1559) LogicalRelation
Arguments: parquet, [systemId#21523629, internalUUID#21523630, id#21523631, displayId#21523632, name#21523633, baseUnitOfMeasure#21523634, unitOfMeasures#21523635, unitOfMeasureConversions#21523636, productionAspect#21523637, salesAspect#21523638, procurementAspect#21523639, productGroup#21523640], false
(1560) Repartition
Arguments: 25, true
(1561) Join
Arguments: LeftOuter, (product#21523616 = internalUUID#21523630)
(1562) Project
Arguments: [product#21523616, plant#21523617, orderDateTime#21523618, productPlant#21523628, systemId#21523629, internalUUID#21523630, id#21523631, displayId#21523632, name#21523633, baseUnitOfMeasure#21523634, unitOfMeasures#21523635, unitOfMeasureConversions#21523636, productionAspect#21523637, salesAspect#21523638, procurementAspect#21523639, productGroup#21523640, filter(unitOfMeasureConversions#21523636, lambdafunction((((lambda u#21518048.measurementUnit1.code = productPlant#21523628.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#21518048.measurementUnit1.internalRefUUID = productPlant#21523628.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#21518048.measurementUnit2.code = baseUnitOfMeasure#21523634.code) AND (lambda u#21518048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#21523634.internalRefUUID))), lambda u#21518048, false)) AS filteredUnitOfMeasureConversions#21523641]
(1563) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21523641.quantityNumerator), true, [quantityNumerator#21523642]
(1564) Project
Arguments: [product#21523616, plant#21523617, orderDateTime#21523618, productPlant#21523628, systemId#21523629, internalUUID#21523630, id#21523631, displayId#21523632, name#21523633, baseUnitOfMeasure#21523634, unitOfMeasures#21523635, unitOfMeasureConversions#21523636, productionAspect#21523637, salesAspect#21523638, procurementAspect#21523639, productGroup#21523640, filteredUnitOfMeasureConversions#21523641, quantityNumerator#21523642]
(1565) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21523641.quantityDenominator), true, [quantityDenominator#21523643]
(1566) Project
Arguments: [product#21523616, plant#21523617, orderDateTime#21523618, productPlant#21523628, systemId#21523629, internalUUID#21523630, id#21523631, displayId#21523632, name#21523633, baseUnitOfMeasure#21523634, unitOfMeasures#21523635, unitOfMeasureConversions#21523636, productionAspect#21523637, salesAspect#21523638, procurementAspect#21523639, productGroup#21523640, filteredUnitOfMeasureConversions#21523641, quantityNumerator#21523642, quantityDenominator#21523643]
(1567) Project
Arguments: [product#21523616, plant#21523617, orderDateTime#21523618, productPlant#21523628, systemId#21523629, internalUUID#21523630, id#21523631, displayId#21523632, name#21523633, baseUnitOfMeasure#21523634, unitOfMeasures#21523635, unitOfMeasureConversions#21523636, productionAspect#21523637, salesAspect#21523638, procurementAspect#21523639, productGroup#21523640, filteredUnitOfMeasureConversions#21523641, quantityNumerator#21523642, quantityDenominator#21523643, (cast(quantityNumerator#21523642 as double) / cast(quantityDenominator#21523643 as double)) AS outboundUnit#21523644]
(1568) Project
Arguments: [product#21523616, plant#21523617, orderDateTime#21523618, productPlant#21523628, systemId#21523629, internalUUID#21523630, id#21523631, displayId#21523632, name#21523633, baseUnitOfMeasure#21523634, unitOfMeasures#21523635, unitOfMeasureConversions#21523636, productionAspect#21523637, salesAspect#21523638, procurementAspect#21523639, productGroup#21523640, filteredUnitOfMeasureConversions#21523641, quantityNumerator#21523642, quantityDenominator#21523643, CASE WHEN (isnull(outboundUnit#21523644) OR (outboundUnit#21523644 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#21523644 END AS outboundUnit#21523645]
(1569) Project
Arguments: [product#21523616, plant#21523617, orderDateTime#21523618, productPlant#21523628, outboundUnit#21523645]
(1570) Join
Arguments: Inner, ((plantUuid#21523608 = plant#21523617) AND (productUuid#21523610 = product#21523616))
(1571) Filter
Arguments: (calculationDateTime#21523604 <= orderDateTime#21523618)
(1572) Project
Arguments: [plantUuid#21523608 AS plant#21523646, productUuid#21523610 AS product#21523647, storageLocId#21523611, calculationDateTime#21523604, quantity#21523613]
(1573) LogicalRelation
Arguments: parquet, [systemId#21523648, internalUUID#21523649, product#21523650, plant#21523651, calculationDateTime#21523652, stockQuantities#21523653], false
(1574) Repartition
Arguments: 25, true
(1575) LogicalRelation
Arguments: parquet, [marketUnit#21523654, description#21523655, articleHierarchy#21523656, defaultCurrency#21523657, responsibilities#21523658, replenishmentTypes#21523659, distributionCenters#21523660, assignedArticleHierarchyNodes#21523661, minOrderQtySetting#21523662, listingCheck#21523663, odsSelection#21523664, demandProfiles#21523665, constraintProfiles#21523666, optimizationProfiles#21523667, orderGroupSplitProfiles#21523668, supplierMinimumProfiles#21523669, multipleRestrictionProfiles#21523670, preferredUomSource#21523671, handlingOfUnfulfilledDemands#21523672, negligibleQuantitiesThreshold#21523673, eventtype#21523674, minOrderQtySettingInternal#21523675], false
(1576) Repartition
Arguments: 25, true
(1577) Filter
Arguments: (marketUnit#21523654 <=> SS_Test_1)
(1578) Project
Arguments: [marketUnit#21523654, description#21523655, articleHierarchy#21523656, defaultCurrency#21523657, responsibilities#21523658, replenishmentTypes#21523659, distributionCenters#21523660, assignedArticleHierarchyNodes#21523661, minOrderQtySetting#21523662, listingCheck#21523663, odsSelection#21523664, demandProfiles#21523665, constraintProfiles#21523666, optimizationProfiles#21523667, orderGroupSplitProfiles#21523668, supplierMinimumProfiles#21523669, multipleRestrictionProfiles#21523670, preferredUomSource#21523671, handlingOfUnfulfilledDemands#21523672, negligibleQuantitiesThreshold#21523673, eventtype#21523674, minOrderQtySettingInternal#21523675]
(1579) Project
Arguments: [distributionCenters#21523660]
(1580) Generate
Arguments: explode(distributionCenters#21523660), false, [distributionCenters#21523676]
(1581) Project
Arguments: [distributionCenters#21523676]
(1582) Generate
Arguments: explode(distributionCenters#21523676.storageLocations), false, [storageLocations#21523677]
(1583) Project
Arguments: [distributionCenters#21523676.id AS plantId#21523678, distributionCenters#21523676.internalRefUUID AS plantUuid#21523679, storageLocations#21523677]
(1584) Project
Arguments: [plantId#21523678, plantUuid#21523679, storageLocations#21523677.id AS storageLocId#21523680, storageLocations#21523677.internalRefUUID AS storageLocUuid#21523681]
(1585) LogicalRelation
Arguments: parquet, [product#21523682, plant#21523683, orderDateTime#21523684, planningStartDateTime#21523685], false
(1586) RepartitionByExpression
Arguments: [product#21523682, plant#21523683], 25
(1587) Project
Arguments: [product#21523682, plant#21523683, orderDateTime#21523684]
(1588) LogicalRelation
Arguments: parquet, [systemId#21523686, internalUUID#21523687, plant#21523688, product#21523689, blockedForReplenishmentStartingFrom#21523690, productionAspect#21523691, salesPlant#21523692, listing#21523693], false
(1589) Repartition
Arguments: 25, true
(1590) Project
Arguments: [systemId#21523686, internalUUID#21523687, plant#21523688, product#21523689, blockedForReplenishmentStartingFrom#21523690, productionAspect#21523691, salesPlant#21523692, listing#21523693, struct(systemId, systemId#21523686, internalUUID, internalUUID#21523687, plant, plant#21523688, product, product#21523689, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#21523690, productionAspect, productionAspect#21523691, salesPlant, salesPlant#21523692, listing, listing#21523693) AS productPlant#21523694]
(1591) Project
Arguments: [productPlant#21523694]
(1592) Join
Arguments: LeftOuter, ((product#21523682 <=> productPlant#21523694.product.internalRefUUID) AND (plant#21523683 <=> productPlant#21523694.plant.internalRefUUID))
(1593) Project
Arguments: [product#21523682, plant#21523683, orderDateTime#21523684, productPlant#21523694]
(1594) LogicalRelation
Arguments: parquet, [systemId#21523695, internalUUID#21523696, id#21523697, displayId#21523698, name#21523699, baseUnitOfMeasure#21523700, unitOfMeasures#21523701, unitOfMeasureConversions#21523702, productionAspect#21523703, salesAspect#21523704, procurementAspect#21523705, productGroup#21523706], false
(1595) Repartition
Arguments: 25, true
(1596) Join
Arguments: LeftOuter, (product#21523682 = internalUUID#21523696)
(1597) Project
Arguments: [product#21523682, plant#21523683, orderDateTime#21523684, productPlant#21523694, systemId#21523695, internalUUID#21523696, id#21523697, displayId#21523698, name#21523699, baseUnitOfMeasure#21523700, unitOfMeasures#21523701, unitOfMeasureConversions#21523702, productionAspect#21523703, salesAspect#21523704, procurementAspect#21523705, productGroup#21523706, filter(unitOfMeasureConversions#21523702, lambdafunction((((lambda u#21518048.measurementUnit1.code = productPlant#21523694.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#21518048.measurementUnit1.internalRefUUID = productPlant#21523694.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#21518048.measurementUnit2.code = baseUnitOfMeasure#21523700.code) AND (lambda u#21518048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#21523700.internalRefUUID))), lambda u#21518048, false)) AS filteredUnitOfMeasureConversions#21523707]
(1598) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21523707.quantityNumerator), true, [quantityNumerator#21523708]
(1599) Project
Arguments: [product#21523682, plant#21523683, orderDateTime#21523684, productPlant#21523694, systemId#21523695, internalUUID#21523696, id#21523697, displayId#21523698, name#21523699, baseUnitOfMeasure#21523700, unitOfMeasures#21523701, unitOfMeasureConversions#21523702, productionAspect#21523703, salesAspect#21523704, procurementAspect#21523705, productGroup#21523706, filteredUnitOfMeasureConversions#21523707, quantityNumerator#21523708]
(1600) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21523707.quantityDenominator), true, [quantityDenominator#21523709]
(1601) Project
Arguments: [product#21523682, plant#21523683, orderDateTime#21523684, productPlant#21523694, systemId#21523695, internalUUID#21523696, id#21523697, displayId#21523698, name#21523699, baseUnitOfMeasure#21523700, unitOfMeasures#21523701, unitOfMeasureConversions#21523702, productionAspect#21523703, salesAspect#21523704, procurementAspect#21523705, productGroup#21523706, filteredUnitOfMeasureConversions#21523707, quantityNumerator#21523708, quantityDenominator#21523709]
(1602) Project
Arguments: [product#21523682, plant#21523683, orderDateTime#21523684, productPlant#21523694, systemId#21523695, internalUUID#21523696, id#21523697, displayId#21523698, name#21523699, baseUnitOfMeasure#21523700, unitOfMeasures#21523701, unitOfMeasureConversions#21523702, productionAspect#21523703, salesAspect#21523704, procurementAspect#21523705, productGroup#21523706, filteredUnitOfMeasureConversions#21523707, quantityNumerator#21523708, quantityDenominator#21523709, (cast(quantityNumerator#21523708 as double) / cast(quantityDenominator#21523709 as double)) AS outboundUnit#21523710]
(1603) Project
Arguments: [product#21523682, plant#21523683, orderDateTime#21523684, productPlant#21523694, systemId#21523695, internalUUID#21523696, id#21523697, displayId#21523698, name#21523699, baseUnitOfMeasure#21523700, unitOfMeasures#21523701, unitOfMeasureConversions#21523702, productionAspect#21523703, salesAspect#21523704, procurementAspect#21523705, productGroup#21523706, filteredUnitOfMeasureConversions#21523707, quantityNumerator#21523708, quantityDenominator#21523709, CASE WHEN (isnull(outboundUnit#21523710) OR (outboundUnit#21523710 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#21523710 END AS outboundUnit#21523711]
(1604) Project
Arguments: [product#21523682, plant#21523683, orderDateTime#21523684, productPlant#21523694, outboundUnit#21523711]
(1605) Project
Arguments: [plant#21523683]
(1606) Deduplicate
Arguments: [plant#21523683]
(1607) Join
Arguments: Inner, (plantUuid#21523679 = plant#21523683)
(1608) Project
Arguments: [plantId#21523678, plantUuid#21523679, storageLocId#21523680, storageLocUuid#21523681]
(1609) Join
Arguments: Inner, (plant#21523651.internalRefUUID <=> plantUuid#21523679)
(1610) Generate
Arguments: explode(filter(stockQuantities#21523653, lambdafunction(((lambda x#21518157.storageLocation.internalRefUuid = storageLocUuid#21523681) AND (lambda x#21518157.storageLocation.Id = storageLocId#21523680)), lambda x#21518157, false))), false, [stockQuantity#21523712]
(1611) Project
Arguments: [systemId#21523648, internalUUID#21523649, product#21523650, plant#21523651, calculationDateTime#21523652, stockQuantities#21523653, plantId#21523678, plantUuid#21523679, storageLocId#21523680, storageLocUuid#21523681, stockQuantity#21523712]
(1612) Aggregate
Arguments: [plantUuid#21523679, internalUUID#21523649, plant#21523651, product#21523650, systemId#21523648], [plantUuid#21523679, internalUUID#21523649, plant#21523651, product#21523650, systemId#21523648, first(calculationDateTime#21523652, false) AS calculationDateTime#21523713, collect_list(stockQuantity#21523712, 0, 0) AS stockQuantities#21523714]
(1613) Project
Arguments: [systemId#21523648, internalUUID#21523649, product#21523650, plant#21523651, calculationDateTime#21523713, stockQuantities#21523714]
(1614) Generate
Arguments: explode(stockQuantities#21523714), false, [stockQuantity#21523715]
(1615) Project
Arguments: [systemId#21523648, internalUUID#21523649, product#21523650, plant#21523651, calculationDateTime#21523713, stockQuantities#21523714, stockQuantity#21523715]
(1616) Project
Arguments: [plant#21523651.id AS plant#21523716, plant#21523651.internalRefUUID AS plantUuid#21523717, product#21523650.id AS product#21523718, product#21523650.internalRefUUID AS productUuid#21523719, calculationDateTime#21523713, stockQuantity#21523715.storagelocation.id AS storageLocId#21523720, stockQuantity#21523715.storagelocation.internalRefUUID AS storageLocUuid#21523721, stockQuantity#21523715.quantity.measure AS quantity#21523722, stockQuantity#21523715.specialStockIndicator.code AS specialStockIndicator#21523723, stockQuantity#21523715.stockType.code AS stockType#21523724]
(1617) Filter
Arguments: ((specialStockIndicator#21523723 = ) AND (stockType#21523724 = 01))
(1618) LogicalRelation
Arguments: parquet, [product#21523725, plant#21523726, orderDateTime#21523727, planningStartDateTime#21523728], false
(1619) RepartitionByExpression
Arguments: [product#21523725, plant#21523726], 25
(1620) Project
Arguments: [product#21523725, plant#21523726, orderDateTime#21523727]
(1621) LogicalRelation
Arguments: parquet, [systemId#21523729, internalUUID#21523730, plant#21523731, product#21523732, blockedForReplenishmentStartingFrom#21523733, productionAspect#21523734, salesPlant#21523735, listing#21523736], false
(1622) Repartition
Arguments: 25, true
(1623) Project
Arguments: [systemId#21523729, internalUUID#21523730, plant#21523731, product#21523732, blockedForReplenishmentStartingFrom#21523733, productionAspect#21523734, salesPlant#21523735, listing#21523736, struct(systemId, systemId#21523729, internalUUID, internalUUID#21523730, plant, plant#21523731, product, product#21523732, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#21523733, productionAspect, productionAspect#21523734, salesPlant, salesPlant#21523735, listing, listing#21523736) AS productPlant#21523737]
(1624) Project
Arguments: [productPlant#21523737]
(1625) Join
Arguments: LeftOuter, ((product#21523725 <=> productPlant#21523737.product.internalRefUUID) AND (plant#21523726 <=> productPlant#21523737.plant.internalRefUUID))
(1626) Project
Arguments: [product#21523725, plant#21523726, orderDateTime#21523727, productPlant#21523737]
(1627) LogicalRelation
Arguments: parquet, [systemId#21523738, internalUUID#21523739, id#21523740, displayId#21523741, name#21523742, baseUnitOfMeasure#21523743, unitOfMeasures#21523744, unitOfMeasureConversions#21523745, productionAspect#21523746, salesAspect#21523747, procurementAspect#21523748, productGroup#21523749], false
(1628) Repartition
Arguments: 25, true
(1629) Join
Arguments: LeftOuter, (product#21523725 = internalUUID#21523739)
(1630) Project
Arguments: [product#21523725, plant#21523726, orderDateTime#21523727, productPlant#21523737, systemId#21523738, internalUUID#21523739, id#21523740, displayId#21523741, name#21523742, baseUnitOfMeasure#21523743, unitOfMeasures#21523744, unitOfMeasureConversions#21523745, productionAspect#21523746, salesAspect#21523747, procurementAspect#21523748, productGroup#21523749, filter(unitOfMeasureConversions#21523745, lambdafunction((((lambda u#21518048.measurementUnit1.code = productPlant#21523737.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#21518048.measurementUnit1.internalRefUUID = productPlant#21523737.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#21518048.measurementUnit2.code = baseUnitOfMeasure#21523743.code) AND (lambda u#21518048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#21523743.internalRefUUID))), lambda u#21518048, false)) AS filteredUnitOfMeasureConversions#21523750]
(1631) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21523750.quantityNumerator), true, [quantityNumerator#21523751]
(1632) Project
Arguments: [product#21523725, plant#21523726, orderDateTime#21523727, productPlant#21523737, systemId#21523738, internalUUID#21523739, id#21523740, displayId#21523741, name#21523742, baseUnitOfMeasure#21523743, unitOfMeasures#21523744, unitOfMeasureConversions#21523745, productionAspect#21523746, salesAspect#21523747, procurementAspect#21523748, productGroup#21523749, filteredUnitOfMeasureConversions#21523750, quantityNumerator#21523751]
(1633) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21523750.quantityDenominator), true, [quantityDenominator#21523752]
(1634) Project
Arguments: [product#21523725, plant#21523726, orderDateTime#21523727, productPlant#21523737, systemId#21523738, internalUUID#21523739, id#21523740, displayId#21523741, name#21523742, baseUnitOfMeasure#21523743, unitOfMeasures#21523744, unitOfMeasureConversions#21523745, productionAspect#21523746, salesAspect#21523747, procurementAspect#21523748, productGroup#21523749, filteredUnitOfMeasureConversions#21523750, quantityNumerator#21523751, quantityDenominator#21523752]
(1635) Project
Arguments: [product#21523725, plant#21523726, orderDateTime#21523727, productPlant#21523737, systemId#21523738, internalUUID#21523739, id#21523740, displayId#21523741, name#21523742, baseUnitOfMeasure#21523743, unitOfMeasures#21523744, unitOfMeasureConversions#21523745, productionAspect#21523746, salesAspect#21523747, procurementAspect#21523748, productGroup#21523749, filteredUnitOfMeasureConversions#21523750, quantityNumerator#21523751, quantityDenominator#21523752, (cast(quantityNumerator#21523751 as double) / cast(quantityDenominator#21523752 as double)) AS outboundUnit#21523753]
(1636) Project
Arguments: [product#21523725, plant#21523726, orderDateTime#21523727, productPlant#21523737, systemId#21523738, internalUUID#21523739, id#21523740, displayId#21523741, name#21523742, baseUnitOfMeasure#21523743, unitOfMeasures#21523744, unitOfMeasureConversions#21523745, productionAspect#21523746, salesAspect#21523747, procurementAspect#21523748, productGroup#21523749, filteredUnitOfMeasureConversions#21523750, quantityNumerator#21523751, quantityDenominator#21523752, CASE WHEN (isnull(outboundUnit#21523753) OR (outboundUnit#21523753 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#21523753 END AS outboundUnit#21523754]
(1637) Project
Arguments: [product#21523725, plant#21523726, orderDateTime#21523727, productPlant#21523737, outboundUnit#21523754]
(1638) Join
Arguments: Inner, ((plantUuid#21523717 = plant#21523726) AND (productUuid#21523719 = product#21523725))
(1639) Filter
Arguments: (calculationDateTime#21523713 <= orderDateTime#21523727)
(1640) Project
Arguments: [plantUuid#21523717 AS plant#21523755, productUuid#21523719 AS product#21523756, storageLocId#21523720, calculationDateTime#21523713, quantity#21523722]
(1641) Aggregate
Arguments: [plant#21523755, product#21523756, storageLocId#21523720], [plant#21523755, product#21523756, storageLocId#21523720, max(calculationDateTime#21523713) AS max_calc_datetime#21523757]
(1642) Join
Arguments: Inner, ((((plant#21523646 <=> plant#21523755) AND (product#21523647 <=> product#21523756)) AND (storageLocId#21523611 <=> storageLocId#21523720)) AND (calculationDateTime#21523604 <=> max_calc_datetime#21523757))
(1643) Project
Arguments: [plant#21523646, product#21523647, storageLocId#21523611, calculationDateTime#21523604, quantity#21523613]
(1644) Aggregate
Arguments: [product#21523647, plant#21523646], [product#21523647, plant#21523646, sum(quantity#21523613) AS quantitySum#21523758, min(calculationDateTime#21523604) AS minCalculationDateTime#21523759]
(1645) Project
Arguments: [product#21523647, plant#21523646, quantitySum#21523758, minCalculationDateTime#21523759, round(quantitySum#21523758, 0) AS roundedQuantitySum#21523760]
(1646) Join
Arguments: LeftOuter, ((plant#21523510 = plant#21523646) AND (product#21523509 = product#21523647))
(1647) Project
Arguments: [product#21523509, plant#21523510, orderDateTime#21523511, productPlant#21523521, outboundUnit#21523538, roundedQuantitySum#21523760, minCalculationDateTime#21523759]
(1648) Project
Arguments: [product#21523509, plant#21523510, orderDateTime#21523511, productPlant#21523521, outboundUnit#21523538, roundedQuantitySum#21523760, minCalculationDateTime#21523759, CASE WHEN isnotnull(minCalculationDateTime#21523759) THEN minCalculationDateTime#21523759 ELSE orderDateTime#21523511 END AS stockDatetime#21523761]
(1649) Project
Arguments: [product#21523509, plant#21523510, orderDateTime#21523511, productPlant#21523521, outboundUnit#21523538, roundedQuantitySum#21523760, minCalculationDateTime#21523759, stockDatetime#21523761, CASE WHEN isnotnull(roundedQuantitySum#21523760) THEN array(roundedQuantitySum#21523760) ELSE array(0.0) END AS stockBatchQuantities#21523762]
(1650) Project
Arguments: [product#21523509, plant#21523510, orderDateTime#21523511, productPlant#21523521, outboundUnit#21523538, roundedQuantitySum#21523760, minCalculationDateTime#21523759, stockDatetime#21523761, stockBatchQuantities#21523762, array(2199-01-01 00:00:00) AS stockBatchShelfLifeEndDatetimes#21523763]
(1651) Project
Arguments: [product#21523509, plant#21523510, orderDateTime#21523511, productPlant#21523521, outboundUnit#21523538, roundedQuantitySum#21523760, stockDatetime#21523761, stockBatchQuantities#21523762, stockBatchShelfLifeEndDatetimes#21523763]
(1652) Project
Arguments: [product#21523509, plant#21523510, orderDateTime#21523511, productPlant#21523521, outboundUnit#21523538, stockDatetime#21523761, stockBatchQuantities#21523762, stockBatchShelfLifeEndDatetimes#21523763]
(1653) LogicalRelation
Arguments: parquet, [product#21523764, plant#21523765, orderDateTime#21523766, planningStartDateTime#21523767], false
(1654) RepartitionByExpression
Arguments: [product#21523764, plant#21523765], 25
(1655) Project
Arguments: [product#21523764, plant#21523765, orderDateTime#21523766]
(1656) LogicalRelation
Arguments: parquet, [systemId#21523768, internalUUID#21523769, plant#21523770, product#21523771, blockedForReplenishmentStartingFrom#21523772, productionAspect#21523773, salesPlant#21523774, listing#21523775], false
(1657) Repartition
Arguments: 25, true
(1658) Project
Arguments: [systemId#21523768, internalUUID#21523769, plant#21523770, product#21523771, blockedForReplenishmentStartingFrom#21523772, productionAspect#21523773, salesPlant#21523774, listing#21523775, struct(systemId, systemId#21523768, internalUUID, internalUUID#21523769, plant, plant#21523770, product, product#21523771, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#21523772, productionAspect, productionAspect#21523773, salesPlant, salesPlant#21523774, listing, listing#21523775) AS productPlant#21523776]
(1659) Project
Arguments: [productPlant#21523776]
(1660) Join
Arguments: LeftOuter, ((product#21523764 <=> productPlant#21523776.product.internalRefUUID) AND (plant#21523765 <=> productPlant#21523776.plant.internalRefUUID))
(1661) Project
Arguments: [product#21523764, plant#21523765, orderDateTime#21523766, productPlant#21523776]
(1662) LogicalRelation
Arguments: parquet, [systemId#21523777, internalUUID#21523778, id#21523779, displayId#21523780, name#21523781, baseUnitOfMeasure#21523782, unitOfMeasures#21523783, unitOfMeasureConversions#21523784, productionAspect#21523785, salesAspect#21523786, procurementAspect#21523787, productGroup#21523788], false
(1663) Repartition
Arguments: 25, true
(1664) Join
Arguments: LeftOuter, (product#21523764 = internalUUID#21523778)
(1665) Project
Arguments: [product#21523764, plant#21523765, orderDateTime#21523766, productPlant#21523776, systemId#21523777, internalUUID#21523778, id#21523779, displayId#21523780, name#21523781, baseUnitOfMeasure#21523782, unitOfMeasures#21523783, unitOfMeasureConversions#21523784, productionAspect#21523785, salesAspect#21523786, procurementAspect#21523787, productGroup#21523788, filter(unitOfMeasureConversions#21523784, lambdafunction((((lambda u#21518048.measurementUnit1.code = productPlant#21523776.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#21518048.measurementUnit1.internalRefUUID = productPlant#21523776.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#21518048.measurementUnit2.code = baseUnitOfMeasure#21523782.code) AND (lambda u#21518048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#21523782.internalRefUUID))), lambda u#21518048, false)) AS filteredUnitOfMeasureConversions#21523789]
(1666) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21523789.quantityNumerator), true, [quantityNumerator#21523790]
(1667) Project
Arguments: [product#21523764, plant#21523765, orderDateTime#21523766, productPlant#21523776, systemId#21523777, internalUUID#21523778, id#21523779, displayId#21523780, name#21523781, baseUnitOfMeasure#21523782, unitOfMeasures#21523783, unitOfMeasureConversions#21523784, productionAspect#21523785, salesAspect#21523786, procurementAspect#21523787, productGroup#21523788, filteredUnitOfMeasureConversions#21523789, quantityNumerator#21523790]
(1668) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21523789.quantityDenominator), true, [quantityDenominator#21523791]
(1669) Project
Arguments: [product#21523764, plant#21523765, orderDateTime#21523766, productPlant#21523776, systemId#21523777, internalUUID#21523778, id#21523779, displayId#21523780, name#21523781, baseUnitOfMeasure#21523782, unitOfMeasures#21523783, unitOfMeasureConversions#21523784, productionAspect#21523785, salesAspect#21523786, procurementAspect#21523787, productGroup#21523788, filteredUnitOfMeasureConversions#21523789, quantityNumerator#21523790, quantityDenominator#21523791]
(1670) Project
Arguments: [product#21523764, plant#21523765, orderDateTime#21523766, productPlant#21523776, systemId#21523777, internalUUID#21523778, id#21523779, displayId#21523780, name#21523781, baseUnitOfMeasure#21523782, unitOfMeasures#21523783, unitOfMeasureConversions#21523784, productionAspect#21523785, salesAspect#21523786, procurementAspect#21523787, productGroup#21523788, filteredUnitOfMeasureConversions#21523789, quantityNumerator#21523790, quantityDenominator#21523791, (cast(quantityNumerator#21523790 as double) / cast(quantityDenominator#21523791 as double)) AS outboundUnit#21523792]
(1671) Project
Arguments: [product#21523764, plant#21523765, orderDateTime#21523766, productPlant#21523776, systemId#21523777, internalUUID#21523778, id#21523779, displayId#21523780, name#21523781, baseUnitOfMeasure#21523782, unitOfMeasures#21523783, unitOfMeasureConversions#21523784, productionAspect#21523785, salesAspect#21523786, procurementAspect#21523787, productGroup#21523788, filteredUnitOfMeasureConversions#21523789, quantityNumerator#21523790, quantityDenominator#21523791, CASE WHEN (isnull(outboundUnit#21523792) OR (outboundUnit#21523792 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#21523792 END AS outboundUnit#21523793]
(1672) Project
Arguments: [product#21523764, plant#21523765, orderDateTime#21523766, productPlant#21523776, outboundUnit#21523793]
(1673) LogicalRelation
Arguments: parquet, [systemId#21523794, internalUUID#21523795, product#21523796, plant#21523797, calculationDateTime#21523798, stockQuantities#21523799], false
(1674) Repartition
Arguments: 25, true
(1675) LogicalRelation
Arguments: parquet, [marketUnit#21523800, description#21523801, articleHierarchy#21523802, defaultCurrency#21523803, responsibilities#21523804, replenishmentTypes#21523805, distributionCenters#21523806, assignedArticleHierarchyNodes#21523807, minOrderQtySetting#21523808, listingCheck#21523809, odsSelection#21523810, demandProfiles#21523811, constraintProfiles#21523812, optimizationProfiles#21523813, orderGroupSplitProfiles#21523814, supplierMinimumProfiles#21523815, multipleRestrictionProfiles#21523816, preferredUomSource#21523817, handlingOfUnfulfilledDemands#21523818, negligibleQuantitiesThreshold#21523819, eventtype#21523820, minOrderQtySettingInternal#21523821], false
(1676) Repartition
Arguments: 25, true
(1677) Filter
Arguments: (marketUnit#21523800 <=> SS_Test_1)
(1678) Project
Arguments: [marketUnit#21523800, description#21523801, articleHierarchy#21523802, defaultCurrency#21523803, responsibilities#21523804, replenishmentTypes#21523805, distributionCenters#21523806, assignedArticleHierarchyNodes#21523807, minOrderQtySetting#21523808, listingCheck#21523809, odsSelection#21523810, demandProfiles#21523811, constraintProfiles#21523812, optimizationProfiles#21523813, orderGroupSplitProfiles#21523814, supplierMinimumProfiles#21523815, multipleRestrictionProfiles#21523816, preferredUomSource#21523817, handlingOfUnfulfilledDemands#21523818, negligibleQuantitiesThreshold#21523819, eventtype#21523820, minOrderQtySettingInternal#21523821]
(1679) Project
Arguments: [distributionCenters#21523806]
(1680) Generate
Arguments: explode(distributionCenters#21523806), false, [distributionCenters#21523822]
(1681) Project
Arguments: [distributionCenters#21523822]
(1682) Generate
Arguments: explode(distributionCenters#21523822.storageLocations), false, [storageLocations#21523823]
(1683) Project
Arguments: [distributionCenters#21523822.id AS plantId#21523824, distributionCenters#21523822.internalRefUUID AS plantUuid#21523825, storageLocations#21523823]
(1684) Project
Arguments: [plantId#21523824, plantUuid#21523825, storageLocations#21523823.id AS storageLocId#21523826, storageLocations#21523823.internalRefUUID AS storageLocUuid#21523827]
(1685) LogicalRelation
Arguments: parquet, [product#21523828, plant#21523829, orderDateTime#21523830, planningStartDateTime#21523831], false
(1686) RepartitionByExpression
Arguments: [product#21523828, plant#21523829], 25
(1687) Project
Arguments: [product#21523828, plant#21523829, orderDateTime#21523830]
(1688) LogicalRelation
Arguments: parquet, [systemId#21523832, internalUUID#21523833, plant#21523834, product#21523835, blockedForReplenishmentStartingFrom#21523836, productionAspect#21523837, salesPlant#21523838, listing#21523839], false
(1689) Repartition
Arguments: 25, true
(1690) Project
Arguments: [systemId#21523832, internalUUID#21523833, plant#21523834, product#21523835, blockedForReplenishmentStartingFrom#21523836, productionAspect#21523837, salesPlant#21523838, listing#21523839, struct(systemId, systemId#21523832, internalUUID, internalUUID#21523833, plant, plant#21523834, product, product#21523835, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#21523836, productionAspect, productionAspect#21523837, salesPlant, salesPlant#21523838, listing, listing#21523839) AS productPlant#21523840]
(1691) Project
Arguments: [productPlant#21523840]
(1692) Join
Arguments: LeftOuter, ((product#21523828 <=> productPlant#21523840.product.internalRefUUID) AND (plant#21523829 <=> productPlant#21523840.plant.internalRefUUID))
(1693) Project
Arguments: [product#21523828, plant#21523829, orderDateTime#21523830, productPlant#21523840]
(1694) LogicalRelation
Arguments: parquet, [systemId#21523841, internalUUID#21523842, id#21523843, displayId#21523844, name#21523845, baseUnitOfMeasure#21523846, unitOfMeasures#21523847, unitOfMeasureConversions#21523848, productionAspect#21523849, salesAspect#21523850, procurementAspect#21523851, productGroup#21523852], false
(1695) Repartition
Arguments: 25, true
(1696) Join
Arguments: LeftOuter, (product#21523828 = internalUUID#21523842)
(1697) Project
Arguments: [product#21523828, plant#21523829, orderDateTime#21523830, productPlant#21523840, systemId#21523841, internalUUID#21523842, id#21523843, displayId#21523844, name#21523845, baseUnitOfMeasure#21523846, unitOfMeasures#21523847, unitOfMeasureConversions#21523848, productionAspect#21523849, salesAspect#21523850, procurementAspect#21523851, productGroup#21523852, filter(unitOfMeasureConversions#21523848, lambdafunction((((lambda u#21518048.measurementUnit1.code = productPlant#21523840.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#21518048.measurementUnit1.internalRefUUID = productPlant#21523840.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#21518048.measurementUnit2.code = baseUnitOfMeasure#21523846.code) AND (lambda u#21518048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#21523846.internalRefUUID))), lambda u#21518048, false)) AS filteredUnitOfMeasureConversions#21523853]
(1698) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21523853.quantityNumerator), true, [quantityNumerator#21523854]
(1699) Project
Arguments: [product#21523828, plant#21523829, orderDateTime#21523830, productPlant#21523840, systemId#21523841, internalUUID#21523842, id#21523843, displayId#21523844, name#21523845, baseUnitOfMeasure#21523846, unitOfMeasures#21523847, unitOfMeasureConversions#21523848, productionAspect#21523849, salesAspect#21523850, procurementAspect#21523851, productGroup#21523852, filteredUnitOfMeasureConversions#21523853, quantityNumerator#21523854]
(1700) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21523853.quantityDenominator), true, [quantityDenominator#21523855]
(1701) Project
Arguments: [product#21523828, plant#21523829, orderDateTime#21523830, productPlant#21523840, systemId#21523841, internalUUID#21523842, id#21523843, displayId#21523844, name#21523845, baseUnitOfMeasure#21523846, unitOfMeasures#21523847, unitOfMeasureConversions#21523848, productionAspect#21523849, salesAspect#21523850, procurementAspect#21523851, productGroup#21523852, filteredUnitOfMeasureConversions#21523853, quantityNumerator#21523854, quantityDenominator#21523855]
(1702) Project
Arguments: [product#21523828, plant#21523829, orderDateTime#21523830, productPlant#21523840, systemId#21523841, internalUUID#21523842, id#21523843, displayId#21523844, name#21523845, baseUnitOfMeasure#21523846, unitOfMeasures#21523847, unitOfMeasureConversions#21523848, productionAspect#21523849, salesAspect#21523850, procurementAspect#21523851, productGroup#21523852, filteredUnitOfMeasureConversions#21523853, quantityNumerator#21523854, quantityDenominator#21523855, (cast(quantityNumerator#21523854 as double) / cast(quantityDenominator#21523855 as double)) AS outboundUnit#21523856]
(1703) Project
Arguments: [product#21523828, plant#21523829, orderDateTime#21523830, productPlant#21523840, systemId#21523841, internalUUID#21523842, id#21523843, displayId#21523844, name#21523845, baseUnitOfMeasure#21523846, unitOfMeasures#21523847, unitOfMeasureConversions#21523848, productionAspect#21523849, salesAspect#21523850, procurementAspect#21523851, productGroup#21523852, filteredUnitOfMeasureConversions#21523853, quantityNumerator#21523854, quantityDenominator#21523855, CASE WHEN (isnull(outboundUnit#21523856) OR (outboundUnit#21523856 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#21523856 END AS outboundUnit#21523857]
(1704) Project
Arguments: [product#21523828, plant#21523829, orderDateTime#21523830, productPlant#21523840, outboundUnit#21523857]
(1705) Project
Arguments: [plant#21523829]
(1706) Deduplicate
Arguments: [plant#21523829]
(1707) Join
Arguments: Inner, (plantUuid#21523825 = plant#21523829)
(1708) Project
Arguments: [plantId#21523824, plantUuid#21523825, storageLocId#21523826, storageLocUuid#21523827]
(1709) Join
Arguments: Inner, (plant#21523797.internalRefUUID <=> plantUuid#21523825)
(1710) Generate
Arguments: explode(filter(stockQuantities#21523799, lambdafunction(((lambda x#21518157.storageLocation.internalRefUuid = storageLocUuid#21523827) AND (lambda x#21518157.storageLocation.Id = storageLocId#21523826)), lambda x#21518157, false))), false, [stockQuantity#21523858]
(1711) Project
Arguments: [systemId#21523794, internalUUID#21523795, product#21523796, plant#21523797, calculationDateTime#21523798, stockQuantities#21523799, plantId#21523824, plantUuid#21523825, storageLocId#21523826, storageLocUuid#21523827, stockQuantity#21523858]
(1712) Aggregate
Arguments: [plantUuid#21523825, internalUUID#21523795, plant#21523797, product#21523796, systemId#21523794], [plantUuid#21523825, internalUUID#21523795, plant#21523797, product#21523796, systemId#21523794, first(calculationDateTime#21523798, false) AS calculationDateTime#21523859, collect_list(stockQuantity#21523858, 0, 0) AS stockQuantities#21523860]
(1713) Project
Arguments: [systemId#21523794, internalUUID#21523795, product#21523796, plant#21523797, calculationDateTime#21523859, stockQuantities#21523860]
(1714) Generate
Arguments: explode(stockQuantities#21523860), false, [stockQuantity#21523861]
(1715) Project
Arguments: [systemId#21523794, internalUUID#21523795, product#21523796, plant#21523797, calculationDateTime#21523859, stockQuantities#21523860, stockQuantity#21523861]
(1716) Project
Arguments: [plant#21523797.id AS plant#21523862, plant#21523797.internalRefUUID AS plantUuid#21523863, product#21523796.id AS product#21523864, product#21523796.internalRefUUID AS productUuid#21523865, calculationDateTime#21523859, stockQuantity#21523861.storagelocation.id AS storageLocId#21523866, stockQuantity#21523861.storagelocation.internalRefUUID AS storageLocUuid#21523867, stockQuantity#21523861.quantity.measure AS quantity#21523868, stockQuantity#21523861.specialStockIndicator.code AS specialStockIndicator#21523869, stockQuantity#21523861.stockType.code AS stockType#21523870]
(1717) Filter
Arguments: ((specialStockIndicator#21523869 = ) AND (stockType#21523870 = 01))
(1718) LogicalRelation
Arguments: parquet, [product#21523871, plant#21523872, orderDateTime#21523873, planningStartDateTime#21523874], false
(1719) RepartitionByExpression
Arguments: [product#21523871, plant#21523872], 25
(1720) Project
Arguments: [product#21523871, plant#21523872, orderDateTime#21523873]
(1721) LogicalRelation
Arguments: parquet, [systemId#21523875, internalUUID#21523876, plant#21523877, product#21523878, blockedForReplenishmentStartingFrom#21523879, productionAspect#21523880, salesPlant#21523881, listing#21523882], false
(1722) Repartition
Arguments: 25, true
(1723) Project
Arguments: [systemId#21523875, internalUUID#21523876, plant#21523877, product#21523878, blockedForReplenishmentStartingFrom#21523879, productionAspect#21523880, salesPlant#21523881, listing#21523882, struct(systemId, systemId#21523875, internalUUID, internalUUID#21523876, plant, plant#21523877, product, product#21523878, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#21523879, productionAspect, productionAspect#21523880, salesPlant, salesPlant#21523881, listing, listing#21523882) AS productPlant#21523883]
(1724) Project
Arguments: [productPlant#21523883]
(1725) Join
Arguments: LeftOuter, ((product#21523871 <=> productPlant#21523883.product.internalRefUUID) AND (plant#21523872 <=> productPlant#21523883.plant.internalRefUUID))
(1726) Project
Arguments: [product#21523871, plant#21523872, orderDateTime#21523873, productPlant#21523883]
(1727) LogicalRelation
Arguments: parquet, [systemId#21523884, internalUUID#21523885, id#21523886, displayId#21523887, name#21523888, baseUnitOfMeasure#21523889, unitOfMeasures#21523890, unitOfMeasureConversions#21523891, productionAspect#21523892, salesAspect#21523893, procurementAspect#21523894, productGroup#21523895], false
(1728) Repartition
Arguments: 25, true
(1729) Join
Arguments: LeftOuter, (product#21523871 = internalUUID#21523885)
(1730) Project
Arguments: [product#21523871, plant#21523872, orderDateTime#21523873, productPlant#21523883, systemId#21523884, internalUUID#21523885, id#21523886, displayId#21523887, name#21523888, baseUnitOfMeasure#21523889, unitOfMeasures#21523890, unitOfMeasureConversions#21523891, productionAspect#21523892, salesAspect#21523893, procurementAspect#21523894, productGroup#21523895, filter(unitOfMeasureConversions#21523891, lambdafunction((((lambda u#21518048.measurementUnit1.code = productPlant#21523883.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#21518048.measurementUnit1.internalRefUUID = productPlant#21523883.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#21518048.measurementUnit2.code = baseUnitOfMeasure#21523889.code) AND (lambda u#21518048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#21523889.internalRefUUID))), lambda u#21518048, false)) AS filteredUnitOfMeasureConversions#21523896]
(1731) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21523896.quantityNumerator), true, [quantityNumerator#21523897]
(1732) Project
Arguments: [product#21523871, plant#21523872, orderDateTime#21523873, productPlant#21523883, systemId#21523884, internalUUID#21523885, id#21523886, displayId#21523887, name#21523888, baseUnitOfMeasure#21523889, unitOfMeasures#21523890, unitOfMeasureConversions#21523891, productionAspect#21523892, salesAspect#21523893, procurementAspect#21523894, productGroup#21523895, filteredUnitOfMeasureConversions#21523896, quantityNumerator#21523897]
(1733) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21523896.quantityDenominator), true, [quantityDenominator#21523898]
(1734) Project
Arguments: [product#21523871, plant#21523872, orderDateTime#21523873, productPlant#21523883, systemId#21523884, internalUUID#21523885, id#21523886, displayId#21523887, name#21523888, baseUnitOfMeasure#21523889, unitOfMeasures#21523890, unitOfMeasureConversions#21523891, productionAspect#21523892, salesAspect#21523893, procurementAspect#21523894, productGroup#21523895, filteredUnitOfMeasureConversions#21523896, quantityNumerator#21523897, quantityDenominator#21523898]
(1735) Project
Arguments: [product#21523871, plant#21523872, orderDateTime#21523873, productPlant#21523883, systemId#21523884, internalUUID#21523885, id#21523886, displayId#21523887, name#21523888, baseUnitOfMeasure#21523889, unitOfMeasures#21523890, unitOfMeasureConversions#21523891, productionAspect#21523892, salesAspect#21523893, procurementAspect#21523894, productGroup#21523895, filteredUnitOfMeasureConversions#21523896, quantityNumerator#21523897, quantityDenominator#21523898, (cast(quantityNumerator#21523897 as double) / cast(quantityDenominator#21523898 as double)) AS outboundUnit#21523899]
(1736) Project
Arguments: [product#21523871, plant#21523872, orderDateTime#21523873, productPlant#21523883, systemId#21523884, internalUUID#21523885, id#21523886, displayId#21523887, name#21523888, baseUnitOfMeasure#21523889, unitOfMeasures#21523890, unitOfMeasureConversions#21523891, productionAspect#21523892, salesAspect#21523893, procurementAspect#21523894, productGroup#21523895, filteredUnitOfMeasureConversions#21523896, quantityNumerator#21523897, quantityDenominator#21523898, CASE WHEN (isnull(outboundUnit#21523899) OR (outboundUnit#21523899 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#21523899 END AS outboundUnit#21523900]
(1737) Project
Arguments: [product#21523871, plant#21523872, orderDateTime#21523873, productPlant#21523883, outboundUnit#21523900]
(1738) Join
Arguments: Inner, ((plantUuid#21523863 = plant#21523872) AND (productUuid#21523865 = product#21523871))
(1739) Filter
Arguments: (calculationDateTime#21523859 <= orderDateTime#21523873)
(1740) Project
Arguments: [plantUuid#21523863 AS plant#21523901, productUuid#21523865 AS product#21523902, storageLocId#21523866, calculationDateTime#21523859, quantity#21523868]
(1741) LogicalRelation
Arguments: parquet, [systemId#21523903, internalUUID#21523904, product#21523905, plant#21523906, calculationDateTime#21523907, stockQuantities#21523908], false
(1742) Repartition
Arguments: 25, true
(1743) LogicalRelation
Arguments: parquet, [marketUnit#21523909, description#21523910, articleHierarchy#21523911, defaultCurrency#21523912, responsibilities#21523913, replenishmentTypes#21523914, distributionCenters#21523915, assignedArticleHierarchyNodes#21523916, minOrderQtySetting#21523917, listingCheck#21523918, odsSelection#21523919, demandProfiles#21523920, constraintProfiles#21523921, optimizationProfiles#21523922, orderGroupSplitProfiles#21523923, supplierMinimumProfiles#21523924, multipleRestrictionProfiles#21523925, preferredUomSource#21523926, handlingOfUnfulfilledDemands#21523927, negligibleQuantitiesThreshold#21523928, eventtype#21523929, minOrderQtySettingInternal#21523930], false
(1744) Repartition
Arguments: 25, true
(1745) Filter
Arguments: (marketUnit#21523909 <=> SS_Test_1)
(1746) Project
Arguments: [marketUnit#21523909, description#21523910, articleHierarchy#21523911, defaultCurrency#21523912, responsibilities#21523913, replenishmentTypes#21523914, distributionCenters#21523915, assignedArticleHierarchyNodes#21523916, minOrderQtySetting#21523917, listingCheck#21523918, odsSelection#21523919, demandProfiles#21523920, constraintProfiles#21523921, optimizationProfiles#21523922, orderGroupSplitProfiles#21523923, supplierMinimumProfiles#21523924, multipleRestrictionProfiles#21523925, preferredUomSource#21523926, handlingOfUnfulfilledDemands#21523927, negligibleQuantitiesThreshold#21523928, eventtype#21523929, minOrderQtySettingInternal#21523930]
(1747) Project
Arguments: [distributionCenters#21523915]
(1748) Generate
Arguments: explode(distributionCenters#21523915), false, [distributionCenters#21523931]
(1749) Project
Arguments: [distributionCenters#21523931]
(1750) Generate
Arguments: explode(distributionCenters#21523931.storageLocations), false, [storageLocations#21523932]
(1751) Project
Arguments: [distributionCenters#21523931.id AS plantId#21523933, distributionCenters#21523931.internalRefUUID AS plantUuid#21523934, storageLocations#21523932]
(1752) Project
Arguments: [plantId#21523933, plantUuid#21523934, storageLocations#21523932.id AS storageLocId#21523935, storageLocations#21523932.internalRefUUID AS storageLocUuid#21523936]
(1753) LogicalRelation
Arguments: parquet, [product#21523937, plant#21523938, orderDateTime#21523939, planningStartDateTime#21523940], false
(1754) RepartitionByExpression
Arguments: [product#21523937, plant#21523938], 25
(1755) Project
Arguments: [product#21523937, plant#21523938, orderDateTime#21523939]
(1756) LogicalRelation
Arguments: parquet, [systemId#21523941, internalUUID#21523942, plant#21523943, product#21523944, blockedForReplenishmentStartingFrom#21523945, productionAspect#21523946, salesPlant#21523947, listing#21523948], false
(1757) Repartition
Arguments: 25, true
(1758) Project
Arguments: [systemId#21523941, internalUUID#21523942, plant#21523943, product#21523944, blockedForReplenishmentStartingFrom#21523945, productionAspect#21523946, salesPlant#21523947, listing#21523948, struct(systemId, systemId#21523941, internalUUID, internalUUID#21523942, plant, plant#21523943, product, product#21523944, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#21523945, productionAspect, productionAspect#21523946, salesPlant, salesPlant#21523947, listing, listing#21523948) AS productPlant#21523949]
(1759) Project
Arguments: [productPlant#21523949]
(1760) Join
Arguments: LeftOuter, ((product#21523937 <=> productPlant#21523949.product.internalRefUUID) AND (plant#21523938 <=> productPlant#21523949.plant.internalRefUUID))
(1761) Project
Arguments: [product#21523937, plant#21523938, orderDateTime#21523939, productPlant#21523949]
(1762) LogicalRelation
Arguments: parquet, [systemId#21523950, internalUUID#21523951, id#21523952, displayId#21523953, name#21523954, baseUnitOfMeasure#21523955, unitOfMeasures#21523956, unitOfMeasureConversions#21523957, productionAspect#21523958, salesAspect#21523959, procurementAspect#21523960, productGroup#21523961], false
(1763) Repartition
Arguments: 25, true
(1764) Join
Arguments: LeftOuter, (product#21523937 = internalUUID#21523951)
(1765) Project
Arguments: [product#21523937, plant#21523938, orderDateTime#21523939, productPlant#21523949, systemId#21523950, internalUUID#21523951, id#21523952, displayId#21523953, name#21523954, baseUnitOfMeasure#21523955, unitOfMeasures#21523956, unitOfMeasureConversions#21523957, productionAspect#21523958, salesAspect#21523959, procurementAspect#21523960, productGroup#21523961, filter(unitOfMeasureConversions#21523957, lambdafunction((((lambda u#21518048.measurementUnit1.code = productPlant#21523949.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#21518048.measurementUnit1.internalRefUUID = productPlant#21523949.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#21518048.measurementUnit2.code = baseUnitOfMeasure#21523955.code) AND (lambda u#21518048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#21523955.internalRefUUID))), lambda u#21518048, false)) AS filteredUnitOfMeasureConversions#21523962]
(1766) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21523962.quantityNumerator), true, [quantityNumerator#21523963]
(1767) Project
Arguments: [product#21523937, plant#21523938, orderDateTime#21523939, productPlant#21523949, systemId#21523950, internalUUID#21523951, id#21523952, displayId#21523953, name#21523954, baseUnitOfMeasure#21523955, unitOfMeasures#21523956, unitOfMeasureConversions#21523957, productionAspect#21523958, salesAspect#21523959, procurementAspect#21523960, productGroup#21523961, filteredUnitOfMeasureConversions#21523962, quantityNumerator#21523963]
(1768) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21523962.quantityDenominator), true, [quantityDenominator#21523964]
(1769) Project
Arguments: [product#21523937, plant#21523938, orderDateTime#21523939, productPlant#21523949, systemId#21523950, internalUUID#21523951, id#21523952, displayId#21523953, name#21523954, baseUnitOfMeasure#21523955, unitOfMeasures#21523956, unitOfMeasureConversions#21523957, productionAspect#21523958, salesAspect#21523959, procurementAspect#21523960, productGroup#21523961, filteredUnitOfMeasureConversions#21523962, quantityNumerator#21523963, quantityDenominator#21523964]
(1770) Project
Arguments: [product#21523937, plant#21523938, orderDateTime#21523939, productPlant#21523949, systemId#21523950, internalUUID#21523951, id#21523952, displayId#21523953, name#21523954, baseUnitOfMeasure#21523955, unitOfMeasures#21523956, unitOfMeasureConversions#21523957, productionAspect#21523958, salesAspect#21523959, procurementAspect#21523960, productGroup#21523961, filteredUnitOfMeasureConversions#21523962, quantityNumerator#21523963, quantityDenominator#21523964, (cast(quantityNumerator#21523963 as double) / cast(quantityDenominator#21523964 as double)) AS outboundUnit#21523965]
(1771) Project
Arguments: [product#21523937, plant#21523938, orderDateTime#21523939, productPlant#21523949, systemId#21523950, internalUUID#21523951, id#21523952, displayId#21523953, name#21523954, baseUnitOfMeasure#21523955, unitOfMeasures#21523956, unitOfMeasureConversions#21523957, productionAspect#21523958, salesAspect#21523959, procurementAspect#21523960, productGroup#21523961, filteredUnitOfMeasureConversions#21523962, quantityNumerator#21523963, quantityDenominator#21523964, CASE WHEN (isnull(outboundUnit#21523965) OR (outboundUnit#21523965 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#21523965 END AS outboundUnit#21523966]
(1772) Project
Arguments: [product#21523937, plant#21523938, orderDateTime#21523939, productPlant#21523949, outboundUnit#21523966]
(1773) Project
Arguments: [plant#21523938]
(1774) Deduplicate
Arguments: [plant#21523938]
(1775) Join
Arguments: Inner, (plantUuid#21523934 = plant#21523938)
(1776) Project
Arguments: [plantId#21523933, plantUuid#21523934, storageLocId#21523935, storageLocUuid#21523936]
(1777) Join
Arguments: Inner, (plant#21523906.internalRefUUID <=> plantUuid#21523934)
(1778) Generate
Arguments: explode(filter(stockQuantities#21523908, lambdafunction(((lambda x#21518157.storageLocation.internalRefUuid = storageLocUuid#21523936) AND (lambda x#21518157.storageLocation.Id = storageLocId#21523935)), lambda x#21518157, false))), false, [stockQuantity#21523967]
(1779) Project
Arguments: [systemId#21523903, internalUUID#21523904, product#21523905, plant#21523906, calculationDateTime#21523907, stockQuantities#21523908, plantId#21523933, plantUuid#21523934, storageLocId#21523935, storageLocUuid#21523936, stockQuantity#21523967]
(1780) Aggregate
Arguments: [plantUuid#21523934, internalUUID#21523904, plant#21523906, product#21523905, systemId#21523903], [plantUuid#21523934, internalUUID#21523904, plant#21523906, product#21523905, systemId#21523903, first(calculationDateTime#21523907, false) AS calculationDateTime#21523968, collect_list(stockQuantity#21523967, 0, 0) AS stockQuantities#21523969]
(1781) Project
Arguments: [systemId#21523903, internalUUID#21523904, product#21523905, plant#21523906, calculationDateTime#21523968, stockQuantities#21523969]
(1782) Generate
Arguments: explode(stockQuantities#21523969), false, [stockQuantity#21523970]
(1783) Project
Arguments: [systemId#21523903, internalUUID#21523904, product#21523905, plant#21523906, calculationDateTime#21523968, stockQuantities#21523969, stockQuantity#21523970]
(1784) Project
Arguments: [plant#21523906.id AS plant#21523971, plant#21523906.internalRefUUID AS plantUuid#21523972, product#21523905.id AS product#21523973, product#21523905.internalRefUUID AS productUuid#21523974, calculationDateTime#21523968, stockQuantity#21523970.storagelocation.id AS storageLocId#21523975, stockQuantity#21523970.storagelocation.internalRefUUID AS storageLocUuid#21523976, stockQuantity#21523970.quantity.measure AS quantity#21523977, stockQuantity#21523970.specialStockIndicator.code AS specialStockIndicator#21523978, stockQuantity#21523970.stockType.code AS stockType#21523979]
(1785) Filter
Arguments: ((specialStockIndicator#21523978 = ) AND (stockType#21523979 = 01))
(1786) LogicalRelation
Arguments: parquet, [product#21523980, plant#21523981, orderDateTime#21523982, planningStartDateTime#21523983], false
(1787) RepartitionByExpression
Arguments: [product#21523980, plant#21523981], 25
(1788) Project
Arguments: [product#21523980, plant#21523981, orderDateTime#21523982]
(1789) LogicalRelation
Arguments: parquet, [systemId#21523984, internalUUID#21523985, plant#21523986, product#21523987, blockedForReplenishmentStartingFrom#21523988, productionAspect#21523989, salesPlant#21523990, listing#21523991], false
(1790) Repartition
Arguments: 25, true
(1791) Project
Arguments: [systemId#21523984, internalUUID#21523985, plant#21523986, product#21523987, blockedForReplenishmentStartingFrom#21523988, productionAspect#21523989, salesPlant#21523990, listing#21523991, struct(systemId, systemId#21523984, internalUUID, internalUUID#21523985, plant, plant#21523986, product, product#21523987, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#21523988, productionAspect, productionAspect#21523989, salesPlant, salesPlant#21523990, listing, listing#21523991) AS productPlant#21523992]
(1792) Project
Arguments: [productPlant#21523992]
(1793) Join
Arguments: LeftOuter, ((product#21523980 <=> productPlant#21523992.product.internalRefUUID) AND (plant#21523981 <=> productPlant#21523992.plant.internalRefUUID))
(1794) Project
Arguments: [product#21523980, plant#21523981, orderDateTime#21523982, productPlant#21523992]
(1795) LogicalRelation
Arguments: parquet, [systemId#21523993, internalUUID#21523994, id#21523995, displayId#21523996, name#21523997, baseUnitOfMeasure#21523998, unitOfMeasures#21523999, unitOfMeasureConversions#21524000, productionAspect#21524001, salesAspect#21524002, procurementAspect#21524003, productGroup#21524004], false
(1796) Repartition
Arguments: 25, true
(1797) Join
Arguments: LeftOuter, (product#21523980 = internalUUID#21523994)
(1798) Project
Arguments: [product#21523980, plant#21523981, orderDateTime#21523982, productPlant#21523992, systemId#21523993, internalUUID#21523994, id#21523995, displayId#21523996, name#21523997, baseUnitOfMeasure#21523998, unitOfMeasures#21523999, unitOfMeasureConversions#21524000, productionAspect#21524001, salesAspect#21524002, procurementAspect#21524003, productGroup#21524004, filter(unitOfMeasureConversions#21524000, lambdafunction((((lambda u#21518048.measurementUnit1.code = productPlant#21523992.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#21518048.measurementUnit1.internalRefUUID = productPlant#21523992.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#21518048.measurementUnit2.code = baseUnitOfMeasure#21523998.code) AND (lambda u#21518048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#21523998.internalRefUUID))), lambda u#21518048, false)) AS filteredUnitOfMeasureConversions#21524005]
(1799) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21524005.quantityNumerator), true, [quantityNumerator#21524006]
(1800) Project
Arguments: [product#21523980, plant#21523981, orderDateTime#21523982, productPlant#21523992, systemId#21523993, internalUUID#21523994, id#21523995, displayId#21523996, name#21523997, baseUnitOfMeasure#21523998, unitOfMeasures#21523999, unitOfMeasureConversions#21524000, productionAspect#21524001, salesAspect#21524002, procurementAspect#21524003, productGroup#21524004, filteredUnitOfMeasureConversions#21524005, quantityNumerator#21524006]
(1801) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21524005.quantityDenominator), true, [quantityDenominator#21524007]
(1802) Project
Arguments: [product#21523980, plant#21523981, orderDateTime#21523982, productPlant#21523992, systemId#21523993, internalUUID#21523994, id#21523995, displayId#21523996, name#21523997, baseUnitOfMeasure#21523998, unitOfMeasures#21523999, unitOfMeasureConversions#21524000, productionAspect#21524001, salesAspect#21524002, procurementAspect#21524003, productGroup#21524004, filteredUnitOfMeasureConversions#21524005, quantityNumerator#21524006, quantityDenominator#21524007]
(1803) Project
Arguments: [product#21523980, plant#21523981, orderDateTime#21523982, productPlant#21523992, systemId#21523993, internalUUID#21523994, id#21523995, displayId#21523996, name#21523997, baseUnitOfMeasure#21523998, unitOfMeasures#21523999, unitOfMeasureConversions#21524000, productionAspect#21524001, salesAspect#21524002, procurementAspect#21524003, productGroup#21524004, filteredUnitOfMeasureConversions#21524005, quantityNumerator#21524006, quantityDenominator#21524007, (cast(quantityNumerator#21524006 as double) / cast(quantityDenominator#21524007 as double)) AS outboundUnit#21524008]
(1804) Project
Arguments: [product#21523980, plant#21523981, orderDateTime#21523982, productPlant#21523992, systemId#21523993, internalUUID#21523994, id#21523995, displayId#21523996, name#21523997, baseUnitOfMeasure#21523998, unitOfMeasures#21523999, unitOfMeasureConversions#21524000, productionAspect#21524001, salesAspect#21524002, procurementAspect#21524003, productGroup#21524004, filteredUnitOfMeasureConversions#21524005, quantityNumerator#21524006, quantityDenominator#21524007, CASE WHEN (isnull(outboundUnit#21524008) OR (outboundUnit#21524008 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#21524008 END AS outboundUnit#21524009]
(1805) Project
Arguments: [product#21523980, plant#21523981, orderDateTime#21523982, productPlant#21523992, outboundUnit#21524009]
(1806) Join
Arguments: Inner, ((plantUuid#21523972 = plant#21523981) AND (productUuid#21523974 = product#21523980))
(1807) Filter
Arguments: (calculationDateTime#21523968 <= orderDateTime#21523982)
(1808) Project
Arguments: [plantUuid#21523972 AS plant#21524010, productUuid#21523974 AS product#21524011, storageLocId#21523975, calculationDateTime#21523968, quantity#21523977]
(1809) Aggregate
Arguments: [plant#21524010, product#21524011, storageLocId#21523975], [plant#21524010, product#21524011, storageLocId#21523975, max(calculationDateTime#21523968) AS max_calc_datetime#21524012]
(1810) Join
Arguments: Inner, ((((plant#21523901 <=> plant#21524010) AND (product#21523902 <=> product#21524011)) AND (storageLocId#21523866 <=> storageLocId#21523975)) AND (calculationDateTime#21523859 <=> max_calc_datetime#21524012))
(1811) Project
Arguments: [plant#21523901, product#21523902, storageLocId#21523866, calculationDateTime#21523859, quantity#21523868]
(1812) Aggregate
Arguments: [product#21523902, plant#21523901], [product#21523902, plant#21523901, sum(quantity#21523868) AS quantitySum#21524013, min(calculationDateTime#21523859) AS minCalculationDateTime#21524014]
(1813) Project
Arguments: [product#21523902, plant#21523901, quantitySum#21524013, minCalculationDateTime#21524014, round(quantitySum#21524013, 0) AS roundedQuantitySum#21524015]
(1814) Join
Arguments: LeftOuter, ((plant#21523765 = plant#21523901) AND (product#21523764 = product#21523902))
(1815) Project
Arguments: [product#21523764, plant#21523765, orderDateTime#21523766, productPlant#21523776, outboundUnit#21523793, roundedQuantitySum#21524015, minCalculationDateTime#21524014]
(1816) Project
Arguments: [product#21523764, plant#21523765, orderDateTime#21523766, productPlant#21523776, outboundUnit#21523793, roundedQuantitySum#21524015, minCalculationDateTime#21524014, CASE WHEN isnotnull(minCalculationDateTime#21524014) THEN minCalculationDateTime#21524014 ELSE orderDateTime#21523766 END AS stockDatetime#21524016]
(1817) Project
Arguments: [product#21523764, plant#21523765, orderDateTime#21523766, productPlant#21523776, outboundUnit#21523793, roundedQuantitySum#21524015, minCalculationDateTime#21524014, stockDatetime#21524016, CASE WHEN isnotnull(roundedQuantitySum#21524015) THEN array(roundedQuantitySum#21524015) ELSE array(0.0) END AS stockBatchQuantities#21524017]
(1818) Project
Arguments: [product#21523764, plant#21523765, orderDateTime#21523766, productPlant#21523776, outboundUnit#21523793, roundedQuantitySum#21524015, minCalculationDateTime#21524014, stockDatetime#21524016, stockBatchQuantities#21524017, array(2199-01-01 00:00:00) AS stockBatchShelfLifeEndDatetimes#21524018]
(1819) Project
Arguments: [product#21523764, plant#21523765, orderDateTime#21523766, productPlant#21523776, outboundUnit#21523793, roundedQuantitySum#21524015, stockDatetime#21524016, stockBatchQuantities#21524017, stockBatchShelfLifeEndDatetimes#21524018]
(1820) Project
Arguments: [product#21523764, plant#21523765, orderDateTime#21523766, productPlant#21523776, outboundUnit#21523793, stockDatetime#21524016, stockBatchQuantities#21524017, stockBatchShelfLifeEndDatetimes#21524018]
(1821) LogicalRelation
Arguments: parquet, [product#21524019, plant#21524020, demandChannel#21524021, demandStream#21524022, considerVariance#21524023, demandTimeBuckets#21524024, demandPointInTimeStart#21524025, demandPointInTimeEnd#21524026, demandPointInTime#21524027], false
(1822) Join
Arguments: LeftOuter, ((plant#21524020 <=> plant#21523765) AND (product#21524019 <=> product#21523764))
(1823) Project
Arguments: [product#21523764, plant#21523765, orderDateTime#21523766, productPlant#21523776, outboundUnit#21523793, stockDatetime#21524016, stockBatchQuantities#21524017, stockBatchShelfLifeEndDatetimes#21524018, product#21524019, plant#21524020, demandChannel#21524021, demandStream#21524022, considerVariance#21524023, demandTimeBuckets#21524024, demandPointInTimeStart#21524025, demandPointInTimeEnd#21524026, demandPointInTime#21524027, CASE WHEN isnotnull(product#21524019) THEN struct(demandChannel, demandChannel#21524021, demandStream, demandStream#21524022, considerVariance, considerVariance#21524023, demandTimeBuckets, demandTimeBuckets#21524024, demandPointInTimeStart, demandPointInTimeStart#21524025, demandPointInTimeEnd, demandPointInTimeEnd#21524026, demandPointInTime, demandPointInTime#21524027) 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#21524028]
(1824) Aggregate
Arguments: [product#21523764, plant#21523765, orderDateTime#21523766, productPlant#21523776, outboundUnit#21523793, stockDatetime#21524016, stockBatchQuantities#21524017, stockBatchShelfLifeEndDatetimes#21524018], [product#21523764, plant#21523765, orderDateTime#21523766, productPlant#21523776, outboundUnit#21523793, stockDatetime#21524016, stockBatchQuantities#21524017, stockBatchShelfLifeEndDatetimes#21524018, collect_list(rawDemands#21524028, 0, 0) AS rawDemands#21524029]
(1825) SubqueryAlias
Arguments: wl
(1826) LogicalRelation
Arguments: parquet, [systemId#21524030, internalUUID#21524031, id#21524032, displayId#21524033, name#21524034, category#21524035, companyCode#21524036, address#21524037, mainDistributionChain#21524038, mainPurchasingOrganization#21524039, validPurchasingOrganizations#21524040, productGroup#21524041], false
(1827) Repartition
Arguments: 25, true
(1828) Project
Arguments: [systemId#21524030, internalUUID#21524031, id#21524032, displayId#21524033, name#21524034, category#21524035, companyCode#21524036, address#21524037, mainDistributionChain#21524038, mainPurchasingOrganization#21524039, validPurchasingOrganizations#21524040, productGroup#21524041, address#21524037.timezone.code AS timezonecode#21524042]
(1829) Join
Arguments: LeftOuter, (plant#21523765 <=> internalUUID#21524031)
(1830) Project
Arguments: [product#21523764, plant#21523765, orderDateTime#21523766, productPlant#21523776, outboundUnit#21523793, stockDatetime#21524016, stockBatchQuantities#21524017, stockBatchShelfLifeEndDatetimes#21524018, rawDemands#21524029, systemId#21524030, internalUUID#21524031, id#21524032, displayId#21524033, name#21524034, category#21524035, companyCode#21524036, address#21524037, mainDistributionChain#21524038, mainPurchasingOrganization#21524039, validPurchasingOrganizations#21524040, productGroup#21524041, CASE WHEN isnotnull(timezonecode#21524042) THEN timezonecode#21524042 ELSE UTC END AS timezonecode#21524043]
(1831) Project
Arguments: [product#21523764, plant#21523765, orderDateTime#21523766, productPlant#21523776, outboundUnit#21523793, stockDatetime#21524016, stockBatchQuantities#21524017, stockBatchShelfLifeEndDatetimes#21524018, rawDemands#21524029, timezonecode#21524043]
(1832) DeserializeToObject
Arguments: createexternalrow(invoke(product#21523764.toString()), invoke(plant#21523765.toString()), static_invoke(DateTimeUtils.toJavaTimestamp(orderDateTime#21523766)), if (isnull(productPlant#21523776)) null else createexternalrow(invoke(productPlant#21523776.systemId.toString()), invoke(productPlant#21523776.internalUUID.toString()), if (isnull(productPlant#21523776.plant)) null else createexternalrow(invoke(productPlant#21523776.plant.internalRefUUID.toString()), invoke(productPlant#21523776.plant.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), if (isnull(productPlant#21523776.product)) null else createexternalrow(invoke(productPlant#21523776.product.internalRefUUID.toString()), invoke(productPlant#21523776.product.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(DateTimeUtils.toJavaDate(productPlant#21523776.blockedForReplenishmentStartingFrom)), if (isnull(productPlant#21523776.productionAspect)) null else createexternalrow(if (isnull(productPlant#21523776.productionAspect.productMovementPlants)) null else createexternalrow(if (isnull(productPlant#21523776.productionAspect.productMovementPlants.unitOfIssue)) null else createexternalrow(invoke(productPlant#21523776.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID.toString()), invoke(productPlant#21523776.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#21523776.productionAspect.productPlanningPlants)) null else createexternalrow(if (isnull(productPlant#21523776.productionAspect.productPlanningPlants.mrpType)) null else createexternalrow(invoke(productPlant#21523776.productionAspect.productPlanningPlants.mrpType.internalRefUUID.toString()), invoke(productPlant#21523776.productionAspect.productPlanningPlants.mrpType.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#21523776.productionAspect.productPlanningPlants.abcIndicator)) null else createexternalrow(invoke(productPlant#21523776.productionAspect.productPlanningPlants.abcIndicator.internalRefUUID.toString()), invoke(productPlant#21523776.productionAspect.productPlanningPlants.abcIndicator.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#21523776.productionAspect.productPlanningPlants.mrpController)) null else createexternalrow(invoke(productPlant#21523776.productionAspect.productPlanningPlants.mrpController.internalRefUUID.toString()), invoke(productPlant#21523776.productionAspect.productPlanningPlants.mrpController.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(java.lang.Double.valueOf(productPlant#21523776.productionAspect.productPlanningPlants.minimumLotSize)), if (isnull(productPlant#21523776.productionAspect.productPlanningPlants.logisticalRoundingProfile)) null else createexternalrow(invoke(productPlant#21523776.productionAspect.productPlanningPlants.logisticalRoundingProfile.internalRefUUID.toString()), invoke(productPlant#21523776.productionAspect.productPlanningPlants.logisticalRoundingProfile.logisticalRoundingProfile.toString()), StructField(internalRefUUID,StringType,true), StructField(logisticalRoundingProfile,StringType,true)), if (isnull(productPlant#21523776.productionAspect.productPlanningPlants.sourceOfSupplyCategory)) null else createexternalrow(invoke(productPlant#21523776.productionAspect.productPlanningPlants.sourceOfSupplyCategory.internalRefUUID.toString()), invoke(productPlant#21523776.productionAspect.productPlanningPlants.sourceOfSupplyCategory.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true), StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true), StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(minimumLotSize,DoubleType,true), StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true), StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true), StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)), if (isnull(productPlant#21523776.salesPlant)) null else createexternalrow(if (isnull(productPlant#21523776.salesPlant.loadingGroup)) null else createexternalrow(invoke(productPlant#21523776.salesPlant.loadingGroup.internalRefUUID.toString()), invoke(productPlant#21523776.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, 2680280), if (isnull(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 2680280))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 2680280).validFrom)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 2680280).validTo)), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 2680280).isListed)), StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true)), productPlant#21523776.listing, Some(class scala.collection.mutable.ArraySeq)), StructField(systemId,StringType,true), StructField(internalUUID,StringType,true), StructField(plant,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(product,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(blockedForReplenishmentStartingFrom,DateType,true), StructField(productionAspect,StructType(StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)),true), StructField(salesPlant,StructType(StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true), StructField(listing,ArrayType(StructType(StructField(validFrom,TimestampType,true),StructField(validTo,TimestampType,true),StructField(isListed,BooleanType,true)),true),true)), static_invoke(java.lang.Double.valueOf(outboundUnit#21523793)), static_invoke(DateTimeUtils.toJavaTimestamp(stockDatetime#21524016)), mapobjects(lambdavariable(MapObject, DoubleType, true, 2680281), static_invoke(java.lang.Double.valueOf(cast(lambdavariable(MapObject, DoubleType, true, 2680281) as double))), stockBatchQuantities#21524017, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, false, 2680282), assertnotnull(static_invoke(DateTimeUtils.toJavaTimestamp(cast(lambdavariable(MapObject, TimestampType, false, 2680282) as timestamp)))), stockBatchShelfLifeEndDatetimes#21524018, 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, 2680283), 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, 2680283))) 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, 2680283).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, 2680283).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, 2680283).considerVariance)), mapobjects(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 2680284), if (isnull(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 2680284))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 2680284).demandStartDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 2680284).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 2680284).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, 2680283).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, 2680283).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, 2680283).demandPointInTimeEnd)), mapobjects(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 2680285), if (isnull(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 2680285))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 2680285).demandDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 2680285).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 2680285).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, 2680283).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#21524029, Some(class scala.collection.mutable.ArraySeq)), invoke(timezonecode#21524043.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),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)),true),StructField(salesPlant,StructType(StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(listing,ArrayType(StructType(StructField(validFrom,TimestampType,true),StructField(validTo,TimestampType,true),StructField(isListed,BooleanType,true)),true),true)),true), StructField(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#21519488: org.apache.spark.sql.Row
(1833) MapElements
Arguments: com.sap.s4hana.eureka.business.crporderquantitykpiservice.core.business.datasnapshot.DemandTransformatorImpl$$Lambda/0x00000008021e99e0@10fe4db7, interface org.apache.spark.sql.Row, [StructField(product,StringType,true), StructField(plant,StringType,true), StructField(orderDateTime,TimestampType,true), StructField(productPlant,StructType(StructField(systemId,StringType,true),StructField(internalUUID,StringType,true),StructField(plant,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(product,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(blockedForReplenishmentStartingFrom,DateType,true),StructField(productionAspect,StructType(StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)),true),StructField(salesPlant,StructType(StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(listing,ArrayType(StructType(StructField(validFrom,TimestampType,true),StructField(validTo,TimestampType,true),StructField(isListed,BooleanType,true)),true),true)),true), StructField(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#21519493: org.apache.spark.sql.Row
(1834) 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#21524044, 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#21524045, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(2))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680270), assertnotnull(if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680271), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680271), DoubleType, ObjectType(class java.lang.Double)).doubleValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680272), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680272), DoubleType, ObjectType(class java.lang.Double)).doubleValue()), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680273), assertnotnull(static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680273), TimestampType, ObjectType(class java.sql.Timestamp))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680274), assertnotnull(static_invoke(UTF8String.fromString(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680274), StringType, ObjectType(class java.lang.String))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680275), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680275), IntegerType, ObjectType(class java.lang.Integer)).intValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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#21524046, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(3))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680276), assertnotnull(if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680277), assertnotnull(static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680277), TimestampType, ObjectType(class java.sql.Timestamp))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680278), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680278), DoubleType, ObjectType(class java.lang.Double)).doubleValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680279), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680279), DoubleType, ObjectType(class java.lang.Double)).doubleValue()), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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#21524047]
(1835) Join
Arguments: LeftOuter, ((plant#21524045 <=> plant#21523510) AND (product#21524044 <=> product#21523509))
(1836) Project
Arguments: [product#21523509, plant#21523510, orderDateTime#21523511, productPlant#21523521, outboundUnit#21523538, stockDatetime#21523761, stockBatchQuantities#21523762, stockBatchShelfLifeEndDatetimes#21523763, plant#21524045, dayBucketDemands#21524046, pointInTimeDemands#21524047]
(1837) Project
Arguments: [product#21523509, plant#21523510, orderDateTime#21523511, productPlant#21523521, outboundUnit#21523538, stockDatetime#21523761, stockBatchQuantities#21523762, stockBatchShelfLifeEndDatetimes#21523763, dayBucketDemands#21524046, pointInTimeDemands#21524047]
(1838) LogicalRelation
Arguments: parquet, [marketUnit#21524048, description#21524049, articleHierarchy#21524050, defaultCurrency#21524051, responsibilities#21524052, replenishmentTypes#21524053, distributionCenters#21524054, assignedArticleHierarchyNodes#21524055, minOrderQtySetting#21524056, listingCheck#21524057, odsSelection#21524058, demandProfiles#21524059, constraintProfiles#21524060, optimizationProfiles#21524061, orderGroupSplitProfiles#21524062, supplierMinimumProfiles#21524063, multipleRestrictionProfiles#21524064, preferredUomSource#21524065, handlingOfUnfulfilledDemands#21524066, negligibleQuantitiesThreshold#21524067, eventtype#21524068, minOrderQtySettingInternal#21524069], false
(1839) Repartition
Arguments: 25, true
(1840) Filter
Arguments: (marketUnit#21524048 <=> SS_Test_1)
(1841) Project
Arguments: [marketUnit#21524048, description#21524049, articleHierarchy#21524050, defaultCurrency#21524051, responsibilities#21524052, replenishmentTypes#21524053, distributionCenters#21524054, assignedArticleHierarchyNodes#21524055, minOrderQtySetting#21524056, listingCheck#21524057, odsSelection#21524058, demandProfiles#21524059, constraintProfiles#21524060, optimizationProfiles#21524061, orderGroupSplitProfiles#21524062, supplierMinimumProfiles#21524063, multipleRestrictionProfiles#21524064, preferredUomSource#21524065, handlingOfUnfulfilledDemands#21524066, negligibleQuantitiesThreshold#21524067, eventtype#21524068, minOrderQtySettingInternal#21524069]
(1842) Project
Arguments: [distributionCenters#21524054]
(1843) Generate
Arguments: explode(distributionCenters#21524054), false, [distributionCenters#21524070]
(1844) Project
Arguments: [distributionCenters#21524070]
(1845) Generate
Arguments: explode(distributionCenters#21524070.storageLocations), false, [storageLocations#21524071]
(1846) Project
Arguments: [distributionCenters#21524070.id AS plantId#21524072, distributionCenters#21524070.internalRefUUID AS plantUuid#21524073, storageLocations#21524071]
(1847) Project
Arguments: [plantId#21524072, plantUuid#21524073, storageLocations#21524071.id AS storageLocId#21524074, storageLocations#21524071.internalRefUUID AS storageLocUuid#21524075]
(1848) LogicalRelation
Arguments: parquet, [product#21524076, plant#21524077, orderDateTime#21524078, planningStartDateTime#21524079], false
(1849) RepartitionByExpression
Arguments: [product#21524076, plant#21524077], 25
(1850) Project
Arguments: [product#21524076, plant#21524077, orderDateTime#21524078]
(1851) LogicalRelation
Arguments: parquet, [systemId#21524080, internalUUID#21524081, plant#21524082, product#21524083, blockedForReplenishmentStartingFrom#21524084, productionAspect#21524085, salesPlant#21524086, listing#21524087], false
(1852) Repartition
Arguments: 25, true
(1853) Project
Arguments: [systemId#21524080, internalUUID#21524081, plant#21524082, product#21524083, blockedForReplenishmentStartingFrom#21524084, productionAspect#21524085, salesPlant#21524086, listing#21524087, struct(systemId, systemId#21524080, internalUUID, internalUUID#21524081, plant, plant#21524082, product, product#21524083, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#21524084, productionAspect, productionAspect#21524085, salesPlant, salesPlant#21524086, listing, listing#21524087) AS productPlant#21524088]
(1854) Project
Arguments: [productPlant#21524088]
(1855) Join
Arguments: LeftOuter, ((product#21524076 <=> productPlant#21524088.product.internalRefUUID) AND (plant#21524077 <=> productPlant#21524088.plant.internalRefUUID))
(1856) Project
Arguments: [product#21524076, plant#21524077, orderDateTime#21524078, productPlant#21524088]
(1857) LogicalRelation
Arguments: parquet, [systemId#21524089, internalUUID#21524090, id#21524091, displayId#21524092, name#21524093, baseUnitOfMeasure#21524094, unitOfMeasures#21524095, unitOfMeasureConversions#21524096, productionAspect#21524097, salesAspect#21524098, procurementAspect#21524099, productGroup#21524100], false
(1858) Repartition
Arguments: 25, true
(1859) Join
Arguments: LeftOuter, (product#21524076 = internalUUID#21524090)
(1860) Project
Arguments: [product#21524076, plant#21524077, orderDateTime#21524078, productPlant#21524088, systemId#21524089, internalUUID#21524090, id#21524091, displayId#21524092, name#21524093, baseUnitOfMeasure#21524094, unitOfMeasures#21524095, unitOfMeasureConversions#21524096, productionAspect#21524097, salesAspect#21524098, procurementAspect#21524099, productGroup#21524100, filter(unitOfMeasureConversions#21524096, lambdafunction((((lambda u#21518048.measurementUnit1.code = productPlant#21524088.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#21518048.measurementUnit1.internalRefUUID = productPlant#21524088.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#21518048.measurementUnit2.code = baseUnitOfMeasure#21524094.code) AND (lambda u#21518048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#21524094.internalRefUUID))), lambda u#21518048, false)) AS filteredUnitOfMeasureConversions#21524101]
(1861) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21524101.quantityNumerator), true, [quantityNumerator#21524102]
(1862) Project
Arguments: [product#21524076, plant#21524077, orderDateTime#21524078, productPlant#21524088, systemId#21524089, internalUUID#21524090, id#21524091, displayId#21524092, name#21524093, baseUnitOfMeasure#21524094, unitOfMeasures#21524095, unitOfMeasureConversions#21524096, productionAspect#21524097, salesAspect#21524098, procurementAspect#21524099, productGroup#21524100, filteredUnitOfMeasureConversions#21524101, quantityNumerator#21524102]
(1863) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21524101.quantityDenominator), true, [quantityDenominator#21524103]
(1864) Project
Arguments: [product#21524076, plant#21524077, orderDateTime#21524078, productPlant#21524088, systemId#21524089, internalUUID#21524090, id#21524091, displayId#21524092, name#21524093, baseUnitOfMeasure#21524094, unitOfMeasures#21524095, unitOfMeasureConversions#21524096, productionAspect#21524097, salesAspect#21524098, procurementAspect#21524099, productGroup#21524100, filteredUnitOfMeasureConversions#21524101, quantityNumerator#21524102, quantityDenominator#21524103]
(1865) Project
Arguments: [product#21524076, plant#21524077, orderDateTime#21524078, productPlant#21524088, systemId#21524089, internalUUID#21524090, id#21524091, displayId#21524092, name#21524093, baseUnitOfMeasure#21524094, unitOfMeasures#21524095, unitOfMeasureConversions#21524096, productionAspect#21524097, salesAspect#21524098, procurementAspect#21524099, productGroup#21524100, filteredUnitOfMeasureConversions#21524101, quantityNumerator#21524102, quantityDenominator#21524103, (cast(quantityNumerator#21524102 as double) / cast(quantityDenominator#21524103 as double)) AS outboundUnit#21524104]
(1866) Project
Arguments: [product#21524076, plant#21524077, orderDateTime#21524078, productPlant#21524088, systemId#21524089, internalUUID#21524090, id#21524091, displayId#21524092, name#21524093, baseUnitOfMeasure#21524094, unitOfMeasures#21524095, unitOfMeasureConversions#21524096, productionAspect#21524097, salesAspect#21524098, procurementAspect#21524099, productGroup#21524100, filteredUnitOfMeasureConversions#21524101, quantityNumerator#21524102, quantityDenominator#21524103, CASE WHEN (isnull(outboundUnit#21524104) OR (outboundUnit#21524104 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#21524104 END AS outboundUnit#21524105]
(1867) Project
Arguments: [product#21524076, plant#21524077, orderDateTime#21524078, productPlant#21524088, outboundUnit#21524105]
(1868) Project
Arguments: [plant#21524077]
(1869) Deduplicate
Arguments: [plant#21524077]
(1870) Join
Arguments: Inner, (plantUuid#21524073 = plant#21524077)
(1871) Project
Arguments: [plantId#21524072, plantUuid#21524073, storageLocId#21524074, storageLocUuid#21524075]
(1872) Project
Arguments: [plantId#21524072, plantUuid#21524073 AS plant#21524106, storageLocId#21524074, storageLocUuid#21524075]
(1873) Join
Arguments: Inner, (plant#21523510 = plant#21524106)
(1874) Project
Arguments: [plant#21523510, product#21523509, orderDateTime#21523511, productPlant#21523521, outboundUnit#21523538, stockDatetime#21523761, stockBatchQuantities#21523762, stockBatchShelfLifeEndDatetimes#21523763, dayBucketDemands#21524046, pointInTimeDemands#21524047, plantId#21524072, storageLocId#21524074, storageLocUuid#21524075, plant#21524106]
(1875) LogicalRelation
Arguments: parquet, [systemId#21524107, internalUUID#21524108, id#21524109, displayId#21524110, supplier#21524111, type#21524112, status#21524113, isMarkedForDeletion#21524114, items#21524115], false
(1876) Repartition
Arguments: 25, true
(1877) Generate
Arguments: explode(items#21524115), false, [item#21524116]
(1878) Project
Arguments: [id#21524109, internalUUID#21524108, isMarkedForDeletion#21524114, supplier#21524111.internalRefUUID AS supplierUuid#21524117, item#21524116]
(1879) Filter
Arguments: (((NOT isMarkedForDeletion#21524114 AND NOT item#21524116.deletionIndicator) AND NOT item#21524116.completeIndicator) AND NOT item#21524116.returnIndicator)
(1880) Project
Arguments: [id#21524109, internalUUID#21524108, supplierUuid#21524117, item#21524116.plant.internalRefUUID AS plant#21524118, item#21524116.product.internalRefUUID AS product#21524119, item#21524116.storageLocation.internalRefUUID AS storageLocUuid#21524120, item#21524116.quantityUnit.code AS quantityUom#21524121, item#21524116.quantityUnit.internalRefUUID AS quantityUomUuid#21524122, item#21524116.quantityNumerator AS quantityNumerator#21524123, item#21524116.quantityDenominator AS quantityDenominator#21524124, item#21524116.scheduleLines AS scheduleLines#21524125, item#21524116.confirmations AS confirmations#21524126]
(1881) Join
Arguments: Inner, (((product#21523509 = product#21524119) AND (plant#21523510 = plant#21524118)) AND (storageLocUuid#21524075 = storageLocUuid#21524120))
(1882) Project
Arguments: [product#21523509, plant#21523510, storageLocUuid#21524075, orderDateTime#21523511, productPlant#21523521, outboundUnit#21523538, stockDatetime#21523761, stockBatchQuantities#21523762, stockBatchShelfLifeEndDatetimes#21523763, dayBucketDemands#21524046, pointInTimeDemands#21524047, plantId#21524072, storageLocId#21524074, id#21524109, internalUUID#21524108, supplierUuid#21524117, quantityUom#21524121, quantityUomUuid#21524122, quantityNumerator#21524123, quantityDenominator#21524124, scheduleLines#21524125, confirmations#21524126, product#21524119, plant#21524118, storageLocUuid#21524120, ... 1 more fields]
(1883) Project
Arguments: [id#21524109, internalUUID#21524108, supplierUuid#21524117, plant#21524118, product#21524119, storageLocUuid#21524120, quantityUom#21524121, quantityUomUuid#21524122, quantityNumerator#21524123, quantityDenominator#21524124, scheduleLines#21524125, confirmations#21524126, stockDatetime#21523761]
(1884) Project
Arguments: [id#21524109, internalUUID#21524108, supplierUuid#21524117, plant#21524118, product#21524119, storageLocUuid#21524120, quantityUom#21524121, quantityUomUuid#21524122, quantityNumerator#21524123, quantityDenominator#21524124, scheduleLines#21524125, confirmations#21524126, stockDatetime#21523761, array_size(filter(confirmations#21524126, lambdafunction((((lambda x_1552#21519885.deletionIndicator = false) AND (lambda x_1552#21519885.isRelevantForConfirmation = true)) AND isnotnull(lambda x_1552#21519885.confirmedDeliveryAt)), lambda x_1552#21519885, false))) AS _w0#21524127]
(1885) Window
Arguments: [sum(_w0#21524127) windowspecdefinition(internalUUID#21524108, specifiedwindowframe(RowFrame, unboundedpreceding$(), unboundedfollowing$())) AS _we0#21524128L], [internalUUID#21524108]
(1886) Project
Arguments: [id#21524109, internalUUID#21524108, supplierUuid#21524117, plant#21524118, product#21524119, storageLocUuid#21524120, quantityUom#21524121, quantityUomUuid#21524122, quantityNumerator#21524123, quantityDenominator#21524124, scheduleLines#21524125, confirmations#21524126, stockDatetime#21523761, _w0#21524127, _we0#21524128L, filter(transform(CASE WHEN (_we0#21524128L > cast(0 as bigint)) THEN transform(filter(confirmations#21524126, lambdafunction((((lambda x_1552#21519886.deletionIndicator = false) AND (lambda x_1552#21519886.isRelevantForConfirmation = true)) AND isnotnull(lambda x_1552#21519886.confirmedDeliveryAt)), lambda x_1552#21519886, false)), lambdafunction(struct(openQty, greatest((lambda x_1553#21519889.confirmedQuantity - coalesce(lambda x_1553#21519889.mrpRelevantQuantity, 0.0)), 0.0), availabilityDatetime, lambda x_1553#21519889.confirmedDeliveryAt), lambda x_1553#21519889, false)) ELSE transform(scheduleLines#21524125, lambdafunction(struct(openQty, greatest((lambda x_1551#21519887.quantity - coalesce(lambda x_1551#21519887.receivedQuantity, 0.0)), 0.0), availabilityDatetime, lambda x_1551#21519887.deliveryAt), lambda x_1551#21519887, false)) END, lambdafunction(struct(documentId, id#21524109, documentUuid, internalUUID#21524108, openQty, lambda x_1554#21519890.openQty, openQtyInBaseUnit, ((lambda x_1554#21519890.openQty * quantityNumerator#21524123) / quantityDenominator#21524124), qtyUom, quantityUom#21524121, qtyUomUuid, quantityUomUuid#21524122, availabilityDatetime, lambda x_1554#21519890.availabilityDatetime, shelfLifeEndDatetime, 2199-01-01 00:00:00), lambda x_1554#21519890, false)), lambdafunction(NOT (lambda x_1555#21519891.openQty = 0.0), lambda x_1555#21519891, false)) AS openGoodsMovements#21524129]
(1887) Project
Arguments: [id#21524109, internalUUID#21524108, supplierUuid#21524117, plant#21524118, product#21524119, storageLocUuid#21524120, quantityUom#21524121, quantityUomUuid#21524122, quantityNumerator#21524123, quantityDenominator#21524124, scheduleLines#21524125, confirmations#21524126, stockDatetime#21523761, openGoodsMovements#21524129]
(1888) Aggregate
Arguments: [product#21524119, plant#21524118], [product#21524119, plant#21524118, flatten(collect_list(openGoodsMovements#21524129, 0, 0)) AS openGoodsMovements#21524130]
(1889) Filter
Arguments: (array_size(openGoodsMovements#21524130) > 0)
(1890) LogicalRelation
Arguments: parquet, [product#21524131, plant#21524132, orderDateTime#21524133, planningStartDateTime#21524134], false
(1891) RepartitionByExpression
Arguments: [product#21524131, plant#21524132], 25
(1892) Project
Arguments: [product#21524131, plant#21524132, orderDateTime#21524133]
(1893) LogicalRelation
Arguments: parquet, [systemId#21524135, internalUUID#21524136, plant#21524137, product#21524138, blockedForReplenishmentStartingFrom#21524139, productionAspect#21524140, salesPlant#21524141, listing#21524142], false
(1894) Repartition
Arguments: 25, true
(1895) Project
Arguments: [systemId#21524135, internalUUID#21524136, plant#21524137, product#21524138, blockedForReplenishmentStartingFrom#21524139, productionAspect#21524140, salesPlant#21524141, listing#21524142, struct(systemId, systemId#21524135, internalUUID, internalUUID#21524136, plant, plant#21524137, product, product#21524138, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#21524139, productionAspect, productionAspect#21524140, salesPlant, salesPlant#21524141, listing, listing#21524142) AS productPlant#21524143]
(1896) Project
Arguments: [productPlant#21524143]
(1897) Join
Arguments: LeftOuter, ((product#21524131 <=> productPlant#21524143.product.internalRefUUID) AND (plant#21524132 <=> productPlant#21524143.plant.internalRefUUID))
(1898) Project
Arguments: [product#21524131, plant#21524132, orderDateTime#21524133, productPlant#21524143]
(1899) LogicalRelation
Arguments: parquet, [systemId#21524144, internalUUID#21524145, id#21524146, displayId#21524147, name#21524148, baseUnitOfMeasure#21524149, unitOfMeasures#21524150, unitOfMeasureConversions#21524151, productionAspect#21524152, salesAspect#21524153, procurementAspect#21524154, productGroup#21524155], false
(1900) Repartition
Arguments: 25, true
(1901) Join
Arguments: LeftOuter, (product#21524131 = internalUUID#21524145)
(1902) Project
Arguments: [product#21524131, plant#21524132, orderDateTime#21524133, productPlant#21524143, systemId#21524144, internalUUID#21524145, id#21524146, displayId#21524147, name#21524148, baseUnitOfMeasure#21524149, unitOfMeasures#21524150, unitOfMeasureConversions#21524151, productionAspect#21524152, salesAspect#21524153, procurementAspect#21524154, productGroup#21524155, filter(unitOfMeasureConversions#21524151, lambdafunction((((lambda u#21518048.measurementUnit1.code = productPlant#21524143.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#21518048.measurementUnit1.internalRefUUID = productPlant#21524143.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#21518048.measurementUnit2.code = baseUnitOfMeasure#21524149.code) AND (lambda u#21518048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#21524149.internalRefUUID))), lambda u#21518048, false)) AS filteredUnitOfMeasureConversions#21524156]
(1903) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21524156.quantityNumerator), true, [quantityNumerator#21524157]
(1904) Project
Arguments: [product#21524131, plant#21524132, orderDateTime#21524133, productPlant#21524143, systemId#21524144, internalUUID#21524145, id#21524146, displayId#21524147, name#21524148, baseUnitOfMeasure#21524149, unitOfMeasures#21524150, unitOfMeasureConversions#21524151, productionAspect#21524152, salesAspect#21524153, procurementAspect#21524154, productGroup#21524155, filteredUnitOfMeasureConversions#21524156, quantityNumerator#21524157]
(1905) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21524156.quantityDenominator), true, [quantityDenominator#21524158]
(1906) Project
Arguments: [product#21524131, plant#21524132, orderDateTime#21524133, productPlant#21524143, systemId#21524144, internalUUID#21524145, id#21524146, displayId#21524147, name#21524148, baseUnitOfMeasure#21524149, unitOfMeasures#21524150, unitOfMeasureConversions#21524151, productionAspect#21524152, salesAspect#21524153, procurementAspect#21524154, productGroup#21524155, filteredUnitOfMeasureConversions#21524156, quantityNumerator#21524157, quantityDenominator#21524158]
(1907) Project
Arguments: [product#21524131, plant#21524132, orderDateTime#21524133, productPlant#21524143, systemId#21524144, internalUUID#21524145, id#21524146, displayId#21524147, name#21524148, baseUnitOfMeasure#21524149, unitOfMeasures#21524150, unitOfMeasureConversions#21524151, productionAspect#21524152, salesAspect#21524153, procurementAspect#21524154, productGroup#21524155, filteredUnitOfMeasureConversions#21524156, quantityNumerator#21524157, quantityDenominator#21524158, (cast(quantityNumerator#21524157 as double) / cast(quantityDenominator#21524158 as double)) AS outboundUnit#21524159]
(1908) Project
Arguments: [product#21524131, plant#21524132, orderDateTime#21524133, productPlant#21524143, systemId#21524144, internalUUID#21524145, id#21524146, displayId#21524147, name#21524148, baseUnitOfMeasure#21524149, unitOfMeasures#21524150, unitOfMeasureConversions#21524151, productionAspect#21524152, salesAspect#21524153, procurementAspect#21524154, productGroup#21524155, filteredUnitOfMeasureConversions#21524156, quantityNumerator#21524157, quantityDenominator#21524158, CASE WHEN (isnull(outboundUnit#21524159) OR (outboundUnit#21524159 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#21524159 END AS outboundUnit#21524160]
(1909) Project
Arguments: [product#21524131, plant#21524132, orderDateTime#21524133, productPlant#21524143, outboundUnit#21524160]
(1910) LogicalRelation
Arguments: parquet, [systemId#21524161, internalUUID#21524162, product#21524163, plant#21524164, calculationDateTime#21524165, stockQuantities#21524166], false
(1911) Repartition
Arguments: 25, true
(1912) LogicalRelation
Arguments: parquet, [marketUnit#21524167, description#21524168, articleHierarchy#21524169, defaultCurrency#21524170, responsibilities#21524171, replenishmentTypes#21524172, distributionCenters#21524173, assignedArticleHierarchyNodes#21524174, minOrderQtySetting#21524175, listingCheck#21524176, odsSelection#21524177, demandProfiles#21524178, constraintProfiles#21524179, optimizationProfiles#21524180, orderGroupSplitProfiles#21524181, supplierMinimumProfiles#21524182, multipleRestrictionProfiles#21524183, preferredUomSource#21524184, handlingOfUnfulfilledDemands#21524185, negligibleQuantitiesThreshold#21524186, eventtype#21524187, minOrderQtySettingInternal#21524188], false
(1913) Repartition
Arguments: 25, true
(1914) Filter
Arguments: (marketUnit#21524167 <=> SS_Test_1)
(1915) Project
Arguments: [marketUnit#21524167, description#21524168, articleHierarchy#21524169, defaultCurrency#21524170, responsibilities#21524171, replenishmentTypes#21524172, distributionCenters#21524173, assignedArticleHierarchyNodes#21524174, minOrderQtySetting#21524175, listingCheck#21524176, odsSelection#21524177, demandProfiles#21524178, constraintProfiles#21524179, optimizationProfiles#21524180, orderGroupSplitProfiles#21524181, supplierMinimumProfiles#21524182, multipleRestrictionProfiles#21524183, preferredUomSource#21524184, handlingOfUnfulfilledDemands#21524185, negligibleQuantitiesThreshold#21524186, eventtype#21524187, minOrderQtySettingInternal#21524188]
(1916) Project
Arguments: [distributionCenters#21524173]
(1917) Generate
Arguments: explode(distributionCenters#21524173), false, [distributionCenters#21524189]
(1918) Project
Arguments: [distributionCenters#21524189]
(1919) Generate
Arguments: explode(distributionCenters#21524189.storageLocations), false, [storageLocations#21524190]
(1920) Project
Arguments: [distributionCenters#21524189.id AS plantId#21524191, distributionCenters#21524189.internalRefUUID AS plantUuid#21524192, storageLocations#21524190]
(1921) Project
Arguments: [plantId#21524191, plantUuid#21524192, storageLocations#21524190.id AS storageLocId#21524193, storageLocations#21524190.internalRefUUID AS storageLocUuid#21524194]
(1922) LogicalRelation
Arguments: parquet, [product#21524195, plant#21524196, orderDateTime#21524197, planningStartDateTime#21524198], false
(1923) RepartitionByExpression
Arguments: [product#21524195, plant#21524196], 25
(1924) Project
Arguments: [product#21524195, plant#21524196, orderDateTime#21524197]
(1925) LogicalRelation
Arguments: parquet, [systemId#21524199, internalUUID#21524200, plant#21524201, product#21524202, blockedForReplenishmentStartingFrom#21524203, productionAspect#21524204, salesPlant#21524205, listing#21524206], false
(1926) Repartition
Arguments: 25, true
(1927) Project
Arguments: [systemId#21524199, internalUUID#21524200, plant#21524201, product#21524202, blockedForReplenishmentStartingFrom#21524203, productionAspect#21524204, salesPlant#21524205, listing#21524206, struct(systemId, systemId#21524199, internalUUID, internalUUID#21524200, plant, plant#21524201, product, product#21524202, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#21524203, productionAspect, productionAspect#21524204, salesPlant, salesPlant#21524205, listing, listing#21524206) AS productPlant#21524207]
(1928) Project
Arguments: [productPlant#21524207]
(1929) Join
Arguments: LeftOuter, ((product#21524195 <=> productPlant#21524207.product.internalRefUUID) AND (plant#21524196 <=> productPlant#21524207.plant.internalRefUUID))
(1930) Project
Arguments: [product#21524195, plant#21524196, orderDateTime#21524197, productPlant#21524207]
(1931) LogicalRelation
Arguments: parquet, [systemId#21524208, internalUUID#21524209, id#21524210, displayId#21524211, name#21524212, baseUnitOfMeasure#21524213, unitOfMeasures#21524214, unitOfMeasureConversions#21524215, productionAspect#21524216, salesAspect#21524217, procurementAspect#21524218, productGroup#21524219], false
(1932) Repartition
Arguments: 25, true
(1933) Join
Arguments: LeftOuter, (product#21524195 = internalUUID#21524209)
(1934) Project
Arguments: [product#21524195, plant#21524196, orderDateTime#21524197, productPlant#21524207, systemId#21524208, internalUUID#21524209, id#21524210, displayId#21524211, name#21524212, baseUnitOfMeasure#21524213, unitOfMeasures#21524214, unitOfMeasureConversions#21524215, productionAspect#21524216, salesAspect#21524217, procurementAspect#21524218, productGroup#21524219, filter(unitOfMeasureConversions#21524215, lambdafunction((((lambda u#21518048.measurementUnit1.code = productPlant#21524207.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#21518048.measurementUnit1.internalRefUUID = productPlant#21524207.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#21518048.measurementUnit2.code = baseUnitOfMeasure#21524213.code) AND (lambda u#21518048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#21524213.internalRefUUID))), lambda u#21518048, false)) AS filteredUnitOfMeasureConversions#21524220]
(1935) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21524220.quantityNumerator), true, [quantityNumerator#21524221]
(1936) Project
Arguments: [product#21524195, plant#21524196, orderDateTime#21524197, productPlant#21524207, systemId#21524208, internalUUID#21524209, id#21524210, displayId#21524211, name#21524212, baseUnitOfMeasure#21524213, unitOfMeasures#21524214, unitOfMeasureConversions#21524215, productionAspect#21524216, salesAspect#21524217, procurementAspect#21524218, productGroup#21524219, filteredUnitOfMeasureConversions#21524220, quantityNumerator#21524221]
(1937) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21524220.quantityDenominator), true, [quantityDenominator#21524222]
(1938) Project
Arguments: [product#21524195, plant#21524196, orderDateTime#21524197, productPlant#21524207, systemId#21524208, internalUUID#21524209, id#21524210, displayId#21524211, name#21524212, baseUnitOfMeasure#21524213, unitOfMeasures#21524214, unitOfMeasureConversions#21524215, productionAspect#21524216, salesAspect#21524217, procurementAspect#21524218, productGroup#21524219, filteredUnitOfMeasureConversions#21524220, quantityNumerator#21524221, quantityDenominator#21524222]
(1939) Project
Arguments: [product#21524195, plant#21524196, orderDateTime#21524197, productPlant#21524207, systemId#21524208, internalUUID#21524209, id#21524210, displayId#21524211, name#21524212, baseUnitOfMeasure#21524213, unitOfMeasures#21524214, unitOfMeasureConversions#21524215, productionAspect#21524216, salesAspect#21524217, procurementAspect#21524218, productGroup#21524219, filteredUnitOfMeasureConversions#21524220, quantityNumerator#21524221, quantityDenominator#21524222, (cast(quantityNumerator#21524221 as double) / cast(quantityDenominator#21524222 as double)) AS outboundUnit#21524223]
(1940) Project
Arguments: [product#21524195, plant#21524196, orderDateTime#21524197, productPlant#21524207, systemId#21524208, internalUUID#21524209, id#21524210, displayId#21524211, name#21524212, baseUnitOfMeasure#21524213, unitOfMeasures#21524214, unitOfMeasureConversions#21524215, productionAspect#21524216, salesAspect#21524217, procurementAspect#21524218, productGroup#21524219, filteredUnitOfMeasureConversions#21524220, quantityNumerator#21524221, quantityDenominator#21524222, CASE WHEN (isnull(outboundUnit#21524223) OR (outboundUnit#21524223 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#21524223 END AS outboundUnit#21524224]
(1941) Project
Arguments: [product#21524195, plant#21524196, orderDateTime#21524197, productPlant#21524207, outboundUnit#21524224]
(1942) Project
Arguments: [plant#21524196]
(1943) Deduplicate
Arguments: [plant#21524196]
(1944) Join
Arguments: Inner, (plantUuid#21524192 = plant#21524196)
(1945) Project
Arguments: [plantId#21524191, plantUuid#21524192, storageLocId#21524193, storageLocUuid#21524194]
(1946) Join
Arguments: Inner, (plant#21524164.internalRefUUID <=> plantUuid#21524192)
(1947) Generate
Arguments: explode(filter(stockQuantities#21524166, lambdafunction(((lambda x#21518157.storageLocation.internalRefUuid = storageLocUuid#21524194) AND (lambda x#21518157.storageLocation.Id = storageLocId#21524193)), lambda x#21518157, false))), false, [stockQuantity#21524225]
(1948) Project
Arguments: [systemId#21524161, internalUUID#21524162, product#21524163, plant#21524164, calculationDateTime#21524165, stockQuantities#21524166, plantId#21524191, plantUuid#21524192, storageLocId#21524193, storageLocUuid#21524194, stockQuantity#21524225]
(1949) Aggregate
Arguments: [plantUuid#21524192, internalUUID#21524162, plant#21524164, product#21524163, systemId#21524161], [plantUuid#21524192, internalUUID#21524162, plant#21524164, product#21524163, systemId#21524161, first(calculationDateTime#21524165, false) AS calculationDateTime#21524226, collect_list(stockQuantity#21524225, 0, 0) AS stockQuantities#21524227]
(1950) Project
Arguments: [systemId#21524161, internalUUID#21524162, product#21524163, plant#21524164, calculationDateTime#21524226, stockQuantities#21524227]
(1951) Generate
Arguments: explode(stockQuantities#21524227), false, [stockQuantity#21524228]
(1952) Project
Arguments: [systemId#21524161, internalUUID#21524162, product#21524163, plant#21524164, calculationDateTime#21524226, stockQuantities#21524227, stockQuantity#21524228]
(1953) Project
Arguments: [plant#21524164.id AS plant#21524229, plant#21524164.internalRefUUID AS plantUuid#21524230, product#21524163.id AS product#21524231, product#21524163.internalRefUUID AS productUuid#21524232, calculationDateTime#21524226, stockQuantity#21524228.storagelocation.id AS storageLocId#21524233, stockQuantity#21524228.storagelocation.internalRefUUID AS storageLocUuid#21524234, stockQuantity#21524228.quantity.measure AS quantity#21524235, stockQuantity#21524228.specialStockIndicator.code AS specialStockIndicator#21524236, stockQuantity#21524228.stockType.code AS stockType#21524237]
(1954) Filter
Arguments: ((specialStockIndicator#21524236 = ) AND (stockType#21524237 = 01))
(1955) LogicalRelation
Arguments: parquet, [product#21524238, plant#21524239, orderDateTime#21524240, planningStartDateTime#21524241], false
(1956) RepartitionByExpression
Arguments: [product#21524238, plant#21524239], 25
(1957) Project
Arguments: [product#21524238, plant#21524239, orderDateTime#21524240]
(1958) LogicalRelation
Arguments: parquet, [systemId#21524242, internalUUID#21524243, plant#21524244, product#21524245, blockedForReplenishmentStartingFrom#21524246, productionAspect#21524247, salesPlant#21524248, listing#21524249], false
(1959) Repartition
Arguments: 25, true
(1960) Project
Arguments: [systemId#21524242, internalUUID#21524243, plant#21524244, product#21524245, blockedForReplenishmentStartingFrom#21524246, productionAspect#21524247, salesPlant#21524248, listing#21524249, struct(systemId, systemId#21524242, internalUUID, internalUUID#21524243, plant, plant#21524244, product, product#21524245, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#21524246, productionAspect, productionAspect#21524247, salesPlant, salesPlant#21524248, listing, listing#21524249) AS productPlant#21524250]
(1961) Project
Arguments: [productPlant#21524250]
(1962) Join
Arguments: LeftOuter, ((product#21524238 <=> productPlant#21524250.product.internalRefUUID) AND (plant#21524239 <=> productPlant#21524250.plant.internalRefUUID))
(1963) Project
Arguments: [product#21524238, plant#21524239, orderDateTime#21524240, productPlant#21524250]
(1964) LogicalRelation
Arguments: parquet, [systemId#21524251, internalUUID#21524252, id#21524253, displayId#21524254, name#21524255, baseUnitOfMeasure#21524256, unitOfMeasures#21524257, unitOfMeasureConversions#21524258, productionAspect#21524259, salesAspect#21524260, procurementAspect#21524261, productGroup#21524262], false
(1965) Repartition
Arguments: 25, true
(1966) Join
Arguments: LeftOuter, (product#21524238 = internalUUID#21524252)
(1967) Project
Arguments: [product#21524238, plant#21524239, orderDateTime#21524240, productPlant#21524250, systemId#21524251, internalUUID#21524252, id#21524253, displayId#21524254, name#21524255, baseUnitOfMeasure#21524256, unitOfMeasures#21524257, unitOfMeasureConversions#21524258, productionAspect#21524259, salesAspect#21524260, procurementAspect#21524261, productGroup#21524262, filter(unitOfMeasureConversions#21524258, lambdafunction((((lambda u#21518048.measurementUnit1.code = productPlant#21524250.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#21518048.measurementUnit1.internalRefUUID = productPlant#21524250.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#21518048.measurementUnit2.code = baseUnitOfMeasure#21524256.code) AND (lambda u#21518048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#21524256.internalRefUUID))), lambda u#21518048, false)) AS filteredUnitOfMeasureConversions#21524263]
(1968) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21524263.quantityNumerator), true, [quantityNumerator#21524264]
(1969) Project
Arguments: [product#21524238, plant#21524239, orderDateTime#21524240, productPlant#21524250, systemId#21524251, internalUUID#21524252, id#21524253, displayId#21524254, name#21524255, baseUnitOfMeasure#21524256, unitOfMeasures#21524257, unitOfMeasureConversions#21524258, productionAspect#21524259, salesAspect#21524260, procurementAspect#21524261, productGroup#21524262, filteredUnitOfMeasureConversions#21524263, quantityNumerator#21524264]
(1970) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21524263.quantityDenominator), true, [quantityDenominator#21524265]
(1971) Project
Arguments: [product#21524238, plant#21524239, orderDateTime#21524240, productPlant#21524250, systemId#21524251, internalUUID#21524252, id#21524253, displayId#21524254, name#21524255, baseUnitOfMeasure#21524256, unitOfMeasures#21524257, unitOfMeasureConversions#21524258, productionAspect#21524259, salesAspect#21524260, procurementAspect#21524261, productGroup#21524262, filteredUnitOfMeasureConversions#21524263, quantityNumerator#21524264, quantityDenominator#21524265]
(1972) Project
Arguments: [product#21524238, plant#21524239, orderDateTime#21524240, productPlant#21524250, systemId#21524251, internalUUID#21524252, id#21524253, displayId#21524254, name#21524255, baseUnitOfMeasure#21524256, unitOfMeasures#21524257, unitOfMeasureConversions#21524258, productionAspect#21524259, salesAspect#21524260, procurementAspect#21524261, productGroup#21524262, filteredUnitOfMeasureConversions#21524263, quantityNumerator#21524264, quantityDenominator#21524265, (cast(quantityNumerator#21524264 as double) / cast(quantityDenominator#21524265 as double)) AS outboundUnit#21524266]
(1973) Project
Arguments: [product#21524238, plant#21524239, orderDateTime#21524240, productPlant#21524250, systemId#21524251, internalUUID#21524252, id#21524253, displayId#21524254, name#21524255, baseUnitOfMeasure#21524256, unitOfMeasures#21524257, unitOfMeasureConversions#21524258, productionAspect#21524259, salesAspect#21524260, procurementAspect#21524261, productGroup#21524262, filteredUnitOfMeasureConversions#21524263, quantityNumerator#21524264, quantityDenominator#21524265, CASE WHEN (isnull(outboundUnit#21524266) OR (outboundUnit#21524266 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#21524266 END AS outboundUnit#21524267]
(1974) Project
Arguments: [product#21524238, plant#21524239, orderDateTime#21524240, productPlant#21524250, outboundUnit#21524267]
(1975) Join
Arguments: Inner, ((plantUuid#21524230 = plant#21524239) AND (productUuid#21524232 = product#21524238))
(1976) Filter
Arguments: (calculationDateTime#21524226 <= orderDateTime#21524240)
(1977) Project
Arguments: [plantUuid#21524230 AS plant#21524268, productUuid#21524232 AS product#21524269, storageLocId#21524233, calculationDateTime#21524226, quantity#21524235]
(1978) LogicalRelation
Arguments: parquet, [systemId#21524270, internalUUID#21524271, product#21524272, plant#21524273, calculationDateTime#21524274, stockQuantities#21524275], false
(1979) Repartition
Arguments: 25, true
(1980) LogicalRelation
Arguments: parquet, [marketUnit#21524276, description#21524277, articleHierarchy#21524278, defaultCurrency#21524279, responsibilities#21524280, replenishmentTypes#21524281, distributionCenters#21524282, assignedArticleHierarchyNodes#21524283, minOrderQtySetting#21524284, listingCheck#21524285, odsSelection#21524286, demandProfiles#21524287, constraintProfiles#21524288, optimizationProfiles#21524289, orderGroupSplitProfiles#21524290, supplierMinimumProfiles#21524291, multipleRestrictionProfiles#21524292, preferredUomSource#21524293, handlingOfUnfulfilledDemands#21524294, negligibleQuantitiesThreshold#21524295, eventtype#21524296, minOrderQtySettingInternal#21524297], false
(1981) Repartition
Arguments: 25, true
(1982) Filter
Arguments: (marketUnit#21524276 <=> SS_Test_1)
(1983) Project
Arguments: [marketUnit#21524276, description#21524277, articleHierarchy#21524278, defaultCurrency#21524279, responsibilities#21524280, replenishmentTypes#21524281, distributionCenters#21524282, assignedArticleHierarchyNodes#21524283, minOrderQtySetting#21524284, listingCheck#21524285, odsSelection#21524286, demandProfiles#21524287, constraintProfiles#21524288, optimizationProfiles#21524289, orderGroupSplitProfiles#21524290, supplierMinimumProfiles#21524291, multipleRestrictionProfiles#21524292, preferredUomSource#21524293, handlingOfUnfulfilledDemands#21524294, negligibleQuantitiesThreshold#21524295, eventtype#21524296, minOrderQtySettingInternal#21524297]
(1984) Project
Arguments: [distributionCenters#21524282]
(1985) Generate
Arguments: explode(distributionCenters#21524282), false, [distributionCenters#21524298]
(1986) Project
Arguments: [distributionCenters#21524298]
(1987) Generate
Arguments: explode(distributionCenters#21524298.storageLocations), false, [storageLocations#21524299]
(1988) Project
Arguments: [distributionCenters#21524298.id AS plantId#21524300, distributionCenters#21524298.internalRefUUID AS plantUuid#21524301, storageLocations#21524299]
(1989) Project
Arguments: [plantId#21524300, plantUuid#21524301, storageLocations#21524299.id AS storageLocId#21524302, storageLocations#21524299.internalRefUUID AS storageLocUuid#21524303]
(1990) LogicalRelation
Arguments: parquet, [product#21524304, plant#21524305, orderDateTime#21524306, planningStartDateTime#21524307], false
(1991) RepartitionByExpression
Arguments: [product#21524304, plant#21524305], 25
(1992) Project
Arguments: [product#21524304, plant#21524305, orderDateTime#21524306]
(1993) LogicalRelation
Arguments: parquet, [systemId#21524308, internalUUID#21524309, plant#21524310, product#21524311, blockedForReplenishmentStartingFrom#21524312, productionAspect#21524313, salesPlant#21524314, listing#21524315], false
(1994) Repartition
Arguments: 25, true
(1995) Project
Arguments: [systemId#21524308, internalUUID#21524309, plant#21524310, product#21524311, blockedForReplenishmentStartingFrom#21524312, productionAspect#21524313, salesPlant#21524314, listing#21524315, struct(systemId, systemId#21524308, internalUUID, internalUUID#21524309, plant, plant#21524310, product, product#21524311, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#21524312, productionAspect, productionAspect#21524313, salesPlant, salesPlant#21524314, listing, listing#21524315) AS productPlant#21524316]
(1996) Project
Arguments: [productPlant#21524316]
(1997) Join
Arguments: LeftOuter, ((product#21524304 <=> productPlant#21524316.product.internalRefUUID) AND (plant#21524305 <=> productPlant#21524316.plant.internalRefUUID))
(1998) Project
Arguments: [product#21524304, plant#21524305, orderDateTime#21524306, productPlant#21524316]
(1999) LogicalRelation
Arguments: parquet, [systemId#21524317, internalUUID#21524318, id#21524319, displayId#21524320, name#21524321, baseUnitOfMeasure#21524322, unitOfMeasures#21524323, unitOfMeasureConversions#21524324, productionAspect#21524325, salesAspect#21524326, procurementAspect#21524327, productGroup#21524328], false
(2000) Repartition
Arguments: 25, true
(2001) Join
Arguments: LeftOuter, (product#21524304 = internalUUID#21524318)
(2002) Project
Arguments: [product#21524304, plant#21524305, orderDateTime#21524306, productPlant#21524316, systemId#21524317, internalUUID#21524318, id#21524319, displayId#21524320, name#21524321, baseUnitOfMeasure#21524322, unitOfMeasures#21524323, unitOfMeasureConversions#21524324, productionAspect#21524325, salesAspect#21524326, procurementAspect#21524327, productGroup#21524328, filter(unitOfMeasureConversions#21524324, lambdafunction((((lambda u#21518048.measurementUnit1.code = productPlant#21524316.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#21518048.measurementUnit1.internalRefUUID = productPlant#21524316.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#21518048.measurementUnit2.code = baseUnitOfMeasure#21524322.code) AND (lambda u#21518048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#21524322.internalRefUUID))), lambda u#21518048, false)) AS filteredUnitOfMeasureConversions#21524329]
(2003) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21524329.quantityNumerator), true, [quantityNumerator#21524330]
(2004) Project
Arguments: [product#21524304, plant#21524305, orderDateTime#21524306, productPlant#21524316, systemId#21524317, internalUUID#21524318, id#21524319, displayId#21524320, name#21524321, baseUnitOfMeasure#21524322, unitOfMeasures#21524323, unitOfMeasureConversions#21524324, productionAspect#21524325, salesAspect#21524326, procurementAspect#21524327, productGroup#21524328, filteredUnitOfMeasureConversions#21524329, quantityNumerator#21524330]
(2005) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21524329.quantityDenominator), true, [quantityDenominator#21524331]
(2006) Project
Arguments: [product#21524304, plant#21524305, orderDateTime#21524306, productPlant#21524316, systemId#21524317, internalUUID#21524318, id#21524319, displayId#21524320, name#21524321, baseUnitOfMeasure#21524322, unitOfMeasures#21524323, unitOfMeasureConversions#21524324, productionAspect#21524325, salesAspect#21524326, procurementAspect#21524327, productGroup#21524328, filteredUnitOfMeasureConversions#21524329, quantityNumerator#21524330, quantityDenominator#21524331]
(2007) Project
Arguments: [product#21524304, plant#21524305, orderDateTime#21524306, productPlant#21524316, systemId#21524317, internalUUID#21524318, id#21524319, displayId#21524320, name#21524321, baseUnitOfMeasure#21524322, unitOfMeasures#21524323, unitOfMeasureConversions#21524324, productionAspect#21524325, salesAspect#21524326, procurementAspect#21524327, productGroup#21524328, filteredUnitOfMeasureConversions#21524329, quantityNumerator#21524330, quantityDenominator#21524331, (cast(quantityNumerator#21524330 as double) / cast(quantityDenominator#21524331 as double)) AS outboundUnit#21524332]
(2008) Project
Arguments: [product#21524304, plant#21524305, orderDateTime#21524306, productPlant#21524316, systemId#21524317, internalUUID#21524318, id#21524319, displayId#21524320, name#21524321, baseUnitOfMeasure#21524322, unitOfMeasures#21524323, unitOfMeasureConversions#21524324, productionAspect#21524325, salesAspect#21524326, procurementAspect#21524327, productGroup#21524328, filteredUnitOfMeasureConversions#21524329, quantityNumerator#21524330, quantityDenominator#21524331, CASE WHEN (isnull(outboundUnit#21524332) OR (outboundUnit#21524332 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#21524332 END AS outboundUnit#21524333]
(2009) Project
Arguments: [product#21524304, plant#21524305, orderDateTime#21524306, productPlant#21524316, outboundUnit#21524333]
(2010) Project
Arguments: [plant#21524305]
(2011) Deduplicate
Arguments: [plant#21524305]
(2012) Join
Arguments: Inner, (plantUuid#21524301 = plant#21524305)
(2013) Project
Arguments: [plantId#21524300, plantUuid#21524301, storageLocId#21524302, storageLocUuid#21524303]
(2014) Join
Arguments: Inner, (plant#21524273.internalRefUUID <=> plantUuid#21524301)
(2015) Generate
Arguments: explode(filter(stockQuantities#21524275, lambdafunction(((lambda x#21518157.storageLocation.internalRefUuid = storageLocUuid#21524303) AND (lambda x#21518157.storageLocation.Id = storageLocId#21524302)), lambda x#21518157, false))), false, [stockQuantity#21524334]
(2016) Project
Arguments: [systemId#21524270, internalUUID#21524271, product#21524272, plant#21524273, calculationDateTime#21524274, stockQuantities#21524275, plantId#21524300, plantUuid#21524301, storageLocId#21524302, storageLocUuid#21524303, stockQuantity#21524334]
(2017) Aggregate
Arguments: [plantUuid#21524301, internalUUID#21524271, plant#21524273, product#21524272, systemId#21524270], [plantUuid#21524301, internalUUID#21524271, plant#21524273, product#21524272, systemId#21524270, first(calculationDateTime#21524274, false) AS calculationDateTime#21524335, collect_list(stockQuantity#21524334, 0, 0) AS stockQuantities#21524336]
(2018) Project
Arguments: [systemId#21524270, internalUUID#21524271, product#21524272, plant#21524273, calculationDateTime#21524335, stockQuantities#21524336]
(2019) Generate
Arguments: explode(stockQuantities#21524336), false, [stockQuantity#21524337]
(2020) Project
Arguments: [systemId#21524270, internalUUID#21524271, product#21524272, plant#21524273, calculationDateTime#21524335, stockQuantities#21524336, stockQuantity#21524337]
(2021) Project
Arguments: [plant#21524273.id AS plant#21524338, plant#21524273.internalRefUUID AS plantUuid#21524339, product#21524272.id AS product#21524340, product#21524272.internalRefUUID AS productUuid#21524341, calculationDateTime#21524335, stockQuantity#21524337.storagelocation.id AS storageLocId#21524342, stockQuantity#21524337.storagelocation.internalRefUUID AS storageLocUuid#21524343, stockQuantity#21524337.quantity.measure AS quantity#21524344, stockQuantity#21524337.specialStockIndicator.code AS specialStockIndicator#21524345, stockQuantity#21524337.stockType.code AS stockType#21524346]
(2022) Filter
Arguments: ((specialStockIndicator#21524345 = ) AND (stockType#21524346 = 01))
(2023) LogicalRelation
Arguments: parquet, [product#21524347, plant#21524348, orderDateTime#21524349, planningStartDateTime#21524350], false
(2024) RepartitionByExpression
Arguments: [product#21524347, plant#21524348], 25
(2025) Project
Arguments: [product#21524347, plant#21524348, orderDateTime#21524349]
(2026) LogicalRelation
Arguments: parquet, [systemId#21524351, internalUUID#21524352, plant#21524353, product#21524354, blockedForReplenishmentStartingFrom#21524355, productionAspect#21524356, salesPlant#21524357, listing#21524358], false
(2027) Repartition
Arguments: 25, true
(2028) Project
Arguments: [systemId#21524351, internalUUID#21524352, plant#21524353, product#21524354, blockedForReplenishmentStartingFrom#21524355, productionAspect#21524356, salesPlant#21524357, listing#21524358, struct(systemId, systemId#21524351, internalUUID, internalUUID#21524352, plant, plant#21524353, product, product#21524354, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#21524355, productionAspect, productionAspect#21524356, salesPlant, salesPlant#21524357, listing, listing#21524358) AS productPlant#21524359]
(2029) Project
Arguments: [productPlant#21524359]
(2030) Join
Arguments: LeftOuter, ((product#21524347 <=> productPlant#21524359.product.internalRefUUID) AND (plant#21524348 <=> productPlant#21524359.plant.internalRefUUID))
(2031) Project
Arguments: [product#21524347, plant#21524348, orderDateTime#21524349, productPlant#21524359]
(2032) LogicalRelation
Arguments: parquet, [systemId#21524360, internalUUID#21524361, id#21524362, displayId#21524363, name#21524364, baseUnitOfMeasure#21524365, unitOfMeasures#21524366, unitOfMeasureConversions#21524367, productionAspect#21524368, salesAspect#21524369, procurementAspect#21524370, productGroup#21524371], false
(2033) Repartition
Arguments: 25, true
(2034) Join
Arguments: LeftOuter, (product#21524347 = internalUUID#21524361)
(2035) Project
Arguments: [product#21524347, plant#21524348, orderDateTime#21524349, productPlant#21524359, systemId#21524360, internalUUID#21524361, id#21524362, displayId#21524363, name#21524364, baseUnitOfMeasure#21524365, unitOfMeasures#21524366, unitOfMeasureConversions#21524367, productionAspect#21524368, salesAspect#21524369, procurementAspect#21524370, productGroup#21524371, filter(unitOfMeasureConversions#21524367, lambdafunction((((lambda u#21518048.measurementUnit1.code = productPlant#21524359.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#21518048.measurementUnit1.internalRefUUID = productPlant#21524359.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#21518048.measurementUnit2.code = baseUnitOfMeasure#21524365.code) AND (lambda u#21518048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#21524365.internalRefUUID))), lambda u#21518048, false)) AS filteredUnitOfMeasureConversions#21524372]
(2036) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21524372.quantityNumerator), true, [quantityNumerator#21524373]
(2037) Project
Arguments: [product#21524347, plant#21524348, orderDateTime#21524349, productPlant#21524359, systemId#21524360, internalUUID#21524361, id#21524362, displayId#21524363, name#21524364, baseUnitOfMeasure#21524365, unitOfMeasures#21524366, unitOfMeasureConversions#21524367, productionAspect#21524368, salesAspect#21524369, procurementAspect#21524370, productGroup#21524371, filteredUnitOfMeasureConversions#21524372, quantityNumerator#21524373]
(2038) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21524372.quantityDenominator), true, [quantityDenominator#21524374]
(2039) Project
Arguments: [product#21524347, plant#21524348, orderDateTime#21524349, productPlant#21524359, systemId#21524360, internalUUID#21524361, id#21524362, displayId#21524363, name#21524364, baseUnitOfMeasure#21524365, unitOfMeasures#21524366, unitOfMeasureConversions#21524367, productionAspect#21524368, salesAspect#21524369, procurementAspect#21524370, productGroup#21524371, filteredUnitOfMeasureConversions#21524372, quantityNumerator#21524373, quantityDenominator#21524374]
(2040) Project
Arguments: [product#21524347, plant#21524348, orderDateTime#21524349, productPlant#21524359, systemId#21524360, internalUUID#21524361, id#21524362, displayId#21524363, name#21524364, baseUnitOfMeasure#21524365, unitOfMeasures#21524366, unitOfMeasureConversions#21524367, productionAspect#21524368, salesAspect#21524369, procurementAspect#21524370, productGroup#21524371, filteredUnitOfMeasureConversions#21524372, quantityNumerator#21524373, quantityDenominator#21524374, (cast(quantityNumerator#21524373 as double) / cast(quantityDenominator#21524374 as double)) AS outboundUnit#21524375]
(2041) Project
Arguments: [product#21524347, plant#21524348, orderDateTime#21524349, productPlant#21524359, systemId#21524360, internalUUID#21524361, id#21524362, displayId#21524363, name#21524364, baseUnitOfMeasure#21524365, unitOfMeasures#21524366, unitOfMeasureConversions#21524367, productionAspect#21524368, salesAspect#21524369, procurementAspect#21524370, productGroup#21524371, filteredUnitOfMeasureConversions#21524372, quantityNumerator#21524373, quantityDenominator#21524374, CASE WHEN (isnull(outboundUnit#21524375) OR (outboundUnit#21524375 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#21524375 END AS outboundUnit#21524376]
(2042) Project
Arguments: [product#21524347, plant#21524348, orderDateTime#21524349, productPlant#21524359, outboundUnit#21524376]
(2043) Join
Arguments: Inner, ((plantUuid#21524339 = plant#21524348) AND (productUuid#21524341 = product#21524347))
(2044) Filter
Arguments: (calculationDateTime#21524335 <= orderDateTime#21524349)
(2045) Project
Arguments: [plantUuid#21524339 AS plant#21524377, productUuid#21524341 AS product#21524378, storageLocId#21524342, calculationDateTime#21524335, quantity#21524344]
(2046) Aggregate
Arguments: [plant#21524377, product#21524378, storageLocId#21524342], [plant#21524377, product#21524378, storageLocId#21524342, max(calculationDateTime#21524335) AS max_calc_datetime#21524379]
(2047) Join
Arguments: Inner, ((((plant#21524268 <=> plant#21524377) AND (product#21524269 <=> product#21524378)) AND (storageLocId#21524233 <=> storageLocId#21524342)) AND (calculationDateTime#21524226 <=> max_calc_datetime#21524379))
(2048) Project
Arguments: [plant#21524268, product#21524269, storageLocId#21524233, calculationDateTime#21524226, quantity#21524235]
(2049) Aggregate
Arguments: [product#21524269, plant#21524268], [product#21524269, plant#21524268, sum(quantity#21524235) AS quantitySum#21524380, min(calculationDateTime#21524226) AS minCalculationDateTime#21524381]
(2050) Project
Arguments: [product#21524269, plant#21524268, quantitySum#21524380, minCalculationDateTime#21524381, round(quantitySum#21524380, 0) AS roundedQuantitySum#21524382]
(2051) Join
Arguments: LeftOuter, ((plant#21524132 = plant#21524268) AND (product#21524131 = product#21524269))
(2052) Project
Arguments: [product#21524131, plant#21524132, orderDateTime#21524133, productPlant#21524143, outboundUnit#21524160, roundedQuantitySum#21524382, minCalculationDateTime#21524381]
(2053) Project
Arguments: [product#21524131, plant#21524132, orderDateTime#21524133, productPlant#21524143, outboundUnit#21524160, roundedQuantitySum#21524382, minCalculationDateTime#21524381, CASE WHEN isnotnull(minCalculationDateTime#21524381) THEN minCalculationDateTime#21524381 ELSE orderDateTime#21524133 END AS stockDatetime#21524383]
(2054) Project
Arguments: [product#21524131, plant#21524132, orderDateTime#21524133, productPlant#21524143, outboundUnit#21524160, roundedQuantitySum#21524382, minCalculationDateTime#21524381, stockDatetime#21524383, CASE WHEN isnotnull(roundedQuantitySum#21524382) THEN array(roundedQuantitySum#21524382) ELSE array(0.0) END AS stockBatchQuantities#21524384]
(2055) Project
Arguments: [product#21524131, plant#21524132, orderDateTime#21524133, productPlant#21524143, outboundUnit#21524160, roundedQuantitySum#21524382, minCalculationDateTime#21524381, stockDatetime#21524383, stockBatchQuantities#21524384, array(2199-01-01 00:00:00) AS stockBatchShelfLifeEndDatetimes#21524385]
(2056) Project
Arguments: [product#21524131, plant#21524132, orderDateTime#21524133, productPlant#21524143, outboundUnit#21524160, roundedQuantitySum#21524382, stockDatetime#21524383, stockBatchQuantities#21524384, stockBatchShelfLifeEndDatetimes#21524385]
(2057) Project
Arguments: [product#21524131, plant#21524132, orderDateTime#21524133, productPlant#21524143, outboundUnit#21524160, stockDatetime#21524383, stockBatchQuantities#21524384, stockBatchShelfLifeEndDatetimes#21524385]
(2058) LogicalRelation
Arguments: parquet, [product#21524386, plant#21524387, orderDateTime#21524388, planningStartDateTime#21524389], false
(2059) RepartitionByExpression
Arguments: [product#21524386, plant#21524387], 25
(2060) Project
Arguments: [product#21524386, plant#21524387, orderDateTime#21524388]
(2061) LogicalRelation
Arguments: parquet, [systemId#21524390, internalUUID#21524391, plant#21524392, product#21524393, blockedForReplenishmentStartingFrom#21524394, productionAspect#21524395, salesPlant#21524396, listing#21524397], false
(2062) Repartition
Arguments: 25, true
(2063) Project
Arguments: [systemId#21524390, internalUUID#21524391, plant#21524392, product#21524393, blockedForReplenishmentStartingFrom#21524394, productionAspect#21524395, salesPlant#21524396, listing#21524397, struct(systemId, systemId#21524390, internalUUID, internalUUID#21524391, plant, plant#21524392, product, product#21524393, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#21524394, productionAspect, productionAspect#21524395, salesPlant, salesPlant#21524396, listing, listing#21524397) AS productPlant#21524398]
(2064) Project
Arguments: [productPlant#21524398]
(2065) Join
Arguments: LeftOuter, ((product#21524386 <=> productPlant#21524398.product.internalRefUUID) AND (plant#21524387 <=> productPlant#21524398.plant.internalRefUUID))
(2066) Project
Arguments: [product#21524386, plant#21524387, orderDateTime#21524388, productPlant#21524398]
(2067) LogicalRelation
Arguments: parquet, [systemId#21524399, internalUUID#21524400, id#21524401, displayId#21524402, name#21524403, baseUnitOfMeasure#21524404, unitOfMeasures#21524405, unitOfMeasureConversions#21524406, productionAspect#21524407, salesAspect#21524408, procurementAspect#21524409, productGroup#21524410], false
(2068) Repartition
Arguments: 25, true
(2069) Join
Arguments: LeftOuter, (product#21524386 = internalUUID#21524400)
(2070) Project
Arguments: [product#21524386, plant#21524387, orderDateTime#21524388, productPlant#21524398, systemId#21524399, internalUUID#21524400, id#21524401, displayId#21524402, name#21524403, baseUnitOfMeasure#21524404, unitOfMeasures#21524405, unitOfMeasureConversions#21524406, productionAspect#21524407, salesAspect#21524408, procurementAspect#21524409, productGroup#21524410, filter(unitOfMeasureConversions#21524406, lambdafunction((((lambda u#21518048.measurementUnit1.code = productPlant#21524398.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#21518048.measurementUnit1.internalRefUUID = productPlant#21524398.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#21518048.measurementUnit2.code = baseUnitOfMeasure#21524404.code) AND (lambda u#21518048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#21524404.internalRefUUID))), lambda u#21518048, false)) AS filteredUnitOfMeasureConversions#21524411]
(2071) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21524411.quantityNumerator), true, [quantityNumerator#21524412]
(2072) Project
Arguments: [product#21524386, plant#21524387, orderDateTime#21524388, productPlant#21524398, systemId#21524399, internalUUID#21524400, id#21524401, displayId#21524402, name#21524403, baseUnitOfMeasure#21524404, unitOfMeasures#21524405, unitOfMeasureConversions#21524406, productionAspect#21524407, salesAspect#21524408, procurementAspect#21524409, productGroup#21524410, filteredUnitOfMeasureConversions#21524411, quantityNumerator#21524412]
(2073) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21524411.quantityDenominator), true, [quantityDenominator#21524413]
(2074) Project
Arguments: [product#21524386, plant#21524387, orderDateTime#21524388, productPlant#21524398, systemId#21524399, internalUUID#21524400, id#21524401, displayId#21524402, name#21524403, baseUnitOfMeasure#21524404, unitOfMeasures#21524405, unitOfMeasureConversions#21524406, productionAspect#21524407, salesAspect#21524408, procurementAspect#21524409, productGroup#21524410, filteredUnitOfMeasureConversions#21524411, quantityNumerator#21524412, quantityDenominator#21524413]
(2075) Project
Arguments: [product#21524386, plant#21524387, orderDateTime#21524388, productPlant#21524398, systemId#21524399, internalUUID#21524400, id#21524401, displayId#21524402, name#21524403, baseUnitOfMeasure#21524404, unitOfMeasures#21524405, unitOfMeasureConversions#21524406, productionAspect#21524407, salesAspect#21524408, procurementAspect#21524409, productGroup#21524410, filteredUnitOfMeasureConversions#21524411, quantityNumerator#21524412, quantityDenominator#21524413, (cast(quantityNumerator#21524412 as double) / cast(quantityDenominator#21524413 as double)) AS outboundUnit#21524414]
(2076) Project
Arguments: [product#21524386, plant#21524387, orderDateTime#21524388, productPlant#21524398, systemId#21524399, internalUUID#21524400, id#21524401, displayId#21524402, name#21524403, baseUnitOfMeasure#21524404, unitOfMeasures#21524405, unitOfMeasureConversions#21524406, productionAspect#21524407, salesAspect#21524408, procurementAspect#21524409, productGroup#21524410, filteredUnitOfMeasureConversions#21524411, quantityNumerator#21524412, quantityDenominator#21524413, CASE WHEN (isnull(outboundUnit#21524414) OR (outboundUnit#21524414 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#21524414 END AS outboundUnit#21524415]
(2077) Project
Arguments: [product#21524386, plant#21524387, orderDateTime#21524388, productPlant#21524398, outboundUnit#21524415]
(2078) LogicalRelation
Arguments: parquet, [systemId#21524416, internalUUID#21524417, product#21524418, plant#21524419, calculationDateTime#21524420, stockQuantities#21524421], false
(2079) Repartition
Arguments: 25, true
(2080) LogicalRelation
Arguments: parquet, [marketUnit#21524422, description#21524423, articleHierarchy#21524424, defaultCurrency#21524425, responsibilities#21524426, replenishmentTypes#21524427, distributionCenters#21524428, assignedArticleHierarchyNodes#21524429, minOrderQtySetting#21524430, listingCheck#21524431, odsSelection#21524432, demandProfiles#21524433, constraintProfiles#21524434, optimizationProfiles#21524435, orderGroupSplitProfiles#21524436, supplierMinimumProfiles#21524437, multipleRestrictionProfiles#21524438, preferredUomSource#21524439, handlingOfUnfulfilledDemands#21524440, negligibleQuantitiesThreshold#21524441, eventtype#21524442, minOrderQtySettingInternal#21524443], false
(2081) Repartition
Arguments: 25, true
(2082) Filter
Arguments: (marketUnit#21524422 <=> SS_Test_1)
(2083) Project
Arguments: [marketUnit#21524422, description#21524423, articleHierarchy#21524424, defaultCurrency#21524425, responsibilities#21524426, replenishmentTypes#21524427, distributionCenters#21524428, assignedArticleHierarchyNodes#21524429, minOrderQtySetting#21524430, listingCheck#21524431, odsSelection#21524432, demandProfiles#21524433, constraintProfiles#21524434, optimizationProfiles#21524435, orderGroupSplitProfiles#21524436, supplierMinimumProfiles#21524437, multipleRestrictionProfiles#21524438, preferredUomSource#21524439, handlingOfUnfulfilledDemands#21524440, negligibleQuantitiesThreshold#21524441, eventtype#21524442, minOrderQtySettingInternal#21524443]
(2084) Project
Arguments: [distributionCenters#21524428]
(2085) Generate
Arguments: explode(distributionCenters#21524428), false, [distributionCenters#21524444]
(2086) Project
Arguments: [distributionCenters#21524444]
(2087) Generate
Arguments: explode(distributionCenters#21524444.storageLocations), false, [storageLocations#21524445]
(2088) Project
Arguments: [distributionCenters#21524444.id AS plantId#21524446, distributionCenters#21524444.internalRefUUID AS plantUuid#21524447, storageLocations#21524445]
(2089) Project
Arguments: [plantId#21524446, plantUuid#21524447, storageLocations#21524445.id AS storageLocId#21524448, storageLocations#21524445.internalRefUUID AS storageLocUuid#21524449]
(2090) LogicalRelation
Arguments: parquet, [product#21524450, plant#21524451, orderDateTime#21524452, planningStartDateTime#21524453], false
(2091) RepartitionByExpression
Arguments: [product#21524450, plant#21524451], 25
(2092) Project
Arguments: [product#21524450, plant#21524451, orderDateTime#21524452]
(2093) LogicalRelation
Arguments: parquet, [systemId#21524454, internalUUID#21524455, plant#21524456, product#21524457, blockedForReplenishmentStartingFrom#21524458, productionAspect#21524459, salesPlant#21524460, listing#21524461], false
(2094) Repartition
Arguments: 25, true
(2095) Project
Arguments: [systemId#21524454, internalUUID#21524455, plant#21524456, product#21524457, blockedForReplenishmentStartingFrom#21524458, productionAspect#21524459, salesPlant#21524460, listing#21524461, struct(systemId, systemId#21524454, internalUUID, internalUUID#21524455, plant, plant#21524456, product, product#21524457, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#21524458, productionAspect, productionAspect#21524459, salesPlant, salesPlant#21524460, listing, listing#21524461) AS productPlant#21524462]
(2096) Project
Arguments: [productPlant#21524462]
(2097) Join
Arguments: LeftOuter, ((product#21524450 <=> productPlant#21524462.product.internalRefUUID) AND (plant#21524451 <=> productPlant#21524462.plant.internalRefUUID))
(2098) Project
Arguments: [product#21524450, plant#21524451, orderDateTime#21524452, productPlant#21524462]
(2099) LogicalRelation
Arguments: parquet, [systemId#21524463, internalUUID#21524464, id#21524465, displayId#21524466, name#21524467, baseUnitOfMeasure#21524468, unitOfMeasures#21524469, unitOfMeasureConversions#21524470, productionAspect#21524471, salesAspect#21524472, procurementAspect#21524473, productGroup#21524474], false
(2100) Repartition
Arguments: 25, true
(2101) Join
Arguments: LeftOuter, (product#21524450 = internalUUID#21524464)
(2102) Project
Arguments: [product#21524450, plant#21524451, orderDateTime#21524452, productPlant#21524462, systemId#21524463, internalUUID#21524464, id#21524465, displayId#21524466, name#21524467, baseUnitOfMeasure#21524468, unitOfMeasures#21524469, unitOfMeasureConversions#21524470, productionAspect#21524471, salesAspect#21524472, procurementAspect#21524473, productGroup#21524474, filter(unitOfMeasureConversions#21524470, lambdafunction((((lambda u#21518048.measurementUnit1.code = productPlant#21524462.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#21518048.measurementUnit1.internalRefUUID = productPlant#21524462.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#21518048.measurementUnit2.code = baseUnitOfMeasure#21524468.code) AND (lambda u#21518048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#21524468.internalRefUUID))), lambda u#21518048, false)) AS filteredUnitOfMeasureConversions#21524475]
(2103) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21524475.quantityNumerator), true, [quantityNumerator#21524476]
(2104) Project
Arguments: [product#21524450, plant#21524451, orderDateTime#21524452, productPlant#21524462, systemId#21524463, internalUUID#21524464, id#21524465, displayId#21524466, name#21524467, baseUnitOfMeasure#21524468, unitOfMeasures#21524469, unitOfMeasureConversions#21524470, productionAspect#21524471, salesAspect#21524472, procurementAspect#21524473, productGroup#21524474, filteredUnitOfMeasureConversions#21524475, quantityNumerator#21524476]
(2105) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21524475.quantityDenominator), true, [quantityDenominator#21524477]
(2106) Project
Arguments: [product#21524450, plant#21524451, orderDateTime#21524452, productPlant#21524462, systemId#21524463, internalUUID#21524464, id#21524465, displayId#21524466, name#21524467, baseUnitOfMeasure#21524468, unitOfMeasures#21524469, unitOfMeasureConversions#21524470, productionAspect#21524471, salesAspect#21524472, procurementAspect#21524473, productGroup#21524474, filteredUnitOfMeasureConversions#21524475, quantityNumerator#21524476, quantityDenominator#21524477]
(2107) Project
Arguments: [product#21524450, plant#21524451, orderDateTime#21524452, productPlant#21524462, systemId#21524463, internalUUID#21524464, id#21524465, displayId#21524466, name#21524467, baseUnitOfMeasure#21524468, unitOfMeasures#21524469, unitOfMeasureConversions#21524470, productionAspect#21524471, salesAspect#21524472, procurementAspect#21524473, productGroup#21524474, filteredUnitOfMeasureConversions#21524475, quantityNumerator#21524476, quantityDenominator#21524477, (cast(quantityNumerator#21524476 as double) / cast(quantityDenominator#21524477 as double)) AS outboundUnit#21524478]
(2108) Project
Arguments: [product#21524450, plant#21524451, orderDateTime#21524452, productPlant#21524462, systemId#21524463, internalUUID#21524464, id#21524465, displayId#21524466, name#21524467, baseUnitOfMeasure#21524468, unitOfMeasures#21524469, unitOfMeasureConversions#21524470, productionAspect#21524471, salesAspect#21524472, procurementAspect#21524473, productGroup#21524474, filteredUnitOfMeasureConversions#21524475, quantityNumerator#21524476, quantityDenominator#21524477, CASE WHEN (isnull(outboundUnit#21524478) OR (outboundUnit#21524478 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#21524478 END AS outboundUnit#21524479]
(2109) Project
Arguments: [product#21524450, plant#21524451, orderDateTime#21524452, productPlant#21524462, outboundUnit#21524479]
(2110) Project
Arguments: [plant#21524451]
(2111) Deduplicate
Arguments: [plant#21524451]
(2112) Join
Arguments: Inner, (plantUuid#21524447 = plant#21524451)
(2113) Project
Arguments: [plantId#21524446, plantUuid#21524447, storageLocId#21524448, storageLocUuid#21524449]
(2114) Join
Arguments: Inner, (plant#21524419.internalRefUUID <=> plantUuid#21524447)
(2115) Generate
Arguments: explode(filter(stockQuantities#21524421, lambdafunction(((lambda x#21518157.storageLocation.internalRefUuid = storageLocUuid#21524449) AND (lambda x#21518157.storageLocation.Id = storageLocId#21524448)), lambda x#21518157, false))), false, [stockQuantity#21524480]
(2116) Project
Arguments: [systemId#21524416, internalUUID#21524417, product#21524418, plant#21524419, calculationDateTime#21524420, stockQuantities#21524421, plantId#21524446, plantUuid#21524447, storageLocId#21524448, storageLocUuid#21524449, stockQuantity#21524480]
(2117) Aggregate
Arguments: [plantUuid#21524447, internalUUID#21524417, plant#21524419, product#21524418, systemId#21524416], [plantUuid#21524447, internalUUID#21524417, plant#21524419, product#21524418, systemId#21524416, first(calculationDateTime#21524420, false) AS calculationDateTime#21524481, collect_list(stockQuantity#21524480, 0, 0) AS stockQuantities#21524482]
(2118) Project
Arguments: [systemId#21524416, internalUUID#21524417, product#21524418, plant#21524419, calculationDateTime#21524481, stockQuantities#21524482]
(2119) Generate
Arguments: explode(stockQuantities#21524482), false, [stockQuantity#21524483]
(2120) Project
Arguments: [systemId#21524416, internalUUID#21524417, product#21524418, plant#21524419, calculationDateTime#21524481, stockQuantities#21524482, stockQuantity#21524483]
(2121) Project
Arguments: [plant#21524419.id AS plant#21524484, plant#21524419.internalRefUUID AS plantUuid#21524485, product#21524418.id AS product#21524486, product#21524418.internalRefUUID AS productUuid#21524487, calculationDateTime#21524481, stockQuantity#21524483.storagelocation.id AS storageLocId#21524488, stockQuantity#21524483.storagelocation.internalRefUUID AS storageLocUuid#21524489, stockQuantity#21524483.quantity.measure AS quantity#21524490, stockQuantity#21524483.specialStockIndicator.code AS specialStockIndicator#21524491, stockQuantity#21524483.stockType.code AS stockType#21524492]
(2122) Filter
Arguments: ((specialStockIndicator#21524491 = ) AND (stockType#21524492 = 01))
(2123) LogicalRelation
Arguments: parquet, [product#21524493, plant#21524494, orderDateTime#21524495, planningStartDateTime#21524496], false
(2124) RepartitionByExpression
Arguments: [product#21524493, plant#21524494], 25
(2125) Project
Arguments: [product#21524493, plant#21524494, orderDateTime#21524495]
(2126) LogicalRelation
Arguments: parquet, [systemId#21524497, internalUUID#21524498, plant#21524499, product#21524500, blockedForReplenishmentStartingFrom#21524501, productionAspect#21524502, salesPlant#21524503, listing#21524504], false
(2127) Repartition
Arguments: 25, true
(2128) Project
Arguments: [systemId#21524497, internalUUID#21524498, plant#21524499, product#21524500, blockedForReplenishmentStartingFrom#21524501, productionAspect#21524502, salesPlant#21524503, listing#21524504, struct(systemId, systemId#21524497, internalUUID, internalUUID#21524498, plant, plant#21524499, product, product#21524500, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#21524501, productionAspect, productionAspect#21524502, salesPlant, salesPlant#21524503, listing, listing#21524504) AS productPlant#21524505]
(2129) Project
Arguments: [productPlant#21524505]
(2130) Join
Arguments: LeftOuter, ((product#21524493 <=> productPlant#21524505.product.internalRefUUID) AND (plant#21524494 <=> productPlant#21524505.plant.internalRefUUID))
(2131) Project
Arguments: [product#21524493, plant#21524494, orderDateTime#21524495, productPlant#21524505]
(2132) LogicalRelation
Arguments: parquet, [systemId#21524506, internalUUID#21524507, id#21524508, displayId#21524509, name#21524510, baseUnitOfMeasure#21524511, unitOfMeasures#21524512, unitOfMeasureConversions#21524513, productionAspect#21524514, salesAspect#21524515, procurementAspect#21524516, productGroup#21524517], false
(2133) Repartition
Arguments: 25, true
(2134) Join
Arguments: LeftOuter, (product#21524493 = internalUUID#21524507)
(2135) Project
Arguments: [product#21524493, plant#21524494, orderDateTime#21524495, productPlant#21524505, systemId#21524506, internalUUID#21524507, id#21524508, displayId#21524509, name#21524510, baseUnitOfMeasure#21524511, unitOfMeasures#21524512, unitOfMeasureConversions#21524513, productionAspect#21524514, salesAspect#21524515, procurementAspect#21524516, productGroup#21524517, filter(unitOfMeasureConversions#21524513, lambdafunction((((lambda u#21518048.measurementUnit1.code = productPlant#21524505.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#21518048.measurementUnit1.internalRefUUID = productPlant#21524505.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#21518048.measurementUnit2.code = baseUnitOfMeasure#21524511.code) AND (lambda u#21518048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#21524511.internalRefUUID))), lambda u#21518048, false)) AS filteredUnitOfMeasureConversions#21524518]
(2136) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21524518.quantityNumerator), true, [quantityNumerator#21524519]
(2137) Project
Arguments: [product#21524493, plant#21524494, orderDateTime#21524495, productPlant#21524505, systemId#21524506, internalUUID#21524507, id#21524508, displayId#21524509, name#21524510, baseUnitOfMeasure#21524511, unitOfMeasures#21524512, unitOfMeasureConversions#21524513, productionAspect#21524514, salesAspect#21524515, procurementAspect#21524516, productGroup#21524517, filteredUnitOfMeasureConversions#21524518, quantityNumerator#21524519]
(2138) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21524518.quantityDenominator), true, [quantityDenominator#21524520]
(2139) Project
Arguments: [product#21524493, plant#21524494, orderDateTime#21524495, productPlant#21524505, systemId#21524506, internalUUID#21524507, id#21524508, displayId#21524509, name#21524510, baseUnitOfMeasure#21524511, unitOfMeasures#21524512, unitOfMeasureConversions#21524513, productionAspect#21524514, salesAspect#21524515, procurementAspect#21524516, productGroup#21524517, filteredUnitOfMeasureConversions#21524518, quantityNumerator#21524519, quantityDenominator#21524520]
(2140) Project
Arguments: [product#21524493, plant#21524494, orderDateTime#21524495, productPlant#21524505, systemId#21524506, internalUUID#21524507, id#21524508, displayId#21524509, name#21524510, baseUnitOfMeasure#21524511, unitOfMeasures#21524512, unitOfMeasureConversions#21524513, productionAspect#21524514, salesAspect#21524515, procurementAspect#21524516, productGroup#21524517, filteredUnitOfMeasureConversions#21524518, quantityNumerator#21524519, quantityDenominator#21524520, (cast(quantityNumerator#21524519 as double) / cast(quantityDenominator#21524520 as double)) AS outboundUnit#21524521]
(2141) Project
Arguments: [product#21524493, plant#21524494, orderDateTime#21524495, productPlant#21524505, systemId#21524506, internalUUID#21524507, id#21524508, displayId#21524509, name#21524510, baseUnitOfMeasure#21524511, unitOfMeasures#21524512, unitOfMeasureConversions#21524513, productionAspect#21524514, salesAspect#21524515, procurementAspect#21524516, productGroup#21524517, filteredUnitOfMeasureConversions#21524518, quantityNumerator#21524519, quantityDenominator#21524520, CASE WHEN (isnull(outboundUnit#21524521) OR (outboundUnit#21524521 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#21524521 END AS outboundUnit#21524522]
(2142) Project
Arguments: [product#21524493, plant#21524494, orderDateTime#21524495, productPlant#21524505, outboundUnit#21524522]
(2143) Join
Arguments: Inner, ((plantUuid#21524485 = plant#21524494) AND (productUuid#21524487 = product#21524493))
(2144) Filter
Arguments: (calculationDateTime#21524481 <= orderDateTime#21524495)
(2145) Project
Arguments: [plantUuid#21524485 AS plant#21524523, productUuid#21524487 AS product#21524524, storageLocId#21524488, calculationDateTime#21524481, quantity#21524490]
(2146) LogicalRelation
Arguments: parquet, [systemId#21524525, internalUUID#21524526, product#21524527, plant#21524528, calculationDateTime#21524529, stockQuantities#21524530], false
(2147) Repartition
Arguments: 25, true
(2148) LogicalRelation
Arguments: parquet, [marketUnit#21524531, description#21524532, articleHierarchy#21524533, defaultCurrency#21524534, responsibilities#21524535, replenishmentTypes#21524536, distributionCenters#21524537, assignedArticleHierarchyNodes#21524538, minOrderQtySetting#21524539, listingCheck#21524540, odsSelection#21524541, demandProfiles#21524542, constraintProfiles#21524543, optimizationProfiles#21524544, orderGroupSplitProfiles#21524545, supplierMinimumProfiles#21524546, multipleRestrictionProfiles#21524547, preferredUomSource#21524548, handlingOfUnfulfilledDemands#21524549, negligibleQuantitiesThreshold#21524550, eventtype#21524551, minOrderQtySettingInternal#21524552], false
(2149) Repartition
Arguments: 25, true
(2150) Filter
Arguments: (marketUnit#21524531 <=> SS_Test_1)
(2151) Project
Arguments: [marketUnit#21524531, description#21524532, articleHierarchy#21524533, defaultCurrency#21524534, responsibilities#21524535, replenishmentTypes#21524536, distributionCenters#21524537, assignedArticleHierarchyNodes#21524538, minOrderQtySetting#21524539, listingCheck#21524540, odsSelection#21524541, demandProfiles#21524542, constraintProfiles#21524543, optimizationProfiles#21524544, orderGroupSplitProfiles#21524545, supplierMinimumProfiles#21524546, multipleRestrictionProfiles#21524547, preferredUomSource#21524548, handlingOfUnfulfilledDemands#21524549, negligibleQuantitiesThreshold#21524550, eventtype#21524551, minOrderQtySettingInternal#21524552]
(2152) Project
Arguments: [distributionCenters#21524537]
(2153) Generate
Arguments: explode(distributionCenters#21524537), false, [distributionCenters#21524553]
(2154) Project
Arguments: [distributionCenters#21524553]
(2155) Generate
Arguments: explode(distributionCenters#21524553.storageLocations), false, [storageLocations#21524554]
(2156) Project
Arguments: [distributionCenters#21524553.id AS plantId#21524555, distributionCenters#21524553.internalRefUUID AS plantUuid#21524556, storageLocations#21524554]
(2157) Project
Arguments: [plantId#21524555, plantUuid#21524556, storageLocations#21524554.id AS storageLocId#21524557, storageLocations#21524554.internalRefUUID AS storageLocUuid#21524558]
(2158) LogicalRelation
Arguments: parquet, [product#21524559, plant#21524560, orderDateTime#21524561, planningStartDateTime#21524562], false
(2159) RepartitionByExpression
Arguments: [product#21524559, plant#21524560], 25
(2160) Project
Arguments: [product#21524559, plant#21524560, orderDateTime#21524561]
(2161) LogicalRelation
Arguments: parquet, [systemId#21524563, internalUUID#21524564, plant#21524565, product#21524566, blockedForReplenishmentStartingFrom#21524567, productionAspect#21524568, salesPlant#21524569, listing#21524570], false
(2162) Repartition
Arguments: 25, true
(2163) Project
Arguments: [systemId#21524563, internalUUID#21524564, plant#21524565, product#21524566, blockedForReplenishmentStartingFrom#21524567, productionAspect#21524568, salesPlant#21524569, listing#21524570, struct(systemId, systemId#21524563, internalUUID, internalUUID#21524564, plant, plant#21524565, product, product#21524566, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#21524567, productionAspect, productionAspect#21524568, salesPlant, salesPlant#21524569, listing, listing#21524570) AS productPlant#21524571]
(2164) Project
Arguments: [productPlant#21524571]
(2165) Join
Arguments: LeftOuter, ((product#21524559 <=> productPlant#21524571.product.internalRefUUID) AND (plant#21524560 <=> productPlant#21524571.plant.internalRefUUID))
(2166) Project
Arguments: [product#21524559, plant#21524560, orderDateTime#21524561, productPlant#21524571]
(2167) LogicalRelation
Arguments: parquet, [systemId#21524572, internalUUID#21524573, id#21524574, displayId#21524575, name#21524576, baseUnitOfMeasure#21524577, unitOfMeasures#21524578, unitOfMeasureConversions#21524579, productionAspect#21524580, salesAspect#21524581, procurementAspect#21524582, productGroup#21524583], false
(2168) Repartition
Arguments: 25, true
(2169) Join
Arguments: LeftOuter, (product#21524559 = internalUUID#21524573)
(2170) Project
Arguments: [product#21524559, plant#21524560, orderDateTime#21524561, productPlant#21524571, systemId#21524572, internalUUID#21524573, id#21524574, displayId#21524575, name#21524576, baseUnitOfMeasure#21524577, unitOfMeasures#21524578, unitOfMeasureConversions#21524579, productionAspect#21524580, salesAspect#21524581, procurementAspect#21524582, productGroup#21524583, filter(unitOfMeasureConversions#21524579, lambdafunction((((lambda u#21518048.measurementUnit1.code = productPlant#21524571.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#21518048.measurementUnit1.internalRefUUID = productPlant#21524571.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#21518048.measurementUnit2.code = baseUnitOfMeasure#21524577.code) AND (lambda u#21518048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#21524577.internalRefUUID))), lambda u#21518048, false)) AS filteredUnitOfMeasureConversions#21524584]
(2171) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21524584.quantityNumerator), true, [quantityNumerator#21524585]
(2172) Project
Arguments: [product#21524559, plant#21524560, orderDateTime#21524561, productPlant#21524571, systemId#21524572, internalUUID#21524573, id#21524574, displayId#21524575, name#21524576, baseUnitOfMeasure#21524577, unitOfMeasures#21524578, unitOfMeasureConversions#21524579, productionAspect#21524580, salesAspect#21524581, procurementAspect#21524582, productGroup#21524583, filteredUnitOfMeasureConversions#21524584, quantityNumerator#21524585]
(2173) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21524584.quantityDenominator), true, [quantityDenominator#21524586]
(2174) Project
Arguments: [product#21524559, plant#21524560, orderDateTime#21524561, productPlant#21524571, systemId#21524572, internalUUID#21524573, id#21524574, displayId#21524575, name#21524576, baseUnitOfMeasure#21524577, unitOfMeasures#21524578, unitOfMeasureConversions#21524579, productionAspect#21524580, salesAspect#21524581, procurementAspect#21524582, productGroup#21524583, filteredUnitOfMeasureConversions#21524584, quantityNumerator#21524585, quantityDenominator#21524586]
(2175) Project
Arguments: [product#21524559, plant#21524560, orderDateTime#21524561, productPlant#21524571, systemId#21524572, internalUUID#21524573, id#21524574, displayId#21524575, name#21524576, baseUnitOfMeasure#21524577, unitOfMeasures#21524578, unitOfMeasureConversions#21524579, productionAspect#21524580, salesAspect#21524581, procurementAspect#21524582, productGroup#21524583, filteredUnitOfMeasureConversions#21524584, quantityNumerator#21524585, quantityDenominator#21524586, (cast(quantityNumerator#21524585 as double) / cast(quantityDenominator#21524586 as double)) AS outboundUnit#21524587]
(2176) Project
Arguments: [product#21524559, plant#21524560, orderDateTime#21524561, productPlant#21524571, systemId#21524572, internalUUID#21524573, id#21524574, displayId#21524575, name#21524576, baseUnitOfMeasure#21524577, unitOfMeasures#21524578, unitOfMeasureConversions#21524579, productionAspect#21524580, salesAspect#21524581, procurementAspect#21524582, productGroup#21524583, filteredUnitOfMeasureConversions#21524584, quantityNumerator#21524585, quantityDenominator#21524586, CASE WHEN (isnull(outboundUnit#21524587) OR (outboundUnit#21524587 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#21524587 END AS outboundUnit#21524588]
(2177) Project
Arguments: [product#21524559, plant#21524560, orderDateTime#21524561, productPlant#21524571, outboundUnit#21524588]
(2178) Project
Arguments: [plant#21524560]
(2179) Deduplicate
Arguments: [plant#21524560]
(2180) Join
Arguments: Inner, (plantUuid#21524556 = plant#21524560)
(2181) Project
Arguments: [plantId#21524555, plantUuid#21524556, storageLocId#21524557, storageLocUuid#21524558]
(2182) Join
Arguments: Inner, (plant#21524528.internalRefUUID <=> plantUuid#21524556)
(2183) Generate
Arguments: explode(filter(stockQuantities#21524530, lambdafunction(((lambda x#21518157.storageLocation.internalRefUuid = storageLocUuid#21524558) AND (lambda x#21518157.storageLocation.Id = storageLocId#21524557)), lambda x#21518157, false))), false, [stockQuantity#21524589]
(2184) Project
Arguments: [systemId#21524525, internalUUID#21524526, product#21524527, plant#21524528, calculationDateTime#21524529, stockQuantities#21524530, plantId#21524555, plantUuid#21524556, storageLocId#21524557, storageLocUuid#21524558, stockQuantity#21524589]
(2185) Aggregate
Arguments: [plantUuid#21524556, internalUUID#21524526, plant#21524528, product#21524527, systemId#21524525], [plantUuid#21524556, internalUUID#21524526, plant#21524528, product#21524527, systemId#21524525, first(calculationDateTime#21524529, false) AS calculationDateTime#21524590, collect_list(stockQuantity#21524589, 0, 0) AS stockQuantities#21524591]
(2186) Project
Arguments: [systemId#21524525, internalUUID#21524526, product#21524527, plant#21524528, calculationDateTime#21524590, stockQuantities#21524591]
(2187) Generate
Arguments: explode(stockQuantities#21524591), false, [stockQuantity#21524592]
(2188) Project
Arguments: [systemId#21524525, internalUUID#21524526, product#21524527, plant#21524528, calculationDateTime#21524590, stockQuantities#21524591, stockQuantity#21524592]
(2189) Project
Arguments: [plant#21524528.id AS plant#21524593, plant#21524528.internalRefUUID AS plantUuid#21524594, product#21524527.id AS product#21524595, product#21524527.internalRefUUID AS productUuid#21524596, calculationDateTime#21524590, stockQuantity#21524592.storagelocation.id AS storageLocId#21524597, stockQuantity#21524592.storagelocation.internalRefUUID AS storageLocUuid#21524598, stockQuantity#21524592.quantity.measure AS quantity#21524599, stockQuantity#21524592.specialStockIndicator.code AS specialStockIndicator#21524600, stockQuantity#21524592.stockType.code AS stockType#21524601]
(2190) Filter
Arguments: ((specialStockIndicator#21524600 = ) AND (stockType#21524601 = 01))
(2191) LogicalRelation
Arguments: parquet, [product#21524602, plant#21524603, orderDateTime#21524604, planningStartDateTime#21524605], false
(2192) RepartitionByExpression
Arguments: [product#21524602, plant#21524603], 25
(2193) Project
Arguments: [product#21524602, plant#21524603, orderDateTime#21524604]
(2194) LogicalRelation
Arguments: parquet, [systemId#21524606, internalUUID#21524607, plant#21524608, product#21524609, blockedForReplenishmentStartingFrom#21524610, productionAspect#21524611, salesPlant#21524612, listing#21524613], false
(2195) Repartition
Arguments: 25, true
(2196) Project
Arguments: [systemId#21524606, internalUUID#21524607, plant#21524608, product#21524609, blockedForReplenishmentStartingFrom#21524610, productionAspect#21524611, salesPlant#21524612, listing#21524613, struct(systemId, systemId#21524606, internalUUID, internalUUID#21524607, plant, plant#21524608, product, product#21524609, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#21524610, productionAspect, productionAspect#21524611, salesPlant, salesPlant#21524612, listing, listing#21524613) AS productPlant#21524614]
(2197) Project
Arguments: [productPlant#21524614]
(2198) Join
Arguments: LeftOuter, ((product#21524602 <=> productPlant#21524614.product.internalRefUUID) AND (plant#21524603 <=> productPlant#21524614.plant.internalRefUUID))
(2199) Project
Arguments: [product#21524602, plant#21524603, orderDateTime#21524604, productPlant#21524614]
(2200) LogicalRelation
Arguments: parquet, [systemId#21524615, internalUUID#21524616, id#21524617, displayId#21524618, name#21524619, baseUnitOfMeasure#21524620, unitOfMeasures#21524621, unitOfMeasureConversions#21524622, productionAspect#21524623, salesAspect#21524624, procurementAspect#21524625, productGroup#21524626], false
(2201) Repartition
Arguments: 25, true
(2202) Join
Arguments: LeftOuter, (product#21524602 = internalUUID#21524616)
(2203) Project
Arguments: [product#21524602, plant#21524603, orderDateTime#21524604, productPlant#21524614, systemId#21524615, internalUUID#21524616, id#21524617, displayId#21524618, name#21524619, baseUnitOfMeasure#21524620, unitOfMeasures#21524621, unitOfMeasureConversions#21524622, productionAspect#21524623, salesAspect#21524624, procurementAspect#21524625, productGroup#21524626, filter(unitOfMeasureConversions#21524622, lambdafunction((((lambda u#21518048.measurementUnit1.code = productPlant#21524614.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#21518048.measurementUnit1.internalRefUUID = productPlant#21524614.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#21518048.measurementUnit2.code = baseUnitOfMeasure#21524620.code) AND (lambda u#21518048.measurementUnit2.internalRefUUID = baseUnitOfMeasure#21524620.internalRefUUID))), lambda u#21518048, false)) AS filteredUnitOfMeasureConversions#21524627]
(2204) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21524627.quantityNumerator), true, [quantityNumerator#21524628]
(2205) Project
Arguments: [product#21524602, plant#21524603, orderDateTime#21524604, productPlant#21524614, systemId#21524615, internalUUID#21524616, id#21524617, displayId#21524618, name#21524619, baseUnitOfMeasure#21524620, unitOfMeasures#21524621, unitOfMeasureConversions#21524622, productionAspect#21524623, salesAspect#21524624, procurementAspect#21524625, productGroup#21524626, filteredUnitOfMeasureConversions#21524627, quantityNumerator#21524628]
(2206) Generate
Arguments: explode(filteredUnitOfMeasureConversions#21524627.quantityDenominator), true, [quantityDenominator#21524629]
(2207) Project
Arguments: [product#21524602, plant#21524603, orderDateTime#21524604, productPlant#21524614, systemId#21524615, internalUUID#21524616, id#21524617, displayId#21524618, name#21524619, baseUnitOfMeasure#21524620, unitOfMeasures#21524621, unitOfMeasureConversions#21524622, productionAspect#21524623, salesAspect#21524624, procurementAspect#21524625, productGroup#21524626, filteredUnitOfMeasureConversions#21524627, quantityNumerator#21524628, quantityDenominator#21524629]
(2208) Project
Arguments: [product#21524602, plant#21524603, orderDateTime#21524604, productPlant#21524614, systemId#21524615, internalUUID#21524616, id#21524617, displayId#21524618, name#21524619, baseUnitOfMeasure#21524620, unitOfMeasures#21524621, unitOfMeasureConversions#21524622, productionAspect#21524623, salesAspect#21524624, procurementAspect#21524625, productGroup#21524626, filteredUnitOfMeasureConversions#21524627, quantityNumerator#21524628, quantityDenominator#21524629, (cast(quantityNumerator#21524628 as double) / cast(quantityDenominator#21524629 as double)) AS outboundUnit#21524630]
(2209) Project
Arguments: [product#21524602, plant#21524603, orderDateTime#21524604, productPlant#21524614, systemId#21524615, internalUUID#21524616, id#21524617, displayId#21524618, name#21524619, baseUnitOfMeasure#21524620, unitOfMeasures#21524621, unitOfMeasureConversions#21524622, productionAspect#21524623, salesAspect#21524624, procurementAspect#21524625, productGroup#21524626, filteredUnitOfMeasureConversions#21524627, quantityNumerator#21524628, quantityDenominator#21524629, CASE WHEN (isnull(outboundUnit#21524630) OR (outboundUnit#21524630 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#21524630 END AS outboundUnit#21524631]
(2210) Project
Arguments: [product#21524602, plant#21524603, orderDateTime#21524604, productPlant#21524614, outboundUnit#21524631]
(2211) Join
Arguments: Inner, ((plantUuid#21524594 = plant#21524603) AND (productUuid#21524596 = product#21524602))
(2212) Filter
Arguments: (calculationDateTime#21524590 <= orderDateTime#21524604)
(2213) Project
Arguments: [plantUuid#21524594 AS plant#21524632, productUuid#21524596 AS product#21524633, storageLocId#21524597, calculationDateTime#21524590, quantity#21524599]
(2214) Aggregate
Arguments: [plant#21524632, product#21524633, storageLocId#21524597], [plant#21524632, product#21524633, storageLocId#21524597, max(calculationDateTime#21524590) AS max_calc_datetime#21524634]
(2215) Join
Arguments: Inner, ((((plant#21524523 <=> plant#21524632) AND (product#21524524 <=> product#21524633)) AND (storageLocId#21524488 <=> storageLocId#21524597)) AND (calculationDateTime#21524481 <=> max_calc_datetime#21524634))
(2216) Project
Arguments: [plant#21524523, product#21524524, storageLocId#21524488, calculationDateTime#21524481, quantity#21524490]
(2217) Aggregate
Arguments: [product#21524524, plant#21524523], [product#21524524, plant#21524523, sum(quantity#21524490) AS quantitySum#21524635, min(calculationDateTime#21524481) AS minCalculationDateTime#21524636]
(2218) Project
Arguments: [product#21524524, plant#21524523, quantitySum#21524635, minCalculationDateTime#21524636, round(quantitySum#21524635, 0) AS roundedQuantitySum#21524637]
(2219) Join
Arguments: LeftOuter, ((plant#21524387 = plant#21524523) AND (product#21524386 = product#21524524))
(2220) Project
Arguments: [product#21524386, plant#21524387, orderDateTime#21524388, productPlant#21524398, outboundUnit#21524415, roundedQuantitySum#21524637, minCalculationDateTime#21524636]
(2221) Project
Arguments: [product#21524386, plant#21524387, orderDateTime#21524388, productPlant#21524398, outboundUnit#21524415, roundedQuantitySum#21524637, minCalculationDateTime#21524636, CASE WHEN isnotnull(minCalculationDateTime#21524636) THEN minCalculationDateTime#21524636 ELSE orderDateTime#21524388 END AS stockDatetime#21524638]
(2222) Project
Arguments: [product#21524386, plant#21524387, orderDateTime#21524388, productPlant#21524398, outboundUnit#21524415, roundedQuantitySum#21524637, minCalculationDateTime#21524636, stockDatetime#21524638, CASE WHEN isnotnull(roundedQuantitySum#21524637) THEN array(roundedQuantitySum#21524637) ELSE array(0.0) END AS stockBatchQuantities#21524639]
(2223) Project
Arguments: [product#21524386, plant#21524387, orderDateTime#21524388, productPlant#21524398, outboundUnit#21524415, roundedQuantitySum#21524637, minCalculationDateTime#21524636, stockDatetime#21524638, stockBatchQuantities#21524639, array(2199-01-01 00:00:00) AS stockBatchShelfLifeEndDatetimes#21524640]
(2224) Project
Arguments: [product#21524386, plant#21524387, orderDateTime#21524388, productPlant#21524398, outboundUnit#21524415, roundedQuantitySum#21524637, stockDatetime#21524638, stockBatchQuantities#21524639, stockBatchShelfLifeEndDatetimes#21524640]
(2225) Project
Arguments: [product#21524386, plant#21524387, orderDateTime#21524388, productPlant#21524398, outboundUnit#21524415, stockDatetime#21524638, stockBatchQuantities#21524639, stockBatchShelfLifeEndDatetimes#21524640]
(2226) LogicalRelation
Arguments: parquet, [product#21524641, plant#21524642, demandChannel#21524643, demandStream#21524644, considerVariance#21524645, demandTimeBuckets#21524646, demandPointInTimeStart#21524647, demandPointInTimeEnd#21524648, demandPointInTime#21524649], false
(2227) Join
Arguments: LeftOuter, ((plant#21524642 <=> plant#21524387) AND (product#21524641 <=> product#21524386))
(2228) Project
Arguments: [product#21524386, plant#21524387, orderDateTime#21524388, productPlant#21524398, outboundUnit#21524415, stockDatetime#21524638, stockBatchQuantities#21524639, stockBatchShelfLifeEndDatetimes#21524640, product#21524641, plant#21524642, demandChannel#21524643, demandStream#21524644, considerVariance#21524645, demandTimeBuckets#21524646, demandPointInTimeStart#21524647, demandPointInTimeEnd#21524648, demandPointInTime#21524649, CASE WHEN isnotnull(product#21524641) THEN struct(demandChannel, demandChannel#21524643, demandStream, demandStream#21524644, considerVariance, considerVariance#21524645, demandTimeBuckets, demandTimeBuckets#21524646, demandPointInTimeStart, demandPointInTimeStart#21524647, demandPointInTimeEnd, demandPointInTimeEnd#21524648, demandPointInTime, demandPointInTime#21524649) 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#21524650]
(2229) Aggregate
Arguments: [product#21524386, plant#21524387, orderDateTime#21524388, productPlant#21524398, outboundUnit#21524415, stockDatetime#21524638, stockBatchQuantities#21524639, stockBatchShelfLifeEndDatetimes#21524640], [product#21524386, plant#21524387, orderDateTime#21524388, productPlant#21524398, outboundUnit#21524415, stockDatetime#21524638, stockBatchQuantities#21524639, stockBatchShelfLifeEndDatetimes#21524640, collect_list(rawDemands#21524650, 0, 0) AS rawDemands#21524651]
(2230) SubqueryAlias
Arguments: wl
(2231) LogicalRelation
Arguments: parquet, [systemId#21524652, internalUUID#21524653, id#21524654, displayId#21524655, name#21524656, category#21524657, companyCode#21524658, address#21524659, mainDistributionChain#21524660, mainPurchasingOrganization#21524661, validPurchasingOrganizations#21524662, productGroup#21524663], false
(2232) Repartition
Arguments: 25, true
(2233) Project
Arguments: [systemId#21524652, internalUUID#21524653, id#21524654, displayId#21524655, name#21524656, category#21524657, companyCode#21524658, address#21524659, mainDistributionChain#21524660, mainPurchasingOrganization#21524661, validPurchasingOrganizations#21524662, productGroup#21524663, address#21524659.timezone.code AS timezonecode#21524664]
(2234) Join
Arguments: LeftOuter, (plant#21524387 <=> internalUUID#21524653)
(2235) Project
Arguments: [product#21524386, plant#21524387, orderDateTime#21524388, productPlant#21524398, outboundUnit#21524415, stockDatetime#21524638, stockBatchQuantities#21524639, stockBatchShelfLifeEndDatetimes#21524640, rawDemands#21524651, systemId#21524652, internalUUID#21524653, id#21524654, displayId#21524655, name#21524656, category#21524657, companyCode#21524658, address#21524659, mainDistributionChain#21524660, mainPurchasingOrganization#21524661, validPurchasingOrganizations#21524662, productGroup#21524663, CASE WHEN isnotnull(timezonecode#21524664) THEN timezonecode#21524664 ELSE UTC END AS timezonecode#21524665]
(2236) Project
Arguments: [product#21524386, plant#21524387, orderDateTime#21524388, productPlant#21524398, outboundUnit#21524415, stockDatetime#21524638, stockBatchQuantities#21524639, stockBatchShelfLifeEndDatetimes#21524640, rawDemands#21524651, timezonecode#21524665]
(2237) DeserializeToObject
Arguments: createexternalrow(invoke(product#21524386.toString()), invoke(plant#21524387.toString()), static_invoke(DateTimeUtils.toJavaTimestamp(orderDateTime#21524388)), if (isnull(productPlant#21524398)) null else createexternalrow(invoke(productPlant#21524398.systemId.toString()), invoke(productPlant#21524398.internalUUID.toString()), if (isnull(productPlant#21524398.plant)) null else createexternalrow(invoke(productPlant#21524398.plant.internalRefUUID.toString()), invoke(productPlant#21524398.plant.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), if (isnull(productPlant#21524398.product)) null else createexternalrow(invoke(productPlant#21524398.product.internalRefUUID.toString()), invoke(productPlant#21524398.product.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(DateTimeUtils.toJavaDate(productPlant#21524398.blockedForReplenishmentStartingFrom)), if (isnull(productPlant#21524398.productionAspect)) null else createexternalrow(if (isnull(productPlant#21524398.productionAspect.productMovementPlants)) null else createexternalrow(if (isnull(productPlant#21524398.productionAspect.productMovementPlants.unitOfIssue)) null else createexternalrow(invoke(productPlant#21524398.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID.toString()), invoke(productPlant#21524398.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#21524398.productionAspect.productPlanningPlants)) null else createexternalrow(if (isnull(productPlant#21524398.productionAspect.productPlanningPlants.mrpType)) null else createexternalrow(invoke(productPlant#21524398.productionAspect.productPlanningPlants.mrpType.internalRefUUID.toString()), invoke(productPlant#21524398.productionAspect.productPlanningPlants.mrpType.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#21524398.productionAspect.productPlanningPlants.abcIndicator)) null else createexternalrow(invoke(productPlant#21524398.productionAspect.productPlanningPlants.abcIndicator.internalRefUUID.toString()), invoke(productPlant#21524398.productionAspect.productPlanningPlants.abcIndicator.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#21524398.productionAspect.productPlanningPlants.mrpController)) null else createexternalrow(invoke(productPlant#21524398.productionAspect.productPlanningPlants.mrpController.internalRefUUID.toString()), invoke(productPlant#21524398.productionAspect.productPlanningPlants.mrpController.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(java.lang.Double.valueOf(productPlant#21524398.productionAspect.productPlanningPlants.minimumLotSize)), if (isnull(productPlant#21524398.productionAspect.productPlanningPlants.logisticalRoundingProfile)) null else createexternalrow(invoke(productPlant#21524398.productionAspect.productPlanningPlants.logisticalRoundingProfile.internalRefUUID.toString()), invoke(productPlant#21524398.productionAspect.productPlanningPlants.logisticalRoundingProfile.logisticalRoundingProfile.toString()), StructField(internalRefUUID,StringType,true), StructField(logisticalRoundingProfile,StringType,true)), if (isnull(productPlant#21524398.productionAspect.productPlanningPlants.sourceOfSupplyCategory)) null else createexternalrow(invoke(productPlant#21524398.productionAspect.productPlanningPlants.sourceOfSupplyCategory.internalRefUUID.toString()), invoke(productPlant#21524398.productionAspect.productPlanningPlants.sourceOfSupplyCategory.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true), StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true), StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(minimumLotSize,DoubleType,true), StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true), StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true), StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)), if (isnull(productPlant#21524398.salesPlant)) null else createexternalrow(if (isnull(productPlant#21524398.salesPlant.loadingGroup)) null else createexternalrow(invoke(productPlant#21524398.salesPlant.loadingGroup.internalRefUUID.toString()), invoke(productPlant#21524398.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, 2680280), if (isnull(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 2680280))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 2680280).validFrom)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 2680280).validTo)), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 2680280).isListed)), StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true)), productPlant#21524398.listing, Some(class scala.collection.mutable.ArraySeq)), StructField(systemId,StringType,true), StructField(internalUUID,StringType,true), StructField(plant,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(product,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(blockedForReplenishmentStartingFrom,DateType,true), StructField(productionAspect,StructType(StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)),true), StructField(salesPlant,StructType(StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true), StructField(listing,ArrayType(StructType(StructField(validFrom,TimestampType,true),StructField(validTo,TimestampType,true),StructField(isListed,BooleanType,true)),true),true)), static_invoke(java.lang.Double.valueOf(outboundUnit#21524415)), static_invoke(DateTimeUtils.toJavaTimestamp(stockDatetime#21524638)), mapobjects(lambdavariable(MapObject, DoubleType, true, 2680281), static_invoke(java.lang.Double.valueOf(cast(lambdavariable(MapObject, DoubleType, true, 2680281) as double))), stockBatchQuantities#21524639, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, false, 2680282), assertnotnull(static_invoke(DateTimeUtils.toJavaTimestamp(cast(lambdavariable(MapObject, TimestampType, false, 2680282) as timestamp)))), stockBatchShelfLifeEndDatetimes#21524640, 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, 2680283), 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, 2680283))) 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, 2680283).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, 2680283).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, 2680283).considerVariance)), mapobjects(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 2680284), if (isnull(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 2680284))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 2680284).demandStartDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 2680284).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 2680284).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, 2680283).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, 2680283).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, 2680283).demandPointInTimeEnd)), mapobjects(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 2680285), if (isnull(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 2680285))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 2680285).demandDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 2680285).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, 2680285).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, 2680283).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#21524651, Some(class scala.collection.mutable.ArraySeq)), invoke(timezonecode#21524665.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),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)),true),StructField(salesPlant,StructType(StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(listing,ArrayType(StructType(StructField(validFrom,TimestampType,true),StructField(validTo,TimestampType,true),StructField(isListed,BooleanType,true)),true),true)),true), StructField(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#21519488: org.apache.spark.sql.Row
(2238) MapElements
Arguments: com.sap.s4hana.eureka.business.crporderquantitykpiservice.core.business.datasnapshot.DemandTransformatorImpl$$Lambda/0x00000008021e99e0@10fe4db7, interface org.apache.spark.sql.Row, [StructField(product,StringType,true), StructField(plant,StringType,true), StructField(orderDateTime,TimestampType,true), StructField(productPlant,StructType(StructField(systemId,StringType,true),StructField(internalUUID,StringType,true),StructField(plant,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(product,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(blockedForReplenishmentStartingFrom,DateType,true),StructField(productionAspect,StructType(StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)),true),StructField(salesPlant,StructType(StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(listing,ArrayType(StructType(StructField(validFrom,TimestampType,true),StructField(validTo,TimestampType,true),StructField(isListed,BooleanType,true)),true),true)),true), StructField(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#21519493: org.apache.spark.sql.Row
(2239) 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#21524666, 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#21524667, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(2))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680270), assertnotnull(if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680271), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680271), DoubleType, ObjectType(class java.lang.Double)).doubleValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680272), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680272), DoubleType, ObjectType(class java.lang.Double)).doubleValue()), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680273), assertnotnull(static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680273), TimestampType, ObjectType(class java.sql.Timestamp))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680274), assertnotnull(static_invoke(UTF8String.fromString(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680274), StringType, ObjectType(class java.lang.String))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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, 2680275), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680275), IntegerType, ObjectType(class java.lang.Integer)).intValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680270), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(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#21524668, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(3))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680276), assertnotnull(if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680277), assertnotnull(static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680277), TimestampType, ObjectType(class java.sql.Timestamp))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680278), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680278), DoubleType, ObjectType(class java.lang.Double)).doubleValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680279), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680279), DoubleType, ObjectType(class java.lang.Double)).doubleValue()), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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, 2680276), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(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#21524669]
(2240) Join
Arguments: LeftOuter, ((plant#21524667 <=> plant#21524132) AND (product#21524666 <=> product#21524131))
(2241) Project
Arguments: [product#21524131, plant#21524132, orderDateTime#21524133, productPlant#21524143, outboundUnit#21524160, stockDatetime#21524383, stockBatchQuantities#21524384, stockBatchShelfLifeEndDatetimes#21524385, plant#21524667, dayBucketDemands#21524668, pointInTimeDemands#21524669]
(2242) Project
Arguments: [product#21524131, plant#21524132, orderDateTime#21524133, productPlant#21524143, outboundUnit#21524160, stockDatetime#21524383, stockBatchQuantities#21524384, stockBatchShelfLifeEndDatetimes#21524385, dayBucketDemands#21524668, pointInTimeDemands#21524669]
(2243) LogicalRelation
Arguments: parquet, [systemId#21524670, internalUUID#21524671, id#21524672, displayId#21524673, supplier#21524674, type#21524675, status#21524676, isMarkedForDeletion#21524677, items#21524678], false
(2244) Repartition
Arguments: 25, true
(2245) Generate
Arguments: explode(items#21524678), false, [item#21524679]
(2246) Project
Arguments: [id#21524672, internalUUID#21524671, isMarkedForDeletion#21524677, supplier#21524674.internalRefUUID AS supplierUuid#21524680, item#21524679]
(2247) Filter
Arguments: (((NOT isMarkedForDeletion#21524677 AND NOT item#21524679.deletionIndicator) AND NOT item#21524679.completeIndicator) AND NOT item#21524679.returnIndicator)
(2248) Project
Arguments: [id#21524672, internalUUID#21524671, supplierUuid#21524680, item#21524679.plant.internalRefUUID AS plant#21524681, item#21524679.product.internalRefUUID AS product#21524682, item#21524679.storageLocation.internalRefUUID AS storageLocUuid#21524683, item#21524679.quantityUnit.code AS quantityUom#21524684, item#21524679.quantityUnit.internalRefUUID AS quantityUomUuid#21524685, item#21524679.quantityNumerator AS quantityNumerator#21524686, item#21524679.quantityDenominator AS quantityDenominator#21524687, item#21524679.scheduleLines AS scheduleLines#21524688, item#21524679.confirmations AS confirmations#21524689]
(2249) Join
Arguments: Inner, ((product#21524131 <=> product#21524682) AND (plant#21524132 <=> supplierUuid#21524680))
(2250) Project
Arguments: [id#21524672, internalUUID#21524671, supplierUuid#21524680, plant#21524681, product#21524682, storageLocUuid#21524683, quantityUom#21524684, quantityUomUuid#21524685, quantityNumerator#21524686, quantityDenominator#21524687, scheduleLines#21524688, confirmations#21524689, stockDatetime#21524383, plant#21524132]
(2251) Project
Arguments: [id#21524672, internalUUID#21524671, supplierUuid#21524680, product#21524682, storageLocUuid#21524683, quantityUom#21524684, quantityUomUuid#21524685, quantityNumerator#21524686, quantityDenominator#21524687, scheduleLines#21524688, confirmations#21524689, stockDatetime#21524383, plant#21524132]
(2252) Project
Arguments: [id#21524672, internalUUID#21524671, supplierUuid#21524680, product#21524682, storageLocUuid#21524683, quantityUom#21524684, quantityUomUuid#21524685, quantityNumerator#21524686, quantityDenominator#21524687, scheduleLines#21524688, confirmations#21524689, stockDatetime#21524383, plant#21524132, filter(transform(filter(transform(scheduleLines#21524688, lambdafunction(struct(openQty, (greatest((lambda x_1556#21521466.quantity - coalesce(lambda x_1556#21521466.deliveredQuantity, 0.0)), 0.0) * -1.0), availabilityDatetime, coalesce(lambda x_1556#21521466.productAvailabilityDateTime, lambda x_1556#21521466.deliveryAt)), lambda x_1556#21521466, false)), lambdafunction((lambda x_1557#21521467.availabilityDatetime < stockDatetime#21524383), lambda x_1557#21521467, false)), lambdafunction(struct(documentId, id#21524672, documentUuid, internalUUID#21524671, openQty, lambda x_1558#21521468.openQty, openQtyInBaseUnit, ((lambda x_1558#21521468.openQty * quantityNumerator#21524686) / quantityDenominator#21524687), qtyUom, quantityUom#21524684, qtyUomUuid, quantityUomUuid#21524685, availabilityDatetime, lambda x_1558#21521468.availabilityDatetime, shelfLifeEndDatetime, 2199-01-01 00:00:00), lambda x_1558#21521468, false)), lambdafunction(NOT (lambda x_1559#21521469.openQty = 0.0), lambda x_1559#21521469, false)) AS openGoodsMovements#21524690]
(2253) Aggregate
Arguments: [product#21524682, plant#21524132], [product#21524682, plant#21524132, flatten(collect_list(openGoodsMovements#21524690, 0, 0)) AS openGoodsMovements#21524691]
(2254) Filter
Arguments: (array_size(openGoodsMovements#21524691) > 0)
(2255) Union
Arguments: false, false
(2256) Aggregate
Arguments: [product#21524119, plant#21524118], [product#21524119, plant#21524118, flatten(collect_list(openGoodsMovements#21524130, 0, 0)) AS openGoodsMovements#21524692]
(2257) Join
Arguments: LeftOuter, ((product#21522970 = product#21524119) AND (plant#21522971 = plant#21524118))
(2258) Project
Arguments: [product#21522970, plant#21522971, orderDateTime#21522972, productPlant#21522982, outboundUnit#21522999, stockDatetime#21523222, stockBatchQuantities#21523223, stockBatchShelfLifeEndDatetimes#21523224, dayBucketDemands#21523507, pointInTimeDemands#21523508, openGoodsMovements#21524692]
(2259) Project
Arguments: [product#21522970, plant#21522971, orderDateTime#21522972, productPlant#21522982, outboundUnit#21522999, stockDatetime#21523222, stockBatchQuantities#21523223, stockBatchShelfLifeEndDatetimes#21523224, dayBucketDemands#21523507, pointInTimeDemands#21523508, coalesce(openGoodsMovements#21524692.openQtyInBaseUnit, cast(array() as array<double>)) AS openGoodsMovementQuantities#21524693, coalesce(openGoodsMovements#21524692.availabilityDatetime, cast(array() as array<timestamp>)) AS openGoodsMovementAvailabilityDatetimes#21524694, coalesce(openGoodsMovements#21524692.shelfLifeEndDatetime, cast(array() as array<timestamp>)) AS openGoodsMovementShelfLifeEndDatetimes#21524695]
(2260) Project
Arguments: [product#21522970, plant#21522971, orderDateTime#21522972, productPlant#21522982, outboundUnit#21522999, stockDatetime#21523222, stockBatchQuantities#21523223, stockBatchShelfLifeEndDatetimes#21523224, dayBucketDemands#21523507, pointInTimeDemands#21523508, openGoodsMovementQuantities#21524693, openGoodsMovementAvailabilityDatetimes#21524694, openGoodsMovementShelfLifeEndDatetimes#21524695, 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#21524696]
(2261) Project
Arguments: [product#21522970, plant#21522971, orderDateTime#21522972, productPlant#21522982, outboundUnit#21522999, stockDatetime#21523222, stockBatchQuantities#21523223, stockBatchShelfLifeEndDatetimes#21523224, dayBucketDemands#21523507, pointInTimeDemands#21523508, openGoodsMovementQuantities#21524693, openGoodsMovementAvailabilityDatetimes#21524694, openGoodsMovementShelfLifeEndDatetimes#21524695, configuration#21524696, productPlant#21522982.listing AS listing#21522912]
(2262) Project
Arguments: [product#21522970, plant#21522971, orderDateTime#21522972, productPlant#21522982, outboundUnit#21522999, stockDatetime#21523222, stockBatchQuantities#21523223, stockBatchShelfLifeEndDatetimes#21523224, dayBucketDemands#21523507, pointInTimeDemands#21523508, openGoodsMovementQuantities#21524693, openGoodsMovementAvailabilityDatetimes#21524694, openGoodsMovementShelfLifeEndDatetimes#21524695, configuration#21524696, CASE WHEN isnotnull(listing#21522912) THEN listing#21522912 ELSE cast(array() as array<struct<validFrom:timestamp,validTo:timestamp,isListed:boolean>>) END AS listing#21522914]
(2263) Project
Arguments: [product#21522970, plant#21522971, orderDateTime#21522972, productPlant#21522982, outboundUnit#21522999, stockDatetime#21523222, stockBatchQuantities#21523223, stockBatchShelfLifeEndDatetimes#21523224, dayBucketDemands#21523507, pointInTimeDemands#21523508, openGoodsMovementQuantities#21524693, openGoodsMovementAvailabilityDatetimes#21524694, openGoodsMovementShelfLifeEndDatetimes#21524695, configuration#21524696, filter(listing#21522914, lambdafunction((lambda listing#21522916.isListed = true), lambda listing#21522916, false)) AS listing#21522915]
(2264) Project
Arguments: [product#21522970, plant#21522971, orderDateTime#21522972, productPlant#21522982, outboundUnit#21522999, stockDatetime#21523222, stockBatchQuantities#21523223, stockBatchShelfLifeEndDatetimes#21523224, dayBucketDemands#21523507, pointInTimeDemands#21523508, openGoodsMovementQuantities#21524693, openGoodsMovementAvailabilityDatetimes#21524694, openGoodsMovementShelfLifeEndDatetimes#21524695, configuration#21524696, array_sort(listing#21522915, lambdafunction(if ((isnull(lambda left#21522918) AND isnull(lambda right#21522919))) 0 else if (isnull(lambda left#21522918)) 1 else if (isnull(lambda right#21522919)) -1 else if ((lambda left#21522918 < lambda right#21522919)) -1 else if ((lambda left#21522918 > lambda right#21522919)) 1 else 0, lambda left#21522918, lambda right#21522919, false), false) AS listing#21522917]
(2265) DeserializeToObject
Arguments: createexternalrow(invoke(product#21522970.toString()), invoke(plant#21522971.toString()), static_invoke(DateTimeUtils.toJavaTimestamp(orderDateTime#21522972)), if (isnull(productPlant#21522982)) null else createexternalrow(invoke(productPlant#21522982.systemId.toString()), invoke(productPlant#21522982.internalUUID.toString()), if (isnull(productPlant#21522982.plant)) null else createexternalrow(invoke(productPlant#21522982.plant.internalRefUUID.toString()), invoke(productPlant#21522982.plant.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), if (isnull(productPlant#21522982.product)) null else createexternalrow(invoke(productPlant#21522982.product.internalRefUUID.toString()), invoke(productPlant#21522982.product.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(DateTimeUtils.toJavaDate(productPlant#21522982.blockedForReplenishmentStartingFrom)), if (isnull(productPlant#21522982.productionAspect)) null else createexternalrow(if (isnull(productPlant#21522982.productionAspect.productMovementPlants)) null else createexternalrow(if (isnull(productPlant#21522982.productionAspect.productMovementPlants.unitOfIssue)) null else createexternalrow(invoke(productPlant#21522982.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID.toString()), invoke(productPlant#21522982.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#21522982.productionAspect.productPlanningPlants)) null else createexternalrow(if (isnull(productPlant#21522982.productionAspect.productPlanningPlants.mrpType)) null else createexternalrow(invoke(productPlant#21522982.productionAspect.productPlanningPlants.mrpType.internalRefUUID.toString()), invoke(productPlant#21522982.productionAspect.productPlanningPlants.mrpType.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#21522982.productionAspect.productPlanningPlants.abcIndicator)) null else createexternalrow(invoke(productPlant#21522982.productionAspect.productPlanningPlants.abcIndicator.internalRefUUID.toString()), invoke(productPlant#21522982.productionAspect.productPlanningPlants.abcIndicator.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#21522982.productionAspect.productPlanningPlants.mrpController)) null else createexternalrow(invoke(productPlant#21522982.productionAspect.productPlanningPlants.mrpController.internalRefUUID.toString()), invoke(productPlant#21522982.productionAspect.productPlanningPlants.mrpController.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(java.lang.Double.valueOf(productPlant#21522982.productionAspect.productPlanningPlants.minimumLotSize)), if (isnull(productPlant#21522982.productionAspect.productPlanningPlants.logisticalRoundingProfile)) null else createexternalrow(invoke(productPlant#21522982.productionAspect.productPlanningPlants.logisticalRoundingProfile.internalRefUUID.toString()), invoke(productPlant#21522982.productionAspect.productPlanningPlants.logisticalRoundingProfile.logisticalRoundingProfile.toString()), StructField(internalRefUUID,StringType,true), StructField(logisticalRoundingProfile,StringType,true)), if (isnull(productPlant#21522982.productionAspect.productPlanningPlants.sourceOfSupplyCategory)) null else createexternalrow(invoke(productPlant#21522982.productionAspect.productPlanningPlants.sourceOfSupplyCategory.internalRefUUID.toString()), invoke(productPlant#21522982.productionAspect.productPlanningPlants.sourceOfSupplyCategory.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true), StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true), StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(minimumLotSize,DoubleType,true), StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true), StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true), StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)), if (isnull(productPlant#21522982.salesPlant)) null else createexternalrow(if (isnull(productPlant#21522982.salesPlant.loadingGroup)) null else createexternalrow(invoke(productPlant#21522982.salesPlant.loadingGroup.internalRefUUID.toString()), invoke(productPlant#21522982.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, 2680983), if (isnull(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 2680983))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 2680983).validFrom)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 2680983).validTo)), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 2680983).isListed)), StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true)), productPlant#21522982.listing, Some(class scala.collection.mutable.ArraySeq)), StructField(systemId,StringType,true), StructField(internalUUID,StringType,true), StructField(plant,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(product,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(blockedForReplenishmentStartingFrom,DateType,true), StructField(productionAspect,StructType(StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)),true), StructField(salesPlant,StructType(StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true), StructField(listing,ArrayType(StructType(StructField(validFrom,TimestampType,true),StructField(validTo,TimestampType,true),StructField(isListed,BooleanType,true)),true),true)), static_invoke(java.lang.Double.valueOf(outboundUnit#21522999)), static_invoke(DateTimeUtils.toJavaTimestamp(stockDatetime#21523222)), mapobjects(lambdavariable(MapObject, DoubleType, true, 2680984), static_invoke(java.lang.Double.valueOf(cast(lambdavariable(MapObject, DoubleType, true, 2680984) as double))), stockBatchQuantities#21523223, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, false, 2680985), assertnotnull(static_invoke(DateTimeUtils.toJavaTimestamp(cast(lambdavariable(MapObject, TimestampType, false, 2680985) as timestamp)))), stockBatchShelfLifeEndDatetimes#21523224, 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, 2680986), 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, 2680986))) 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, 2680986).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, 2680986).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, 2680986).considerVariance)), mapobjects(lambdavariable(MapObject, DoubleType, false, 2680987), assertnotnull(static_invoke(java.lang.Double.valueOf(cast(lambdavariable(MapObject, DoubleType, false, 2680987) 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, 2680986).demandValues, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, DoubleType, true, 2680988), static_invoke(java.lang.Double.valueOf(cast(lambdavariable(MapObject, DoubleType, true, 2680988) 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, 2680986).demandVariances, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, false, 2680989), assertnotnull(static_invoke(DateTimeUtils.toJavaTimestamp(cast(lambdavariable(MapObject, TimestampType, false, 2680989) 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, 2680986).anchorDatetimes, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, StringType, false, 2680990), assertnotnull(invoke(cast(lambdavariable(MapObject, StringType, false, 2680990) 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, 2680986).anchorWeekdays, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, IntegerType, false, 2680991), assertnotnull(static_invoke(java.lang.Integer.valueOf(cast(lambdavariable(MapObject, IntegerType, false, 2680991) 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, 2680986).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#21523507, 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, 2680992), 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, 2680992))) 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, 2680992).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, 2680992).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, 2680992).considerVariance)), mapobjects(lambdavariable(MapObject, TimestampType, false, 2680993), assertnotnull(static_invoke(DateTimeUtils.toJavaTimestamp(cast(lambdavariable(MapObject, TimestampType, false, 2680993) 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, 2680992).demandDatetimes, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, DoubleType, false, 2680994), assertnotnull(static_invoke(java.lang.Double.valueOf(cast(lambdavariable(MapObject, DoubleType, false, 2680994) 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, 2680992).demandValues, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, DoubleType, true, 2680995), static_invoke(java.lang.Double.valueOf(cast(lambdavariable(MapObject, DoubleType, true, 2680995) 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, 2680992).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, 2680992).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, 2680992).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#21523508, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, DoubleType, true, 2680996), static_invoke(java.lang.Double.valueOf(cast(lambdavariable(MapObject, DoubleType, true, 2680996) as double))), openGoodsMovementQuantities#21524693, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, true, 2680997), static_invoke(DateTimeUtils.toJavaTimestamp(cast(lambdavariable(MapObject, TimestampType, true, 2680997) as timestamp))), openGoodsMovementAvailabilityDatetimes#21524694, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, false, 2680998), assertnotnull(static_invoke(DateTimeUtils.toJavaTimestamp(cast(lambdavariable(MapObject, TimestampType, false, 2680998) as timestamp)))), openGoodsMovementShelfLifeEndDatetimes#21524695, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, StructField(configurationValidityDatetime,TimestampType,false), StructField(configurationName,StringType,false), StructField(configurationValue,StringType,false), false, 2680999), assertnotnull(if (isnull(lambdavariable(MapObject, StructField(configurationValidityDatetime,TimestampType,false), StructField(configurationName,StringType,false), StructField(configurationValue,StringType,false), false, 2680999))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(configurationValidityDatetime,TimestampType,false), StructField(configurationName,StringType,false), StructField(configurationValue,StringType,false), false, 2680999).configurationValidityDatetime)), invoke(lambdavariable(MapObject, StructField(configurationValidityDatetime,TimestampType,false), StructField(configurationName,StringType,false), StructField(configurationValue,StringType,false), false, 2680999).configurationName.toString()), invoke(lambdavariable(MapObject, StructField(configurationValidityDatetime,TimestampType,false), StructField(configurationName,StringType,false), StructField(configurationValue,StringType,false), false, 2680999).configurationValue.toString()), StructField(configurationValidityDatetime,TimestampType,false), StructField(configurationName,StringType,false), StructField(configurationValue,StringType,false))), configuration#21524696, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 2681000), if (isnull(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 2681000))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 2681000).validFrom)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 2681000).validTo)), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, 2681000).isListed)), StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true)), listing#21522917, Some(class scala.collection.mutable.ArraySeq)), StructField(product,StringType,true), StructField(plant,StringType,true), StructField(orderDateTime,TimestampType,true), StructField(productPlant,StructType(StructField(systemId,StringType,true),StructField(internalUUID,StringType,true),StructField(plant,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(product,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(blockedForReplenishmentStartingFrom,DateType,true),StructField(productionAspect,StructType(StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)),true),StructField(salesPlant,StructType(StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(listing,ArrayType(StructType(StructField(validFrom,TimestampType,true),StructField(validTo,TimestampType,true),StructField(isListed,BooleanType,true)),true),true)),true), StructField(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#21522950: org.apache.spark.sql.Row
(2266) MapElements
Arguments: com.sap.s4hana.eureka.business.crporderquantitykpiservice.core.business.datasnapshot.ListingSnapshotEnhancementImpl$$Lambda/0x0000000801fa9788@49eab929, interface org.apache.spark.sql.Row, [StructField(product,StringType,true), StructField(plant,StringType,true), StructField(orderDateTime,TimestampType,true), StructField(productPlant,StructType(StructField(systemId,StringType,true),StructField(internalUUID,StringType,true),StructField(plant,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(product,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(blockedForReplenishmentStartingFrom,DateType,true),StructField(productionAspect,StructType(StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)),true),StructField(salesPlant,StructType(StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(listing,ArrayType(StructType(StructField(validFrom,TimestampType,true),StructField(validTo,TimestampType,true),StructField(isListed,BooleanType,true)),true),true)),true), StructField(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#21522957: org.apache.spark.sql.Row
(2267) 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#21522964, 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#21522965, assertnotnull(mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680979), static_invoke(UTF8String.fromString(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680979), 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#21522966, assertnotnull(mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680980), static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680980), 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#21522967, assertnotnull(mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680981), static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680981), 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#21522968, 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, 2680982), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2680982), 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#21522969]
(2268) Join
Arguments: LeftOuter, ((product#21517975 = product#21522964) AND (plant#21517976 = plant#21522965))
(2269) Project
Arguments: [product#21517975, plant#21517976, orderDateTime#21517977, productPlant#21517989, outboundUnit#21518060, stockDatetime#21518396, stockBatchQuantities#21518397, stockBatchShelfLifeEndDatetimes#21518398, dayBucketDemands#21519500, pointInTimeDemands#21519501, openGoodsMovementQuantities#21522670, openGoodsMovementAvailabilityDatetimes#21522671, openGoodsMovementShelfLifeEndDatetimes#21522672, configuration#21522773, timeDependentSettingsName#21522966, timeDependentSettingsStartDatetime#21522967, timeDependentSettingsEndDatetime#21522968, timeDependentSettingsValue#21522969]
(2270) Project
Arguments: [product#21517975, plant#21517976, orderDateTime#21517977, productPlant#21517989, outboundUnit#21518060, stockDatetime#21518396, stockBatchQuantities#21518397, stockBatchShelfLifeEndDatetimes#21518398, dayBucketDemands#21519500, pointInTimeDemands#21519501, openGoodsMovementQuantities#21522670, openGoodsMovementAvailabilityDatetimes#21522671, openGoodsMovementShelfLifeEndDatetimes#21522672, configuration#21522773, CASE WHEN isnotnull(timeDependentSettingsName#21522966) THEN timeDependentSettingsName#21522966 ELSE cast(array() as array<string>) END AS timeDependentSettingsName#21524823, timeDependentSettingsStartDatetime#21522967, timeDependentSettingsEndDatetime#21522968, timeDependentSettingsValue#21522969]
(2271) Project
Arguments: [product#21517975, plant#21517976, orderDateTime#21517977, productPlant#21517989, outboundUnit#21518060, stockDatetime#21518396, stockBatchQuantities#21518397, stockBatchShelfLifeEndDatetimes#21518398, dayBucketDemands#21519500, pointInTimeDemands#21519501, openGoodsMovementQuantities#21522670, openGoodsMovementAvailabilityDatetimes#21522671, openGoodsMovementShelfLifeEndDatetimes#21522672, configuration#21522773, timeDependentSettingsName#21524823, CASE WHEN isnotnull(timeDependentSettingsStartDatetime#21522967) THEN timeDependentSettingsStartDatetime#21522967 ELSE cast(array() as array<timestamp>) END AS timeDependentSettingsStartDatetime#21524824, timeDependentSettingsEndDatetime#21522968, timeDependentSettingsValue#21522969]
(2272) Project
Arguments: [product#21517975, plant#21517976, orderDateTime#21517977, productPlant#21517989, outboundUnit#21518060, stockDatetime#21518396, stockBatchQuantities#21518397, stockBatchShelfLifeEndDatetimes#21518398, dayBucketDemands#21519500, pointInTimeDemands#21519501, openGoodsMovementQuantities#21522670, openGoodsMovementAvailabilityDatetimes#21522671, openGoodsMovementShelfLifeEndDatetimes#21522672, configuration#21522773, timeDependentSettingsName#21524823, timeDependentSettingsStartDatetime#21524824, CASE WHEN isnotnull(timeDependentSettingsEndDatetime#21522968) THEN timeDependentSettingsEndDatetime#21522968 ELSE cast(array() as array<timestamp>) END AS timeDependentSettingsEndDatetime#21524825, timeDependentSettingsValue#21522969]
(2273) Project
Arguments: [product#21517975, plant#21517976, orderDateTime#21517977, productPlant#21517989, outboundUnit#21518060, stockDatetime#21518396, stockBatchQuantities#21518397, stockBatchShelfLifeEndDatetimes#21518398, dayBucketDemands#21519500, pointInTimeDemands#21519501, openGoodsMovementQuantities#21522670, openGoodsMovementAvailabilityDatetimes#21522671, openGoodsMovementShelfLifeEndDatetimes#21522672, configuration#21522773, timeDependentSettingsName#21524823, timeDependentSettingsStartDatetime#21524824, timeDependentSettingsEndDatetime#21524825, CASE WHEN isnotnull(timeDependentSettingsValue#21522969) THEN timeDependentSettingsValue#21522969 ELSE cast(array() as array<double>) END AS timeDependentSettingsValue#21524826]
(2274) Project
Arguments: [product#21517975, plant#21517976, orderDateTime#21517977, outboundUnit#21518060, stockDatetime#21518396, stockBatchQuantities#21518397, stockBatchShelfLifeEndDatetimes#21518398, dayBucketDemands#21519500, pointInTimeDemands#21519501, openGoodsMovementQuantities#21522670, openGoodsMovementAvailabilityDatetimes#21522671, openGoodsMovementShelfLifeEndDatetimes#21522672, configuration#21522773, timeDependentSettingsName#21524823, timeDependentSettingsStartDatetime#21524824, timeDependentSettingsEndDatetime#21524825, timeDependentSettingsValue#21524826]
(2275) Project
Arguments: [product#21517975, plant#21517976, outboundUnit#21518060, stockDatetime#21518396, stockBatchQuantities#21518397, stockBatchShelfLifeEndDatetimes#21518398, dayBucketDemands#21519500, pointInTimeDemands#21519501, openGoodsMovementQuantities#21522670, openGoodsMovementAvailabilityDatetimes#21522671, openGoodsMovementShelfLifeEndDatetimes#21522672, configuration#21522773, timeDependentSettingsName#21524823, timeDependentSettingsStartDatetime#21524824, timeDependentSettingsEndDatetime#21524825, timeDependentSettingsValue#21524826]