== Physical Plan ==
Execute SaveIntoDataSourceCommand (1)
+- SaveIntoDataSourceCommand (2)
+- Project (189)
+- Project (188)
+- Project (187)
+- Project (186)
+- Project (185)
+- Project (184)
+- Project (183)
+- Project (182)
+- Project (181)
+- Project (180)
+- Project (179)
+- Project (178)
+- Join (177)
:- Deduplicate (175)
: +- Project (174)
: +- Filter (173)
: +- Join (172)
: :- Project (170)
: : +- Project (169)
: : +- Project (168)
: : +- Project (167)
: : +- Project (166)
: : +- Project (165)
: : +- Join (164)
: : :- Project (22)
: : : +- Project (21)
: : : +- Project (20)
: : : +- Project (19)
: : : +- Generate (18)
: : : +- Project (17)
: : : +- Generate (16)
: : : +- Project (15)
: : : +- Join (14)
: : : :- Project (11)
: : : : +- Join (10)
: : : : :- Project (5)
: : : : : +- RepartitionByExpression (4)
: : : : : +- LogicalRelation (3)
: : : : +- Project (9)
: : : : +- Project (8)
: : : : +- Repartition (7)
: : : : +- LogicalRelation (6)
: : : +- Repartition (13)
: : : +- LogicalRelation (12)
: : +- Project (163)
: : +- Aggregate (162)
: : +- Project (161)
: : +- Join (160)
: : :- Project (90)
: : : +- Filter (89)
: : : +- Join (88)
: : : :- Filter (67)
: : : : +- Project (66)
: : : : +- Project (65)
: : : : +- Generate (64)
: : : : +- Project (63)
: : : : +- Aggregate (62)
: : : : +- Project (61)
: : : : +- Generate (60)
: : : : +- Join (59)
: : : : :- Repartition (24)
: : : : : +- LogicalRelation (23)
: : : : +- Project (58)
: : : : +- Join (57)
: : : : :- Project (34)
: : : : : +- Project (33)
: : : : : +- Generate (32)
: : : : : +- Project (31)
: : : : : +- Generate (30)
: : : : : +- Project (29)
: : : : : +- Project (28)
: : : : : +- Filter (27)
: : : : : +- Repartition (26)
: : : : : +- LogicalRelation (25)
: : : : +- Deduplicate (56)
: : : : +- Project (55)
: : : : +- Project (54)
: : : : +- Project (53)
: : : : +- Project (52)
: : : : +- Project (51)
: : : : +- Generate (50)
: : : : +- Project (49)
: : : : +- Generate (48)
: : : : +- Project (47)
: : : : +- Join (46)
: : : : :- Project (43)
: : : : : +- Join (42)
: : : : : :- Project (37)
: : : : : : +- RepartitionByExpression (36)
: : : : : : +- LogicalRelation (35)
: : : : : +- Project (41)
: : : : : +- Project (40)
: : : : : +- Repartition (39)
: : : : : +- LogicalRelation (38)
: : : : +- Repartition (45)
: : : : +- LogicalRelation (44)
: : : +- Project (87)
: : : +- Project (86)
: : : +- Project (85)
: : : +- Project (84)
: : : +- Generate (83)
: : : +- Project (82)
: : : +- Generate (81)
: : : +- Project (80)
: : : +- Join (79)
: : : :- Project (76)
: : : : +- Join (75)
: : : : :- Project (70)
: : : : : +- RepartitionByExpression (69)
: : : : : +- LogicalRelation (68)
: : : : +- Project (74)
: : : : +- Project (73)
: : : : +- Repartition (72)
: : : : +- LogicalRelation (71)
: : : +- Repartition (78)
: : : +- LogicalRelation (77)
: : +- Aggregate (159)
: : +- Project (158)
: : +- Filter (157)
: : +- Join (156)
: : :- Filter (135)
: : : +- Project (134)
: : : +- Project (133)
: : : +- Generate (132)
: : : +- Project (131)
: : : +- Aggregate (130)
: : : +- Project (129)
: : : +- Generate (128)
: : : +- Join (127)
: : : :- Repartition (92)
: : : : +- LogicalRelation (91)
: : : +- Project (126)
: : : +- Join (125)
: : : :- Project (102)
: : : : +- Project (101)
: : : : +- Generate (100)
: : : : +- Project (99)
: : : : +- Generate (98)
: : : : +- Project (97)
: : : : +- Project (96)
: : : : +- Filter (95)
: : : : +- Repartition (94)
: : : : +- LogicalRelation (93)
: : : +- Deduplicate (124)
: : : +- Project (123)
: : : +- Project (122)
: : : +- Project (121)
: : : +- Project (120)
: : : +- Project (119)
: : : +- Generate (118)
: : : +- Project (117)
: : : +- Generate (116)
: : : +- Project (115)
: : : +- Join (114)
: : : :- Project (111)
: : : : +- Join (110)
: : : : :- Project (105)
: : : : : +- RepartitionByExpression (104)
: : : : : +- LogicalRelation (103)
: : : : +- Project (109)
: : : : +- Project (108)
: : : : +- Repartition (107)
: : : : +- LogicalRelation (106)
: : : +- Repartition (113)
: : : +- LogicalRelation (112)
: : +- Project (155)
: : +- Project (154)
: : +- Project (153)
: : +- Project (152)
: : +- Generate (151)
: : +- Project (150)
: : +- Generate (149)
: : +- Project (148)
: : +- Join (147)
: : :- Project (144)
: : : +- Join (143)
: : : :- Project (138)
: : : : +- RepartitionByExpression (137)
: : : : +- LogicalRelation (136)
: : : +- Project (142)
: : : +- Project (141)
: : : +- Repartition (140)
: : : +- LogicalRelation (139)
: : +- Repartition (146)
: : +- LogicalRelation (145)
: +- LogicalRelation (171)
+- LocalRelation (176)
(1) Execute SaveIntoDataSourceCommand
Output: []
(2) SaveIntoDataSourceCommand
Arguments: org.apache.spark.sql.kafka010.KafkaSourceProvider@4da5c7c2, [kafka.ssl.keystore.type=PEM, kafka.ssl.truststore.certificates=-----BEGIN CERTIFICATE-----
MIIGDzCCA/egAwIBAgIUJRTgKUjNpiA/y4yfE+RwMDi71fEwDQYJKoZIhvcNAQEL
BQAwgY4xCzAJBgNVBAYTAkRFMRswGQYDVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcx
ETAPBgNVBAcMCFdhbGxkb3JmMQ8wDQYDVQQKDAZTQVAgU0UxHzAdBgNVBAsMFlNB
UCBDUCBEYXRhIE1hbmFnZW1lbnQxHTAbBgNVBAMMFFNBUCBTRSBLYWZrYSBSb290
IENBMB4XDTI0MDIwODEzMTY1NloXDTI3MDUyMzEzMTY1NlowgY4xCzAJBgNVBAYT
AkRFMRswGQYDVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxETAPBgNVBAcMCFdhbGxk
b3JmMQ8wDQYDVQQKDAZTQVAgU0UxHzAdBgNVBAsMFlNBUCBDUCBEYXRhIE1hbmFn
ZW1lbnQxHTAbBgNVBAMMFFNBUCBTRSBLYWZrYSBSb290IENBMIICIjANBgkqhkiG
9w0BAQEFAAOCAg8AMIICCgKCAgEAoLH563sTndme/L5sUH/LggOO5sgRk6D6eYJi
YgPZFX/o8a0dctgMTBK574kPAZeniwvOIUUeGhKM/Ho4ou/B3XDD/8WtoOIZt4lj
QGyeSlZVFtCI3Ip/ENj5gIuFhO6N209mpw9wIgjhCdCTU+g6uaAe440aqCMhVO5I
54bHp4hSHwkLdNZnsRjSopufEKxWbJm52w7lKHwBwNc0cAckiagne6FbBTliF4K/
bgmfRRwP9fzjcmgno+GGgKastNkJVh6Ku/2NCpOKSzQiGNAQAvqbZbpQIkCt4/PK
Nj4c5pjbRSajwt8JWNHRJ9muJz2Db7ZceQF7H/vcAwlu/IK/ARHygfA72IY164du
QN1qJyi1DkPs1qm5cuA8WbfL8KSqIFeiKoInHL524zeK2Yt5b89sS00ydtLSYbri
1kd31McUCHcj66DDX5xBbNg7bgRx09DNpfwKlUnwC7tphz1DLJprJ9OvhjEZi0w7
TNrL21yETIKGG0qSgebIhLPWTG650i2hEM2dF1t9RfVB4qdhaxS194rkwQPZ2lQ8
74hWnuqiZ3L4XhMp1AO86UoFEWyeCbIFsZ4YHnCNfBOO4t8LSPpUiV9bTIwqG549
upI9tWMZMVV59GiuA4M9oit7vYa1eNxpUhKWpqAVCA66tETln04umAKsywt06pUn
0udI1OsCAwEAAaNjMGEwHQYDVR0OBBYEFGRMbSqCPP1qeNX3hEYn4YAClp/cMB8G
A1UdIwQYMBaAFGRMbSqCPP1qeNX3hEYn4YAClp/cMA8GA1UdEwEB/wQFMAMBAf8w
DgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBCwUAA4ICAQBfn+8f1fmSSpUCe1ks
OB6A4KubhEDsQ3XUZ7myBU+nMhLAoPflra3+jcUcq3fqR/ybK2rfEK+Vngf8NBou
YP+1p/QaWJPgzzEEGEEAQx5U57HbnPw7DoDJaUkIoqT3gmLkWTw9R1t+AK+neHnL
tfUygvBkLevcXG4klLjFW1B5/8T9hIg7wK5httXgr+P6sic458tB2oImQWkUIaCh
3NkVAWtLjz81LiaM0fgiI0/kiufq0FZWqhazTTz8qY/qocdHbhEUmA4wSjL1XB/K
UrUC0yB7uN5vpCpunWC3EhkzCLgemIm+DPyREg7euGvg6URuP1VIsoaLstxX6caB
DROwWXY3P7kVZtzHXK6g6lrJAYxtP9tf6dyZhFHf0/XL7kwHVabU+s9MgvDvIaxA
V588fCGJbB9A+QrWxF2QKDzUrygHHd8y+EE6Oj6rbnNEgkxxuP+qDiza/46MVPVh
KzF6gepXlv9fgm2+v3Mu/HRKVAoHPOKefC3KeNv8wZkPn76dC4CEZHU+zB+YgvQ3
n1sgzPdcFfV+0wLOhLJkzbTWJ9znspJMZWYn6CR1VWbiWgDMfM9R18onHGxcAxn4
qfoGuXQDP5cnSOsIUVG75z6dfixzzn41hAaW0bQXP8nbMve5LcZhvmDQtxqNiFZu
/jpDfYNIFFeK2b96ea3PMzQYLg==
-----END CERTIFICATE-----, kafka.bootstrap.servers=20.50.251.154:50094,20.50.251.154:50194,20.50.251.154:50294, kafka.ssl.keystore.key=-----BEGIN PRIVATE KEY-----
MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCsqTR07Ofx898s
7Se0NycWg2FPBFx6hqu2IWm9+rc6+VsXdTRRc7pI9EdiVraHXqtSxFdqjPwViLEA
kUM9pgtYT9qrxIYMQ0sF5mSbR3GpjglHTBYcu7viVBUbx/t9O6aXiwOwG1Q2GiMI
YxyeVfObn6W1D8F3ToRB0KejPPMV6OIs0ssd+6DeqLcPGAXInmA+k7ftLYShbmeD
a8X4ztloUXvFRTb42CgE8tiTOlNHYRgtZGaiFWm5pYO/TUQyLpGewSvvd1GHEHHF
y54FCw4U/eapPxKzWOFNYbConP7sYezcn2L3HhuXNr0iV5hRoaQEzPbYBoMJcSG6
JUUTXGXbAgMBAAECggEAJaqQCAX6n5zdDfb6l2UEwPOOUeeYqR4h7YyifdBpEpN9
XMOz0yUU+X9Y50oVbbioVVkB3Pu+ro/wVThbW+KSTQS2powr1hcEEdhuEDXoxN14
hrZBiKkn1rsTE8lvwqU1tY+dEVkU6OyQwe6lOqFzkHqmcrZqNTXKwnTbbVAJk7ir
JTJXrx3Hds3+XUBiSbnwHDCY/2O9or1vrqVY8Y66CvzaqB2Qih3OQM+goYlk8ONu
egY9PbKXVJsOQpuR6SUqSxozT3eOln469Fygw0WsoBXlnS5jheltuvgxrOv61bIJ
ZDwXoiUEau0q/4mwHO31n8dOhd4nkkXDml1/htNdIQKBgQDm1KMvpfHgeqyjf+zk
wbSZRnTAlTv2YC6aUWEpCwwFTxA6m0sg6Jd7Ei/lW1NWqheHfYLe10AyceaDj45h
3NQD7z199GkJKrP+U0OYGlBLYfnU/sDviHxaeZYJd4PFVOehkZXXZBqzgBAg7qj0
uhazm7C4nBXh+UrnZj+hPHIg6wKBgQC/fNScpHjdZ87uxreJfN93ZLB71ETDhCTq
1ARsyBfRHQ2DU584W+F7P52XLekOKDZT6Anwb20usygJ84Ntac0EijUnsVb6vO5A
FTISocFeoLTuNgPdFBqc2Cp4kBhjQ7LSQzi/Vfp/ULm+cXHxxpkXvI2HLfF/qThw
uTBKm90S0QKBgFYtHntEdce7pMYplTRWCOmMPzxCuq8he2SLaz2abTNyL/nhTiwM
CbmdsZnr/XIGcGBaAEjXjZUHpuqI5rwsaE7Lu2ZRoAEXGzmgtkSL1lw+SLo3HaqP
hvV0HQqNvvkl2JAePRW7vqgy8FKLJzKuYplNT62sQBMsMcWwC6NTYLxfAoGABkpq
ja7VjaiAYtXCZ9DjYn+7UIYbsDSiJdjLQGueZK9Ip1zS6T4TfUIMwk+uzVlC16TS
1sRCWPtnwFPwqGKGarTDpEcuLVSRmydXGseXm6055G1/2P51FVwAoS9SrcgmksPE
lHyVmyMixv/hF2lH1EDMgXlf6qq7gPCEhp7yN1ECgYB5tTIRBznsGvQ0qVNX3OvF
FeqJpgXGAuTzn79oy0u/a2K1bBUDuHhY6oLJYbOwagLqmgC1VhSHkgQYI8DLnrjJ
72ay4Nt3Klsd5VT/hPeJCoDXEDmokF8FYvYTfIPVSim4llSA8Y0Nbe5XzBJFPMx+
xB26cmdk0rozugAuasNtDA==
-----END PRIVATE KEY-----, topic=SituationsTopic, kafka.ssl.truststore.type=PEM, kafka.ssl.keystore.certificate.chain=-----BEGIN CERTIFICATE-----
MIIG+jCCBOKgAwIBAgIRAPuM9Xo+r5DIIG3nMAvk4ycwDQYJKoZIhvcNAQELBQAw
eTELMAkGA1UEBhMCREUxDTALBgNVBAcMBEVVMTAxDzANBgNVBAoMBlNBUCBTRTEj
MCEGA1UECwwaU0FQIENsb3VkIFBsYXRmb3JtIENsaWVudHMxJTAjBgNVBAMMHFNB
UCBDbG91ZCBQbGF0Zm9ybSBDbGllbnQgQ0EwHhcNMjUwOTI0MDgzNDQzWhcNMjYw
OTI0MDkzNDQzWjCCAfExCzAJBgNVBAYTAkRFMQ8wDQYDVQQKDAZTQVAgU0UxIzAh
BgNVBAsMGlNBUCBDbG91ZCBQbGF0Zm9ybSBDbGllbnRzMRowGAYDVQQLDBFjZi1l
dTIwLXNhcC1rYWZrYTGCAWMwggFfBgNVBAcMggFWaWp4eWFyNzNoRjlGSlVfVkYy
UjMySndoTDk0NTNYUEk3NFUzUnhmQmlhOGljWTJTeDlJR1h1YzktQWVmZElFRGxy
X3dhRmV2dGwzVW9nYTBVMnJjMWtWMElEcVd3NTVodVJVajNfWjJHVTJLMzR3Y3NX
YzBXZVVuWHVrRmUyN1pXa0RTeVdJSUQzNTREUmdkME9SM0JoOGdiWkhnRmJ3Mm5x
Nmo3QTAzb25mWGdvQVI0SzJST2JobDU2NTJ0UFVOMVVpRlo4UXl6WlRFdWFyUHM3
OUtOREdvQ3hfSVRXZVd0elVDczZZWTZWemVJVkxnMllyVGI0YzkwX3hSQlR1M1V1
OFh6cC1WbktoY29iVXpmLXQzQ0NGa2M5N29mc1RWWkJWTERmUnBfR2JaU2JObnhF
TFBIeDlyWDc5NmZpMlpRdVNMeGlhWnF6VWNiMnJCOFRSeG1nMSkwJwYDVQQDDCBz
YnNzX2dreDRoanRoZHluLW9sZzZqYmhrZS0yZ3VodzCCASIwDQYJKoZIhvcNAQEB
BQADggEPADCCAQoCggEBAKypNHTs5/Hz3yztJ7Q3JxaDYU8EXHqGq7Yhab36tzr5
Wxd1NFFzukj0R2JWtodeq1LEV2qM/BWIsQCRQz2mC1hP2qvEhgxDSwXmZJtHcamO
CUdMFhy7u+JUFRvH+307ppeLA7AbVDYaIwhjHJ5V85ufpbUPwXdOhEHQp6M88xXo
4izSyx37oN6otw8YBcieYD6Tt+0thKFuZ4NrxfjO2WhRe8VFNvjYKATy2JM6U0dh
GC1kZqIVabmlg79NRDIukZ7BK+93UYcQccXLngULDhT95qk/ErNY4U1hsKic/uxh
7NyfYvceG5c2vSJXmFGhpATM9tgGgwlxIbolRRNcZdsCAwEAAaOCAQEwgf4wCQYD
VR0TBAIwADAfBgNVHSMEGDAWgBTtx8AzXhKk93kym3vuCviohXiMLzAdBgNVHQ4E
FgQUt8C7I370r3xOZAWUeSSBdSixdjkwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQM
MAoGCCsGAQUFBwMCMIGLBgNVHR8EgYMwgYAwfqB8oHqGeGh0dHA6Ly9zYXAtY2xv
dWQtcGxhdGZvcm0tY2xpZW50LWNhLWV1MTAtY3Jscy5zMy5ldS1jZW50cmFsLTEu
YW1hem9uYXdzLmNvbS9jcmwvMmExYjQ5YWMtZmMwMi00YTQ4LTk5M2EtOWE0ZDBk
ZmVjMzNlLmNybDANBgkqhkiG9w0BAQsFAAOCAgEAE8KNaj6PLP2tdMtpMR7kOQ1E
GVNHNWpSuNHSZVWLg4t2l3MqiZbo2EIWqTyt3y1FaQH2fiLMJ4DmsICux/BsYqin
0bxEbWub1+b+Yh3RrKRzFB3I05w4oX6SycTtKZFIM1ISZIqRPe8G3LLK6yLS2Ogc
p6RXSYHHiwrk6tKl2Rrkf5f0eiN7Qn2+RdDfNurIGzrya36FhqomwK46Z3HQDi7V
KLevg0EJn3pU+wYMxkm7HskZ2eWli3GsHAS9dYM3ztC8g85liCG+IUiNvBdePZJ2
82OKiMYsl7ER/FCQRzKsuzuLeZv44gBUYpY2e0LMHi3LxlfvlipBp/r+9QCUlUKi
2BhXaHdDrkgAcjYWGIca+uEkw4CPCF/7IOc35n3j9Ne89jeSh6wuTJEvjoJmJm4/
TUO8jzblAErU8AcN2i5lnRcyrka46f1GO6Jl8HlBIf6DrI4WR+zh7KYOk4dIhOWW
95dSFobUQZmaUt4iQOymkNCfKlSuIKPsD/P3DhIK7FTCrnamUxA11dO7vgy3tR7N
STxtwY26d2FMELmn9yVL022xe4UPpFpJEnxJNCZaR6PNhsmAS7JFptE1CJVcOSgo
7sPRCPVMbjIz0SxLx9eRZC97l3piI/r71rle3wkytep0+IY3CotlyAinicHbqXu1
uGV7tiLb/50fcOfWPnE=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
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
TG767A==
-----END CERTIFICATE-----, kafka.security.protocol=SSL], ErrorIfExists
(3) LogicalRelation
Arguments: parquet, [product#15459015, plant#15459016, orderDateTime#15459017, planningStartDateTime#15459018], false
(4) RepartitionByExpression
Arguments: [product#15459015, plant#15459016], 37
(5) Project
Arguments: [product#15459015, plant#15459016, orderDateTime#15459017]
(6) LogicalRelation
Arguments: parquet, [systemId#15459020, internalUUID#15459021, plant#15459022, product#15459023, blockedForReplenishmentStartingFrom#15459024, productionAspect#15459025, salesPlant#15459026, listing#15459027, sourceOfSupplyCategory#15459028], false
(7) Repartition
Arguments: 37, true
(8) Project
Arguments: [systemId#15459020, internalUUID#15459021, plant#15459022, product#15459023, blockedForReplenishmentStartingFrom#15459024, productionAspect#15459025, salesPlant#15459026, listing#15459027, sourceOfSupplyCategory#15459028, struct(systemId, systemId#15459020, internalUUID, internalUUID#15459021, plant, plant#15459022, product, product#15459023, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#15459024, productionAspect, productionAspect#15459025, salesPlant, salesPlant#15459026, listing, listing#15459027, sourceOfSupplyCategory, sourceOfSupplyCategory#15459028) AS productPlant#15459030]
(9) Project
Arguments: [productPlant#15459030]
(10) Join
Arguments: LeftOuter, ((product#15459015 <=> productPlant#15459030.product.internalRefUUID) AND (plant#15459016 <=> productPlant#15459030.plant.internalRefUUID))
(11) Project
Arguments: [product#15459015, plant#15459016, orderDateTime#15459017, productPlant#15459030]
(12) LogicalRelation
Arguments: parquet, [systemId#15459033, internalUUID#15459034, id#15459035, displayId#15459036, name#15459037, baseUnitOfMeasure#15459038, unitOfMeasures#15459039, unitOfMeasureConversions#15459040, productionAspect#15459041, salesAspect#15459042, procurementAspect#15459043, productGroup#15459044], false
(13) Repartition
Arguments: 37, true
(14) Join
Arguments: LeftOuter, (product#15459015 = internalUUID#15459034)
(15) Project
Arguments: [product#15459015, plant#15459016, orderDateTime#15459017, productPlant#15459030, systemId#15459033, internalUUID#15459034, id#15459035, displayId#15459036, name#15459037, baseUnitOfMeasure#15459038, unitOfMeasures#15459039, unitOfMeasureConversions#15459040, productionAspect#15459041, salesAspect#15459042, procurementAspect#15459043, productGroup#15459044, filter(unitOfMeasureConversions#15459040, lambdafunction((((lambda u#15459047.measurementUnit1.code = productPlant#15459030.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#15459047.measurementUnit1.internalRefUUID = productPlant#15459030.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#15459047.measurementUnit2.code = baseUnitOfMeasure#15459038.code) AND (lambda u#15459047.measurementUnit2.internalRefUUID = baseUnitOfMeasure#15459038.internalRefUUID))), lambda u#15459047, false)) AS filteredUnitOfMeasureConversions#15459046]
(16) Generate
Arguments: explode(filteredUnitOfMeasureConversions#15459046.quantityNumerator), true, [quantityNumerator#15459054]
(17) Project
Arguments: [product#15459015, plant#15459016, orderDateTime#15459017, productPlant#15459030, systemId#15459033, internalUUID#15459034, id#15459035, displayId#15459036, name#15459037, baseUnitOfMeasure#15459038, unitOfMeasures#15459039, unitOfMeasureConversions#15459040, productionAspect#15459041, salesAspect#15459042, procurementAspect#15459043, productGroup#15459044, filteredUnitOfMeasureConversions#15459046, quantityNumerator#15459054]
(18) Generate
Arguments: explode(filteredUnitOfMeasureConversions#15459046.quantityDenominator), true, [quantityDenominator#15459057]
(19) Project
Arguments: [product#15459015, plant#15459016, orderDateTime#15459017, productPlant#15459030, systemId#15459033, internalUUID#15459034, id#15459035, displayId#15459036, name#15459037, baseUnitOfMeasure#15459038, unitOfMeasures#15459039, unitOfMeasureConversions#15459040, productionAspect#15459041, salesAspect#15459042, procurementAspect#15459043, productGroup#15459044, filteredUnitOfMeasureConversions#15459046, quantityNumerator#15459054, quantityDenominator#15459057]
(20) Project
Arguments: [product#15459015, plant#15459016, orderDateTime#15459017, productPlant#15459030, systemId#15459033, internalUUID#15459034, id#15459035, displayId#15459036, name#15459037, baseUnitOfMeasure#15459038, unitOfMeasures#15459039, unitOfMeasureConversions#15459040, productionAspect#15459041, salesAspect#15459042, procurementAspect#15459043, productGroup#15459044, filteredUnitOfMeasureConversions#15459046, quantityNumerator#15459054, quantityDenominator#15459057, (cast(quantityNumerator#15459054 as double) / cast(quantityDenominator#15459057 as double)) AS outboundUnit#15459058]
(21) Project
Arguments: [product#15459015, plant#15459016, orderDateTime#15459017, productPlant#15459030, systemId#15459033, internalUUID#15459034, id#15459035, displayId#15459036, name#15459037, baseUnitOfMeasure#15459038, unitOfMeasures#15459039, unitOfMeasureConversions#15459040, productionAspect#15459041, salesAspect#15459042, procurementAspect#15459043, productGroup#15459044, filteredUnitOfMeasureConversions#15459046, quantityNumerator#15459054, quantityDenominator#15459057, CASE WHEN (isnull(outboundUnit#15459058) OR (outboundUnit#15459058 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#15459058 END AS outboundUnit#15459059]
(22) Project
Arguments: [product#15459015, plant#15459016, orderDateTime#15459017, productPlant#15459030, outboundUnit#15459059]
(23) LogicalRelation
Arguments: parquet, [systemId#15459147, internalUUID#15459148, product#15459149, plant#15459150, calculationDateTime#15459151, stockQuantities#15459152], false
(24) Repartition
Arguments: 37, true
(25) LogicalRelation
Arguments: parquet, [marketUnit#15459060, description#15459061, articleHierarchy#15459062, defaultCurrency#15459063, responsibilities#15459064, replenishmentTypes#15459065, distributionCenters#15459066, assignedArticleHierarchyNodes#15459067, minOrderQtySetting#15459068, listingCheck#15459069, odsSelection#15459070, demandProfiles#15459071, constraintProfiles#15459072, optimizationProfiles#15459073, orderGroupSplitProfiles#15459074, supplierMinimumProfiles#15459075, multipleRestrictionProfiles#15459076, preferredUomSource#15459077, handlingOfUnfulfilledDemands#15459078, negligibleQuantitiesThreshold#15459079, eventtype#15459080, minOrderQtySettingInternal#15459081], false
(26) Repartition
Arguments: 37, true
(27) Filter
Arguments: (marketUnit#15459060 <=> IW_MU_CRP-128628_2)
(28) Project
Arguments: [marketUnit#15459060, description#15459061, articleHierarchy#15459062, defaultCurrency#15459063, responsibilities#15459064, replenishmentTypes#15459065, distributionCenters#15459066, assignedArticleHierarchyNodes#15459067, minOrderQtySetting#15459068, listingCheck#15459069, odsSelection#15459070, demandProfiles#15459071, constraintProfiles#15459072, optimizationProfiles#15459073, orderGroupSplitProfiles#15459074, supplierMinimumProfiles#15459075, multipleRestrictionProfiles#15459076, preferredUomSource#15459077, handlingOfUnfulfilledDemands#15459078, negligibleQuantitiesThreshold#15459079, eventtype#15459080, minOrderQtySettingInternal#15459081]
(29) Project
Arguments: [distributionCenters#15459066]
(30) Generate
Arguments: explode(distributionCenters#15459066), false, [distributionCenters#15459084]
(31) Project
Arguments: [distributionCenters#15459084]
(32) Generate
Arguments: explode(distributionCenters#15459084.storageLocations), false, [storageLocations#15459091]
(33) Project
Arguments: [distributionCenters#15459084.id AS plantId#15459085, distributionCenters#15459084.internalRefUUID AS plantUuid#15459086, storageLocations#15459091]
(34) Project
Arguments: [plantId#15459085, plantUuid#15459086, storageLocations#15459091.id AS storageLocId#15459092, storageLocations#15459091.internalRefUUID AS storageLocUuid#15459093]
(35) LogicalRelation
Arguments: parquet, [product#15459365, plant#15459366, orderDateTime#15459367, planningStartDateTime#15459368], false
(36) RepartitionByExpression
Arguments: [product#15459365, plant#15459366], 37
(37) Project
Arguments: [product#15459365, plant#15459366, orderDateTime#15459367]
(38) LogicalRelation
Arguments: parquet, [systemId#15459369, internalUUID#15459370, plant#15459371, product#15459372, blockedForReplenishmentStartingFrom#15459373, productionAspect#15459374, salesPlant#15459375, listing#15459376, sourceOfSupplyCategory#15459377], false
(39) Repartition
Arguments: 37, true
(40) Project
Arguments: [systemId#15459369, internalUUID#15459370, plant#15459371, product#15459372, blockedForReplenishmentStartingFrom#15459373, productionAspect#15459374, salesPlant#15459375, listing#15459376, sourceOfSupplyCategory#15459377, struct(systemId, systemId#15459369, internalUUID, internalUUID#15459370, plant, plant#15459371, product, product#15459372, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#15459373, productionAspect, productionAspect#15459374, salesPlant, salesPlant#15459375, listing, listing#15459376, sourceOfSupplyCategory, sourceOfSupplyCategory#15459377) AS productPlant#15459378]
(41) Project
Arguments: [productPlant#15459378]
(42) Join
Arguments: LeftOuter, ((product#15459365 <=> productPlant#15459378.product.internalRefUUID) AND (plant#15459366 <=> productPlant#15459378.plant.internalRefUUID))
(43) Project
Arguments: [product#15459365, plant#15459366, orderDateTime#15459367, productPlant#15459378]
(44) LogicalRelation
Arguments: parquet, [systemId#15459379, internalUUID#15459380, id#15459381, displayId#15459382, name#15459383, baseUnitOfMeasure#15459384, unitOfMeasures#15459385, unitOfMeasureConversions#15459386, productionAspect#15459387, salesAspect#15459388, procurementAspect#15459389, productGroup#15459390], false
(45) Repartition
Arguments: 37, true
(46) Join
Arguments: LeftOuter, (product#15459365 = internalUUID#15459380)
(47) Project
Arguments: [product#15459365, plant#15459366, orderDateTime#15459367, productPlant#15459378, systemId#15459379, internalUUID#15459380, id#15459381, displayId#15459382, name#15459383, baseUnitOfMeasure#15459384, unitOfMeasures#15459385, unitOfMeasureConversions#15459386, productionAspect#15459387, salesAspect#15459388, procurementAspect#15459389, productGroup#15459390, filter(unitOfMeasureConversions#15459386, lambdafunction((((lambda u#15459047.measurementUnit1.code = productPlant#15459378.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#15459047.measurementUnit1.internalRefUUID = productPlant#15459378.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#15459047.measurementUnit2.code = baseUnitOfMeasure#15459384.code) AND (lambda u#15459047.measurementUnit2.internalRefUUID = baseUnitOfMeasure#15459384.internalRefUUID))), lambda u#15459047, false)) AS filteredUnitOfMeasureConversions#15459391]
(48) Generate
Arguments: explode(filteredUnitOfMeasureConversions#15459391.quantityNumerator), true, [quantityNumerator#15459392]
(49) Project
Arguments: [product#15459365, plant#15459366, orderDateTime#15459367, productPlant#15459378, systemId#15459379, internalUUID#15459380, id#15459381, displayId#15459382, name#15459383, baseUnitOfMeasure#15459384, unitOfMeasures#15459385, unitOfMeasureConversions#15459386, productionAspect#15459387, salesAspect#15459388, procurementAspect#15459389, productGroup#15459390, filteredUnitOfMeasureConversions#15459391, quantityNumerator#15459392]
(50) Generate
Arguments: explode(filteredUnitOfMeasureConversions#15459391.quantityDenominator), true, [quantityDenominator#15459393]
(51) Project
Arguments: [product#15459365, plant#15459366, orderDateTime#15459367, productPlant#15459378, systemId#15459379, internalUUID#15459380, id#15459381, displayId#15459382, name#15459383, baseUnitOfMeasure#15459384, unitOfMeasures#15459385, unitOfMeasureConversions#15459386, productionAspect#15459387, salesAspect#15459388, procurementAspect#15459389, productGroup#15459390, filteredUnitOfMeasureConversions#15459391, quantityNumerator#15459392, quantityDenominator#15459393]
(52) Project
Arguments: [product#15459365, plant#15459366, orderDateTime#15459367, productPlant#15459378, systemId#15459379, internalUUID#15459380, id#15459381, displayId#15459382, name#15459383, baseUnitOfMeasure#15459384, unitOfMeasures#15459385, unitOfMeasureConversions#15459386, productionAspect#15459387, salesAspect#15459388, procurementAspect#15459389, productGroup#15459390, filteredUnitOfMeasureConversions#15459391, quantityNumerator#15459392, quantityDenominator#15459393, (cast(quantityNumerator#15459392 as double) / cast(quantityDenominator#15459393 as double)) AS outboundUnit#15459394]
(53) Project
Arguments: [product#15459365, plant#15459366, orderDateTime#15459367, productPlant#15459378, systemId#15459379, internalUUID#15459380, id#15459381, displayId#15459382, name#15459383, baseUnitOfMeasure#15459384, unitOfMeasures#15459385, unitOfMeasureConversions#15459386, productionAspect#15459387, salesAspect#15459388, procurementAspect#15459389, productGroup#15459390, filteredUnitOfMeasureConversions#15459391, quantityNumerator#15459392, quantityDenominator#15459393, CASE WHEN (isnull(outboundUnit#15459394) OR (outboundUnit#15459394 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#15459394 END AS outboundUnit#15459395]
(54) Project
Arguments: [product#15459365, plant#15459366, orderDateTime#15459367, productPlant#15459378, outboundUnit#15459395]
(55) Project
Arguments: [plant#15459366]
(56) Deduplicate
Arguments: [plant#15459366]
(57) Join
Arguments: Inner, (plantUuid#15459086 = plant#15459366)
(58) Project
Arguments: [plantId#15459085, plantUuid#15459086, storageLocId#15459092, storageLocUuid#15459093]
(59) Join
Arguments: Inner, (plant#15459150.internalRefUUID <=> plantUuid#15459086)
(60) Generate
Arguments: explode(filter(stockQuantities#15459152, lambdafunction(((lambda x#15459156.storageLocation.internalRefUuid = storageLocUuid#15459093) AND (lambda x#15459156.storageLocation.Id = storageLocId#15459092)), lambda x#15459156, false))), false, [stockQuantity#15459157]
(61) Project
Arguments: [systemId#15459147, internalUUID#15459148, product#15459149, plant#15459150, calculationDateTime#15459151, stockQuantities#15459152, plantId#15459085, plantUuid#15459086, storageLocId#15459092, storageLocUuid#15459093, stockQuantity#15459157]
(62) Aggregate
Arguments: [plantUuid#15459086, internalUUID#15459148, plant#15459150, product#15459149, systemId#15459147], [plantUuid#15459086, internalUUID#15459148, plant#15459150, product#15459149, systemId#15459147, first(calculationDateTime#15459151, false) AS calculationDateTime#15459158, collect_list(stockQuantity#15459157, 0, 0) AS stockQuantities#15459159]
(63) Project
Arguments: [systemId#15459147, internalUUID#15459148, product#15459149, plant#15459150, calculationDateTime#15459158, stockQuantities#15459159]
(64) Generate
Arguments: explode(stockQuantities#15459159), false, [stockQuantity#15459174]
(65) Project
Arguments: [systemId#15459147, internalUUID#15459148, product#15459149, plant#15459150, calculationDateTime#15459158, stockQuantities#15459159, stockQuantity#15459174]
(66) Project
Arguments: [plant#15459150.id AS plant#15459175, plant#15459150.internalRefUUID AS plantUuid#15459176, product#15459149.id AS product#15459177, product#15459149.internalRefUUID AS productUuid#15459178, calculationDateTime#15459158, stockQuantity#15459174.storagelocation.id AS storageLocId#15459179, stockQuantity#15459174.storagelocation.internalRefUUID AS storageLocUuid#15459180, stockQuantity#15459174.quantity.measure AS quantity#15459181, stockQuantity#15459174.specialStockIndicator.code AS specialStockIndicator#15459182, stockQuantity#15459174.stockType.code AS stockType#15459183]
(67) Filter
Arguments: ((specialStockIndicator#15459182 = ) AND (stockType#15459183 = 01))
(68) LogicalRelation
Arguments: parquet, [product#15459193, plant#15459194, orderDateTime#15459195, planningStartDateTime#15459196], false
(69) RepartitionByExpression
Arguments: [product#15459193, plant#15459194], 37
(70) Project
Arguments: [product#15459193, plant#15459194, orderDateTime#15459195]
(71) LogicalRelation
Arguments: parquet, [systemId#15459197, internalUUID#15459198, plant#15459199, product#15459200, blockedForReplenishmentStartingFrom#15459201, productionAspect#15459202, salesPlant#15459203, listing#15459204, sourceOfSupplyCategory#15459205], false
(72) Repartition
Arguments: 37, true
(73) Project
Arguments: [systemId#15459197, internalUUID#15459198, plant#15459199, product#15459200, blockedForReplenishmentStartingFrom#15459201, productionAspect#15459202, salesPlant#15459203, listing#15459204, sourceOfSupplyCategory#15459205, struct(systemId, systemId#15459197, internalUUID, internalUUID#15459198, plant, plant#15459199, product, product#15459200, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#15459201, productionAspect, productionAspect#15459202, salesPlant, salesPlant#15459203, listing, listing#15459204, sourceOfSupplyCategory, sourceOfSupplyCategory#15459205) AS productPlant#15459206]
(74) Project
Arguments: [productPlant#15459206]
(75) Join
Arguments: LeftOuter, ((product#15459193 <=> productPlant#15459206.product.internalRefUUID) AND (plant#15459194 <=> productPlant#15459206.plant.internalRefUUID))
(76) Project
Arguments: [product#15459193, plant#15459194, orderDateTime#15459195, productPlant#15459206]
(77) LogicalRelation
Arguments: parquet, [systemId#15459207, internalUUID#15459208, id#15459209, displayId#15459210, name#15459211, baseUnitOfMeasure#15459212, unitOfMeasures#15459213, unitOfMeasureConversions#15459214, productionAspect#15459215, salesAspect#15459216, procurementAspect#15459217, productGroup#15459218], false
(78) Repartition
Arguments: 37, true
(79) Join
Arguments: LeftOuter, (product#15459193 = internalUUID#15459208)
(80) Project
Arguments: [product#15459193, plant#15459194, orderDateTime#15459195, productPlant#15459206, systemId#15459207, internalUUID#15459208, id#15459209, displayId#15459210, name#15459211, baseUnitOfMeasure#15459212, unitOfMeasures#15459213, unitOfMeasureConversions#15459214, productionAspect#15459215, salesAspect#15459216, procurementAspect#15459217, productGroup#15459218, filter(unitOfMeasureConversions#15459214, lambdafunction((((lambda u#15459047.measurementUnit1.code = productPlant#15459206.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#15459047.measurementUnit1.internalRefUUID = productPlant#15459206.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#15459047.measurementUnit2.code = baseUnitOfMeasure#15459212.code) AND (lambda u#15459047.measurementUnit2.internalRefUUID = baseUnitOfMeasure#15459212.internalRefUUID))), lambda u#15459047, false)) AS filteredUnitOfMeasureConversions#15459219]
(81) Generate
Arguments: explode(filteredUnitOfMeasureConversions#15459219.quantityNumerator), true, [quantityNumerator#15459220]
(82) Project
Arguments: [product#15459193, plant#15459194, orderDateTime#15459195, productPlant#15459206, systemId#15459207, internalUUID#15459208, id#15459209, displayId#15459210, name#15459211, baseUnitOfMeasure#15459212, unitOfMeasures#15459213, unitOfMeasureConversions#15459214, productionAspect#15459215, salesAspect#15459216, procurementAspect#15459217, productGroup#15459218, filteredUnitOfMeasureConversions#15459219, quantityNumerator#15459220]
(83) Generate
Arguments: explode(filteredUnitOfMeasureConversions#15459219.quantityDenominator), true, [quantityDenominator#15459221]
(84) Project
Arguments: [product#15459193, plant#15459194, orderDateTime#15459195, productPlant#15459206, systemId#15459207, internalUUID#15459208, id#15459209, displayId#15459210, name#15459211, baseUnitOfMeasure#15459212, unitOfMeasures#15459213, unitOfMeasureConversions#15459214, productionAspect#15459215, salesAspect#15459216, procurementAspect#15459217, productGroup#15459218, filteredUnitOfMeasureConversions#15459219, quantityNumerator#15459220, quantityDenominator#15459221]
(85) Project
Arguments: [product#15459193, plant#15459194, orderDateTime#15459195, productPlant#15459206, systemId#15459207, internalUUID#15459208, id#15459209, displayId#15459210, name#15459211, baseUnitOfMeasure#15459212, unitOfMeasures#15459213, unitOfMeasureConversions#15459214, productionAspect#15459215, salesAspect#15459216, procurementAspect#15459217, productGroup#15459218, filteredUnitOfMeasureConversions#15459219, quantityNumerator#15459220, quantityDenominator#15459221, (cast(quantityNumerator#15459220 as double) / cast(quantityDenominator#15459221 as double)) AS outboundUnit#15459222]
(86) Project
Arguments: [product#15459193, plant#15459194, orderDateTime#15459195, productPlant#15459206, systemId#15459207, internalUUID#15459208, id#15459209, displayId#15459210, name#15459211, baseUnitOfMeasure#15459212, unitOfMeasures#15459213, unitOfMeasureConversions#15459214, productionAspect#15459215, salesAspect#15459216, procurementAspect#15459217, productGroup#15459218, filteredUnitOfMeasureConversions#15459219, quantityNumerator#15459220, quantityDenominator#15459221, CASE WHEN (isnull(outboundUnit#15459222) OR (outboundUnit#15459222 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#15459222 END AS outboundUnit#15459223]
(87) Project
Arguments: [product#15459193, plant#15459194, orderDateTime#15459195, productPlant#15459206, outboundUnit#15459223]
(88) Join
Arguments: Inner, ((plantUuid#15459176 = plant#15459194) AND (productUuid#15459178 = product#15459193))
(89) Filter
Arguments: (calculationDateTime#15459158 <= orderDateTime#15459195)
(90) Project
Arguments: [plantUuid#15459176 AS plant#15459227, productUuid#15459178 AS product#15459228, storageLocId#15459179, calculationDateTime#15459158, quantity#15459181]
(91) LogicalRelation
Arguments: parquet, [systemId#15459236, internalUUID#15459237, product#15459238, plant#15459239, calculationDateTime#15459240, stockQuantities#15459241], false
(92) Repartition
Arguments: 37, true
(93) LogicalRelation
Arguments: parquet, [marketUnit#15459242, description#15459243, articleHierarchy#15459244, defaultCurrency#15459245, responsibilities#15459246, replenishmentTypes#15459247, distributionCenters#15459248, assignedArticleHierarchyNodes#15459249, minOrderQtySetting#15459250, listingCheck#15459251, odsSelection#15459252, demandProfiles#15459253, constraintProfiles#15459254, optimizationProfiles#15459255, orderGroupSplitProfiles#15459256, supplierMinimumProfiles#15459257, multipleRestrictionProfiles#15459258, preferredUomSource#15459259, handlingOfUnfulfilledDemands#15459260, negligibleQuantitiesThreshold#15459261, eventtype#15459262, minOrderQtySettingInternal#15459263], false
(94) Repartition
Arguments: 37, true
(95) Filter
Arguments: (marketUnit#15459242 <=> IW_MU_CRP-128628_2)
(96) Project
Arguments: [marketUnit#15459242, description#15459243, articleHierarchy#15459244, defaultCurrency#15459245, responsibilities#15459246, replenishmentTypes#15459247, distributionCenters#15459248, assignedArticleHierarchyNodes#15459249, minOrderQtySetting#15459250, listingCheck#15459251, odsSelection#15459252, demandProfiles#15459253, constraintProfiles#15459254, optimizationProfiles#15459255, orderGroupSplitProfiles#15459256, supplierMinimumProfiles#15459257, multipleRestrictionProfiles#15459258, preferredUomSource#15459259, handlingOfUnfulfilledDemands#15459260, negligibleQuantitiesThreshold#15459261, eventtype#15459262, minOrderQtySettingInternal#15459263]
(97) Project
Arguments: [distributionCenters#15459248]
(98) Generate
Arguments: explode(distributionCenters#15459248), false, [distributionCenters#15459264]
(99) Project
Arguments: [distributionCenters#15459264]
(100) Generate
Arguments: explode(distributionCenters#15459264.storageLocations), false, [storageLocations#15459265]
(101) Project
Arguments: [distributionCenters#15459264.id AS plantId#15459266, distributionCenters#15459264.internalRefUUID AS plantUuid#15459267, storageLocations#15459265]
(102) Project
Arguments: [plantId#15459266, plantUuid#15459267, storageLocations#15459265.id AS storageLocId#15459268, storageLocations#15459265.internalRefUUID AS storageLocUuid#15459269]
(103) LogicalRelation
Arguments: parquet, [product#15459270, plant#15459271, orderDateTime#15459272, planningStartDateTime#15459273], false
(104) RepartitionByExpression
Arguments: [product#15459270, plant#15459271], 37
(105) Project
Arguments: [product#15459270, plant#15459271, orderDateTime#15459272]
(106) LogicalRelation
Arguments: parquet, [systemId#15459274, internalUUID#15459275, plant#15459276, product#15459277, blockedForReplenishmentStartingFrom#15459278, productionAspect#15459279, salesPlant#15459280, listing#15459281, sourceOfSupplyCategory#15459282], false
(107) Repartition
Arguments: 37, true
(108) Project
Arguments: [systemId#15459274, internalUUID#15459275, plant#15459276, product#15459277, blockedForReplenishmentStartingFrom#15459278, productionAspect#15459279, salesPlant#15459280, listing#15459281, sourceOfSupplyCategory#15459282, struct(systemId, systemId#15459274, internalUUID, internalUUID#15459275, plant, plant#15459276, product, product#15459277, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#15459278, productionAspect, productionAspect#15459279, salesPlant, salesPlant#15459280, listing, listing#15459281, sourceOfSupplyCategory, sourceOfSupplyCategory#15459282) AS productPlant#15459283]
(109) Project
Arguments: [productPlant#15459283]
(110) Join
Arguments: LeftOuter, ((product#15459270 <=> productPlant#15459283.product.internalRefUUID) AND (plant#15459271 <=> productPlant#15459283.plant.internalRefUUID))
(111) Project
Arguments: [product#15459270, plant#15459271, orderDateTime#15459272, productPlant#15459283]
(112) LogicalRelation
Arguments: parquet, [systemId#15459284, internalUUID#15459285, id#15459286, displayId#15459287, name#15459288, baseUnitOfMeasure#15459289, unitOfMeasures#15459290, unitOfMeasureConversions#15459291, productionAspect#15459292, salesAspect#15459293, procurementAspect#15459294, productGroup#15459295], false
(113) Repartition
Arguments: 37, true
(114) Join
Arguments: LeftOuter, (product#15459270 = internalUUID#15459285)
(115) Project
Arguments: [product#15459270, plant#15459271, orderDateTime#15459272, productPlant#15459283, systemId#15459284, internalUUID#15459285, id#15459286, displayId#15459287, name#15459288, baseUnitOfMeasure#15459289, unitOfMeasures#15459290, unitOfMeasureConversions#15459291, productionAspect#15459292, salesAspect#15459293, procurementAspect#15459294, productGroup#15459295, filter(unitOfMeasureConversions#15459291, lambdafunction((((lambda u#15459047.measurementUnit1.code = productPlant#15459283.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#15459047.measurementUnit1.internalRefUUID = productPlant#15459283.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#15459047.measurementUnit2.code = baseUnitOfMeasure#15459289.code) AND (lambda u#15459047.measurementUnit2.internalRefUUID = baseUnitOfMeasure#15459289.internalRefUUID))), lambda u#15459047, false)) AS filteredUnitOfMeasureConversions#15459296]
(116) Generate
Arguments: explode(filteredUnitOfMeasureConversions#15459296.quantityNumerator), true, [quantityNumerator#15459297]
(117) Project
Arguments: [product#15459270, plant#15459271, orderDateTime#15459272, productPlant#15459283, systemId#15459284, internalUUID#15459285, id#15459286, displayId#15459287, name#15459288, baseUnitOfMeasure#15459289, unitOfMeasures#15459290, unitOfMeasureConversions#15459291, productionAspect#15459292, salesAspect#15459293, procurementAspect#15459294, productGroup#15459295, filteredUnitOfMeasureConversions#15459296, quantityNumerator#15459297]
(118) Generate
Arguments: explode(filteredUnitOfMeasureConversions#15459296.quantityDenominator), true, [quantityDenominator#15459298]
(119) Project
Arguments: [product#15459270, plant#15459271, orderDateTime#15459272, productPlant#15459283, systemId#15459284, internalUUID#15459285, id#15459286, displayId#15459287, name#15459288, baseUnitOfMeasure#15459289, unitOfMeasures#15459290, unitOfMeasureConversions#15459291, productionAspect#15459292, salesAspect#15459293, procurementAspect#15459294, productGroup#15459295, filteredUnitOfMeasureConversions#15459296, quantityNumerator#15459297, quantityDenominator#15459298]
(120) Project
Arguments: [product#15459270, plant#15459271, orderDateTime#15459272, productPlant#15459283, systemId#15459284, internalUUID#15459285, id#15459286, displayId#15459287, name#15459288, baseUnitOfMeasure#15459289, unitOfMeasures#15459290, unitOfMeasureConversions#15459291, productionAspect#15459292, salesAspect#15459293, procurementAspect#15459294, productGroup#15459295, filteredUnitOfMeasureConversions#15459296, quantityNumerator#15459297, quantityDenominator#15459298, (cast(quantityNumerator#15459297 as double) / cast(quantityDenominator#15459298 as double)) AS outboundUnit#15459299]
(121) Project
Arguments: [product#15459270, plant#15459271, orderDateTime#15459272, productPlant#15459283, systemId#15459284, internalUUID#15459285, id#15459286, displayId#15459287, name#15459288, baseUnitOfMeasure#15459289, unitOfMeasures#15459290, unitOfMeasureConversions#15459291, productionAspect#15459292, salesAspect#15459293, procurementAspect#15459294, productGroup#15459295, filteredUnitOfMeasureConversions#15459296, quantityNumerator#15459297, quantityDenominator#15459298, CASE WHEN (isnull(outboundUnit#15459299) OR (outboundUnit#15459299 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#15459299 END AS outboundUnit#15459300]
(122) Project
Arguments: [product#15459270, plant#15459271, orderDateTime#15459272, productPlant#15459283, outboundUnit#15459300]
(123) Project
Arguments: [plant#15459271]
(124) Deduplicate
Arguments: [plant#15459271]
(125) Join
Arguments: Inner, (plantUuid#15459267 = plant#15459271)
(126) Project
Arguments: [plantId#15459266, plantUuid#15459267, storageLocId#15459268, storageLocUuid#15459269]
(127) Join
Arguments: Inner, (plant#15459239.internalRefUUID <=> plantUuid#15459267)
(128) Generate
Arguments: explode(filter(stockQuantities#15459241, lambdafunction(((lambda x#15459156.storageLocation.internalRefUuid = storageLocUuid#15459269) AND (lambda x#15459156.storageLocation.Id = storageLocId#15459268)), lambda x#15459156, false))), false, [stockQuantity#15459301]
(129) Project
Arguments: [systemId#15459236, internalUUID#15459237, product#15459238, plant#15459239, calculationDateTime#15459240, stockQuantities#15459241, plantId#15459266, plantUuid#15459267, storageLocId#15459268, storageLocUuid#15459269, stockQuantity#15459301]
(130) Aggregate
Arguments: [plantUuid#15459267, internalUUID#15459237, plant#15459239, product#15459238, systemId#15459236], [plantUuid#15459267, internalUUID#15459237, plant#15459239, product#15459238, systemId#15459236, first(calculationDateTime#15459240, false) AS calculationDateTime#15459302, collect_list(stockQuantity#15459301, 0, 0) AS stockQuantities#15459303]
(131) Project
Arguments: [systemId#15459236, internalUUID#15459237, product#15459238, plant#15459239, calculationDateTime#15459302, stockQuantities#15459303]
(132) Generate
Arguments: explode(stockQuantities#15459303), false, [stockQuantity#15459304]
(133) Project
Arguments: [systemId#15459236, internalUUID#15459237, product#15459238, plant#15459239, calculationDateTime#15459302, stockQuantities#15459303, stockQuantity#15459304]
(134) Project
Arguments: [plant#15459239.id AS plant#15459305, plant#15459239.internalRefUUID AS plantUuid#15459306, product#15459238.id AS product#15459307, product#15459238.internalRefUUID AS productUuid#15459308, calculationDateTime#15459302, stockQuantity#15459304.storagelocation.id AS storageLocId#15459309, stockQuantity#15459304.storagelocation.internalRefUUID AS storageLocUuid#15459310, stockQuantity#15459304.quantity.measure AS quantity#15459311, stockQuantity#15459304.specialStockIndicator.code AS specialStockIndicator#15459312, stockQuantity#15459304.stockType.code AS stockType#15459313]
(135) Filter
Arguments: ((specialStockIndicator#15459312 = ) AND (stockType#15459313 = 01))
(136) LogicalRelation
Arguments: parquet, [product#15459314, plant#15459315, orderDateTime#15459316, planningStartDateTime#15459317], false
(137) RepartitionByExpression
Arguments: [product#15459314, plant#15459315], 37
(138) Project
Arguments: [product#15459314, plant#15459315, orderDateTime#15459316]
(139) LogicalRelation
Arguments: parquet, [systemId#15459318, internalUUID#15459319, plant#15459320, product#15459321, blockedForReplenishmentStartingFrom#15459322, productionAspect#15459323, salesPlant#15459324, listing#15459325, sourceOfSupplyCategory#15459326], false
(140) Repartition
Arguments: 37, true
(141) Project
Arguments: [systemId#15459318, internalUUID#15459319, plant#15459320, product#15459321, blockedForReplenishmentStartingFrom#15459322, productionAspect#15459323, salesPlant#15459324, listing#15459325, sourceOfSupplyCategory#15459326, struct(systemId, systemId#15459318, internalUUID, internalUUID#15459319, plant, plant#15459320, product, product#15459321, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#15459322, productionAspect, productionAspect#15459323, salesPlant, salesPlant#15459324, listing, listing#15459325, sourceOfSupplyCategory, sourceOfSupplyCategory#15459326) AS productPlant#15459327]
(142) Project
Arguments: [productPlant#15459327]
(143) Join
Arguments: LeftOuter, ((product#15459314 <=> productPlant#15459327.product.internalRefUUID) AND (plant#15459315 <=> productPlant#15459327.plant.internalRefUUID))
(144) Project
Arguments: [product#15459314, plant#15459315, orderDateTime#15459316, productPlant#15459327]
(145) LogicalRelation
Arguments: parquet, [systemId#15459328, internalUUID#15459329, id#15459330, displayId#15459331, name#15459332, baseUnitOfMeasure#15459333, unitOfMeasures#15459334, unitOfMeasureConversions#15459335, productionAspect#15459336, salesAspect#15459337, procurementAspect#15459338, productGroup#15459339], false
(146) Repartition
Arguments: 37, true
(147) Join
Arguments: LeftOuter, (product#15459314 = internalUUID#15459329)
(148) Project
Arguments: [product#15459314, plant#15459315, orderDateTime#15459316, productPlant#15459327, systemId#15459328, internalUUID#15459329, id#15459330, displayId#15459331, name#15459332, baseUnitOfMeasure#15459333, unitOfMeasures#15459334, unitOfMeasureConversions#15459335, productionAspect#15459336, salesAspect#15459337, procurementAspect#15459338, productGroup#15459339, filter(unitOfMeasureConversions#15459335, lambdafunction((((lambda u#15459047.measurementUnit1.code = productPlant#15459327.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#15459047.measurementUnit1.internalRefUUID = productPlant#15459327.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#15459047.measurementUnit2.code = baseUnitOfMeasure#15459333.code) AND (lambda u#15459047.measurementUnit2.internalRefUUID = baseUnitOfMeasure#15459333.internalRefUUID))), lambda u#15459047, false)) AS filteredUnitOfMeasureConversions#15459340]
(149) Generate
Arguments: explode(filteredUnitOfMeasureConversions#15459340.quantityNumerator), true, [quantityNumerator#15459341]
(150) Project
Arguments: [product#15459314, plant#15459315, orderDateTime#15459316, productPlant#15459327, systemId#15459328, internalUUID#15459329, id#15459330, displayId#15459331, name#15459332, baseUnitOfMeasure#15459333, unitOfMeasures#15459334, unitOfMeasureConversions#15459335, productionAspect#15459336, salesAspect#15459337, procurementAspect#15459338, productGroup#15459339, filteredUnitOfMeasureConversions#15459340, quantityNumerator#15459341]
(151) Generate
Arguments: explode(filteredUnitOfMeasureConversions#15459340.quantityDenominator), true, [quantityDenominator#15459342]
(152) Project
Arguments: [product#15459314, plant#15459315, orderDateTime#15459316, productPlant#15459327, systemId#15459328, internalUUID#15459329, id#15459330, displayId#15459331, name#15459332, baseUnitOfMeasure#15459333, unitOfMeasures#15459334, unitOfMeasureConversions#15459335, productionAspect#15459336, salesAspect#15459337, procurementAspect#15459338, productGroup#15459339, filteredUnitOfMeasureConversions#15459340, quantityNumerator#15459341, quantityDenominator#15459342]
(153) Project
Arguments: [product#15459314, plant#15459315, orderDateTime#15459316, productPlant#15459327, systemId#15459328, internalUUID#15459329, id#15459330, displayId#15459331, name#15459332, baseUnitOfMeasure#15459333, unitOfMeasures#15459334, unitOfMeasureConversions#15459335, productionAspect#15459336, salesAspect#15459337, procurementAspect#15459338, productGroup#15459339, filteredUnitOfMeasureConversions#15459340, quantityNumerator#15459341, quantityDenominator#15459342, (cast(quantityNumerator#15459341 as double) / cast(quantityDenominator#15459342 as double)) AS outboundUnit#15459343]
(154) Project
Arguments: [product#15459314, plant#15459315, orderDateTime#15459316, productPlant#15459327, systemId#15459328, internalUUID#15459329, id#15459330, displayId#15459331, name#15459332, baseUnitOfMeasure#15459333, unitOfMeasures#15459334, unitOfMeasureConversions#15459335, productionAspect#15459336, salesAspect#15459337, procurementAspect#15459338, productGroup#15459339, filteredUnitOfMeasureConversions#15459340, quantityNumerator#15459341, quantityDenominator#15459342, CASE WHEN (isnull(outboundUnit#15459343) OR (outboundUnit#15459343 <= cast(0 as double))) THEN 1.0 ELSE outboundUnit#15459343 END AS outboundUnit#15459344]
(155) Project
Arguments: [product#15459314, plant#15459315, orderDateTime#15459316, productPlant#15459327, outboundUnit#15459344]
(156) Join
Arguments: Inner, ((plantUuid#15459306 = plant#15459315) AND (productUuid#15459308 = product#15459314))
(157) Filter
Arguments: (calculationDateTime#15459302 <= orderDateTime#15459316)
(158) Project
Arguments: [plantUuid#15459306 AS plant#15459345, productUuid#15459308 AS product#15459346, storageLocId#15459309, calculationDateTime#15459302, quantity#15459311]
(159) Aggregate
Arguments: [plant#15459345, product#15459346, storageLocId#15459309], [plant#15459345, product#15459346, storageLocId#15459309, max(calculationDateTime#15459302) AS max_calc_datetime#15459229]
(160) Join
Arguments: Inner, ((((plant#15459227 <=> plant#15459345) AND (product#15459228 <=> product#15459346)) AND (storageLocId#15459179 <=> storageLocId#15459309)) AND (calculationDateTime#15459158 <=> max_calc_datetime#15459229))
(161) Project
Arguments: [plant#15459227, product#15459228, storageLocId#15459179, calculationDateTime#15459158, quantity#15459181]
(162) Aggregate
Arguments: [product#15459228, plant#15459227], [product#15459228, plant#15459227, sum(quantity#15459181) AS quantitySum#15459355, min(calculationDateTime#15459158) AS minCalculationDateTime#15459356]
(163) Project
Arguments: [product#15459228, plant#15459227, quantitySum#15459355, minCalculationDateTime#15459356, round(quantitySum#15459355, 0) AS roundedQuantitySum#15459364]
(164) Join
Arguments: LeftOuter, ((plant#15459016 = plant#15459227) AND (product#15459015 = product#15459228))
(165) Project
Arguments: [product#15459015, plant#15459016, orderDateTime#15459017, productPlant#15459030, outboundUnit#15459059, roundedQuantitySum#15459364, minCalculationDateTime#15459356]
(166) Project
Arguments: [product#15459015, plant#15459016, orderDateTime#15459017, productPlant#15459030, outboundUnit#15459059, roundedQuantitySum#15459364, minCalculationDateTime#15459356, CASE WHEN isnotnull(minCalculationDateTime#15459356) THEN minCalculationDateTime#15459356 ELSE orderDateTime#15459017 END AS stockDatetime#15459399]
(167) Project
Arguments: [product#15459015, plant#15459016, orderDateTime#15459017, productPlant#15459030, outboundUnit#15459059, roundedQuantitySum#15459364, minCalculationDateTime#15459356, stockDatetime#15459399, CASE WHEN isnotnull(roundedQuantitySum#15459364) THEN array(roundedQuantitySum#15459364) ELSE array(0.0) END AS stockBatchQuantities#15459400]
(168) Project
Arguments: [product#15459015, plant#15459016, orderDateTime#15459017, productPlant#15459030, outboundUnit#15459059, roundedQuantitySum#15459364, minCalculationDateTime#15459356, stockDatetime#15459399, stockBatchQuantities#15459400, array(2199-01-01 00:00:00) AS stockBatchShelfLifeEndDatetimes#15459401]
(169) Project
Arguments: [product#15459015, plant#15459016, orderDateTime#15459017, productPlant#15459030, outboundUnit#15459059, roundedQuantitySum#15459364, stockDatetime#15459399, stockBatchQuantities#15459400, stockBatchShelfLifeEndDatetimes#15459401]
(170) Project
Arguments: [product#15459015, plant#15459016, orderDateTime#15459017, productPlant#15459030, outboundUnit#15459059, stockDatetime#15459399, stockBatchQuantities#15459400, stockBatchShelfLifeEndDatetimes#15459401]
(171) LogicalRelation
Arguments: parquet, [product#15459402, plant#15459403, demandChannel#15459404, demandStream#15459405, considerVariance#15459406, demandTimeBuckets#15459407, demandPointInTimeStart#15459408, demandPointInTimeEnd#15459409, demandPointInTime#15459410], false
(172) Join
Arguments: LeftOuter, ((plant#15459403 <=> plant#15459016) AND (product#15459402 <=> product#15459015))
(173) Filter
Arguments: (((size(demandTimeBuckets#15459407, true) = 0) OR isnull(demandTimeBuckets#15459407)) AND ((size(demandPointInTime#15459410, true) = 0) OR isnull(demandPointInTime#15459410)))
(174) Project
Arguments: [product#15459015, plant#15459016]
(175) Deduplicate
Arguments: [product#15459015, plant#15459016]
(176) LocalRelation
Arguments: <empty>, [product#15459433, plant#15459434, productId#15459435, plantId#15459436]
(177) Join
Arguments: Inner, ((product#15459015 = product#15459433) AND (plant#15459016 = plant#15459434))
(178) Project
Arguments: [product#15459015, plant#15459016, productId#15459435, plantId#15459436]
(179) Project
Arguments: [productId#15459435 AS product#15460100, plantId#15459436 AS plant#15460101]
(180) Project
Arguments: [product#15460100, plant#15460101, array(map(objectType, Product, objectId, product#15460100), map(objectType, Plant, objectId, plant#15460101)) AS anchorObject#15460184]
(181) Project
Arguments: [product#15460100, plant#15460101, anchorObject#15460184, cast(array() as array<map<string,string>>) AS messageVariables#15460185]
(182) Project
Arguments: [product#15460100, plant#15460101, anchorObject#15460184, messageVariables#15460185, array(map(objectType, ReplenishmentRunId, objectId, 10000000246)) AS triggerObject#15460186]
(183) Project
Arguments: [product#15460100, plant#15460101, anchorObject#15460184, messageVariables#15460185, triggerObject#15460186, NEW AS situationStatus#15460187]
(184) Project
Arguments: [product#15460100, plant#15460101, anchorObject#15460184, messageVariables#15460185, triggerObject#15460186, situationStatus#15460187, UNKNOWN_DEMAND_FOR_PRODUCT_LOCATION AS situationType#15460188]
(185) Project
Arguments: [product#15460100, plant#15460101, anchorObject#15460184, messageVariables#15460185, triggerObject#15460186, situationStatus#15460187, situationType#15460188, IW_MU_CRP-128628_2 AS marketUnit#15460189]
(186) Project
Arguments: [anchorObject#15460184, messageVariables#15460185, triggerObject#15460186, situationStatus#15460187, situationType#15460188, marketUnit#15460189]
(187) Project
Arguments: [to_json(struct(anchorObject, anchorObject#15460184, messageVariables, messageVariables#15460185, triggerObject, triggerObject#15460186, situationStatus, situationStatus#15460187, situationType, situationType#15460188, marketUnit, marketUnit#15460189), Some(UTC)) AS value#15470643]
(188) Project
Arguments: [cast(value#15470643 as string) AS value#15470644]
(189) Project
Arguments: [value#15470644, array(struct(key, X-Tenant-ID, value, cast(7625924700692506924 as binary)), struct(key, X-Message-ID, value, cast(7e572b55-c3ed-4089-af58-ead8f871491e as binary)), struct(key, X-Event-Type, value, cast(SituationCreate as binary)), struct(key, X-BTP-Tenant-ID, value, cast(ed708063-962b-45e3-9d21-74267b5896d4 as binary))) AS headers#15470653]