== 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@67beb182, [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#24679, worklistShardItemId#24680L, version#24681, product#24682, plant#24683, periodStart#24684, periodEnd#24685, qty#24686], false
(7) RepartitionByExpression
Arguments: [product#24682, plant#24683], 37
(8) Project
Arguments: [shardId#24679, worklistShardItemId#24680L, version#24681, product#24682, plant#24683, qty#24686]
(9) LogicalRDD
Arguments: [shardId#24434, worklistShardItemId#24435L, qty#24436, demandChannel#24437, demandStream#24438, kpis#24439], false
(10) Project
Arguments: [shardId#24434 AS cachedShardId#24440, worklistShardItemId#24435L AS cachedWorklistShardItemId#24441L, qty#24436 AS cachedQty#24442, demandChannel#24437, demandStream#24438, kpis#24439 AS cachedKpis#24443]
(11) Join
Arguments: Inner, (((worklistShardItemId#24680L = cachedWorklistShardItemId#24441L) AND (shardId#24679 = cachedShardId#24440)) AND ((qty#24686 = cachedQty#24442) OR isnull(qty#24686)))
(12) Project
Arguments: [shardId#24679, worklistShardItemId#24680L, version#24681, product#24682, plant#24683]
(13) Deduplicate
Arguments: [plant#24683, shardId#24679, version#24681, worklistShardItemId#24680L, product#24682]
(14) LogicalRDD
Arguments: [shardId#24444, worklistShardItemId#24445L, qty#24446, demandChannel#24447, demandStream#24448, kpis#24449], false
(15) Project
Arguments: [shardId#24444 AS cachedShardId#24450, worklistShardItemId#24445L AS cachedWorklistShardItemId#24451L, qty#24446 AS cachedQty#24452, demandChannel#24447, demandStream#24448, kpis#24449 AS cachedKpis#24453]
(16) Join
Arguments: Inner, ((worklistShardItemId#24680L = cachedWorklistShardItemId#24451L) AND (shardId#24679 = cachedShardId#24450))
(17) Project
Arguments: [shardId#24679, worklistShardItemId#24680L, version#24681, product#24682, plant#24683, cachedQty#24452 AS qty#24454, demandChannel#24447, demandStream#24448, cachedKpis#24453 AS kpis#24455]
(18) Project
Arguments: [shardId#24679, worklistShardItemId#24680L, version#24681, product#24682, plant#24683, qty#24454]
(19) LogicalRDD
Arguments: [shardId#24661, worklistShardItemId#24662L, version#24663, product#24664, plant#24665, periodStart#24666, periodEnd#24667, qty#24668], false
(20) RepartitionByExpression
Arguments: [product#24664, plant#24665], 37
(21) Project
Arguments: [shardId#24661, worklistShardItemId#24662L, version#24663, product#24664, plant#24665, qty#24668]
(22) LogicalRDD
Arguments: [shardId#24669, worklistShardItemId#24670L, qty#24671, demandChannel#24672, demandStream#24673, kpis#24674], false
(23) Project
Arguments: [shardId#24669 AS cachedShardId#24675, worklistShardItemId#24670L AS cachedWorklistShardItemId#24676L, qty#24671 AS cachedQty#24677, demandChannel#24672, demandStream#24673, kpis#24674 AS cachedKpis#24678]
(24) Join
Arguments: Inner, (((worklistShardItemId#24662L = cachedWorklistShardItemId#24676L) AND (shardId#24661 = cachedShardId#24675)) AND isnull(qty#24668))
(25) Project
Arguments: [shardId#24661, worklistShardItemId#24662L, version#24663, product#24664, plant#24665, qty#24668]
(26) Project
Arguments: [shardId#24661, worklistShardItemId#24662L, version#24663, product#24664, plant#24665, qty#24668]
(27) Union
Arguments: false, false
(28) Join
Arguments: LeftAnti, ((((((shardId#445 <=> shardId#24679) AND (worklistShardItemId#446L <=> worklistShardItemId#24680L)) AND (version#447 <=> version#24681)) AND (product#448 <=> product#24682)) AND (plant#449 <=> plant#24683)) AND (qty#452 <=> qty#24454))
(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#24687]
(31) Project
Arguments: [shardId#445, worklistShardItemId#446L, version#447, product#448, plant#449, qty#452, demandChannel#24687, cast(null as string) AS demandStream#24688]
(32) Project
Arguments: [shardId#445, worklistShardItemId#446L, version#447, product#448, plant#449, qty#452, demandChannel#24687, demandStream#24688, array() AS kpis#24689]
(33) Project
Arguments: [shardId#445, worklistShardItemId#446L, version#447, product#448, plant#449, qty#452, demandChannel#24687, demandStream#24688, kpis#24689, true AS isNewlyCalculated#24690]
(34) Project
Arguments: [shardId#445, worklistShardItemId#446L, version#447, product#448, plant#449, qty#452, demandChannel#24687, demandStream#24688, cast(kpis#24689 as array<struct<label:string,dateTime:timestamp,value:double>>) AS kpis#24722, isNewlyCalculated#24690]
(35) LogicalRDD
Arguments: [shardId#24692, worklistShardItemId#24693L, version#24694, product#24695, plant#24696, periodStart#24697, periodEnd#24698, qty#24699], false
(36) RepartitionByExpression
Arguments: [product#24695, plant#24696], 37
(37) Project
Arguments: [shardId#24692, worklistShardItemId#24693L, version#24694, product#24695, plant#24696, qty#24699]
(38) LogicalRDD
Arguments: [shardId#24700, worklistShardItemId#24701L, qty#24702, demandChannel#24703, demandStream#24704, kpis#24705], false
(39) Project
Arguments: [shardId#24700 AS cachedShardId#24706, worklistShardItemId#24701L AS cachedWorklistShardItemId#24707L, qty#24702 AS cachedQty#24708, demandChannel#24703, demandStream#24704, kpis#24705 AS cachedKpis#24709]
(40) Join
Arguments: Inner, (((worklistShardItemId#24693L = cachedWorklistShardItemId#24707L) AND (shardId#24692 = cachedShardId#24706)) AND ((qty#24699 = cachedQty#24708) OR isnull(qty#24699)))
(41) Project
Arguments: [shardId#24692, worklistShardItemId#24693L, version#24694, product#24695, plant#24696]
(42) Deduplicate
Arguments: [plant#24696, shardId#24692, version#24694, worklistShardItemId#24693L, product#24695]
(43) LogicalRDD
Arguments: [shardId#24710, worklistShardItemId#24711L, qty#24712, demandChannel#24713, demandStream#24714, kpis#24715], false
(44) Project
Arguments: [shardId#24710 AS cachedShardId#24716, worklistShardItemId#24711L AS cachedWorklistShardItemId#24717L, qty#24712 AS cachedQty#24718, demandChannel#24713, demandStream#24714, kpis#24715 AS cachedKpis#24719]
(45) Join
Arguments: Inner, ((worklistShardItemId#24693L = cachedWorklistShardItemId#24717L) AND (shardId#24692 = cachedShardId#24716))
(46) Project
Arguments: [shardId#24692, worklistShardItemId#24693L, version#24694, product#24695, plant#24696, cachedQty#24718 AS qty#24720, demandChannel#24713, demandStream#24714, cachedKpis#24719 AS kpis#24721]
(47) Project
Arguments: [shardId#24692, worklistShardItemId#24693L, version#24694, product#24695, plant#24696, qty#24720, demandChannel#24713, demandStream#24714, kpis#24721, false AS isNewlyCalculated#24691]
(48) Project
Arguments: [shardId#24692, worklistShardItemId#24693L, version#24694, product#24695, plant#24696, qty#24720, demandChannel#24713, demandStream#24714, kpis#24721, isNewlyCalculated#24691]
(49) Union
Arguments: false, false
(50) Filter
Arguments: (isNewlyCalculated#24690 <=> false)
(51) Project
Arguments: [shardId#445, worklistShardItemId#446L, qty#452, demandChannel#24687, demandStream#24688, kpis#24722]
(52) ExternalRDD
Arguments: [obj#27226]
(53) SerializeFromObject
Arguments: [mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 3110), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 3110), 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, 3110), 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, 3110), 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, 3110), 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, 3110), 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#27229, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 3111), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 3111), 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, 3112), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 3112), 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, 3112), 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, 3112), 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, 3113), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 3113), 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, 3113), 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, 3113), 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, 3113), 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, 3112), 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, 3111), 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, 3114), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 3114), 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, 3114), 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, 3114), 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, 3114), 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, 3111), 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, 3111), 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, 3111), 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, 3115), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 3115), 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, 3116), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 3116), 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, 3116), 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, 3116), 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, 3116), 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, 3115), 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, 3115), 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, 3111), 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#27230]
(54) Generate
Arguments: explode(prodPlantResults#27230), false, [prodPlantResults#27237]
(55) Project
Arguments: [prodPlantResults#27237]
(56) Project
Arguments: [prodPlantResults#27237.productId AS product#27256, prodPlantResults#27237.plantId AS plant#27257, prodPlantResults#27237.kpiResults AS kpis#27258]
(57) Project
Arguments: [product#27256, plant#27257, kpis#27258, null AS qty#27262]
(58) Project
Arguments: [product#27256, plant#27257, kpis#27258, qty#27262, cast(null as string) AS demandChannel#27263]
(59) Project
Arguments: [product#27256, plant#27257, kpis#27258, qty#27262, demandChannel#27263, cast(null as string) AS demandStream#27264]
(60) Project
Arguments: [product#27256, plant#27257, kpis#27258, cast(qty#27262 as double) AS qty#27283, demandChannel#27263, demandStream#27264]
(61) ExternalRDD
Arguments: [obj#27279]
(62) SerializeFromObject
Arguments: [mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 3110), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 3110), 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, 3110), 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, 3110), 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, 3110), 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, 3110), 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#27280, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 3111), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 3111), 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, 3112), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 3112), 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, 3112), 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, 3112), 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, 3113), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 3113), 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, 3113), 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, 3113), 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, 3113), 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, 3112), 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, 3111), 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, 3114), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 3114), 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, 3114), 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, 3114), 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, 3114), 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, 3111), 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, 3111), 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, 3111), 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, 3115), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 3115), 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, 3116), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 3116), 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, 3116), 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, 3116), 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, 3116), 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, 3115), 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, 3115), 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, 3111), 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#27281]
(63) Generate
Arguments: explode(prodPlantResults#27281), false, [prodPlantResults#27282]
(64) Project
Arguments: [prodPlantResults#27282]
(65) Generate
Arguments: explode(prodPlantResults#27282.quantityKpiResults), false, [quantityKpiResults#27249]
(66) Project
Arguments: [prodPlantResults#27282.productId AS product#27243, prodPlantResults#27282.plantId AS plant#27244, quantityKpiResults#27249]
(67) Project
Arguments: [product#27243, plant#27244, quantityKpiResults#27249, quantityKpiResults#27249.quantity AS qty#27250]
(68) Project
Arguments: [product#27243, plant#27244, quantityKpiResults#27249, qty#27250, cast(null as string) AS demandChannel#27252]
(69) Project
Arguments: [product#27243, plant#27244, quantityKpiResults#27249, qty#27250, demandChannel#27252, cast(null as string) AS demandStream#27253]
(70) Project
Arguments: [product#27243, plant#27244, quantityKpiResults#27249, qty#27250, demandChannel#27252, demandStream#27253, quantityKpiResults#27249.kpiResults AS kpis#27254]
(71) Project
Arguments: [product#27243, plant#27244, qty#27250, demandChannel#27252, demandStream#27253, kpis#27254]
(72) Project
Arguments: [product#27243, plant#27244, kpis#27254, qty#27250, demandChannel#27252, demandStream#27253]
(73) ExternalRDD
Arguments: [obj#27284]
(74) SerializeFromObject
Arguments: [mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 3110), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 3110), 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, 3110), 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, 3110), 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, 3110), 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, 3110), 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#27285, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 3111), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 3111), 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, 3112), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 3112), 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, 3112), 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, 3112), 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, 3113), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 3113), 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, 3113), 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, 3113), 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, 3113), 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, 3112), 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, 3111), 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, 3114), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 3114), 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, 3114), 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, 3114), 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, 3114), 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, 3111), 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, 3111), 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, 3111), 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, 3115), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 3115), 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, 3116), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 3116), 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, 3116), 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, 3116), 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, 3116), 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, 3115), 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, 3115), 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, 3111), 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#27286]
(75) Generate
Arguments: explode(prodPlantResults#27286), false, [prodPlantResults#27287]
(76) Project
Arguments: [prodPlantResults#27287]
(77) Generate
Arguments: explode(prodPlantResults#27287.demandChannelStreamKpiResults), false, [demandChannelStreamKpiResults#27271]
(78) Project
Arguments: [prodPlantResults#27287.productId AS product#27265, prodPlantResults#27287.plantId AS plant#27266, demandChannelStreamKpiResults#27271]
(79) Project
Arguments: [product#27265, plant#27266, demandChannelStreamKpiResults#27271, null AS qty#27272]
(80) Project
Arguments: [product#27265, plant#27266, demandChannelStreamKpiResults#27271, qty#27272, demandChannelStreamKpiResults#27271.demandChannel AS demandChannel#27273]
(81) Project
Arguments: [product#27265, plant#27266, demandChannelStreamKpiResults#27271, qty#27272, demandChannel#27273, demandChannelStreamKpiResults#27271.demandStream AS demandStream#27275]
(82) Project
Arguments: [product#27265, plant#27266, demandChannelStreamKpiResults#27271, qty#27272, demandChannel#27273, demandStream#27275, demandChannelStreamKpiResults#27271.kpiResults AS kpis#27277]
(83) Project
Arguments: [product#27265, plant#27266, qty#27272, demandChannel#27273, demandStream#27275, kpis#27277]
(84) Project
Arguments: [product#27265, plant#27266, kpis#27277, qty#27272, demandChannel#27273, demandStream#27275]
(85) Project
Arguments: [product#27265, plant#27266, kpis#27277, cast(qty#27272 as double) AS qty#27288, demandChannel#27273, demandStream#27275]
(86) Union
Arguments: false, false
(87) Project
Arguments: [product#27256, plant#27257, transform(kpis#27258, lambdafunction(struct(label, lambda kpi#27293.label, dateTime, lambda kpi#27293.datetime, value, lambda kpi#27293.value), lambda kpi#27293, false)) AS kpis#27292, qty#27283, demandChannel#27263, demandStream#27264]
(88) Project
Arguments: [product#27256, plant#27257, qty#27283, demandChannel#27263, demandStream#27264, kpis#27292]
(89) LogicalRDD
Arguments: [shardId#28101, worklistShardItemId#28102L, version#28103, product#28104, plant#28105, periodStart#28106, periodEnd#28107, qty#28108], false
(90) RepartitionByExpression
Arguments: [product#28104, plant#28105], 37
(91) Project
Arguments: [shardId#28101, worklistShardItemId#28102L, version#28103, product#28104, plant#28105, qty#28108]
(92) LogicalRDD
Arguments: [shardId#28109, worklistShardItemId#28110L, version#28111, product#28112, plant#28113, periodStart#28114, periodEnd#28115, qty#28116], false
(93) RepartitionByExpression
Arguments: [product#28112, plant#28113], 37
(94) Project
Arguments: [shardId#28109, worklistShardItemId#28110L, version#28111, product#28112, plant#28113, qty#28116]
(95) LogicalRDD
Arguments: [shardId#28117, worklistShardItemId#28118L, qty#28119, demandChannel#28120, demandStream#28121, kpis#28122], false
(96) Project
Arguments: [shardId#28117 AS cachedShardId#28123, worklistShardItemId#28118L AS cachedWorklistShardItemId#28124L, qty#28119 AS cachedQty#28125, demandChannel#28120, demandStream#28121, kpis#28122 AS cachedKpis#28126]
(97) Join
Arguments: Inner, (((worklistShardItemId#28110L = cachedWorklistShardItemId#28124L) AND (shardId#28109 = cachedShardId#28123)) AND ((qty#28116 = cachedQty#28125) OR isnull(qty#28116)))
(98) Project
Arguments: [shardId#28109, worklistShardItemId#28110L, version#28111, product#28112, plant#28113]
(99) Deduplicate
Arguments: [plant#28113, shardId#28109, version#28111, worklistShardItemId#28110L, product#28112]
(100) LogicalRDD
Arguments: [shardId#28127, worklistShardItemId#28128L, qty#28129, demandChannel#28130, demandStream#28131, kpis#28132], false
(101) Project
Arguments: [shardId#28127 AS cachedShardId#28133, worklistShardItemId#28128L AS cachedWorklistShardItemId#28134L, qty#28129 AS cachedQty#28135, demandChannel#28130, demandStream#28131, kpis#28132 AS cachedKpis#28136]
(102) Join
Arguments: Inner, ((worklistShardItemId#28110L = cachedWorklistShardItemId#28134L) AND (shardId#28109 = cachedShardId#28133))
(103) Project
Arguments: [shardId#28109, worklistShardItemId#28110L, version#28111, product#28112, plant#28113, cachedQty#28135 AS qty#28137, demandChannel#28130, demandStream#28131, cachedKpis#28136 AS kpis#28138]
(104) Project
Arguments: [shardId#28109, worklistShardItemId#28110L, version#28111, product#28112, plant#28113, qty#28137]
(105) LogicalRDD
Arguments: [shardId#28139, worklistShardItemId#28140L, version#28141, product#28142, plant#28143, periodStart#28144, periodEnd#28145, qty#28146], false
(106) RepartitionByExpression
Arguments: [product#28142, plant#28143], 37
(107) Project
Arguments: [shardId#28139, worklistShardItemId#28140L, version#28141, product#28142, plant#28143, qty#28146]
(108) LogicalRDD
Arguments: [shardId#28147, worklistShardItemId#28148L, qty#28149, demandChannel#28150, demandStream#28151, kpis#28152], false
(109) Project
Arguments: [shardId#28147 AS cachedShardId#28153, worklistShardItemId#28148L AS cachedWorklistShardItemId#28154L, qty#28149 AS cachedQty#28155, demandChannel#28150, demandStream#28151, kpis#28152 AS cachedKpis#28156]
(110) Join
Arguments: Inner, (((worklistShardItemId#28140L = cachedWorklistShardItemId#28154L) AND (shardId#28139 = cachedShardId#28153)) AND isnull(qty#28146))
(111) Project
Arguments: [shardId#28139, worklistShardItemId#28140L, version#28141, product#28142, plant#28143, qty#28146]
(112) Project
Arguments: [shardId#28139, worklistShardItemId#28140L, version#28141, product#28142, plant#28143, qty#28146]
(113) Union
Arguments: false, false
(114) Join
Arguments: LeftAnti, ((((((shardId#28101 <=> shardId#28109) AND (worklistShardItemId#28102L <=> worklistShardItemId#28110L)) AND (version#28103 <=> version#28111)) AND (product#28104 <=> product#28112)) AND (plant#28105 <=> plant#28113)) AND (qty#28108 <=> qty#28137))
(115) Project
Arguments: [shardId#28101, worklistShardItemId#28102L, version#28103, product#28104, plant#28105, qty#28108]
(116) Project
Arguments: [shardId#28101, worklistShardItemId#28102L, version#28103, product#28104, plant#28105, qty#28108, cast(null as string) AS demandChannel#28157]
(117) Project
Arguments: [shardId#28101, worklistShardItemId#28102L, version#28103, product#28104, plant#28105, qty#28108, demandChannel#28157, cast(null as string) AS demandStream#28158]
(118) Project
Arguments: [shardId#28101, worklistShardItemId#28102L, version#28103, product#28104, plant#28105, qty#28108, demandChannel#28157, demandStream#28158, array() AS kpis#28159]
(119) Project
Arguments: [shardId#28101, worklistShardItemId#28102L, version#28103, product#28104, plant#28105, qty#28108, demandChannel#28157, demandStream#28158, kpis#28159, true AS isNewlyCalculated#28160]
(120) Project
Arguments: [shardId#28101, worklistShardItemId#28102L, version#28103, product#28104, plant#28105, qty#28108, demandChannel#28157, demandStream#28158, cast(kpis#28159 as array<struct<label:string,dateTime:timestamp,value:double>>) AS kpis#28161, isNewlyCalculated#28160]
(121) LogicalRDD
Arguments: [shardId#28162, worklistShardItemId#28163L, version#28164, product#28165, plant#28166, periodStart#28167, periodEnd#28168, qty#28169], false
(122) RepartitionByExpression
Arguments: [product#28165, plant#28166], 37
(123) Project
Arguments: [shardId#28162, worklistShardItemId#28163L, version#28164, product#28165, plant#28166, qty#28169]
(124) LogicalRDD
Arguments: [shardId#28170, worklistShardItemId#28171L, qty#28172, demandChannel#28173, demandStream#28174, kpis#28175], false
(125) Project
Arguments: [shardId#28170 AS cachedShardId#28176, worklistShardItemId#28171L AS cachedWorklistShardItemId#28177L, qty#28172 AS cachedQty#28178, demandChannel#28173, demandStream#28174, kpis#28175 AS cachedKpis#28179]
(126) Join
Arguments: Inner, (((worklistShardItemId#28163L = cachedWorklistShardItemId#28177L) AND (shardId#28162 = cachedShardId#28176)) AND ((qty#28169 = cachedQty#28178) OR isnull(qty#28169)))
(127) Project
Arguments: [shardId#28162, worklistShardItemId#28163L, version#28164, product#28165, plant#28166]
(128) Deduplicate
Arguments: [plant#28166, shardId#28162, version#28164, worklistShardItemId#28163L, product#28165]
(129) LogicalRDD
Arguments: [shardId#28180, worklistShardItemId#28181L, qty#28182, demandChannel#28183, demandStream#28184, kpis#28185], false
(130) Project
Arguments: [shardId#28180 AS cachedShardId#28186, worklistShardItemId#28181L AS cachedWorklistShardItemId#28187L, qty#28182 AS cachedQty#28188, demandChannel#28183, demandStream#28184, kpis#28185 AS cachedKpis#28189]
(131) Join
Arguments: Inner, ((worklistShardItemId#28163L = cachedWorklistShardItemId#28187L) AND (shardId#28162 = cachedShardId#28186))
(132) Project
Arguments: [shardId#28162, worklistShardItemId#28163L, version#28164, product#28165, plant#28166, cachedQty#28188 AS qty#28190, demandChannel#28183, demandStream#28184, cachedKpis#28189 AS kpis#28191]
(133) Project
Arguments: [shardId#28162, worklistShardItemId#28163L, version#28164, product#28165, plant#28166, qty#28190, demandChannel#28183, demandStream#28184, kpis#28191, false AS isNewlyCalculated#28192]
(134) Project
Arguments: [shardId#28162, worklistShardItemId#28163L, version#28164, product#28165, plant#28166, qty#28190, demandChannel#28183, demandStream#28184, kpis#28191, isNewlyCalculated#28192]
(135) Union
Arguments: false, false
(136) Filter
Arguments: (isNewlyCalculated#28160 <=> true)
(137) Project
Arguments: [shardId#28101, worklistShardItemId#28102L, product#28104, plant#28105, qty#28108, kpis#28161]
(138) Project
Arguments: [shardId#28101, worklistShardItemId#28102L, product#28104, plant#28105, qty#28108]
(139) Deduplicate
Arguments: [plant#28105, shardId#28101, qty#28108, worklistShardItemId#28102L, product#28104]
(140) Join
Arguments: Inner, ((product#27256 <=> product#28104) AND ((plant#27257 <=> plant#28105) AND ((qty#27283 <=> qty#28108) OR isnull(qty#28108))))
(141) Project
Arguments: [shardId#28101, worklistShardItemId#28102L, qty#27283, demandChannel#27263, demandStream#27264, kpis#27292]
(142) Deduplicate
Arguments: [demandChannel#27263, shardId#28101, qty#27283, worklistShardItemId#28102L, demandStream#27264]
(143) Project
Arguments: [shardId#28101, worklistShardItemId#28102L, qty#27283, demandChannel#27263, demandStream#27264, kpis#27292]
(144) Union
Arguments: false, false
(145) LogicalRDD
Arguments: [shardId#28193, worklistShardItemId#28194L, version#28195, product#28196, plant#28197, periodStart#28198, periodEnd#28199, qty#28200], false
(146) RepartitionByExpression
Arguments: [product#28196, plant#28197], 37
(147) Project
Arguments: [shardId#28193, worklistShardItemId#28194L, version#28195, product#28196, plant#28197, qty#28200]
(148) LogicalRDD
Arguments: [shardId#28201, worklistShardItemId#28202L, version#28203, product#28204, plant#28205, periodStart#28206, periodEnd#28207, qty#28208], false
(149) RepartitionByExpression
Arguments: [product#28204, plant#28205], 37
(150) Project
Arguments: [shardId#28201, worklistShardItemId#28202L, version#28203, product#28204, plant#28205, qty#28208]
(151) LogicalRDD
Arguments: [shardId#28209, worklistShardItemId#28210L, qty#28211, demandChannel#28212, demandStream#28213, kpis#28214], false
(152) Project
Arguments: [shardId#28209 AS cachedShardId#28215, worklistShardItemId#28210L AS cachedWorklistShardItemId#28216L, qty#28211 AS cachedQty#28217, demandChannel#28212, demandStream#28213, kpis#28214 AS cachedKpis#28218]
(153) Join
Arguments: Inner, (((worklistShardItemId#28202L = cachedWorklistShardItemId#28216L) AND (shardId#28201 = cachedShardId#28215)) AND ((qty#28208 = cachedQty#28217) OR isnull(qty#28208)))
(154) Project
Arguments: [shardId#28201, worklistShardItemId#28202L, version#28203, product#28204, plant#28205]
(155) Deduplicate
Arguments: [plant#28205, shardId#28201, version#28203, worklistShardItemId#28202L, product#28204]
(156) LogicalRDD
Arguments: [shardId#28219, worklistShardItemId#28220L, qty#28221, demandChannel#28222, demandStream#28223, kpis#28224], false
(157) Project
Arguments: [shardId#28219 AS cachedShardId#28225, worklistShardItemId#28220L AS cachedWorklistShardItemId#28226L, qty#28221 AS cachedQty#28227, demandChannel#28222, demandStream#28223, kpis#28224 AS cachedKpis#28228]
(158) Join
Arguments: Inner, ((worklistShardItemId#28202L = cachedWorklistShardItemId#28226L) AND (shardId#28201 = cachedShardId#28225))
(159) Project
Arguments: [shardId#28201, worklistShardItemId#28202L, version#28203, product#28204, plant#28205, cachedQty#28227 AS qty#28229, demandChannel#28222, demandStream#28223, cachedKpis#28228 AS kpis#28230]
(160) Project
Arguments: [shardId#28201, worklistShardItemId#28202L, version#28203, product#28204, plant#28205, qty#28229]
(161) LogicalRDD
Arguments: [shardId#28231, worklistShardItemId#28232L, version#28233, product#28234, plant#28235, periodStart#28236, periodEnd#28237, qty#28238], false
(162) RepartitionByExpression
Arguments: [product#28234, plant#28235], 37
(163) Project
Arguments: [shardId#28231, worklistShardItemId#28232L, version#28233, product#28234, plant#28235, qty#28238]
(164) LogicalRDD
Arguments: [shardId#28239, worklistShardItemId#28240L, qty#28241, demandChannel#28242, demandStream#28243, kpis#28244], false
(165) Project
Arguments: [shardId#28239 AS cachedShardId#28245, worklistShardItemId#28240L AS cachedWorklistShardItemId#28246L, qty#28241 AS cachedQty#28247, demandChannel#28242, demandStream#28243, kpis#28244 AS cachedKpis#28248]
(166) Join
Arguments: Inner, (((worklistShardItemId#28232L = cachedWorklistShardItemId#28246L) AND (shardId#28231 = cachedShardId#28245)) AND isnull(qty#28238))
(167) Project
Arguments: [shardId#28231, worklistShardItemId#28232L, version#28233, product#28234, plant#28235, qty#28238]
(168) Project
Arguments: [shardId#28231, worklistShardItemId#28232L, version#28233, product#28234, plant#28235, qty#28238]
(169) Union
Arguments: false, false
(170) Join
Arguments: LeftAnti, ((((((shardId#28193 <=> shardId#28201) AND (worklistShardItemId#28194L <=> worklistShardItemId#28202L)) AND (version#28195 <=> version#28203)) AND (product#28196 <=> product#28204)) AND (plant#28197 <=> plant#28205)) AND (qty#28200 <=> qty#28229))
(171) Project
Arguments: [shardId#28193, worklistShardItemId#28194L, version#28195, product#28196, plant#28197, qty#28200]
(172) Project
Arguments: [shardId#28193, worklistShardItemId#28194L, version#28195, product#28196, plant#28197, qty#28200, cast(null as string) AS demandChannel#28249]
(173) Project
Arguments: [shardId#28193, worklistShardItemId#28194L, version#28195, product#28196, plant#28197, qty#28200, demandChannel#28249, cast(null as string) AS demandStream#28250]
(174) Project
Arguments: [shardId#28193, worklistShardItemId#28194L, version#28195, product#28196, plant#28197, qty#28200, demandChannel#28249, demandStream#28250, array() AS kpis#28251]
(175) Project
Arguments: [shardId#28193, worklistShardItemId#28194L, version#28195, product#28196, plant#28197, qty#28200, demandChannel#28249, demandStream#28250, kpis#28251, true AS isNewlyCalculated#28252]
(176) Project
Arguments: [shardId#28193, worklistShardItemId#28194L, version#28195, product#28196, plant#28197, qty#28200, demandChannel#28249, demandStream#28250, cast(kpis#28251 as array<struct<label:string,dateTime:timestamp,value:double>>) AS kpis#28253, isNewlyCalculated#28252]
(177) LogicalRDD
Arguments: [shardId#28254, worklistShardItemId#28255L, version#28256, product#28257, plant#28258, periodStart#28259, periodEnd#28260, qty#28261], false
(178) RepartitionByExpression
Arguments: [product#28257, plant#28258], 37
(179) Project
Arguments: [shardId#28254, worklistShardItemId#28255L, version#28256, product#28257, plant#28258, qty#28261]
(180) LogicalRDD
Arguments: [shardId#28262, worklistShardItemId#28263L, qty#28264, demandChannel#28265, demandStream#28266, kpis#28267], false
(181) Project
Arguments: [shardId#28262 AS cachedShardId#28268, worklistShardItemId#28263L AS cachedWorklistShardItemId#28269L, qty#28264 AS cachedQty#28270, demandChannel#28265, demandStream#28266, kpis#28267 AS cachedKpis#28271]
(182) Join
Arguments: Inner, (((worklistShardItemId#28255L = cachedWorklistShardItemId#28269L) AND (shardId#28254 = cachedShardId#28268)) AND ((qty#28261 = cachedQty#28270) OR isnull(qty#28261)))
(183) Project
Arguments: [shardId#28254, worklistShardItemId#28255L, version#28256, product#28257, plant#28258]
(184) Deduplicate
Arguments: [plant#28258, shardId#28254, version#28256, worklistShardItemId#28255L, product#28257]
(185) LogicalRDD
Arguments: [shardId#28272, worklistShardItemId#28273L, qty#28274, demandChannel#28275, demandStream#28276, kpis#28277], false
(186) Project
Arguments: [shardId#28272 AS cachedShardId#28278, worklistShardItemId#28273L AS cachedWorklistShardItemId#28279L, qty#28274 AS cachedQty#28280, demandChannel#28275, demandStream#28276, kpis#28277 AS cachedKpis#28281]
(187) Join
Arguments: Inner, ((worklistShardItemId#28255L = cachedWorklistShardItemId#28279L) AND (shardId#28254 = cachedShardId#28278))
(188) Project
Arguments: [shardId#28254, worklistShardItemId#28255L, version#28256, product#28257, plant#28258, cachedQty#28280 AS qty#28282, demandChannel#28275, demandStream#28276, cachedKpis#28281 AS kpis#28283]
(189) Project
Arguments: [shardId#28254, worklistShardItemId#28255L, version#28256, product#28257, plant#28258, qty#28282, demandChannel#28275, demandStream#28276, kpis#28283, false AS isNewlyCalculated#28284]
(190) Project
Arguments: [shardId#28254, worklistShardItemId#28255L, version#28256, product#28257, plant#28258, qty#28282, demandChannel#28275, demandStream#28276, kpis#28283, isNewlyCalculated#28284]
(191) Union
Arguments: false, false
(192) Project
Arguments: [shardId#28193, worklistShardItemId#28194L, version#28195]
(193) Aggregate
Arguments: [shardId#28193, worklistShardItemId#28194L], [shardId#28193, worklistShardItemId#28194L, (max(version#28195) + 1) AS version#28096]
(194) Join
Arguments: Inner, ((shardId#445 = shardId#28193) AND (worklistShardItemId#446L = worklistShardItemId#28194L))
(195) Project
Arguments: [shardId#445, worklistShardItemId#446L, qty#452, demandChannel#24687, demandStream#24688, kpis#24722, version#28096]
(196) Project
Arguments: [shardId#445, worklistShardItemId#446L, version#28096, qty#452, demandChannel#24687, demandStream#24688, kpis#24722]