== Physical Plan ==
Execute SaveIntoDataSourceCommand (1)
+- SaveIntoDataSourceCommand (2)
+- Project (196)
+- Project (195)
+- Join (194)
:- Union (144)
: :- Project (51)
: : +- Filter (50)
: : +- Union (49)
: : :- Project (34)
: : : +- Project (33)
: : : +- Project (32)
: : : +- Project (31)
: : : +- Project (30)
: : : +- Project (29)
: : : +- Join (28)
: : : :- Project (5)
: : : : +- RepartitionByExpression (4)
: : : : +- LogicalRDD (3)
: : : +- Union (27)
: : : :- Project (18)
: : : : +- Project (17)
: : : : +- Join (16)
: : : : :- Deduplicate (13)
: : : : : +- Project (12)
: : : : : +- Join (11)
: : : : : :- Project (8)
: : : : : : +- RepartitionByExpression (7)
: : : : : : +- LogicalRDD (6)
: : : : : +- Project (10)
: : : : : +- LogicalRDD (9)
: : : : +- Project (15)
: : : : +- LogicalRDD (14)
: : : +- Project (26)
: : : +- Project (25)
: : : +- Join (24)
: : : :- Project (21)
: : : : +- RepartitionByExpression (20)
: : : : +- LogicalRDD (19)
: : : +- Project (23)
: : : +- LogicalRDD (22)
: : +- Project (48)
: : +- Project (47)
: : +- Project (46)
: : +- Join (45)
: : :- Deduplicate (42)
: : : +- Project (41)
: : : +- Join (40)
: : : :- Project (37)
: : : : +- RepartitionByExpression (36)
: : : : +- LogicalRDD (35)
: : : +- Project (39)
: : : +- LogicalRDD (38)
: : +- Project (44)
: : +- LogicalRDD (43)
: +- Project (143)
: +- Deduplicate (142)
: +- Project (141)
: +- Join (140)
: :- Project (88)
: : +- Project (87)
: : +- Union (86)
: : :- Project (60)
: : : +- Project (59)
: : : +- Project (58)
: : : +- Project (57)
: : : +- Project (56)
: : : +- Project (55)
: : : +- Generate (54)
: : : +- SerializeFromObject (53)
: : : +- ExternalRDD (52)
: : :- Project (72)
: : : +- Project (71)
: : : +- Project (70)
: : : +- Project (69)
: : : +- Project (68)
: : : +- Project (67)
: : : +- Project (66)
: : : +- Generate (65)
: : : +- Project (64)
: : : +- Generate (63)
: : : +- SerializeFromObject (62)
: : : +- ExternalRDD (61)
: : +- Project (85)
: : +- Project (84)
: : +- Project (83)
: : +- Project (82)
: : +- Project (81)
: : +- Project (80)
: : +- Project (79)
: : +- Project (78)
: : +- Generate (77)
: : +- Project (76)
: : +- Generate (75)
: : +- SerializeFromObject (74)
: : +- ExternalRDD (73)
: +- Deduplicate (139)
: +- Project (138)
: +- Project (137)
: +- Filter (136)
: +- Union (135)
: :- Project (120)
: : +- Project (119)
: : +- Project (118)
: : +- Project (117)
: : +- Project (116)
: : +- Project (115)
: : +- Join (114)
: : :- Project (91)
: : : +- RepartitionByExpression (90)
: : : +- LogicalRDD (89)
: : +- Union (113)
: : :- Project (104)
: : : +- Project (103)
: : : +- Join (102)
: : : :- Deduplicate (99)
: : : : +- Project (98)
: : : : +- Join (97)
: : : : :- Project (94)
: : : : : +- RepartitionByExpression (93)
: : : : : +- LogicalRDD (92)
: : : : +- Project (96)
: : : : +- LogicalRDD (95)
: : : +- Project (101)
: : : +- LogicalRDD (100)
: : +- Project (112)
: : +- Project (111)
: : +- Join (110)
: : :- Project (107)
: : : +- RepartitionByExpression (106)
: : : +- LogicalRDD (105)
: : +- Project (109)
: : +- LogicalRDD (108)
: +- Project (134)
: +- Project (133)
: +- Project (132)
: +- Join (131)
: :- Deduplicate (128)
: : +- Project (127)
: : +- Join (126)
: : :- Project (123)
: : : +- RepartitionByExpression (122)
: : : +- LogicalRDD (121)
: : +- Project (125)
: : +- LogicalRDD (124)
: +- Project (130)
: +- LogicalRDD (129)
+- Aggregate (193)
+- Project (192)
+- Union (191)
:- Project (176)
: +- Project (175)
: +- Project (174)
: +- Project (173)
: +- Project (172)
: +- Project (171)
: +- Join (170)
: :- Project (147)
: : +- RepartitionByExpression (146)
: : +- LogicalRDD (145)
: +- Union (169)
: :- Project (160)
: : +- Project (159)
: : +- Join (158)
: : :- Deduplicate (155)
: : : +- Project (154)
: : : +- Join (153)
: : : :- Project (150)
: : : : +- RepartitionByExpression (149)
: : : : +- LogicalRDD (148)
: : : +- Project (152)
: : : +- LogicalRDD (151)
: : +- Project (157)
: : +- LogicalRDD (156)
: +- Project (168)
: +- Project (167)
: +- Join (166)
: :- Project (163)
: : +- RepartitionByExpression (162)
: : +- LogicalRDD (161)
: +- Project (165)
: +- LogicalRDD (164)
+- Project (190)
+- Project (189)
+- Project (188)
+- Join (187)
:- Deduplicate (184)
: +- Project (183)
: +- Join (182)
: :- Project (179)
: : +- RepartitionByExpression (178)
: : +- LogicalRDD (177)
: +- Project (181)
: +- LogicalRDD (180)
+- Project (186)
+- LogicalRDD (185)
(1) Execute SaveIntoDataSourceCommand
Output: []
(2) SaveIntoDataSourceCommand
Arguments: org.apache.spark.sql.delta.sources.DeltaDataSource@372a0720, [path=hdlfs://7da5304c-1f57-47fa-b75a-0f0b4349c280.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-quantity-kpi-service/out/kpi-curve-update/10000000004/stream-10000000004-1], Append
(3) LogicalRDD
Arguments: [shardId#445, worklistShardItemId#446L, version#447, product#448, plant#449, periodStart#450, periodEnd#451, qty#452], false
(4) RepartitionByExpression
Arguments: [product#448, plant#449], 37
(5) Project
Arguments: [shardId#445, worklistShardItemId#446L, version#447, product#448, plant#449, qty#452]
(6) LogicalRDD
Arguments: [shardId#19003, worklistShardItemId#19004L, version#19005, product#19006, plant#19007, periodStart#19008, periodEnd#19009, qty#19010], false
(7) RepartitionByExpression
Arguments: [product#19006, plant#19007], 37
(8) Project
Arguments: [shardId#19003, worklistShardItemId#19004L, version#19005, product#19006, plant#19007, qty#19010]
(9) LogicalRDD
Arguments: [shardId#18758, worklistShardItemId#18759L, qty#18760, demandChannel#18761, demandStream#18762, kpis#18763], false
(10) Project
Arguments: [shardId#18758 AS cachedShardId#18764, worklistShardItemId#18759L AS cachedWorklistShardItemId#18765L, qty#18760 AS cachedQty#18766, demandChannel#18761, demandStream#18762, kpis#18763 AS cachedKpis#18767]
(11) Join
Arguments: Inner, (((worklistShardItemId#19004L = cachedWorklistShardItemId#18765L) AND (shardId#19003 = cachedShardId#18764)) AND ((qty#19010 = cachedQty#18766) OR isnull(qty#19010)))
(12) Project
Arguments: [shardId#19003, worklistShardItemId#19004L, version#19005, product#19006, plant#19007]
(13) Deduplicate
Arguments: [plant#19007, shardId#19003, version#19005, worklistShardItemId#19004L, product#19006]
(14) LogicalRDD
Arguments: [shardId#18768, worklistShardItemId#18769L, qty#18770, demandChannel#18771, demandStream#18772, kpis#18773], false
(15) Project
Arguments: [shardId#18768 AS cachedShardId#18774, worklistShardItemId#18769L AS cachedWorklistShardItemId#18775L, qty#18770 AS cachedQty#18776, demandChannel#18771, demandStream#18772, kpis#18773 AS cachedKpis#18777]
(16) Join
Arguments: Inner, ((worklistShardItemId#19004L = cachedWorklistShardItemId#18775L) AND (shardId#19003 = cachedShardId#18774))
(17) Project
Arguments: [shardId#19003, worklistShardItemId#19004L, version#19005, product#19006, plant#19007, cachedQty#18776 AS qty#18778, demandChannel#18771, demandStream#18772, cachedKpis#18777 AS kpis#18779]
(18) Project
Arguments: [shardId#19003, worklistShardItemId#19004L, version#19005, product#19006, plant#19007, qty#18778]
(19) LogicalRDD
Arguments: [shardId#18985, worklistShardItemId#18986L, version#18987, product#18988, plant#18989, periodStart#18990, periodEnd#18991, qty#18992], false
(20) RepartitionByExpression
Arguments: [product#18988, plant#18989], 37
(21) Project
Arguments: [shardId#18985, worklistShardItemId#18986L, version#18987, product#18988, plant#18989, qty#18992]
(22) LogicalRDD
Arguments: [shardId#18993, worklistShardItemId#18994L, qty#18995, demandChannel#18996, demandStream#18997, kpis#18998], false
(23) Project
Arguments: [shardId#18993 AS cachedShardId#18999, worklistShardItemId#18994L AS cachedWorklistShardItemId#19000L, qty#18995 AS cachedQty#19001, demandChannel#18996, demandStream#18997, kpis#18998 AS cachedKpis#19002]
(24) Join
Arguments: Inner, (((worklistShardItemId#18986L = cachedWorklistShardItemId#19000L) AND (shardId#18985 = cachedShardId#18999)) AND isnull(qty#18992))
(25) Project
Arguments: [shardId#18985, worklistShardItemId#18986L, version#18987, product#18988, plant#18989, qty#18992]
(26) Project
Arguments: [shardId#18985, worklistShardItemId#18986L, version#18987, product#18988, plant#18989, qty#18992]
(27) Union
Arguments: false, false
(28) Join
Arguments: LeftAnti, ((((((shardId#445 <=> shardId#19003) AND (worklistShardItemId#446L <=> worklistShardItemId#19004L)) AND (version#447 <=> version#19005)) AND (product#448 <=> product#19006)) AND (plant#449 <=> plant#19007)) AND (qty#452 <=> qty#18778))
(29) Project
Arguments: [shardId#445, worklistShardItemId#446L, version#447, product#448, plant#449, qty#452]
(30) Project
Arguments: [shardId#445, worklistShardItemId#446L, version#447, product#448, plant#449, qty#452, cast(null as string) AS demandChannel#19011]
(31) Project
Arguments: [shardId#445, worklistShardItemId#446L, version#447, product#448, plant#449, qty#452, demandChannel#19011, cast(null as string) AS demandStream#19012]
(32) Project
Arguments: [shardId#445, worklistShardItemId#446L, version#447, product#448, plant#449, qty#452, demandChannel#19011, demandStream#19012, array() AS kpis#19013]
(33) Project
Arguments: [shardId#445, worklistShardItemId#446L, version#447, product#448, plant#449, qty#452, demandChannel#19011, demandStream#19012, kpis#19013, true AS isNewlyCalculated#19014]
(34) Project
Arguments: [shardId#445, worklistShardItemId#446L, version#447, product#448, plant#449, qty#452, demandChannel#19011, demandStream#19012, cast(kpis#19013 as array<struct<label:string,dateTime:timestamp,value:double>>) AS kpis#19046, isNewlyCalculated#19014]
(35) LogicalRDD
Arguments: [shardId#19016, worklistShardItemId#19017L, version#19018, product#19019, plant#19020, periodStart#19021, periodEnd#19022, qty#19023], false
(36) RepartitionByExpression
Arguments: [product#19019, plant#19020], 37
(37) Project
Arguments: [shardId#19016, worklistShardItemId#19017L, version#19018, product#19019, plant#19020, qty#19023]
(38) LogicalRDD
Arguments: [shardId#19024, worklistShardItemId#19025L, qty#19026, demandChannel#19027, demandStream#19028, kpis#19029], false
(39) Project
Arguments: [shardId#19024 AS cachedShardId#19030, worklistShardItemId#19025L AS cachedWorklistShardItemId#19031L, qty#19026 AS cachedQty#19032, demandChannel#19027, demandStream#19028, kpis#19029 AS cachedKpis#19033]
(40) Join
Arguments: Inner, (((worklistShardItemId#19017L = cachedWorklistShardItemId#19031L) AND (shardId#19016 = cachedShardId#19030)) AND ((qty#19023 = cachedQty#19032) OR isnull(qty#19023)))
(41) Project
Arguments: [shardId#19016, worklistShardItemId#19017L, version#19018, product#19019, plant#19020]
(42) Deduplicate
Arguments: [plant#19020, shardId#19016, version#19018, worklistShardItemId#19017L, product#19019]
(43) LogicalRDD
Arguments: [shardId#19034, worklistShardItemId#19035L, qty#19036, demandChannel#19037, demandStream#19038, kpis#19039], false
(44) Project
Arguments: [shardId#19034 AS cachedShardId#19040, worklistShardItemId#19035L AS cachedWorklistShardItemId#19041L, qty#19036 AS cachedQty#19042, demandChannel#19037, demandStream#19038, kpis#19039 AS cachedKpis#19043]
(45) Join
Arguments: Inner, ((worklistShardItemId#19017L = cachedWorklistShardItemId#19041L) AND (shardId#19016 = cachedShardId#19040))
(46) Project
Arguments: [shardId#19016, worklistShardItemId#19017L, version#19018, product#19019, plant#19020, cachedQty#19042 AS qty#19044, demandChannel#19037, demandStream#19038, cachedKpis#19043 AS kpis#19045]
(47) Project
Arguments: [shardId#19016, worklistShardItemId#19017L, version#19018, product#19019, plant#19020, qty#19044, demandChannel#19037, demandStream#19038, kpis#19045, false AS isNewlyCalculated#19015]
(48) Project
Arguments: [shardId#19016, worklistShardItemId#19017L, version#19018, product#19019, plant#19020, qty#19044, demandChannel#19037, demandStream#19038, kpis#19045, isNewlyCalculated#19015]
(49) Union
Arguments: false, false
(50) Filter
Arguments: (isNewlyCalculated#19014 <=> false)
(51) Project
Arguments: [shardId#445, worklistShardItemId#446L, qty#452, demandChannel#19011, demandStream#19012, kpis#19046]
(52) ExternalRDD
Arguments: [obj#21550]
(53) SerializeFromObject
Arguments: [mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2775), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2775), StructField(measuredUnit,StringType,true), StructField(numberOfCalls,LongType,false), StructField(parent,StringType,true), StructField(runtime,LongType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.PerformanceMeasurement)))) null else named_struct(measuredUnit, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2775), StructField(measuredUnit,StringType,true), StructField(numberOfCalls,LongType,false), StructField(parent,StringType,true), StructField(runtime,LongType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.PerformanceMeasurement))).getMeasuredUnit()))), numberOfCalls, invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2775), StructField(measuredUnit,StringType,true), StructField(numberOfCalls,LongType,false), StructField(parent,StringType,true), StructField(runtime,LongType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.PerformanceMeasurement))).getNumberOfCalls()), parent, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2775), StructField(measuredUnit,StringType,true), StructField(numberOfCalls,LongType,false), StructField(parent,StringType,true), StructField(runtime,LongType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.PerformanceMeasurement))).getParent()))), runtime, invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2775), StructField(measuredUnit,StringType,true), StructField(numberOfCalls,LongType,false), StructField(parent,StringType,true), StructField(runtime,LongType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.PerformanceMeasurement))).getRuntime())), invoke(knownnotnull(assertnotnull(input[0, com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiCalculationResult, true])).getPerformanceMeasurements()), None) AS performanceMeasurements#21553, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2776), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2776), StructField(demandChannelStreamKpiResults,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true)),true),true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(plantId,StringType,true), StructField(productId,StringType,true), StructField(quantityKpiResults,ArrayType(StructType(StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true),StructField(quantity,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.ProdPlantKpiCalculationResult)))) null else named_struct(demandChannelStreamKpiResults, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2777), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2777), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.DemandChannelStreamKpiResult)))) null else named_struct(demandChannel, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2777), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.DemandChannelStreamKpiResult))).getDemandChannel()))), demandStream, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2777), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.DemandChannelStreamKpiResult))).getDemandStream()))), kpiResults, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2778), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2778), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult)))) null else named_struct(datetime, static_invoke(DateTimeUtils.fromJavaTimestamp(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2778), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getDatetime()))), label, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2778), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getLabel()))), value, invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2778), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getValue())), invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2777), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.DemandChannelStreamKpiResult))).getKpiResults()), None)), invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2776), StructField(demandChannelStreamKpiResults,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true)),true),true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(plantId,StringType,true), StructField(productId,StringType,true), StructField(quantityKpiResults,ArrayType(StructType(StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true),StructField(quantity,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.ProdPlantKpiCalculationResult))).getDemandChannelStreamKpiResults()), None), kpiResults, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2779), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2779), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult)))) null else named_struct(datetime, static_invoke(DateTimeUtils.fromJavaTimestamp(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2779), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getDatetime()))), label, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2779), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getLabel()))), value, invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2779), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getValue())), invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2776), StructField(demandChannelStreamKpiResults,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true)),true),true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(plantId,StringType,true), StructField(productId,StringType,true), StructField(quantityKpiResults,ArrayType(StructType(StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true),StructField(quantity,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.ProdPlantKpiCalculationResult))).getKpiResults()), None), plantId, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2776), StructField(demandChannelStreamKpiResults,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true)),true),true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(plantId,StringType,true), StructField(productId,StringType,true), StructField(quantityKpiResults,ArrayType(StructType(StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true),StructField(quantity,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.ProdPlantKpiCalculationResult))).getPlantId()))), productId, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2776), StructField(demandChannelStreamKpiResults,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true)),true),true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(plantId,StringType,true), StructField(productId,StringType,true), StructField(quantityKpiResults,ArrayType(StructType(StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true),StructField(quantity,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.ProdPlantKpiCalculationResult))).getProductId()))), quantityKpiResults, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2780), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2780), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(quantity,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.QuantityKpiResult)))) null else named_struct(kpiResults, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2781), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2781), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult)))) null else named_struct(datetime, static_invoke(DateTimeUtils.fromJavaTimestamp(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2781), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getDatetime()))), label, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2781), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getLabel()))), value, invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2781), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getValue())), invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2780), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(quantity,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.QuantityKpiResult))).getKpiResults()), None), quantity, invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2780), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(quantity,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.QuantityKpiResult))).getQuantity())), invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2776), StructField(demandChannelStreamKpiResults,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true)),true),true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(plantId,StringType,true), StructField(productId,StringType,true), StructField(quantityKpiResults,ArrayType(StructType(StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true),StructField(quantity,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.ProdPlantKpiCalculationResult))).getQuantityKpiResults()), None)), invoke(knownnotnull(assertnotnull(input[0, com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiCalculationResult, true])).getProdPlantResults()), None) AS prodPlantResults#21554]
(54) Generate
Arguments: explode(prodPlantResults#21554), false, [prodPlantResults#21561]
(55) Project
Arguments: [prodPlantResults#21561]
(56) Project
Arguments: [prodPlantResults#21561.productId AS product#21580, prodPlantResults#21561.plantId AS plant#21581, prodPlantResults#21561.kpiResults AS kpis#21582]
(57) Project
Arguments: [product#21580, plant#21581, kpis#21582, null AS qty#21586]
(58) Project
Arguments: [product#21580, plant#21581, kpis#21582, qty#21586, cast(null as string) AS demandChannel#21587]
(59) Project
Arguments: [product#21580, plant#21581, kpis#21582, qty#21586, demandChannel#21587, cast(null as string) AS demandStream#21588]
(60) Project
Arguments: [product#21580, plant#21581, kpis#21582, cast(qty#21586 as double) AS qty#21607, demandChannel#21587, demandStream#21588]
(61) ExternalRDD
Arguments: [obj#21603]
(62) SerializeFromObject
Arguments: [mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2775), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2775), StructField(measuredUnit,StringType,true), StructField(numberOfCalls,LongType,false), StructField(parent,StringType,true), StructField(runtime,LongType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.PerformanceMeasurement)))) null else named_struct(measuredUnit, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2775), StructField(measuredUnit,StringType,true), StructField(numberOfCalls,LongType,false), StructField(parent,StringType,true), StructField(runtime,LongType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.PerformanceMeasurement))).getMeasuredUnit()))), numberOfCalls, invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2775), StructField(measuredUnit,StringType,true), StructField(numberOfCalls,LongType,false), StructField(parent,StringType,true), StructField(runtime,LongType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.PerformanceMeasurement))).getNumberOfCalls()), parent, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2775), StructField(measuredUnit,StringType,true), StructField(numberOfCalls,LongType,false), StructField(parent,StringType,true), StructField(runtime,LongType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.PerformanceMeasurement))).getParent()))), runtime, invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2775), StructField(measuredUnit,StringType,true), StructField(numberOfCalls,LongType,false), StructField(parent,StringType,true), StructField(runtime,LongType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.PerformanceMeasurement))).getRuntime())), invoke(knownnotnull(assertnotnull(input[0, com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiCalculationResult, true])).getPerformanceMeasurements()), None) AS performanceMeasurements#21604, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2776), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2776), StructField(demandChannelStreamKpiResults,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true)),true),true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(plantId,StringType,true), StructField(productId,StringType,true), StructField(quantityKpiResults,ArrayType(StructType(StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true),StructField(quantity,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.ProdPlantKpiCalculationResult)))) null else named_struct(demandChannelStreamKpiResults, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2777), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2777), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.DemandChannelStreamKpiResult)))) null else named_struct(demandChannel, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2777), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.DemandChannelStreamKpiResult))).getDemandChannel()))), demandStream, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2777), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.DemandChannelStreamKpiResult))).getDemandStream()))), kpiResults, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2778), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2778), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult)))) null else named_struct(datetime, static_invoke(DateTimeUtils.fromJavaTimestamp(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2778), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getDatetime()))), label, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2778), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getLabel()))), value, invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2778), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getValue())), invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2777), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.DemandChannelStreamKpiResult))).getKpiResults()), None)), invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2776), StructField(demandChannelStreamKpiResults,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true)),true),true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(plantId,StringType,true), StructField(productId,StringType,true), StructField(quantityKpiResults,ArrayType(StructType(StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true),StructField(quantity,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.ProdPlantKpiCalculationResult))).getDemandChannelStreamKpiResults()), None), kpiResults, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2779), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2779), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult)))) null else named_struct(datetime, static_invoke(DateTimeUtils.fromJavaTimestamp(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2779), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getDatetime()))), label, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2779), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getLabel()))), value, invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2779), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getValue())), invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2776), StructField(demandChannelStreamKpiResults,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true)),true),true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(plantId,StringType,true), StructField(productId,StringType,true), StructField(quantityKpiResults,ArrayType(StructType(StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true),StructField(quantity,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.ProdPlantKpiCalculationResult))).getKpiResults()), None), plantId, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2776), StructField(demandChannelStreamKpiResults,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true)),true),true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(plantId,StringType,true), StructField(productId,StringType,true), StructField(quantityKpiResults,ArrayType(StructType(StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true),StructField(quantity,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.ProdPlantKpiCalculationResult))).getPlantId()))), productId, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2776), StructField(demandChannelStreamKpiResults,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true)),true),true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(plantId,StringType,true), StructField(productId,StringType,true), StructField(quantityKpiResults,ArrayType(StructType(StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true),StructField(quantity,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.ProdPlantKpiCalculationResult))).getProductId()))), quantityKpiResults, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2780), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2780), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(quantity,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.QuantityKpiResult)))) null else named_struct(kpiResults, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2781), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2781), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult)))) null else named_struct(datetime, static_invoke(DateTimeUtils.fromJavaTimestamp(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2781), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getDatetime()))), label, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2781), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getLabel()))), value, invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2781), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getValue())), invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2780), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(quantity,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.QuantityKpiResult))).getKpiResults()), None), quantity, invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2780), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(quantity,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.QuantityKpiResult))).getQuantity())), invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2776), StructField(demandChannelStreamKpiResults,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true)),true),true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(plantId,StringType,true), StructField(productId,StringType,true), StructField(quantityKpiResults,ArrayType(StructType(StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true),StructField(quantity,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.ProdPlantKpiCalculationResult))).getQuantityKpiResults()), None)), invoke(knownnotnull(assertnotnull(input[0, com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiCalculationResult, true])).getProdPlantResults()), None) AS prodPlantResults#21605]
(63) Generate
Arguments: explode(prodPlantResults#21605), false, [prodPlantResults#21606]
(64) Project
Arguments: [prodPlantResults#21606]
(65) Generate
Arguments: explode(prodPlantResults#21606.quantityKpiResults), false, [quantityKpiResults#21573]
(66) Project
Arguments: [prodPlantResults#21606.productId AS product#21567, prodPlantResults#21606.plantId AS plant#21568, quantityKpiResults#21573]
(67) Project
Arguments: [product#21567, plant#21568, quantityKpiResults#21573, quantityKpiResults#21573.quantity AS qty#21574]
(68) Project
Arguments: [product#21567, plant#21568, quantityKpiResults#21573, qty#21574, cast(null as string) AS demandChannel#21576]
(69) Project
Arguments: [product#21567, plant#21568, quantityKpiResults#21573, qty#21574, demandChannel#21576, cast(null as string) AS demandStream#21577]
(70) Project
Arguments: [product#21567, plant#21568, quantityKpiResults#21573, qty#21574, demandChannel#21576, demandStream#21577, quantityKpiResults#21573.kpiResults AS kpis#21578]
(71) Project
Arguments: [product#21567, plant#21568, qty#21574, demandChannel#21576, demandStream#21577, kpis#21578]
(72) Project
Arguments: [product#21567, plant#21568, kpis#21578, qty#21574, demandChannel#21576, demandStream#21577]
(73) ExternalRDD
Arguments: [obj#21608]
(74) SerializeFromObject
Arguments: [mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2775), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2775), StructField(measuredUnit,StringType,true), StructField(numberOfCalls,LongType,false), StructField(parent,StringType,true), StructField(runtime,LongType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.PerformanceMeasurement)))) null else named_struct(measuredUnit, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2775), StructField(measuredUnit,StringType,true), StructField(numberOfCalls,LongType,false), StructField(parent,StringType,true), StructField(runtime,LongType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.PerformanceMeasurement))).getMeasuredUnit()))), numberOfCalls, invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2775), StructField(measuredUnit,StringType,true), StructField(numberOfCalls,LongType,false), StructField(parent,StringType,true), StructField(runtime,LongType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.PerformanceMeasurement))).getNumberOfCalls()), parent, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2775), StructField(measuredUnit,StringType,true), StructField(numberOfCalls,LongType,false), StructField(parent,StringType,true), StructField(runtime,LongType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.PerformanceMeasurement))).getParent()))), runtime, invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2775), StructField(measuredUnit,StringType,true), StructField(numberOfCalls,LongType,false), StructField(parent,StringType,true), StructField(runtime,LongType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.PerformanceMeasurement))).getRuntime())), invoke(knownnotnull(assertnotnull(input[0, com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiCalculationResult, true])).getPerformanceMeasurements()), None) AS performanceMeasurements#21609, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2776), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2776), StructField(demandChannelStreamKpiResults,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true)),true),true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(plantId,StringType,true), StructField(productId,StringType,true), StructField(quantityKpiResults,ArrayType(StructType(StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true),StructField(quantity,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.ProdPlantKpiCalculationResult)))) null else named_struct(demandChannelStreamKpiResults, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2777), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2777), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.DemandChannelStreamKpiResult)))) null else named_struct(demandChannel, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2777), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.DemandChannelStreamKpiResult))).getDemandChannel()))), demandStream, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2777), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.DemandChannelStreamKpiResult))).getDemandStream()))), kpiResults, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2778), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2778), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult)))) null else named_struct(datetime, static_invoke(DateTimeUtils.fromJavaTimestamp(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2778), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getDatetime()))), label, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2778), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getLabel()))), value, invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2778), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getValue())), invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2777), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.DemandChannelStreamKpiResult))).getKpiResults()), None)), invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2776), StructField(demandChannelStreamKpiResults,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true)),true),true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(plantId,StringType,true), StructField(productId,StringType,true), StructField(quantityKpiResults,ArrayType(StructType(StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true),StructField(quantity,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.ProdPlantKpiCalculationResult))).getDemandChannelStreamKpiResults()), None), kpiResults, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2779), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2779), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult)))) null else named_struct(datetime, static_invoke(DateTimeUtils.fromJavaTimestamp(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2779), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getDatetime()))), label, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2779), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getLabel()))), value, invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2779), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getValue())), invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2776), StructField(demandChannelStreamKpiResults,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true)),true),true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(plantId,StringType,true), StructField(productId,StringType,true), StructField(quantityKpiResults,ArrayType(StructType(StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true),StructField(quantity,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.ProdPlantKpiCalculationResult))).getKpiResults()), None), plantId, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2776), StructField(demandChannelStreamKpiResults,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true)),true),true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(plantId,StringType,true), StructField(productId,StringType,true), StructField(quantityKpiResults,ArrayType(StructType(StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true),StructField(quantity,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.ProdPlantKpiCalculationResult))).getPlantId()))), productId, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2776), StructField(demandChannelStreamKpiResults,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true)),true),true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(plantId,StringType,true), StructField(productId,StringType,true), StructField(quantityKpiResults,ArrayType(StructType(StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true),StructField(quantity,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.ProdPlantKpiCalculationResult))).getProductId()))), quantityKpiResults, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2780), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2780), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(quantity,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.QuantityKpiResult)))) null else named_struct(kpiResults, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2781), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2781), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult)))) null else named_struct(datetime, static_invoke(DateTimeUtils.fromJavaTimestamp(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2781), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getDatetime()))), label, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2781), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getLabel()))), value, invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2781), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getValue())), invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2780), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(quantity,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.QuantityKpiResult))).getKpiResults()), None), quantity, invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2780), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(quantity,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.QuantityKpiResult))).getQuantity())), invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2776), StructField(demandChannelStreamKpiResults,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true)),true),true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(plantId,StringType,true), StructField(productId,StringType,true), StructField(quantityKpiResults,ArrayType(StructType(StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true),StructField(quantity,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.ProdPlantKpiCalculationResult))).getQuantityKpiResults()), None)), invoke(knownnotnull(assertnotnull(input[0, com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiCalculationResult, true])).getProdPlantResults()), None) AS prodPlantResults#21610]
(75) Generate
Arguments: explode(prodPlantResults#21610), false, [prodPlantResults#21611]
(76) Project
Arguments: [prodPlantResults#21611]
(77) Generate
Arguments: explode(prodPlantResults#21611.demandChannelStreamKpiResults), false, [demandChannelStreamKpiResults#21595]
(78) Project
Arguments: [prodPlantResults#21611.productId AS product#21589, prodPlantResults#21611.plantId AS plant#21590, demandChannelStreamKpiResults#21595]
(79) Project
Arguments: [product#21589, plant#21590, demandChannelStreamKpiResults#21595, null AS qty#21596]
(80) Project
Arguments: [product#21589, plant#21590, demandChannelStreamKpiResults#21595, qty#21596, demandChannelStreamKpiResults#21595.demandChannel AS demandChannel#21597]
(81) Project
Arguments: [product#21589, plant#21590, demandChannelStreamKpiResults#21595, qty#21596, demandChannel#21597, demandChannelStreamKpiResults#21595.demandStream AS demandStream#21599]
(82) Project
Arguments: [product#21589, plant#21590, demandChannelStreamKpiResults#21595, qty#21596, demandChannel#21597, demandStream#21599, demandChannelStreamKpiResults#21595.kpiResults AS kpis#21601]
(83) Project
Arguments: [product#21589, plant#21590, qty#21596, demandChannel#21597, demandStream#21599, kpis#21601]
(84) Project
Arguments: [product#21589, plant#21590, kpis#21601, qty#21596, demandChannel#21597, demandStream#21599]
(85) Project
Arguments: [product#21589, plant#21590, kpis#21601, cast(qty#21596 as double) AS qty#21612, demandChannel#21597, demandStream#21599]
(86) Union
Arguments: false, false
(87) Project
Arguments: [product#21580, plant#21581, transform(kpis#21582, lambdafunction(struct(label, lambda kpi#21617.label, dateTime, lambda kpi#21617.datetime, value, lambda kpi#21617.value), lambda kpi#21617, false)) AS kpis#21616, qty#21607, demandChannel#21587, demandStream#21588]
(88) Project
Arguments: [product#21580, plant#21581, qty#21607, demandChannel#21587, demandStream#21588, kpis#21616]
(89) LogicalRDD
Arguments: [shardId#22425, worklistShardItemId#22426L, version#22427, product#22428, plant#22429, periodStart#22430, periodEnd#22431, qty#22432], false
(90) RepartitionByExpression
Arguments: [product#22428, plant#22429], 37
(91) Project
Arguments: [shardId#22425, worklistShardItemId#22426L, version#22427, product#22428, plant#22429, qty#22432]
(92) LogicalRDD
Arguments: [shardId#22433, worklistShardItemId#22434L, version#22435, product#22436, plant#22437, periodStart#22438, periodEnd#22439, qty#22440], false
(93) RepartitionByExpression
Arguments: [product#22436, plant#22437], 37
(94) Project
Arguments: [shardId#22433, worklistShardItemId#22434L, version#22435, product#22436, plant#22437, qty#22440]
(95) LogicalRDD
Arguments: [shardId#22441, worklistShardItemId#22442L, qty#22443, demandChannel#22444, demandStream#22445, kpis#22446], false
(96) Project
Arguments: [shardId#22441 AS cachedShardId#22447, worklistShardItemId#22442L AS cachedWorklistShardItemId#22448L, qty#22443 AS cachedQty#22449, demandChannel#22444, demandStream#22445, kpis#22446 AS cachedKpis#22450]
(97) Join
Arguments: Inner, (((worklistShardItemId#22434L = cachedWorklistShardItemId#22448L) AND (shardId#22433 = cachedShardId#22447)) AND ((qty#22440 = cachedQty#22449) OR isnull(qty#22440)))
(98) Project
Arguments: [shardId#22433, worklistShardItemId#22434L, version#22435, product#22436, plant#22437]
(99) Deduplicate
Arguments: [plant#22437, shardId#22433, version#22435, worklistShardItemId#22434L, product#22436]
(100) LogicalRDD
Arguments: [shardId#22451, worklistShardItemId#22452L, qty#22453, demandChannel#22454, demandStream#22455, kpis#22456], false
(101) Project
Arguments: [shardId#22451 AS cachedShardId#22457, worklistShardItemId#22452L AS cachedWorklistShardItemId#22458L, qty#22453 AS cachedQty#22459, demandChannel#22454, demandStream#22455, kpis#22456 AS cachedKpis#22460]
(102) Join
Arguments: Inner, ((worklistShardItemId#22434L = cachedWorklistShardItemId#22458L) AND (shardId#22433 = cachedShardId#22457))
(103) Project
Arguments: [shardId#22433, worklistShardItemId#22434L, version#22435, product#22436, plant#22437, cachedQty#22459 AS qty#22461, demandChannel#22454, demandStream#22455, cachedKpis#22460 AS kpis#22462]
(104) Project
Arguments: [shardId#22433, worklistShardItemId#22434L, version#22435, product#22436, plant#22437, qty#22461]
(105) LogicalRDD
Arguments: [shardId#22463, worklistShardItemId#22464L, version#22465, product#22466, plant#22467, periodStart#22468, periodEnd#22469, qty#22470], false
(106) RepartitionByExpression
Arguments: [product#22466, plant#22467], 37
(107) Project
Arguments: [shardId#22463, worklistShardItemId#22464L, version#22465, product#22466, plant#22467, qty#22470]
(108) LogicalRDD
Arguments: [shardId#22471, worklistShardItemId#22472L, qty#22473, demandChannel#22474, demandStream#22475, kpis#22476], false
(109) Project
Arguments: [shardId#22471 AS cachedShardId#22477, worklistShardItemId#22472L AS cachedWorklistShardItemId#22478L, qty#22473 AS cachedQty#22479, demandChannel#22474, demandStream#22475, kpis#22476 AS cachedKpis#22480]
(110) Join
Arguments: Inner, (((worklistShardItemId#22464L = cachedWorklistShardItemId#22478L) AND (shardId#22463 = cachedShardId#22477)) AND isnull(qty#22470))
(111) Project
Arguments: [shardId#22463, worklistShardItemId#22464L, version#22465, product#22466, plant#22467, qty#22470]
(112) Project
Arguments: [shardId#22463, worklistShardItemId#22464L, version#22465, product#22466, plant#22467, qty#22470]
(113) Union
Arguments: false, false
(114) Join
Arguments: LeftAnti, ((((((shardId#22425 <=> shardId#22433) AND (worklistShardItemId#22426L <=> worklistShardItemId#22434L)) AND (version#22427 <=> version#22435)) AND (product#22428 <=> product#22436)) AND (plant#22429 <=> plant#22437)) AND (qty#22432 <=> qty#22461))
(115) Project
Arguments: [shardId#22425, worklistShardItemId#22426L, version#22427, product#22428, plant#22429, qty#22432]
(116) Project
Arguments: [shardId#22425, worklistShardItemId#22426L, version#22427, product#22428, plant#22429, qty#22432, cast(null as string) AS demandChannel#22481]
(117) Project
Arguments: [shardId#22425, worklistShardItemId#22426L, version#22427, product#22428, plant#22429, qty#22432, demandChannel#22481, cast(null as string) AS demandStream#22482]
(118) Project
Arguments: [shardId#22425, worklistShardItemId#22426L, version#22427, product#22428, plant#22429, qty#22432, demandChannel#22481, demandStream#22482, array() AS kpis#22483]
(119) Project
Arguments: [shardId#22425, worklistShardItemId#22426L, version#22427, product#22428, plant#22429, qty#22432, demandChannel#22481, demandStream#22482, kpis#22483, true AS isNewlyCalculated#22484]
(120) Project
Arguments: [shardId#22425, worklistShardItemId#22426L, version#22427, product#22428, plant#22429, qty#22432, demandChannel#22481, demandStream#22482, cast(kpis#22483 as array<struct<label:string,dateTime:timestamp,value:double>>) AS kpis#22485, isNewlyCalculated#22484]
(121) LogicalRDD
Arguments: [shardId#22486, worklistShardItemId#22487L, version#22488, product#22489, plant#22490, periodStart#22491, periodEnd#22492, qty#22493], false
(122) RepartitionByExpression
Arguments: [product#22489, plant#22490], 37
(123) Project
Arguments: [shardId#22486, worklistShardItemId#22487L, version#22488, product#22489, plant#22490, qty#22493]
(124) LogicalRDD
Arguments: [shardId#22494, worklistShardItemId#22495L, qty#22496, demandChannel#22497, demandStream#22498, kpis#22499], false
(125) Project
Arguments: [shardId#22494 AS cachedShardId#22500, worklistShardItemId#22495L AS cachedWorklistShardItemId#22501L, qty#22496 AS cachedQty#22502, demandChannel#22497, demandStream#22498, kpis#22499 AS cachedKpis#22503]
(126) Join
Arguments: Inner, (((worklistShardItemId#22487L = cachedWorklistShardItemId#22501L) AND (shardId#22486 = cachedShardId#22500)) AND ((qty#22493 = cachedQty#22502) OR isnull(qty#22493)))
(127) Project
Arguments: [shardId#22486, worklistShardItemId#22487L, version#22488, product#22489, plant#22490]
(128) Deduplicate
Arguments: [plant#22490, shardId#22486, version#22488, worklistShardItemId#22487L, product#22489]
(129) LogicalRDD
Arguments: [shardId#22504, worklistShardItemId#22505L, qty#22506, demandChannel#22507, demandStream#22508, kpis#22509], false
(130) Project
Arguments: [shardId#22504 AS cachedShardId#22510, worklistShardItemId#22505L AS cachedWorklistShardItemId#22511L, qty#22506 AS cachedQty#22512, demandChannel#22507, demandStream#22508, kpis#22509 AS cachedKpis#22513]
(131) Join
Arguments: Inner, ((worklistShardItemId#22487L = cachedWorklistShardItemId#22511L) AND (shardId#22486 = cachedShardId#22510))
(132) Project
Arguments: [shardId#22486, worklistShardItemId#22487L, version#22488, product#22489, plant#22490, cachedQty#22512 AS qty#22514, demandChannel#22507, demandStream#22508, cachedKpis#22513 AS kpis#22515]
(133) Project
Arguments: [shardId#22486, worklistShardItemId#22487L, version#22488, product#22489, plant#22490, qty#22514, demandChannel#22507, demandStream#22508, kpis#22515, false AS isNewlyCalculated#22516]
(134) Project
Arguments: [shardId#22486, worklistShardItemId#22487L, version#22488, product#22489, plant#22490, qty#22514, demandChannel#22507, demandStream#22508, kpis#22515, isNewlyCalculated#22516]
(135) Union
Arguments: false, false
(136) Filter
Arguments: (isNewlyCalculated#22484 <=> true)
(137) Project
Arguments: [shardId#22425, worklistShardItemId#22426L, product#22428, plant#22429, qty#22432, kpis#22485]
(138) Project
Arguments: [shardId#22425, worklistShardItemId#22426L, product#22428, plant#22429, qty#22432]
(139) Deduplicate
Arguments: [plant#22429, shardId#22425, qty#22432, worklistShardItemId#22426L, product#22428]
(140) Join
Arguments: Inner, ((product#21580 <=> product#22428) AND ((plant#21581 <=> plant#22429) AND ((qty#21607 <=> qty#22432) OR isnull(qty#22432))))
(141) Project
Arguments: [shardId#22425, worklistShardItemId#22426L, qty#21607, demandChannel#21587, demandStream#21588, kpis#21616]
(142) Deduplicate
Arguments: [demandChannel#21587, shardId#22425, qty#21607, worklistShardItemId#22426L, demandStream#21588]
(143) Project
Arguments: [shardId#22425, worklistShardItemId#22426L, qty#21607, demandChannel#21587, demandStream#21588, kpis#21616]
(144) Union
Arguments: false, false
(145) LogicalRDD
Arguments: [shardId#22517, worklistShardItemId#22518L, version#22519, product#22520, plant#22521, periodStart#22522, periodEnd#22523, qty#22524], false
(146) RepartitionByExpression
Arguments: [product#22520, plant#22521], 37
(147) Project
Arguments: [shardId#22517, worklistShardItemId#22518L, version#22519, product#22520, plant#22521, qty#22524]
(148) LogicalRDD
Arguments: [shardId#22525, worklistShardItemId#22526L, version#22527, product#22528, plant#22529, periodStart#22530, periodEnd#22531, qty#22532], false
(149) RepartitionByExpression
Arguments: [product#22528, plant#22529], 37
(150) Project
Arguments: [shardId#22525, worklistShardItemId#22526L, version#22527, product#22528, plant#22529, qty#22532]
(151) LogicalRDD
Arguments: [shardId#22533, worklistShardItemId#22534L, qty#22535, demandChannel#22536, demandStream#22537, kpis#22538], false
(152) Project
Arguments: [shardId#22533 AS cachedShardId#22539, worklistShardItemId#22534L AS cachedWorklistShardItemId#22540L, qty#22535 AS cachedQty#22541, demandChannel#22536, demandStream#22537, kpis#22538 AS cachedKpis#22542]
(153) Join
Arguments: Inner, (((worklistShardItemId#22526L = cachedWorklistShardItemId#22540L) AND (shardId#22525 = cachedShardId#22539)) AND ((qty#22532 = cachedQty#22541) OR isnull(qty#22532)))
(154) Project
Arguments: [shardId#22525, worklistShardItemId#22526L, version#22527, product#22528, plant#22529]
(155) Deduplicate
Arguments: [plant#22529, shardId#22525, version#22527, worklistShardItemId#22526L, product#22528]
(156) LogicalRDD
Arguments: [shardId#22543, worklistShardItemId#22544L, qty#22545, demandChannel#22546, demandStream#22547, kpis#22548], false
(157) Project
Arguments: [shardId#22543 AS cachedShardId#22549, worklistShardItemId#22544L AS cachedWorklistShardItemId#22550L, qty#22545 AS cachedQty#22551, demandChannel#22546, demandStream#22547, kpis#22548 AS cachedKpis#22552]
(158) Join
Arguments: Inner, ((worklistShardItemId#22526L = cachedWorklistShardItemId#22550L) AND (shardId#22525 = cachedShardId#22549))
(159) Project
Arguments: [shardId#22525, worklistShardItemId#22526L, version#22527, product#22528, plant#22529, cachedQty#22551 AS qty#22553, demandChannel#22546, demandStream#22547, cachedKpis#22552 AS kpis#22554]
(160) Project
Arguments: [shardId#22525, worklistShardItemId#22526L, version#22527, product#22528, plant#22529, qty#22553]
(161) LogicalRDD
Arguments: [shardId#22555, worklistShardItemId#22556L, version#22557, product#22558, plant#22559, periodStart#22560, periodEnd#22561, qty#22562], false
(162) RepartitionByExpression
Arguments: [product#22558, plant#22559], 37
(163) Project
Arguments: [shardId#22555, worklistShardItemId#22556L, version#22557, product#22558, plant#22559, qty#22562]
(164) LogicalRDD
Arguments: [shardId#22563, worklistShardItemId#22564L, qty#22565, demandChannel#22566, demandStream#22567, kpis#22568], false
(165) Project
Arguments: [shardId#22563 AS cachedShardId#22569, worklistShardItemId#22564L AS cachedWorklistShardItemId#22570L, qty#22565 AS cachedQty#22571, demandChannel#22566, demandStream#22567, kpis#22568 AS cachedKpis#22572]
(166) Join
Arguments: Inner, (((worklistShardItemId#22556L = cachedWorklistShardItemId#22570L) AND (shardId#22555 = cachedShardId#22569)) AND isnull(qty#22562))
(167) Project
Arguments: [shardId#22555, worklistShardItemId#22556L, version#22557, product#22558, plant#22559, qty#22562]
(168) Project
Arguments: [shardId#22555, worklistShardItemId#22556L, version#22557, product#22558, plant#22559, qty#22562]
(169) Union
Arguments: false, false
(170) Join
Arguments: LeftAnti, ((((((shardId#22517 <=> shardId#22525) AND (worklistShardItemId#22518L <=> worklistShardItemId#22526L)) AND (version#22519 <=> version#22527)) AND (product#22520 <=> product#22528)) AND (plant#22521 <=> plant#22529)) AND (qty#22524 <=> qty#22553))
(171) Project
Arguments: [shardId#22517, worklistShardItemId#22518L, version#22519, product#22520, plant#22521, qty#22524]
(172) Project
Arguments: [shardId#22517, worklistShardItemId#22518L, version#22519, product#22520, plant#22521, qty#22524, cast(null as string) AS demandChannel#22573]
(173) Project
Arguments: [shardId#22517, worklistShardItemId#22518L, version#22519, product#22520, plant#22521, qty#22524, demandChannel#22573, cast(null as string) AS demandStream#22574]
(174) Project
Arguments: [shardId#22517, worklistShardItemId#22518L, version#22519, product#22520, plant#22521, qty#22524, demandChannel#22573, demandStream#22574, array() AS kpis#22575]
(175) Project
Arguments: [shardId#22517, worklistShardItemId#22518L, version#22519, product#22520, plant#22521, qty#22524, demandChannel#22573, demandStream#22574, kpis#22575, true AS isNewlyCalculated#22576]
(176) Project
Arguments: [shardId#22517, worklistShardItemId#22518L, version#22519, product#22520, plant#22521, qty#22524, demandChannel#22573, demandStream#22574, cast(kpis#22575 as array<struct<label:string,dateTime:timestamp,value:double>>) AS kpis#22577, isNewlyCalculated#22576]
(177) LogicalRDD
Arguments: [shardId#22578, worklistShardItemId#22579L, version#22580, product#22581, plant#22582, periodStart#22583, periodEnd#22584, qty#22585], false
(178) RepartitionByExpression
Arguments: [product#22581, plant#22582], 37
(179) Project
Arguments: [shardId#22578, worklistShardItemId#22579L, version#22580, product#22581, plant#22582, qty#22585]
(180) LogicalRDD
Arguments: [shardId#22586, worklistShardItemId#22587L, qty#22588, demandChannel#22589, demandStream#22590, kpis#22591], false
(181) Project
Arguments: [shardId#22586 AS cachedShardId#22592, worklistShardItemId#22587L AS cachedWorklistShardItemId#22593L, qty#22588 AS cachedQty#22594, demandChannel#22589, demandStream#22590, kpis#22591 AS cachedKpis#22595]
(182) Join
Arguments: Inner, (((worklistShardItemId#22579L = cachedWorklistShardItemId#22593L) AND (shardId#22578 = cachedShardId#22592)) AND ((qty#22585 = cachedQty#22594) OR isnull(qty#22585)))
(183) Project
Arguments: [shardId#22578, worklistShardItemId#22579L, version#22580, product#22581, plant#22582]
(184) Deduplicate
Arguments: [plant#22582, shardId#22578, version#22580, worklistShardItemId#22579L, product#22581]
(185) LogicalRDD
Arguments: [shardId#22596, worklistShardItemId#22597L, qty#22598, demandChannel#22599, demandStream#22600, kpis#22601], false
(186) Project
Arguments: [shardId#22596 AS cachedShardId#22602, worklistShardItemId#22597L AS cachedWorklistShardItemId#22603L, qty#22598 AS cachedQty#22604, demandChannel#22599, demandStream#22600, kpis#22601 AS cachedKpis#22605]
(187) Join
Arguments: Inner, ((worklistShardItemId#22579L = cachedWorklistShardItemId#22603L) AND (shardId#22578 = cachedShardId#22602))
(188) Project
Arguments: [shardId#22578, worklistShardItemId#22579L, version#22580, product#22581, plant#22582, cachedQty#22604 AS qty#22606, demandChannel#22599, demandStream#22600, cachedKpis#22605 AS kpis#22607]
(189) Project
Arguments: [shardId#22578, worklistShardItemId#22579L, version#22580, product#22581, plant#22582, qty#22606, demandChannel#22599, demandStream#22600, kpis#22607, false AS isNewlyCalculated#22608]
(190) Project
Arguments: [shardId#22578, worklistShardItemId#22579L, version#22580, product#22581, plant#22582, qty#22606, demandChannel#22599, demandStream#22600, kpis#22607, isNewlyCalculated#22608]
(191) Union
Arguments: false, false
(192) Project
Arguments: [shardId#22517, worklistShardItemId#22518L, version#22519]
(193) Aggregate
Arguments: [shardId#22517, worklistShardItemId#22518L], [shardId#22517, worklistShardItemId#22518L, (max(version#22519) + 1) AS version#22420]
(194) Join
Arguments: Inner, ((shardId#445 = shardId#22517) AND (worklistShardItemId#446L = worklistShardItemId#22518L))
(195) Project
Arguments: [shardId#445, worklistShardItemId#446L, qty#452, demandChannel#19011, demandStream#19012, kpis#19046, version#22420]
(196) Project
Arguments: [shardId#445, worklistShardItemId#446L, version#22420, qty#452, demandChannel#19011, demandStream#19012, kpis#19046]