== 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@7ac51997, [path=hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-quantity-kpi-service/out/kpi-curve-update/10000000350/stream-10000000350-1], Append
(3) LogicalRDD
Arguments: [shardId#1100457, worklistShardItemId#1100458L, version#1100459, product#1100460, plant#1100461, periodStart#1100462, periodEnd#1100463, qty#1100464], false
(4) RepartitionByExpression
Arguments: [product#1100460, plant#1100461], 37
(5) Project
Arguments: [shardId#1100457, worklistShardItemId#1100458L, version#1100459, product#1100460, plant#1100461, qty#1100464]
(6) LogicalRDD
Arguments: [shardId#1139787, worklistShardItemId#1139788L, version#1139789, product#1139790, plant#1139791, periodStart#1139792, periodEnd#1139793, qty#1139794], false
(7) RepartitionByExpression
Arguments: [product#1139790, plant#1139791], 37
(8) Project
Arguments: [shardId#1139787, worklistShardItemId#1139788L, version#1139789, product#1139790, plant#1139791, qty#1139794]
(9) LogicalRDD
Arguments: [shardId#1139542, worklistShardItemId#1139543L, qty#1139544, demandChannel#1139545, demandStream#1139546, kpis#1139547], false
(10) Project
Arguments: [shardId#1139542 AS cachedShardId#1139548, worklistShardItemId#1139543L AS cachedWorklistShardItemId#1139549L, qty#1139544 AS cachedQty#1139550, demandChannel#1139545, demandStream#1139546, kpis#1139547 AS cachedKpis#1139551]
(11) Join
Arguments: Inner, (((worklistShardItemId#1139788L = cachedWorklistShardItemId#1139549L) AND (shardId#1139787 = cachedShardId#1139548)) AND ((qty#1139794 = cachedQty#1139550) OR isnull(qty#1139794)))
(12) Project
Arguments: [shardId#1139787, worklistShardItemId#1139788L, version#1139789, product#1139790, plant#1139791]
(13) Deduplicate
Arguments: [plant#1139791, shardId#1139787, version#1139789, worklistShardItemId#1139788L, product#1139790]
(14) LogicalRDD
Arguments: [shardId#1139552, worklistShardItemId#1139553L, qty#1139554, demandChannel#1139555, demandStream#1139556, kpis#1139557], false
(15) Project
Arguments: [shardId#1139552 AS cachedShardId#1139558, worklistShardItemId#1139553L AS cachedWorklistShardItemId#1139559L, qty#1139554 AS cachedQty#1139560, demandChannel#1139555, demandStream#1139556, kpis#1139557 AS cachedKpis#1139561]
(16) Join
Arguments: Inner, ((worklistShardItemId#1139788L = cachedWorklistShardItemId#1139559L) AND (shardId#1139787 = cachedShardId#1139558))
(17) Project
Arguments: [shardId#1139787, worklistShardItemId#1139788L, version#1139789, product#1139790, plant#1139791, cachedQty#1139560 AS qty#1139562, demandChannel#1139555, demandStream#1139556, cachedKpis#1139561 AS kpis#1139563]
(18) Project
Arguments: [shardId#1139787, worklistShardItemId#1139788L, version#1139789, product#1139790, plant#1139791, qty#1139562]
(19) LogicalRDD
Arguments: [shardId#1139769, worklistShardItemId#1139770L, version#1139771, product#1139772, plant#1139773, periodStart#1139774, periodEnd#1139775, qty#1139776], false
(20) RepartitionByExpression
Arguments: [product#1139772, plant#1139773], 37
(21) Project
Arguments: [shardId#1139769, worklistShardItemId#1139770L, version#1139771, product#1139772, plant#1139773, qty#1139776]
(22) LogicalRDD
Arguments: [shardId#1139777, worklistShardItemId#1139778L, qty#1139779, demandChannel#1139780, demandStream#1139781, kpis#1139782], false
(23) Project
Arguments: [shardId#1139777 AS cachedShardId#1139783, worklistShardItemId#1139778L AS cachedWorklistShardItemId#1139784L, qty#1139779 AS cachedQty#1139785, demandChannel#1139780, demandStream#1139781, kpis#1139782 AS cachedKpis#1139786]
(24) Join
Arguments: Inner, (((worklistShardItemId#1139770L = cachedWorklistShardItemId#1139784L) AND (shardId#1139769 = cachedShardId#1139783)) AND isnull(qty#1139776))
(25) Project
Arguments: [shardId#1139769, worklistShardItemId#1139770L, version#1139771, product#1139772, plant#1139773, qty#1139776]
(26) Project
Arguments: [shardId#1139769, worklistShardItemId#1139770L, version#1139771, product#1139772, plant#1139773, qty#1139776]
(27) Union
Arguments: false, false
(28) Join
Arguments: LeftAnti, ((((((shardId#1100457 <=> shardId#1139787) AND (worklistShardItemId#1100458L <=> worklistShardItemId#1139788L)) AND (version#1100459 <=> version#1139789)) AND (product#1100460 <=> product#1139790)) AND (plant#1100461 <=> plant#1139791)) AND (qty#1100464 <=> qty#1139562))
(29) Project
Arguments: [shardId#1100457, worklistShardItemId#1100458L, version#1100459, product#1100460, plant#1100461, qty#1100464]
(30) Project
Arguments: [shardId#1100457, worklistShardItemId#1100458L, version#1100459, product#1100460, plant#1100461, qty#1100464, cast(null as string) AS demandChannel#1139795]
(31) Project
Arguments: [shardId#1100457, worklistShardItemId#1100458L, version#1100459, product#1100460, plant#1100461, qty#1100464, demandChannel#1139795, cast(null as string) AS demandStream#1139796]
(32) Project
Arguments: [shardId#1100457, worklistShardItemId#1100458L, version#1100459, product#1100460, plant#1100461, qty#1100464, demandChannel#1139795, demandStream#1139796, array() AS kpis#1139797]
(33) Project
Arguments: [shardId#1100457, worklistShardItemId#1100458L, version#1100459, product#1100460, plant#1100461, qty#1100464, demandChannel#1139795, demandStream#1139796, kpis#1139797, true AS isNewlyCalculated#1139798]
(34) Project
Arguments: [shardId#1100457, worklistShardItemId#1100458L, version#1100459, product#1100460, plant#1100461, qty#1100464, demandChannel#1139795, demandStream#1139796, cast(kpis#1139797 as array<struct<label:string,dateTime:timestamp,value:double>>) AS kpis#1139830, isNewlyCalculated#1139798]
(35) LogicalRDD
Arguments: [shardId#1139800, worklistShardItemId#1139801L, version#1139802, product#1139803, plant#1139804, periodStart#1139805, periodEnd#1139806, qty#1139807], false
(36) RepartitionByExpression
Arguments: [product#1139803, plant#1139804], 37
(37) Project
Arguments: [shardId#1139800, worklistShardItemId#1139801L, version#1139802, product#1139803, plant#1139804, qty#1139807]
(38) LogicalRDD
Arguments: [shardId#1139808, worklistShardItemId#1139809L, qty#1139810, demandChannel#1139811, demandStream#1139812, kpis#1139813], false
(39) Project
Arguments: [shardId#1139808 AS cachedShardId#1139814, worklistShardItemId#1139809L AS cachedWorklistShardItemId#1139815L, qty#1139810 AS cachedQty#1139816, demandChannel#1139811, demandStream#1139812, kpis#1139813 AS cachedKpis#1139817]
(40) Join
Arguments: Inner, (((worklistShardItemId#1139801L = cachedWorklistShardItemId#1139815L) AND (shardId#1139800 = cachedShardId#1139814)) AND ((qty#1139807 = cachedQty#1139816) OR isnull(qty#1139807)))
(41) Project
Arguments: [shardId#1139800, worklistShardItemId#1139801L, version#1139802, product#1139803, plant#1139804]
(42) Deduplicate
Arguments: [plant#1139804, shardId#1139800, version#1139802, worklistShardItemId#1139801L, product#1139803]
(43) LogicalRDD
Arguments: [shardId#1139818, worklistShardItemId#1139819L, qty#1139820, demandChannel#1139821, demandStream#1139822, kpis#1139823], false
(44) Project
Arguments: [shardId#1139818 AS cachedShardId#1139824, worklistShardItemId#1139819L AS cachedWorklistShardItemId#1139825L, qty#1139820 AS cachedQty#1139826, demandChannel#1139821, demandStream#1139822, kpis#1139823 AS cachedKpis#1139827]
(45) Join
Arguments: Inner, ((worklistShardItemId#1139801L = cachedWorklistShardItemId#1139825L) AND (shardId#1139800 = cachedShardId#1139824))
(46) Project
Arguments: [shardId#1139800, worklistShardItemId#1139801L, version#1139802, product#1139803, plant#1139804, cachedQty#1139826 AS qty#1139828, demandChannel#1139821, demandStream#1139822, cachedKpis#1139827 AS kpis#1139829]
(47) Project
Arguments: [shardId#1139800, worklistShardItemId#1139801L, version#1139802, product#1139803, plant#1139804, qty#1139828, demandChannel#1139821, demandStream#1139822, kpis#1139829, false AS isNewlyCalculated#1139799]
(48) Project
Arguments: [shardId#1139800, worklistShardItemId#1139801L, version#1139802, product#1139803, plant#1139804, qty#1139828, demandChannel#1139821, demandStream#1139822, kpis#1139829, isNewlyCalculated#1139799]
(49) Union
Arguments: false, false
(50) Filter
Arguments: (isNewlyCalculated#1139798 <=> false)
(51) Project
Arguments: [shardId#1100457, worklistShardItemId#1100458L, qty#1100464, demandChannel#1139795, demandStream#1139796, kpis#1139830]
(52) ExternalRDD
Arguments: [obj#1142294]
(53) SerializeFromObject
Arguments: [mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90120), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90120), 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, 90120), 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, 90120), 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, 90120), 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, 90120), 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#1142297, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90121), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90121), 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, 90122), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90122), 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, 90122), 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, 90122), 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, 90123), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90123), 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, 90123), 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, 90123), 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, 90123), 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, 90122), 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, 90121), 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, 90124), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90124), 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, 90124), 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, 90124), 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, 90124), 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, 90121), 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, 90121), 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, 90121), 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, 90125), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90125), 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, 90126), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90126), 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, 90126), 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, 90126), 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, 90126), 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, 90125), 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, 90125), 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, 90121), 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#1142298]
(54) Generate
Arguments: explode(prodPlantResults#1142298), false, [prodPlantResults#1142305]
(55) Project
Arguments: [prodPlantResults#1142305]
(56) Project
Arguments: [prodPlantResults#1142305.productId AS product#1142324, prodPlantResults#1142305.plantId AS plant#1142325, prodPlantResults#1142305.kpiResults AS kpis#1142326]
(57) Project
Arguments: [product#1142324, plant#1142325, kpis#1142326, null AS qty#1142330]
(58) Project
Arguments: [product#1142324, plant#1142325, kpis#1142326, qty#1142330, cast(null as string) AS demandChannel#1142331]
(59) Project
Arguments: [product#1142324, plant#1142325, kpis#1142326, qty#1142330, demandChannel#1142331, cast(null as string) AS demandStream#1142332]
(60) Project
Arguments: [product#1142324, plant#1142325, kpis#1142326, cast(qty#1142330 as double) AS qty#1142351, demandChannel#1142331, demandStream#1142332]
(61) ExternalRDD
Arguments: [obj#1142347]
(62) SerializeFromObject
Arguments: [mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90120), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90120), 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, 90120), 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, 90120), 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, 90120), 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, 90120), 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#1142348, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90121), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90121), 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, 90122), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90122), 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, 90122), 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, 90122), 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, 90123), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90123), 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, 90123), 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, 90123), 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, 90123), 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, 90122), 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, 90121), 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, 90124), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90124), 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, 90124), 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, 90124), 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, 90124), 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, 90121), 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, 90121), 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, 90121), 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, 90125), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90125), 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, 90126), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90126), 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, 90126), 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, 90126), 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, 90126), 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, 90125), 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, 90125), 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, 90121), 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#1142349]
(63) Generate
Arguments: explode(prodPlantResults#1142349), false, [prodPlantResults#1142350]
(64) Project
Arguments: [prodPlantResults#1142350]
(65) Generate
Arguments: explode(prodPlantResults#1142350.quantityKpiResults), false, [quantityKpiResults#1142317]
(66) Project
Arguments: [prodPlantResults#1142350.productId AS product#1142311, prodPlantResults#1142350.plantId AS plant#1142312, quantityKpiResults#1142317]
(67) Project
Arguments: [product#1142311, plant#1142312, quantityKpiResults#1142317, quantityKpiResults#1142317.quantity AS qty#1142318]
(68) Project
Arguments: [product#1142311, plant#1142312, quantityKpiResults#1142317, qty#1142318, cast(null as string) AS demandChannel#1142320]
(69) Project
Arguments: [product#1142311, plant#1142312, quantityKpiResults#1142317, qty#1142318, demandChannel#1142320, cast(null as string) AS demandStream#1142321]
(70) Project
Arguments: [product#1142311, plant#1142312, quantityKpiResults#1142317, qty#1142318, demandChannel#1142320, demandStream#1142321, quantityKpiResults#1142317.kpiResults AS kpis#1142322]
(71) Project
Arguments: [product#1142311, plant#1142312, qty#1142318, demandChannel#1142320, demandStream#1142321, kpis#1142322]
(72) Project
Arguments: [product#1142311, plant#1142312, kpis#1142322, qty#1142318, demandChannel#1142320, demandStream#1142321]
(73) ExternalRDD
Arguments: [obj#1142352]
(74) SerializeFromObject
Arguments: [mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90120), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90120), 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, 90120), 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, 90120), 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, 90120), 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, 90120), 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#1142353, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90121), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90121), 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, 90122), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90122), 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, 90122), 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, 90122), 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, 90123), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90123), 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, 90123), 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, 90123), 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, 90123), 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, 90122), 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, 90121), 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, 90124), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90124), 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, 90124), 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, 90124), 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, 90124), 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, 90121), 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, 90121), 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, 90121), 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, 90125), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90125), 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, 90126), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90126), 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, 90126), 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, 90126), 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, 90126), 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, 90125), 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, 90125), 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, 90121), 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#1142354]
(75) Generate
Arguments: explode(prodPlantResults#1142354), false, [prodPlantResults#1142355]
(76) Project
Arguments: [prodPlantResults#1142355]
(77) Generate
Arguments: explode(prodPlantResults#1142355.demandChannelStreamKpiResults), false, [demandChannelStreamKpiResults#1142339]
(78) Project
Arguments: [prodPlantResults#1142355.productId AS product#1142333, prodPlantResults#1142355.plantId AS plant#1142334, demandChannelStreamKpiResults#1142339]
(79) Project
Arguments: [product#1142333, plant#1142334, demandChannelStreamKpiResults#1142339, null AS qty#1142340]
(80) Project
Arguments: [product#1142333, plant#1142334, demandChannelStreamKpiResults#1142339, qty#1142340, demandChannelStreamKpiResults#1142339.demandChannel AS demandChannel#1142341]
(81) Project
Arguments: [product#1142333, plant#1142334, demandChannelStreamKpiResults#1142339, qty#1142340, demandChannel#1142341, demandChannelStreamKpiResults#1142339.demandStream AS demandStream#1142343]
(82) Project
Arguments: [product#1142333, plant#1142334, demandChannelStreamKpiResults#1142339, qty#1142340, demandChannel#1142341, demandStream#1142343, demandChannelStreamKpiResults#1142339.kpiResults AS kpis#1142345]
(83) Project
Arguments: [product#1142333, plant#1142334, qty#1142340, demandChannel#1142341, demandStream#1142343, kpis#1142345]
(84) Project
Arguments: [product#1142333, plant#1142334, kpis#1142345, qty#1142340, demandChannel#1142341, demandStream#1142343]
(85) Project
Arguments: [product#1142333, plant#1142334, kpis#1142345, cast(qty#1142340 as double) AS qty#1142356, demandChannel#1142341, demandStream#1142343]
(86) Union
Arguments: false, false
(87) Project
Arguments: [product#1142324, plant#1142325, transform(kpis#1142326, lambdafunction(struct(label, lambda kpi#1142361.label, dateTime, lambda kpi#1142361.datetime, value, lambda kpi#1142361.value), lambda kpi#1142361, false)) AS kpis#1142360, qty#1142351, demandChannel#1142331, demandStream#1142332]
(88) Project
Arguments: [product#1142324, plant#1142325, qty#1142351, demandChannel#1142331, demandStream#1142332, kpis#1142360]
(89) LogicalRDD
Arguments: [shardId#1143169, worklistShardItemId#1143170L, version#1143171, product#1143172, plant#1143173, periodStart#1143174, periodEnd#1143175, qty#1143176], false
(90) RepartitionByExpression
Arguments: [product#1143172, plant#1143173], 37
(91) Project
Arguments: [shardId#1143169, worklistShardItemId#1143170L, version#1143171, product#1143172, plant#1143173, qty#1143176]
(92) LogicalRDD
Arguments: [shardId#1143177, worklistShardItemId#1143178L, version#1143179, product#1143180, plant#1143181, periodStart#1143182, periodEnd#1143183, qty#1143184], false
(93) RepartitionByExpression
Arguments: [product#1143180, plant#1143181], 37
(94) Project
Arguments: [shardId#1143177, worklistShardItemId#1143178L, version#1143179, product#1143180, plant#1143181, qty#1143184]
(95) LogicalRDD
Arguments: [shardId#1143185, worklistShardItemId#1143186L, qty#1143187, demandChannel#1143188, demandStream#1143189, kpis#1143190], false
(96) Project
Arguments: [shardId#1143185 AS cachedShardId#1143191, worklistShardItemId#1143186L AS cachedWorklistShardItemId#1143192L, qty#1143187 AS cachedQty#1143193, demandChannel#1143188, demandStream#1143189, kpis#1143190 AS cachedKpis#1143194]
(97) Join
Arguments: Inner, (((worklistShardItemId#1143178L = cachedWorklistShardItemId#1143192L) AND (shardId#1143177 = cachedShardId#1143191)) AND ((qty#1143184 = cachedQty#1143193) OR isnull(qty#1143184)))
(98) Project
Arguments: [shardId#1143177, worklistShardItemId#1143178L, version#1143179, product#1143180, plant#1143181]
(99) Deduplicate
Arguments: [plant#1143181, shardId#1143177, version#1143179, worklistShardItemId#1143178L, product#1143180]
(100) LogicalRDD
Arguments: [shardId#1143195, worklistShardItemId#1143196L, qty#1143197, demandChannel#1143198, demandStream#1143199, kpis#1143200], false
(101) Project
Arguments: [shardId#1143195 AS cachedShardId#1143201, worklistShardItemId#1143196L AS cachedWorklistShardItemId#1143202L, qty#1143197 AS cachedQty#1143203, demandChannel#1143198, demandStream#1143199, kpis#1143200 AS cachedKpis#1143204]
(102) Join
Arguments: Inner, ((worklistShardItemId#1143178L = cachedWorklistShardItemId#1143202L) AND (shardId#1143177 = cachedShardId#1143201))
(103) Project
Arguments: [shardId#1143177, worklistShardItemId#1143178L, version#1143179, product#1143180, plant#1143181, cachedQty#1143203 AS qty#1143205, demandChannel#1143198, demandStream#1143199, cachedKpis#1143204 AS kpis#1143206]
(104) Project
Arguments: [shardId#1143177, worklistShardItemId#1143178L, version#1143179, product#1143180, plant#1143181, qty#1143205]
(105) LogicalRDD
Arguments: [shardId#1143207, worklistShardItemId#1143208L, version#1143209, product#1143210, plant#1143211, periodStart#1143212, periodEnd#1143213, qty#1143214], false
(106) RepartitionByExpression
Arguments: [product#1143210, plant#1143211], 37
(107) Project
Arguments: [shardId#1143207, worklistShardItemId#1143208L, version#1143209, product#1143210, plant#1143211, qty#1143214]
(108) LogicalRDD
Arguments: [shardId#1143215, worklistShardItemId#1143216L, qty#1143217, demandChannel#1143218, demandStream#1143219, kpis#1143220], false
(109) Project
Arguments: [shardId#1143215 AS cachedShardId#1143221, worklistShardItemId#1143216L AS cachedWorklistShardItemId#1143222L, qty#1143217 AS cachedQty#1143223, demandChannel#1143218, demandStream#1143219, kpis#1143220 AS cachedKpis#1143224]
(110) Join
Arguments: Inner, (((worklistShardItemId#1143208L = cachedWorklistShardItemId#1143222L) AND (shardId#1143207 = cachedShardId#1143221)) AND isnull(qty#1143214))
(111) Project
Arguments: [shardId#1143207, worklistShardItemId#1143208L, version#1143209, product#1143210, plant#1143211, qty#1143214]
(112) Project
Arguments: [shardId#1143207, worklistShardItemId#1143208L, version#1143209, product#1143210, plant#1143211, qty#1143214]
(113) Union
Arguments: false, false
(114) Join
Arguments: LeftAnti, ((((((shardId#1143169 <=> shardId#1143177) AND (worklistShardItemId#1143170L <=> worklistShardItemId#1143178L)) AND (version#1143171 <=> version#1143179)) AND (product#1143172 <=> product#1143180)) AND (plant#1143173 <=> plant#1143181)) AND (qty#1143176 <=> qty#1143205))
(115) Project
Arguments: [shardId#1143169, worklistShardItemId#1143170L, version#1143171, product#1143172, plant#1143173, qty#1143176]
(116) Project
Arguments: [shardId#1143169, worklistShardItemId#1143170L, version#1143171, product#1143172, plant#1143173, qty#1143176, cast(null as string) AS demandChannel#1143225]
(117) Project
Arguments: [shardId#1143169, worklistShardItemId#1143170L, version#1143171, product#1143172, plant#1143173, qty#1143176, demandChannel#1143225, cast(null as string) AS demandStream#1143226]
(118) Project
Arguments: [shardId#1143169, worklistShardItemId#1143170L, version#1143171, product#1143172, plant#1143173, qty#1143176, demandChannel#1143225, demandStream#1143226, array() AS kpis#1143227]
(119) Project
Arguments: [shardId#1143169, worklistShardItemId#1143170L, version#1143171, product#1143172, plant#1143173, qty#1143176, demandChannel#1143225, demandStream#1143226, kpis#1143227, true AS isNewlyCalculated#1143228]
(120) Project
Arguments: [shardId#1143169, worklistShardItemId#1143170L, version#1143171, product#1143172, plant#1143173, qty#1143176, demandChannel#1143225, demandStream#1143226, cast(kpis#1143227 as array<struct<label:string,dateTime:timestamp,value:double>>) AS kpis#1143229, isNewlyCalculated#1143228]
(121) LogicalRDD
Arguments: [shardId#1143230, worklistShardItemId#1143231L, version#1143232, product#1143233, plant#1143234, periodStart#1143235, periodEnd#1143236, qty#1143237], false
(122) RepartitionByExpression
Arguments: [product#1143233, plant#1143234], 37
(123) Project
Arguments: [shardId#1143230, worklistShardItemId#1143231L, version#1143232, product#1143233, plant#1143234, qty#1143237]
(124) LogicalRDD
Arguments: [shardId#1143238, worklistShardItemId#1143239L, qty#1143240, demandChannel#1143241, demandStream#1143242, kpis#1143243], false
(125) Project
Arguments: [shardId#1143238 AS cachedShardId#1143244, worklistShardItemId#1143239L AS cachedWorklistShardItemId#1143245L, qty#1143240 AS cachedQty#1143246, demandChannel#1143241, demandStream#1143242, kpis#1143243 AS cachedKpis#1143247]
(126) Join
Arguments: Inner, (((worklistShardItemId#1143231L = cachedWorklistShardItemId#1143245L) AND (shardId#1143230 = cachedShardId#1143244)) AND ((qty#1143237 = cachedQty#1143246) OR isnull(qty#1143237)))
(127) Project
Arguments: [shardId#1143230, worklistShardItemId#1143231L, version#1143232, product#1143233, plant#1143234]
(128) Deduplicate
Arguments: [plant#1143234, shardId#1143230, version#1143232, worklistShardItemId#1143231L, product#1143233]
(129) LogicalRDD
Arguments: [shardId#1143248, worklistShardItemId#1143249L, qty#1143250, demandChannel#1143251, demandStream#1143252, kpis#1143253], false
(130) Project
Arguments: [shardId#1143248 AS cachedShardId#1143254, worklistShardItemId#1143249L AS cachedWorklistShardItemId#1143255L, qty#1143250 AS cachedQty#1143256, demandChannel#1143251, demandStream#1143252, kpis#1143253 AS cachedKpis#1143257]
(131) Join
Arguments: Inner, ((worklistShardItemId#1143231L = cachedWorklistShardItemId#1143255L) AND (shardId#1143230 = cachedShardId#1143254))
(132) Project
Arguments: [shardId#1143230, worklistShardItemId#1143231L, version#1143232, product#1143233, plant#1143234, cachedQty#1143256 AS qty#1143258, demandChannel#1143251, demandStream#1143252, cachedKpis#1143257 AS kpis#1143259]
(133) Project
Arguments: [shardId#1143230, worklistShardItemId#1143231L, version#1143232, product#1143233, plant#1143234, qty#1143258, demandChannel#1143251, demandStream#1143252, kpis#1143259, false AS isNewlyCalculated#1143260]
(134) Project
Arguments: [shardId#1143230, worklistShardItemId#1143231L, version#1143232, product#1143233, plant#1143234, qty#1143258, demandChannel#1143251, demandStream#1143252, kpis#1143259, isNewlyCalculated#1143260]
(135) Union
Arguments: false, false
(136) Filter
Arguments: (isNewlyCalculated#1143228 <=> true)
(137) Project
Arguments: [shardId#1143169, worklistShardItemId#1143170L, product#1143172, plant#1143173, qty#1143176, kpis#1143229]
(138) Project
Arguments: [shardId#1143169, worklistShardItemId#1143170L, product#1143172, plant#1143173, qty#1143176]
(139) Deduplicate
Arguments: [plant#1143173, shardId#1143169, qty#1143176, worklistShardItemId#1143170L, product#1143172]
(140) Join
Arguments: Inner, ((product#1142324 <=> product#1143172) AND ((plant#1142325 <=> plant#1143173) AND ((qty#1142351 <=> qty#1143176) OR isnull(qty#1143176))))
(141) Project
Arguments: [shardId#1143169, worklistShardItemId#1143170L, qty#1142351, demandChannel#1142331, demandStream#1142332, kpis#1142360]
(142) Deduplicate
Arguments: [demandChannel#1142331, shardId#1143169, qty#1142351, worklistShardItemId#1143170L, demandStream#1142332]
(143) Project
Arguments: [shardId#1143169, worklistShardItemId#1143170L, qty#1142351, demandChannel#1142331, demandStream#1142332, kpis#1142360]
(144) Union
Arguments: false, false
(145) LogicalRDD
Arguments: [shardId#1143261, worklistShardItemId#1143262L, version#1143263, product#1143264, plant#1143265, periodStart#1143266, periodEnd#1143267, qty#1143268], false
(146) RepartitionByExpression
Arguments: [product#1143264, plant#1143265], 37
(147) Project
Arguments: [shardId#1143261, worklistShardItemId#1143262L, version#1143263, product#1143264, plant#1143265, qty#1143268]
(148) LogicalRDD
Arguments: [shardId#1143269, worklistShardItemId#1143270L, version#1143271, product#1143272, plant#1143273, periodStart#1143274, periodEnd#1143275, qty#1143276], false
(149) RepartitionByExpression
Arguments: [product#1143272, plant#1143273], 37
(150) Project
Arguments: [shardId#1143269, worklistShardItemId#1143270L, version#1143271, product#1143272, plant#1143273, qty#1143276]
(151) LogicalRDD
Arguments: [shardId#1143277, worklistShardItemId#1143278L, qty#1143279, demandChannel#1143280, demandStream#1143281, kpis#1143282], false
(152) Project
Arguments: [shardId#1143277 AS cachedShardId#1143283, worklistShardItemId#1143278L AS cachedWorklistShardItemId#1143284L, qty#1143279 AS cachedQty#1143285, demandChannel#1143280, demandStream#1143281, kpis#1143282 AS cachedKpis#1143286]
(153) Join
Arguments: Inner, (((worklistShardItemId#1143270L = cachedWorklistShardItemId#1143284L) AND (shardId#1143269 = cachedShardId#1143283)) AND ((qty#1143276 = cachedQty#1143285) OR isnull(qty#1143276)))
(154) Project
Arguments: [shardId#1143269, worklistShardItemId#1143270L, version#1143271, product#1143272, plant#1143273]
(155) Deduplicate
Arguments: [plant#1143273, shardId#1143269, version#1143271, worklistShardItemId#1143270L, product#1143272]
(156) LogicalRDD
Arguments: [shardId#1143287, worklistShardItemId#1143288L, qty#1143289, demandChannel#1143290, demandStream#1143291, kpis#1143292], false
(157) Project
Arguments: [shardId#1143287 AS cachedShardId#1143293, worklistShardItemId#1143288L AS cachedWorklistShardItemId#1143294L, qty#1143289 AS cachedQty#1143295, demandChannel#1143290, demandStream#1143291, kpis#1143292 AS cachedKpis#1143296]
(158) Join
Arguments: Inner, ((worklistShardItemId#1143270L = cachedWorklistShardItemId#1143294L) AND (shardId#1143269 = cachedShardId#1143293))
(159) Project
Arguments: [shardId#1143269, worklistShardItemId#1143270L, version#1143271, product#1143272, plant#1143273, cachedQty#1143295 AS qty#1143297, demandChannel#1143290, demandStream#1143291, cachedKpis#1143296 AS kpis#1143298]
(160) Project
Arguments: [shardId#1143269, worklistShardItemId#1143270L, version#1143271, product#1143272, plant#1143273, qty#1143297]
(161) LogicalRDD
Arguments: [shardId#1143299, worklistShardItemId#1143300L, version#1143301, product#1143302, plant#1143303, periodStart#1143304, periodEnd#1143305, qty#1143306], false
(162) RepartitionByExpression
Arguments: [product#1143302, plant#1143303], 37
(163) Project
Arguments: [shardId#1143299, worklistShardItemId#1143300L, version#1143301, product#1143302, plant#1143303, qty#1143306]
(164) LogicalRDD
Arguments: [shardId#1143307, worklistShardItemId#1143308L, qty#1143309, demandChannel#1143310, demandStream#1143311, kpis#1143312], false
(165) Project
Arguments: [shardId#1143307 AS cachedShardId#1143313, worklistShardItemId#1143308L AS cachedWorklistShardItemId#1143314L, qty#1143309 AS cachedQty#1143315, demandChannel#1143310, demandStream#1143311, kpis#1143312 AS cachedKpis#1143316]
(166) Join
Arguments: Inner, (((worklistShardItemId#1143300L = cachedWorklistShardItemId#1143314L) AND (shardId#1143299 = cachedShardId#1143313)) AND isnull(qty#1143306))
(167) Project
Arguments: [shardId#1143299, worklistShardItemId#1143300L, version#1143301, product#1143302, plant#1143303, qty#1143306]
(168) Project
Arguments: [shardId#1143299, worklistShardItemId#1143300L, version#1143301, product#1143302, plant#1143303, qty#1143306]
(169) Union
Arguments: false, false
(170) Join
Arguments: LeftAnti, ((((((shardId#1143261 <=> shardId#1143269) AND (worklistShardItemId#1143262L <=> worklistShardItemId#1143270L)) AND (version#1143263 <=> version#1143271)) AND (product#1143264 <=> product#1143272)) AND (plant#1143265 <=> plant#1143273)) AND (qty#1143268 <=> qty#1143297))
(171) Project
Arguments: [shardId#1143261, worklistShardItemId#1143262L, version#1143263, product#1143264, plant#1143265, qty#1143268]
(172) Project
Arguments: [shardId#1143261, worklistShardItemId#1143262L, version#1143263, product#1143264, plant#1143265, qty#1143268, cast(null as string) AS demandChannel#1143317]
(173) Project
Arguments: [shardId#1143261, worklistShardItemId#1143262L, version#1143263, product#1143264, plant#1143265, qty#1143268, demandChannel#1143317, cast(null as string) AS demandStream#1143318]
(174) Project
Arguments: [shardId#1143261, worklistShardItemId#1143262L, version#1143263, product#1143264, plant#1143265, qty#1143268, demandChannel#1143317, demandStream#1143318, array() AS kpis#1143319]
(175) Project
Arguments: [shardId#1143261, worklistShardItemId#1143262L, version#1143263, product#1143264, plant#1143265, qty#1143268, demandChannel#1143317, demandStream#1143318, kpis#1143319, true AS isNewlyCalculated#1143320]
(176) Project
Arguments: [shardId#1143261, worklistShardItemId#1143262L, version#1143263, product#1143264, plant#1143265, qty#1143268, demandChannel#1143317, demandStream#1143318, cast(kpis#1143319 as array<struct<label:string,dateTime:timestamp,value:double>>) AS kpis#1143321, isNewlyCalculated#1143320]
(177) LogicalRDD
Arguments: [shardId#1143322, worklistShardItemId#1143323L, version#1143324, product#1143325, plant#1143326, periodStart#1143327, periodEnd#1143328, qty#1143329], false
(178) RepartitionByExpression
Arguments: [product#1143325, plant#1143326], 37
(179) Project
Arguments: [shardId#1143322, worklistShardItemId#1143323L, version#1143324, product#1143325, plant#1143326, qty#1143329]
(180) LogicalRDD
Arguments: [shardId#1143330, worklistShardItemId#1143331L, qty#1143332, demandChannel#1143333, demandStream#1143334, kpis#1143335], false
(181) Project
Arguments: [shardId#1143330 AS cachedShardId#1143336, worklistShardItemId#1143331L AS cachedWorklistShardItemId#1143337L, qty#1143332 AS cachedQty#1143338, demandChannel#1143333, demandStream#1143334, kpis#1143335 AS cachedKpis#1143339]
(182) Join
Arguments: Inner, (((worklistShardItemId#1143323L = cachedWorklistShardItemId#1143337L) AND (shardId#1143322 = cachedShardId#1143336)) AND ((qty#1143329 = cachedQty#1143338) OR isnull(qty#1143329)))
(183) Project
Arguments: [shardId#1143322, worklistShardItemId#1143323L, version#1143324, product#1143325, plant#1143326]
(184) Deduplicate
Arguments: [plant#1143326, shardId#1143322, version#1143324, worklistShardItemId#1143323L, product#1143325]
(185) LogicalRDD
Arguments: [shardId#1143340, worklistShardItemId#1143341L, qty#1143342, demandChannel#1143343, demandStream#1143344, kpis#1143345], false
(186) Project
Arguments: [shardId#1143340 AS cachedShardId#1143346, worklistShardItemId#1143341L AS cachedWorklistShardItemId#1143347L, qty#1143342 AS cachedQty#1143348, demandChannel#1143343, demandStream#1143344, kpis#1143345 AS cachedKpis#1143349]
(187) Join
Arguments: Inner, ((worklistShardItemId#1143323L = cachedWorklistShardItemId#1143347L) AND (shardId#1143322 = cachedShardId#1143346))
(188) Project
Arguments: [shardId#1143322, worklistShardItemId#1143323L, version#1143324, product#1143325, plant#1143326, cachedQty#1143348 AS qty#1143350, demandChannel#1143343, demandStream#1143344, cachedKpis#1143349 AS kpis#1143351]
(189) Project
Arguments: [shardId#1143322, worklistShardItemId#1143323L, version#1143324, product#1143325, plant#1143326, qty#1143350, demandChannel#1143343, demandStream#1143344, kpis#1143351, false AS isNewlyCalculated#1143352]
(190) Project
Arguments: [shardId#1143322, worklistShardItemId#1143323L, version#1143324, product#1143325, plant#1143326, qty#1143350, demandChannel#1143343, demandStream#1143344, kpis#1143351, isNewlyCalculated#1143352]
(191) Union
Arguments: false, false
(192) Project
Arguments: [shardId#1143261, worklistShardItemId#1143262L, version#1143263]
(193) Aggregate
Arguments: [shardId#1143261, worklistShardItemId#1143262L], [shardId#1143261, worklistShardItemId#1143262L, (max(version#1143263) + 1) AS version#1143164]
(194) Join
Arguments: Inner, ((shardId#1100457 = shardId#1143261) AND (worklistShardItemId#1100458L = worklistShardItemId#1143262L))
(195) Project
Arguments: [shardId#1100457, worklistShardItemId#1100458L, qty#1100464, demandChannel#1139795, demandStream#1139796, kpis#1139830, version#1143164]
(196) Project
Arguments: [shardId#1100457, worklistShardItemId#1100458L, version#1143164, qty#1100464, demandChannel#1139795, demandStream#1139796, kpis#1139830]