== 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@677e4adf, [path=hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-quantity-kpi-service/out/kpi-curve-update/10000000347/stream-10000000347-1], Append
(3) LogicalRDD
Arguments: [shardId#815740, worklistShardItemId#815741L, version#815742, product#815743, plant#815744, periodStart#815745, periodEnd#815746, qty#815747], false
(4) RepartitionByExpression
Arguments: [product#815743, plant#815744], 37
(5) Project
Arguments: [shardId#815740, worklistShardItemId#815741L, version#815742, product#815743, plant#815744, qty#815747]
(6) LogicalRDD
Arguments: [shardId#865996, worklistShardItemId#865997L, version#865998, product#865999, plant#866000, periodStart#866001, periodEnd#866002, qty#866003], false
(7) RepartitionByExpression
Arguments: [product#865999, plant#866000], 37
(8) Project
Arguments: [shardId#865996, worklistShardItemId#865997L, version#865998, product#865999, plant#866000, qty#866003]
(9) LogicalRDD
Arguments: [shardId#865751, worklistShardItemId#865752L, qty#865753, demandChannel#865754, demandStream#865755, kpis#865756], false
(10) Project
Arguments: [shardId#865751 AS cachedShardId#865757, worklistShardItemId#865752L AS cachedWorklistShardItemId#865758L, qty#865753 AS cachedQty#865759, demandChannel#865754, demandStream#865755, kpis#865756 AS cachedKpis#865760]
(11) Join
Arguments: Inner, (((worklistShardItemId#865997L = cachedWorklistShardItemId#865758L) AND (shardId#865996 = cachedShardId#865757)) AND ((qty#866003 = cachedQty#865759) OR isnull(qty#866003)))
(12) Project
Arguments: [shardId#865996, worklistShardItemId#865997L, version#865998, product#865999, plant#866000]
(13) Deduplicate
Arguments: [plant#866000, shardId#865996, version#865998, worklistShardItemId#865997L, product#865999]
(14) LogicalRDD
Arguments: [shardId#865761, worklistShardItemId#865762L, qty#865763, demandChannel#865764, demandStream#865765, kpis#865766], false
(15) Project
Arguments: [shardId#865761 AS cachedShardId#865767, worklistShardItemId#865762L AS cachedWorklistShardItemId#865768L, qty#865763 AS cachedQty#865769, demandChannel#865764, demandStream#865765, kpis#865766 AS cachedKpis#865770]
(16) Join
Arguments: Inner, ((worklistShardItemId#865997L = cachedWorklistShardItemId#865768L) AND (shardId#865996 = cachedShardId#865767))
(17) Project
Arguments: [shardId#865996, worklistShardItemId#865997L, version#865998, product#865999, plant#866000, cachedQty#865769 AS qty#865771, demandChannel#865764, demandStream#865765, cachedKpis#865770 AS kpis#865772]
(18) Project
Arguments: [shardId#865996, worklistShardItemId#865997L, version#865998, product#865999, plant#866000, qty#865771]
(19) LogicalRDD
Arguments: [shardId#865978, worklistShardItemId#865979L, version#865980, product#865981, plant#865982, periodStart#865983, periodEnd#865984, qty#865985], false
(20) RepartitionByExpression
Arguments: [product#865981, plant#865982], 37
(21) Project
Arguments: [shardId#865978, worklistShardItemId#865979L, version#865980, product#865981, plant#865982, qty#865985]
(22) LogicalRDD
Arguments: [shardId#865986, worklistShardItemId#865987L, qty#865988, demandChannel#865989, demandStream#865990, kpis#865991], false
(23) Project
Arguments: [shardId#865986 AS cachedShardId#865992, worklistShardItemId#865987L AS cachedWorklistShardItemId#865993L, qty#865988 AS cachedQty#865994, demandChannel#865989, demandStream#865990, kpis#865991 AS cachedKpis#865995]
(24) Join
Arguments: Inner, (((worklistShardItemId#865979L = cachedWorklistShardItemId#865993L) AND (shardId#865978 = cachedShardId#865992)) AND isnull(qty#865985))
(25) Project
Arguments: [shardId#865978, worklistShardItemId#865979L, version#865980, product#865981, plant#865982, qty#865985]
(26) Project
Arguments: [shardId#865978, worklistShardItemId#865979L, version#865980, product#865981, plant#865982, qty#865985]
(27) Union
Arguments: false, false
(28) Join
Arguments: LeftAnti, ((((((shardId#815740 <=> shardId#865996) AND (worklistShardItemId#815741L <=> worklistShardItemId#865997L)) AND (version#815742 <=> version#865998)) AND (product#815743 <=> product#865999)) AND (plant#815744 <=> plant#866000)) AND (qty#815747 <=> qty#865771))
(29) Project
Arguments: [shardId#815740, worklistShardItemId#815741L, version#815742, product#815743, plant#815744, qty#815747]
(30) Project
Arguments: [shardId#815740, worklistShardItemId#815741L, version#815742, product#815743, plant#815744, qty#815747, cast(null as string) AS demandChannel#866004]
(31) Project
Arguments: [shardId#815740, worklistShardItemId#815741L, version#815742, product#815743, plant#815744, qty#815747, demandChannel#866004, cast(null as string) AS demandStream#866005]
(32) Project
Arguments: [shardId#815740, worklistShardItemId#815741L, version#815742, product#815743, plant#815744, qty#815747, demandChannel#866004, demandStream#866005, array() AS kpis#866006]
(33) Project
Arguments: [shardId#815740, worklistShardItemId#815741L, version#815742, product#815743, plant#815744, qty#815747, demandChannel#866004, demandStream#866005, kpis#866006, true AS isNewlyCalculated#866007]
(34) Project
Arguments: [shardId#815740, worklistShardItemId#815741L, version#815742, product#815743, plant#815744, qty#815747, demandChannel#866004, demandStream#866005, cast(kpis#866006 as array<struct<label:string,dateTime:timestamp,value:double>>) AS kpis#866039, isNewlyCalculated#866007]
(35) LogicalRDD
Arguments: [shardId#866009, worklistShardItemId#866010L, version#866011, product#866012, plant#866013, periodStart#866014, periodEnd#866015, qty#866016], false
(36) RepartitionByExpression
Arguments: [product#866012, plant#866013], 37
(37) Project
Arguments: [shardId#866009, worklistShardItemId#866010L, version#866011, product#866012, plant#866013, qty#866016]
(38) LogicalRDD
Arguments: [shardId#866017, worklistShardItemId#866018L, qty#866019, demandChannel#866020, demandStream#866021, kpis#866022], false
(39) Project
Arguments: [shardId#866017 AS cachedShardId#866023, worklistShardItemId#866018L AS cachedWorklistShardItemId#866024L, qty#866019 AS cachedQty#866025, demandChannel#866020, demandStream#866021, kpis#866022 AS cachedKpis#866026]
(40) Join
Arguments: Inner, (((worklistShardItemId#866010L = cachedWorklistShardItemId#866024L) AND (shardId#866009 = cachedShardId#866023)) AND ((qty#866016 = cachedQty#866025) OR isnull(qty#866016)))
(41) Project
Arguments: [shardId#866009, worklistShardItemId#866010L, version#866011, product#866012, plant#866013]
(42) Deduplicate
Arguments: [plant#866013, shardId#866009, version#866011, worklistShardItemId#866010L, product#866012]
(43) LogicalRDD
Arguments: [shardId#866027, worklistShardItemId#866028L, qty#866029, demandChannel#866030, demandStream#866031, kpis#866032], false
(44) Project
Arguments: [shardId#866027 AS cachedShardId#866033, worklistShardItemId#866028L AS cachedWorklistShardItemId#866034L, qty#866029 AS cachedQty#866035, demandChannel#866030, demandStream#866031, kpis#866032 AS cachedKpis#866036]
(45) Join
Arguments: Inner, ((worklistShardItemId#866010L = cachedWorklistShardItemId#866034L) AND (shardId#866009 = cachedShardId#866033))
(46) Project
Arguments: [shardId#866009, worklistShardItemId#866010L, version#866011, product#866012, plant#866013, cachedQty#866035 AS qty#866037, demandChannel#866030, demandStream#866031, cachedKpis#866036 AS kpis#866038]
(47) Project
Arguments: [shardId#866009, worklistShardItemId#866010L, version#866011, product#866012, plant#866013, qty#866037, demandChannel#866030, demandStream#866031, kpis#866038, false AS isNewlyCalculated#866008]
(48) Project
Arguments: [shardId#866009, worklistShardItemId#866010L, version#866011, product#866012, plant#866013, qty#866037, demandChannel#866030, demandStream#866031, kpis#866038, isNewlyCalculated#866008]
(49) Union
Arguments: false, false
(50) Filter
Arguments: (isNewlyCalculated#866007 <=> false)
(51) Project
Arguments: [shardId#815740, worklistShardItemId#815741L, qty#815747, demandChannel#866004, demandStream#866005, kpis#866039]
(52) ExternalRDD
Arguments: [obj#868503]
(53) SerializeFromObject
Arguments: [mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 68501), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 68501), 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, 68501), 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, 68501), 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, 68501), 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, 68501), 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#868506, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 68502), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 68502), 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, 68503), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 68503), 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, 68503), 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, 68503), 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, 68504), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 68504), 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, 68504), 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, 68504), 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, 68504), 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, 68503), 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, 68502), 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, 68505), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 68505), 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, 68505), 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, 68505), 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, 68505), 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, 68502), 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, 68502), 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, 68502), 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, 68506), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 68506), 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, 68507), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 68507), 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, 68507), 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, 68507), 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, 68507), 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, 68506), 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, 68506), 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, 68502), 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#868507]
(54) Generate
Arguments: explode(prodPlantResults#868507), false, [prodPlantResults#868514]
(55) Project
Arguments: [prodPlantResults#868514]
(56) Project
Arguments: [prodPlantResults#868514.productId AS product#868533, prodPlantResults#868514.plantId AS plant#868534, prodPlantResults#868514.kpiResults AS kpis#868535]
(57) Project
Arguments: [product#868533, plant#868534, kpis#868535, null AS qty#868539]
(58) Project
Arguments: [product#868533, plant#868534, kpis#868535, qty#868539, cast(null as string) AS demandChannel#868540]
(59) Project
Arguments: [product#868533, plant#868534, kpis#868535, qty#868539, demandChannel#868540, cast(null as string) AS demandStream#868541]
(60) Project
Arguments: [product#868533, plant#868534, kpis#868535, cast(qty#868539 as double) AS qty#868560, demandChannel#868540, demandStream#868541]
(61) ExternalRDD
Arguments: [obj#868556]
(62) SerializeFromObject
Arguments: [mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 68501), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 68501), 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, 68501), 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, 68501), 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, 68501), 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, 68501), 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#868557, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 68502), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 68502), 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, 68503), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 68503), 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, 68503), 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, 68503), 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, 68504), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 68504), 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, 68504), 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, 68504), 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, 68504), 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, 68503), 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, 68502), 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, 68505), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 68505), 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, 68505), 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, 68505), 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, 68505), 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, 68502), 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, 68502), 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, 68502), 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, 68506), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 68506), 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, 68507), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 68507), 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, 68507), 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, 68507), 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, 68507), 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, 68506), 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, 68506), 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, 68502), 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#868558]
(63) Generate
Arguments: explode(prodPlantResults#868558), false, [prodPlantResults#868559]
(64) Project
Arguments: [prodPlantResults#868559]
(65) Generate
Arguments: explode(prodPlantResults#868559.quantityKpiResults), false, [quantityKpiResults#868526]
(66) Project
Arguments: [prodPlantResults#868559.productId AS product#868520, prodPlantResults#868559.plantId AS plant#868521, quantityKpiResults#868526]
(67) Project
Arguments: [product#868520, plant#868521, quantityKpiResults#868526, quantityKpiResults#868526.quantity AS qty#868527]
(68) Project
Arguments: [product#868520, plant#868521, quantityKpiResults#868526, qty#868527, cast(null as string) AS demandChannel#868529]
(69) Project
Arguments: [product#868520, plant#868521, quantityKpiResults#868526, qty#868527, demandChannel#868529, cast(null as string) AS demandStream#868530]
(70) Project
Arguments: [product#868520, plant#868521, quantityKpiResults#868526, qty#868527, demandChannel#868529, demandStream#868530, quantityKpiResults#868526.kpiResults AS kpis#868531]
(71) Project
Arguments: [product#868520, plant#868521, qty#868527, demandChannel#868529, demandStream#868530, kpis#868531]
(72) Project
Arguments: [product#868520, plant#868521, kpis#868531, qty#868527, demandChannel#868529, demandStream#868530]
(73) ExternalRDD
Arguments: [obj#868561]
(74) SerializeFromObject
Arguments: [mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 68501), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 68501), 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, 68501), 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, 68501), 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, 68501), 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, 68501), 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#868562, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 68502), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 68502), 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, 68503), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 68503), 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, 68503), 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, 68503), 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, 68504), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 68504), 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, 68504), 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, 68504), 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, 68504), 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, 68503), 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, 68502), 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, 68505), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 68505), 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, 68505), 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, 68505), 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, 68505), 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, 68502), 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, 68502), 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, 68502), 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, 68506), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 68506), 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, 68507), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 68507), 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, 68507), 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, 68507), 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, 68507), 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, 68506), 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, 68506), 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, 68502), 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#868563]
(75) Generate
Arguments: explode(prodPlantResults#868563), false, [prodPlantResults#868564]
(76) Project
Arguments: [prodPlantResults#868564]
(77) Generate
Arguments: explode(prodPlantResults#868564.demandChannelStreamKpiResults), false, [demandChannelStreamKpiResults#868548]
(78) Project
Arguments: [prodPlantResults#868564.productId AS product#868542, prodPlantResults#868564.plantId AS plant#868543, demandChannelStreamKpiResults#868548]
(79) Project
Arguments: [product#868542, plant#868543, demandChannelStreamKpiResults#868548, null AS qty#868549]
(80) Project
Arguments: [product#868542, plant#868543, demandChannelStreamKpiResults#868548, qty#868549, demandChannelStreamKpiResults#868548.demandChannel AS demandChannel#868550]
(81) Project
Arguments: [product#868542, plant#868543, demandChannelStreamKpiResults#868548, qty#868549, demandChannel#868550, demandChannelStreamKpiResults#868548.demandStream AS demandStream#868552]
(82) Project
Arguments: [product#868542, plant#868543, demandChannelStreamKpiResults#868548, qty#868549, demandChannel#868550, demandStream#868552, demandChannelStreamKpiResults#868548.kpiResults AS kpis#868554]
(83) Project
Arguments: [product#868542, plant#868543, qty#868549, demandChannel#868550, demandStream#868552, kpis#868554]
(84) Project
Arguments: [product#868542, plant#868543, kpis#868554, qty#868549, demandChannel#868550, demandStream#868552]
(85) Project
Arguments: [product#868542, plant#868543, kpis#868554, cast(qty#868549 as double) AS qty#868565, demandChannel#868550, demandStream#868552]
(86) Union
Arguments: false, false
(87) Project
Arguments: [product#868533, plant#868534, transform(kpis#868535, lambdafunction(struct(label, lambda kpi#868570.label, dateTime, lambda kpi#868570.datetime, value, lambda kpi#868570.value), lambda kpi#868570, false)) AS kpis#868569, qty#868560, demandChannel#868540, demandStream#868541]
(88) Project
Arguments: [product#868533, plant#868534, qty#868560, demandChannel#868540, demandStream#868541, kpis#868569]
(89) LogicalRDD
Arguments: [shardId#869378, worklistShardItemId#869379L, version#869380, product#869381, plant#869382, periodStart#869383, periodEnd#869384, qty#869385], false
(90) RepartitionByExpression
Arguments: [product#869381, plant#869382], 37
(91) Project
Arguments: [shardId#869378, worklistShardItemId#869379L, version#869380, product#869381, plant#869382, qty#869385]
(92) LogicalRDD
Arguments: [shardId#869386, worklistShardItemId#869387L, version#869388, product#869389, plant#869390, periodStart#869391, periodEnd#869392, qty#869393], false
(93) RepartitionByExpression
Arguments: [product#869389, plant#869390], 37
(94) Project
Arguments: [shardId#869386, worklistShardItemId#869387L, version#869388, product#869389, plant#869390, qty#869393]
(95) LogicalRDD
Arguments: [shardId#869394, worklistShardItemId#869395L, qty#869396, demandChannel#869397, demandStream#869398, kpis#869399], false
(96) Project
Arguments: [shardId#869394 AS cachedShardId#869400, worklistShardItemId#869395L AS cachedWorklistShardItemId#869401L, qty#869396 AS cachedQty#869402, demandChannel#869397, demandStream#869398, kpis#869399 AS cachedKpis#869403]
(97) Join
Arguments: Inner, (((worklistShardItemId#869387L = cachedWorklistShardItemId#869401L) AND (shardId#869386 = cachedShardId#869400)) AND ((qty#869393 = cachedQty#869402) OR isnull(qty#869393)))
(98) Project
Arguments: [shardId#869386, worklistShardItemId#869387L, version#869388, product#869389, plant#869390]
(99) Deduplicate
Arguments: [plant#869390, shardId#869386, version#869388, worklistShardItemId#869387L, product#869389]
(100) LogicalRDD
Arguments: [shardId#869404, worklistShardItemId#869405L, qty#869406, demandChannel#869407, demandStream#869408, kpis#869409], false
(101) Project
Arguments: [shardId#869404 AS cachedShardId#869410, worklistShardItemId#869405L AS cachedWorklistShardItemId#869411L, qty#869406 AS cachedQty#869412, demandChannel#869407, demandStream#869408, kpis#869409 AS cachedKpis#869413]
(102) Join
Arguments: Inner, ((worklistShardItemId#869387L = cachedWorklistShardItemId#869411L) AND (shardId#869386 = cachedShardId#869410))
(103) Project
Arguments: [shardId#869386, worklistShardItemId#869387L, version#869388, product#869389, plant#869390, cachedQty#869412 AS qty#869414, demandChannel#869407, demandStream#869408, cachedKpis#869413 AS kpis#869415]
(104) Project
Arguments: [shardId#869386, worklistShardItemId#869387L, version#869388, product#869389, plant#869390, qty#869414]
(105) LogicalRDD
Arguments: [shardId#869416, worklistShardItemId#869417L, version#869418, product#869419, plant#869420, periodStart#869421, periodEnd#869422, qty#869423], false
(106) RepartitionByExpression
Arguments: [product#869419, plant#869420], 37
(107) Project
Arguments: [shardId#869416, worklistShardItemId#869417L, version#869418, product#869419, plant#869420, qty#869423]
(108) LogicalRDD
Arguments: [shardId#869424, worklistShardItemId#869425L, qty#869426, demandChannel#869427, demandStream#869428, kpis#869429], false
(109) Project
Arguments: [shardId#869424 AS cachedShardId#869430, worklistShardItemId#869425L AS cachedWorklistShardItemId#869431L, qty#869426 AS cachedQty#869432, demandChannel#869427, demandStream#869428, kpis#869429 AS cachedKpis#869433]
(110) Join
Arguments: Inner, (((worklistShardItemId#869417L = cachedWorklistShardItemId#869431L) AND (shardId#869416 = cachedShardId#869430)) AND isnull(qty#869423))
(111) Project
Arguments: [shardId#869416, worklistShardItemId#869417L, version#869418, product#869419, plant#869420, qty#869423]
(112) Project
Arguments: [shardId#869416, worklistShardItemId#869417L, version#869418, product#869419, plant#869420, qty#869423]
(113) Union
Arguments: false, false
(114) Join
Arguments: LeftAnti, ((((((shardId#869378 <=> shardId#869386) AND (worklistShardItemId#869379L <=> worklistShardItemId#869387L)) AND (version#869380 <=> version#869388)) AND (product#869381 <=> product#869389)) AND (plant#869382 <=> plant#869390)) AND (qty#869385 <=> qty#869414))
(115) Project
Arguments: [shardId#869378, worklistShardItemId#869379L, version#869380, product#869381, plant#869382, qty#869385]
(116) Project
Arguments: [shardId#869378, worklistShardItemId#869379L, version#869380, product#869381, plant#869382, qty#869385, cast(null as string) AS demandChannel#869434]
(117) Project
Arguments: [shardId#869378, worklistShardItemId#869379L, version#869380, product#869381, plant#869382, qty#869385, demandChannel#869434, cast(null as string) AS demandStream#869435]
(118) Project
Arguments: [shardId#869378, worklistShardItemId#869379L, version#869380, product#869381, plant#869382, qty#869385, demandChannel#869434, demandStream#869435, array() AS kpis#869436]
(119) Project
Arguments: [shardId#869378, worklistShardItemId#869379L, version#869380, product#869381, plant#869382, qty#869385, demandChannel#869434, demandStream#869435, kpis#869436, true AS isNewlyCalculated#869437]
(120) Project
Arguments: [shardId#869378, worklistShardItemId#869379L, version#869380, product#869381, plant#869382, qty#869385, demandChannel#869434, demandStream#869435, cast(kpis#869436 as array<struct<label:string,dateTime:timestamp,value:double>>) AS kpis#869438, isNewlyCalculated#869437]
(121) LogicalRDD
Arguments: [shardId#869439, worklistShardItemId#869440L, version#869441, product#869442, plant#869443, periodStart#869444, periodEnd#869445, qty#869446], false
(122) RepartitionByExpression
Arguments: [product#869442, plant#869443], 37
(123) Project
Arguments: [shardId#869439, worklistShardItemId#869440L, version#869441, product#869442, plant#869443, qty#869446]
(124) LogicalRDD
Arguments: [shardId#869447, worklistShardItemId#869448L, qty#869449, demandChannel#869450, demandStream#869451, kpis#869452], false
(125) Project
Arguments: [shardId#869447 AS cachedShardId#869453, worklistShardItemId#869448L AS cachedWorklistShardItemId#869454L, qty#869449 AS cachedQty#869455, demandChannel#869450, demandStream#869451, kpis#869452 AS cachedKpis#869456]
(126) Join
Arguments: Inner, (((worklistShardItemId#869440L = cachedWorklistShardItemId#869454L) AND (shardId#869439 = cachedShardId#869453)) AND ((qty#869446 = cachedQty#869455) OR isnull(qty#869446)))
(127) Project
Arguments: [shardId#869439, worklistShardItemId#869440L, version#869441, product#869442, plant#869443]
(128) Deduplicate
Arguments: [plant#869443, shardId#869439, version#869441, worklistShardItemId#869440L, product#869442]
(129) LogicalRDD
Arguments: [shardId#869457, worklistShardItemId#869458L, qty#869459, demandChannel#869460, demandStream#869461, kpis#869462], false
(130) Project
Arguments: [shardId#869457 AS cachedShardId#869463, worklistShardItemId#869458L AS cachedWorklistShardItemId#869464L, qty#869459 AS cachedQty#869465, demandChannel#869460, demandStream#869461, kpis#869462 AS cachedKpis#869466]
(131) Join
Arguments: Inner, ((worklistShardItemId#869440L = cachedWorklistShardItemId#869464L) AND (shardId#869439 = cachedShardId#869463))
(132) Project
Arguments: [shardId#869439, worklistShardItemId#869440L, version#869441, product#869442, plant#869443, cachedQty#869465 AS qty#869467, demandChannel#869460, demandStream#869461, cachedKpis#869466 AS kpis#869468]
(133) Project
Arguments: [shardId#869439, worklistShardItemId#869440L, version#869441, product#869442, plant#869443, qty#869467, demandChannel#869460, demandStream#869461, kpis#869468, false AS isNewlyCalculated#869469]
(134) Project
Arguments: [shardId#869439, worklistShardItemId#869440L, version#869441, product#869442, plant#869443, qty#869467, demandChannel#869460, demandStream#869461, kpis#869468, isNewlyCalculated#869469]
(135) Union
Arguments: false, false
(136) Filter
Arguments: (isNewlyCalculated#869437 <=> true)
(137) Project
Arguments: [shardId#869378, worklistShardItemId#869379L, product#869381, plant#869382, qty#869385, kpis#869438]
(138) Project
Arguments: [shardId#869378, worklistShardItemId#869379L, product#869381, plant#869382, qty#869385]
(139) Deduplicate
Arguments: [plant#869382, shardId#869378, qty#869385, worklistShardItemId#869379L, product#869381]
(140) Join
Arguments: Inner, ((product#868533 <=> product#869381) AND ((plant#868534 <=> plant#869382) AND ((qty#868560 <=> qty#869385) OR isnull(qty#869385))))
(141) Project
Arguments: [shardId#869378, worklistShardItemId#869379L, qty#868560, demandChannel#868540, demandStream#868541, kpis#868569]
(142) Deduplicate
Arguments: [demandChannel#868540, shardId#869378, qty#868560, worklistShardItemId#869379L, demandStream#868541]
(143) Project
Arguments: [shardId#869378, worklistShardItemId#869379L, qty#868560, demandChannel#868540, demandStream#868541, kpis#868569]
(144) Union
Arguments: false, false
(145) LogicalRDD
Arguments: [shardId#869470, worklistShardItemId#869471L, version#869472, product#869473, plant#869474, periodStart#869475, periodEnd#869476, qty#869477], false
(146) RepartitionByExpression
Arguments: [product#869473, plant#869474], 37
(147) Project
Arguments: [shardId#869470, worklistShardItemId#869471L, version#869472, product#869473, plant#869474, qty#869477]
(148) LogicalRDD
Arguments: [shardId#869478, worklistShardItemId#869479L, version#869480, product#869481, plant#869482, periodStart#869483, periodEnd#869484, qty#869485], false
(149) RepartitionByExpression
Arguments: [product#869481, plant#869482], 37
(150) Project
Arguments: [shardId#869478, worklistShardItemId#869479L, version#869480, product#869481, plant#869482, qty#869485]
(151) LogicalRDD
Arguments: [shardId#869486, worklistShardItemId#869487L, qty#869488, demandChannel#869489, demandStream#869490, kpis#869491], false
(152) Project
Arguments: [shardId#869486 AS cachedShardId#869492, worklistShardItemId#869487L AS cachedWorklistShardItemId#869493L, qty#869488 AS cachedQty#869494, demandChannel#869489, demandStream#869490, kpis#869491 AS cachedKpis#869495]
(153) Join
Arguments: Inner, (((worklistShardItemId#869479L = cachedWorklistShardItemId#869493L) AND (shardId#869478 = cachedShardId#869492)) AND ((qty#869485 = cachedQty#869494) OR isnull(qty#869485)))
(154) Project
Arguments: [shardId#869478, worklistShardItemId#869479L, version#869480, product#869481, plant#869482]
(155) Deduplicate
Arguments: [plant#869482, shardId#869478, version#869480, worklistShardItemId#869479L, product#869481]
(156) LogicalRDD
Arguments: [shardId#869496, worklistShardItemId#869497L, qty#869498, demandChannel#869499, demandStream#869500, kpis#869501], false
(157) Project
Arguments: [shardId#869496 AS cachedShardId#869502, worklistShardItemId#869497L AS cachedWorklistShardItemId#869503L, qty#869498 AS cachedQty#869504, demandChannel#869499, demandStream#869500, kpis#869501 AS cachedKpis#869505]
(158) Join
Arguments: Inner, ((worklistShardItemId#869479L = cachedWorklistShardItemId#869503L) AND (shardId#869478 = cachedShardId#869502))
(159) Project
Arguments: [shardId#869478, worklistShardItemId#869479L, version#869480, product#869481, plant#869482, cachedQty#869504 AS qty#869506, demandChannel#869499, demandStream#869500, cachedKpis#869505 AS kpis#869507]
(160) Project
Arguments: [shardId#869478, worklistShardItemId#869479L, version#869480, product#869481, plant#869482, qty#869506]
(161) LogicalRDD
Arguments: [shardId#869508, worklistShardItemId#869509L, version#869510, product#869511, plant#869512, periodStart#869513, periodEnd#869514, qty#869515], false
(162) RepartitionByExpression
Arguments: [product#869511, plant#869512], 37
(163) Project
Arguments: [shardId#869508, worklistShardItemId#869509L, version#869510, product#869511, plant#869512, qty#869515]
(164) LogicalRDD
Arguments: [shardId#869516, worklistShardItemId#869517L, qty#869518, demandChannel#869519, demandStream#869520, kpis#869521], false
(165) Project
Arguments: [shardId#869516 AS cachedShardId#869522, worklistShardItemId#869517L AS cachedWorklistShardItemId#869523L, qty#869518 AS cachedQty#869524, demandChannel#869519, demandStream#869520, kpis#869521 AS cachedKpis#869525]
(166) Join
Arguments: Inner, (((worklistShardItemId#869509L = cachedWorklistShardItemId#869523L) AND (shardId#869508 = cachedShardId#869522)) AND isnull(qty#869515))
(167) Project
Arguments: [shardId#869508, worklistShardItemId#869509L, version#869510, product#869511, plant#869512, qty#869515]
(168) Project
Arguments: [shardId#869508, worklistShardItemId#869509L, version#869510, product#869511, plant#869512, qty#869515]
(169) Union
Arguments: false, false
(170) Join
Arguments: LeftAnti, ((((((shardId#869470 <=> shardId#869478) AND (worklistShardItemId#869471L <=> worklistShardItemId#869479L)) AND (version#869472 <=> version#869480)) AND (product#869473 <=> product#869481)) AND (plant#869474 <=> plant#869482)) AND (qty#869477 <=> qty#869506))
(171) Project
Arguments: [shardId#869470, worklistShardItemId#869471L, version#869472, product#869473, plant#869474, qty#869477]
(172) Project
Arguments: [shardId#869470, worklistShardItemId#869471L, version#869472, product#869473, plant#869474, qty#869477, cast(null as string) AS demandChannel#869526]
(173) Project
Arguments: [shardId#869470, worklistShardItemId#869471L, version#869472, product#869473, plant#869474, qty#869477, demandChannel#869526, cast(null as string) AS demandStream#869527]
(174) Project
Arguments: [shardId#869470, worklistShardItemId#869471L, version#869472, product#869473, plant#869474, qty#869477, demandChannel#869526, demandStream#869527, array() AS kpis#869528]
(175) Project
Arguments: [shardId#869470, worklistShardItemId#869471L, version#869472, product#869473, plant#869474, qty#869477, demandChannel#869526, demandStream#869527, kpis#869528, true AS isNewlyCalculated#869529]
(176) Project
Arguments: [shardId#869470, worklistShardItemId#869471L, version#869472, product#869473, plant#869474, qty#869477, demandChannel#869526, demandStream#869527, cast(kpis#869528 as array<struct<label:string,dateTime:timestamp,value:double>>) AS kpis#869530, isNewlyCalculated#869529]
(177) LogicalRDD
Arguments: [shardId#869531, worklistShardItemId#869532L, version#869533, product#869534, plant#869535, periodStart#869536, periodEnd#869537, qty#869538], false
(178) RepartitionByExpression
Arguments: [product#869534, plant#869535], 37
(179) Project
Arguments: [shardId#869531, worklistShardItemId#869532L, version#869533, product#869534, plant#869535, qty#869538]
(180) LogicalRDD
Arguments: [shardId#869539, worklistShardItemId#869540L, qty#869541, demandChannel#869542, demandStream#869543, kpis#869544], false
(181) Project
Arguments: [shardId#869539 AS cachedShardId#869545, worklistShardItemId#869540L AS cachedWorklistShardItemId#869546L, qty#869541 AS cachedQty#869547, demandChannel#869542, demandStream#869543, kpis#869544 AS cachedKpis#869548]
(182) Join
Arguments: Inner, (((worklistShardItemId#869532L = cachedWorklistShardItemId#869546L) AND (shardId#869531 = cachedShardId#869545)) AND ((qty#869538 = cachedQty#869547) OR isnull(qty#869538)))
(183) Project
Arguments: [shardId#869531, worklistShardItemId#869532L, version#869533, product#869534, plant#869535]
(184) Deduplicate
Arguments: [plant#869535, shardId#869531, version#869533, worklistShardItemId#869532L, product#869534]
(185) LogicalRDD
Arguments: [shardId#869549, worklistShardItemId#869550L, qty#869551, demandChannel#869552, demandStream#869553, kpis#869554], false
(186) Project
Arguments: [shardId#869549 AS cachedShardId#869555, worklistShardItemId#869550L AS cachedWorklistShardItemId#869556L, qty#869551 AS cachedQty#869557, demandChannel#869552, demandStream#869553, kpis#869554 AS cachedKpis#869558]
(187) Join
Arguments: Inner, ((worklistShardItemId#869532L = cachedWorklistShardItemId#869556L) AND (shardId#869531 = cachedShardId#869555))
(188) Project
Arguments: [shardId#869531, worklistShardItemId#869532L, version#869533, product#869534, plant#869535, cachedQty#869557 AS qty#869559, demandChannel#869552, demandStream#869553, cachedKpis#869558 AS kpis#869560]
(189) Project
Arguments: [shardId#869531, worklistShardItemId#869532L, version#869533, product#869534, plant#869535, qty#869559, demandChannel#869552, demandStream#869553, kpis#869560, false AS isNewlyCalculated#869561]
(190) Project
Arguments: [shardId#869531, worklistShardItemId#869532L, version#869533, product#869534, plant#869535, qty#869559, demandChannel#869552, demandStream#869553, kpis#869560, isNewlyCalculated#869561]
(191) Union
Arguments: false, false
(192) Project
Arguments: [shardId#869470, worklistShardItemId#869471L, version#869472]
(193) Aggregate
Arguments: [shardId#869470, worklistShardItemId#869471L], [shardId#869470, worklistShardItemId#869471L, (max(version#869472) + 1) AS version#869373]
(194) Join
Arguments: Inner, ((shardId#815740 = shardId#869470) AND (worklistShardItemId#815741L = worklistShardItemId#869471L))
(195) Project
Arguments: [shardId#815740, worklistShardItemId#815741L, qty#815747, demandChannel#866004, demandStream#866005, kpis#866039, version#869373]
(196) Project
Arguments: [shardId#815740, worklistShardItemId#815741L, version#869373, qty#815747, demandChannel#866004, demandStream#866005, kpis#866039]