Compare commits

...

463 Commits

Author SHA1 Message Date
ac18299345 Release 2.0.22+2 2026-04-24 11:13:27 +02:00
148d0daffd Merge branch 'release-2.0-SCPN1-10519' into 'release/2.0'
release-2.0-SCPN1-10519 into release/2.0

See merge request r-d-technique/tiers/reflex-wms-connector!270
2026-04-24 09:05:19 +00:00
4e5070a902 Merge branch 'develop' into release-2.0-SCPN1-10519 2026-04-24 09:50:35 +02:00
2b25c4853d back SCPN1 10519 2026-04-24 09:41:03 +02:00
844ecb1558 back SCPN1-10519 2026-04-23 18:33:12 +02:00
837b8f86ed Release 2.0.22+1 2026-04-22 09:42:32 +02:00
4e7d98144d Merge branch 'release2.0-SCPN1-10621' into 'release/2.0'
SCPN1-10621 into "Release2.0 "

See merge request r-d-technique/tiers/reflex-wms-connector!265
2026-04-22 07:20:56 +00:00
3a061c2374 SCPN1-10586 2026-04-22 08:28:24 +02:00
ce7104ee9f Merge branch 'develop' into release2.0-SCPN1-10621 2026-04-21 10:30:44 +02:00
846641ac35 SCPN1-10586 2026-04-21 08:34:49 +02:00
50771c3268 SCPN1-10586 2026-04-20 16:41:00 +02:00
7deb33a7e0 SCPN1-10586 2026-04-20 13:45:27 +02:00
d8c87881f5 Release 2.0.21+1 2026-04-20 13:44:13 +02:00
c9070dd01e Merge branch 'release-2.0-v13' into 'release/2.0'
release-2.0-v13 into release/2.0

See merge request r-d-technique/tiers/reflex-wms-connector!261
2026-04-20 09:43:52 +00:00
3915c83146 Merge branch 'develop' into release-2.0-v13
# Conflicts:
#	RFXtoRP_HsaItm_ItemCreated.ftl
#	RFXtoRP_HsrAntRec.ftl
#	RFXtoRP_HsrCarrierApt.ftl
#	RFXtoRP_HsrCarrierApt_AppointmentCarrierInformationUpdatedToConfigure.ftl
#	RFXtoRP_HsrCarrierApt_AppointmentCustomFieldsUpdated.ftl
#	RFXtoRP_HsrCarrierApt_AppointmentMetadataUpdatedToConfigure.ftl
#	RFXtoRP_HsrCarrierApt_BookingWMSUpdateAppointment.ftl
#	RFXtoRP_HsrCarrierApt_SiteCancelAppointment.ftl
#	RFXtoRP_HsrCarrierApt_UpdateAppointment.ftl
#	RFXtoRP_HsrPro_ExecutionflowDetected_ShipToMetadata.ftl
#	RFXtoRP_PlatformLogCreate.ftl
#	RFXtoRP_RestResponse.ftl
#	RPtoRFX_AppointmentEvent.ftl
#	RPtoRFX_CarrierAppointmentReasonUpdatedByNumber.ftl
#	RPtoRFX_CarrierAppointmentReasonUpdatedByRef.ftl
#	RPtoRFX_CarrierAppointmentSlotOrCarrierInformationUpdatedByNumber.ftl
2026-04-20 11:05:59 +02:00
bf3f30190d SCPN1-10586 2026-04-17 17:12:39 +02:00
c67ca71693 SCPN1-10586 2026-04-17 15:53:33 +02:00
17263f024f SCPN1-10586 2026-04-17 14:16:56 +02:00
e8afce8ef0 Merge branch 'develop' of https://gitlab.hardis-group.com/r-d-technique/tiers/reflex-wms-connector into develop 2026-04-17 10:59:38 +02:00
e03a017118 SCPN1-10586 2026-04-17 10:59:30 +02:00
2bfb866dcc SCPN1-10586 2026-04-16 17:35:48 +02:00
68f99e1435 SCPN1-10586 2026-04-16 17:23:35 +02:00
13fe55ae1a SCPN1-10586 2026-04-16 17:17:35 +02:00
4f0874a7dc SCNP1-10579 2026-04-14 15:06:25 +02:00
62984a07f4 SCPN1-10579 2026-04-14 14:54:55 +02:00
2008f01f6f Merge branch 'develop' of https://gitlab.hardis-group.com/r-d-technique/tiers/reflex-wms-connector into develop 2026-04-14 14:42:03 +02:00
a37d43f50f SCPN1-10579 2026-04-14 14:41:55 +02:00
10fa7309fa SCPN1-10579
(cherry picked from commit 6fac2a7a2c)
2026-04-14 14:38:24 +02:00
8a810c8a14 SCPN1-10586 2026-04-14 14:33:44 +02:00
8e1d0e3a17 SCPN1-10560 2026-04-13 15:10:17 +02:00
e12c6e64e4 Delete Rec_Prev 2026-04-13 10:08:38 +02:00
eaaa9bbea5 SCPN1-10534 2026-04-03 17:01:28 +02:00
6c0deafd93 SCPN1-10534 2026-04-03 16:54:48 +02:00
62cdd584d3 SCPN1-10534 2026-04-03 16:36:54 +02:00
97f93a1f26 SCPN1-10534 2026-04-03 16:32:02 +02:00
ee7e5bb8c9 SCPN1-10534 2026-04-03 16:22:31 +02:00
4e3162556c SCPN1-10402 2026-04-03 14:30:18 +02:00
20437cace5 SCPN1-10534 2026-04-02 11:48:30 +02:00
93effa78ff SCPN1-10402 2026-03-31 17:57:33 +02:00
085f0ae4f8 Merge branch 'SCPN1-10402-SCPN1-10471-develop' into 'develop'
SCPN1-10471

Closes SCPN1-10402

See merge request r-d-technique/tiers/reflex-wms-connector!259
2026-03-31 06:54:39 +00:00
3d585203ef SCPN1-10402 2026-03-31 08:53:18 +02:00
57576b1ac0 SCPN1-10443 2026-03-26 14:14:31 +01:00
83260c7ac5 SCPN1-10443 2026-03-26 11:37:46 +01:00
8ebaa8e15a https://pid.hardis.fr/jira/browse/SCPN1-10443 2026-03-26 11:28:56 +01:00
f602f74da1 SCPN1-10471
SCPN1-10402
2026-03-24 17:10:45 +01:00
37495ca141 SCPN1-9218 2026-03-24 17:07:31 +01:00
217a2680de SCPN1-10443 2026-03-20 13:27:45 +01:00
6fd708cf58 SCPN1-10443 2026-03-19 17:28:52 +01:00
e5482ad09c SCPN1-10443 2026-03-19 17:18:31 +01:00
33ea0af1b9 SCPN1-10443 2026-03-19 17:10:10 +01:00
f7394986c2 SCPN1-10443 2026-03-19 16:57:33 +01:00
6ae3af7139 SCPN1-10443 2026-03-19 16:37:35 +01:00
c89c74d2e2 SCPN1-10443 2026-03-19 16:26:24 +01:00
d02e6feead SCPN1-10443 2026-03-19 14:35:06 +01:00
6ce6ac0b8d SCPN1-10443 2026-03-19 14:30:00 +01:00
647e2d45af SCPN1-10443 2026-03-19 14:15:15 +01:00
f26dda887a SCPN1-10459 2026-03-19 11:51:15 +01:00
9dd59d75f3 SCPN1-10443 2026-03-19 11:34:25 +01:00
48be4322cb SCPN1-10443 2026-03-19 11:14:45 +01:00
07a50a71d9 SCPN1-10443 2026-03-18 11:13:55 +01:00
af0dd3fc66 Release 2.0.20+4 2026-03-11 12:06:57 +01:00
a8c85b40b4 Merge branch 'SCPN1-10414-2.0' into 'release/2.0'
SCPN1-10414-2.0 into release/2.0

See merge request r-d-technique/tiers/reflex-wms-connector!257
2026-03-11 11:04:05 +00:00
88550b45ac SCPN1-10414 2026-03-11 11:53:06 +01:00
e0f46af99e SCPN1-10414 2026-03-11 11:49:47 +01:00
81c6dec4f2 SCPN1-10414 2026-03-11 11:29:53 +01:00
64fc9f3e15 SCPN1-10408 2026-03-10 10:42:51 +01:00
5dd16bf4b5 Release 2.0.20+3 2026-03-04 14:59:50 +01:00
a43e59f7cb Merge branch 'SCPN1-10253-develop' into 'develop'
SCPN1-10253

Closes SCPN1-10253

See merge request r-d-technique/tiers/reflex-wms-connector!253
2026-03-02 15:18:38 +00:00
eea2a41313 SCPN1-10253 2026-03-02 16:18:04 +01:00
89b7ce149b Release 2.0.20+2 2026-03-02 15:18:18 +01:00
e673f7c134 Merge branch 'SCPN1-10253-2.0' into 'release/2.0'
SCPN1-10253-2.0 into release/2.0

See merge request r-d-technique/tiers/reflex-wms-connector!252
2026-03-02 14:09:14 +00:00
8898467d7c SCPN1-10253 2026-03-02 15:08:12 +01:00
cd9db2ddb0 Merge branch 'SCPN1-10253-2.0' into 'release/2.0'
SCPN1-10253 "2.0" to release 2.0

See merge request r-d-technique/tiers/reflex-wms-connector!248
2026-03-02 13:54:50 +00:00
7844fdd015 SCPN1-10294 2026-03-02 14:47:24 +01:00
2a908a85d7 SCPN1-10253 2026-03-02 12:10:01 +01:00
8d806117fa SCPN1-10253 2026-03-02 12:07:22 +01:00
84d0f73281 SCPN1-10253 2026-03-02 11:59:16 +01:00
70ec04c65a Merge branch 'SCPN1-10253-develop' into 'develop'
SCPN1-10253

Closes SCPN1-10253

See merge request r-d-technique/tiers/reflex-wms-connector!247
2026-02-27 15:40:15 +00:00
4784cc2bc1 SCPN1-10253 2026-02-27 16:37:25 +01:00
ac5219b94a SCPN1-10253 2026-02-27 16:31:14 +01:00
127a662057 SCPN1-10253 2026-02-27 09:45:31 +01:00
da53dc05fc Merge branch 'SCPN1-10253-develop' into 'develop'
Resolve SCPN1-10253 "Develop"

Closes SCPN1-10253

See merge request r-d-technique/tiers/reflex-wms-connector!246
2026-02-26 14:50:20 +00:00
4823bc6fed Merge branch 'develop' into SCPN1-10253-develop 2026-02-26 15:49:25 +01:00
b1577d1791 SCPN1-10253 2026-02-26 15:48:51 +01:00
1352a36a21 Merge branch 'SCPN1-10253-develop' into 'develop'
SCPN1-10253

Closes SCPN1-10253

See merge request r-d-technique/tiers/reflex-wms-connector!245
2026-02-26 14:15:28 +00:00
57113f4c51 SCPN1-10253 2026-02-26 15:15:11 +01:00
1de2a47dae Merge branch 'SCPN1-10253-develop' into 'develop'
SCPN1-10253

Closes SCPN1-10253

See merge request r-d-technique/tiers/reflex-wms-connector!244
2026-02-26 08:00:33 +00:00
02de559235 SCPN1-10253 2026-02-25 18:47:58 +01:00
b1527f9e7e SCPN1-10294 2026-02-25 11:04:29 +01:00
7bb190e4f5 SCPN1-10294 2026-02-24 15:04:36 +01:00
c561f9674b SCPN1-10294 2026-02-24 11:37:02 +01:00
d2b5eeafdf SCPN1-10276 2026-02-24 09:37:32 +01:00
d1c3bb9d16 Merge branch 'SCPN1-10276-develop' into 'develop'
SCPN1-10276

Closes SCPN1-10276

See merge request r-d-technique/tiers/reflex-wms-connector!243
2026-02-20 15:11:30 +00:00
dca0fa7fe4 SCPN1-10276 2026-02-20 13:52:18 +01:00
c3364d77a2 SCPN1-10244 2026-02-16 17:11:48 +01:00
e24e537650 SCPN1-9965 2026-02-16 11:48:56 +01:00
71bd4918a9 SCPN1-9965
(cherry picked from commit 7c4c7ea395)
2026-02-13 10:58:36 +01:00
8974632c22 Merge branch 'SCPN1-9965-tiny-url-appointment' into 'develop'
SCPN1-9965

Closes SCPN1-9965

See merge request r-d-technique/tiers/reflex-wms-connector!242
2026-02-13 09:49:18 +00:00
cb59aa28b5 SCPN1-9965 2026-02-13 10:48:40 +01:00
868cc19e12 Release 2.0.20+1 2026-02-05 17:16:59 +01:00
c334ee1fdc Release 2.0.19+1 2026-02-05 10:15:17 +01:00
50ca244177 Merge branch 'release-2.0-SCPN1-10100' into 'release/2.0'
release-2.0-SCPN1-10100 into release/2.0

See merge request r-d-technique/tiers/reflex-wms-connector!239
2026-02-05 08:32:12 +00:00
45aac87589 SCPN1-10100 2026-02-02 12:25:10 +01:00
95f07b1ae0 SCPN1-10100 2026-02-02 11:25:32 +01:00
650990b045 SCPN1-10100 2026-01-30 16:02:20 +01:00
5b316bb395 SCPN1-10100 2026-01-28 16:55:00 +01:00
24d7ad81bd SCPN1-10100 2026-01-28 16:43:49 +01:00
456b304879 SCPN1-10100 2026-01-28 16:34:14 +01:00
1772ed970b SCPN1-10100 2026-01-28 14:48:31 +01:00
8d4eb4ec4c SCPN1-10100 2026-01-28 14:39:01 +01:00
04a72fcda4 SCPN1-10100 2026-01-28 11:51:58 +01:00
264257fcd0 SCPN1-10100 2026-01-27 18:39:34 +01:00
944f3a2da5 SCPN1-10100 2026-01-27 18:32:34 +01:00
1c07a8dd77 SCPN1-10100 2026-01-27 18:23:15 +01:00
0f4191012d SCPN1-10100 2026-01-27 17:12:04 +01:00
27ea4f3795 SCPN1-10100 2026-01-27 16:06:40 +01:00
5492139935 SCPN1-10100 2026-01-27 15:01:08 +01:00
c1ea6e46af SCPN1-10100 2026-01-27 14:40:05 +01:00
efeb0c0185 SCPN1-10100 2026-01-27 14:34:06 +01:00
91467086c4 SCPN1-10100 2026-01-27 14:31:24 +01:00
b68855504a SCPN1-10100 2026-01-27 14:03:17 +01:00
2d022ccf47 SCPN1-10100 2026-01-27 13:31:55 +01:00
9b5eec0f7f SCPN1-10100 2026-01-27 12:05:58 +01:00
e12235319e SCPN1-10100 2026-01-27 12:02:28 +01:00
289b8c3fc1 SCPN1-10100 2026-01-27 10:14:11 +01:00
4e436a918d Release 2.0.18+2 2026-01-27 08:56:06 +01:00
b21e75c8e2 Merge branch 'release2.0-SCPN1-10095' into 'release/2.0'
release2.0-SCPN1-10095 into release/2.0

See merge request r-d-technique/tiers/reflex-wms-connector!230
2026-01-27 07:53:20 +00:00
caefae873c SCPN1-10095
(cherry picked from commit c324773fad)
2026-01-27 08:37:08 +01:00
f5c5afac1b SCPN1-10095
(cherry picked from commit 5552265833)
2026-01-27 08:36:54 +01:00
c324773fad SCPN1-10095 2026-01-26 16:57:23 +01:00
5552265833 SCPN1-10095 2026-01-26 16:52:31 +01:00
1864bef8bb SCPN1-10095
(cherry picked from commit 8fe3dd364c)
2026-01-26 16:01:53 +01:00
8fe3dd364c SCPN1-10095 2026-01-26 15:33:35 +01:00
4b5e20e6a9 Release 2.0.18+1 2026-01-22 15:35:54 +01:00
5fa439f297 Merge branch 'release2.0-fixv12' into 'release/2.0'
release2.0-fixv12 into release/2.0

See merge request r-d-technique/tiers/reflex-wms-connector!226
2026-01-22 13:20:22 +00:00
39914dbdde fixv12 2026-01-21 17:17:41 +01:00
fde8ffe813 Merge branch 'develop' into release2.0-fixv12 2026-01-21 17:16:09 +01:00
833821a8a3 SCPN1-10068 2026-01-21 14:50:17 +01:00
c556124565 SCPN1-10068 2026-01-21 10:55:03 +01:00
83d1fbfcaa RDV 2026-01-19 16:11:06 +01:00
509d47a979 SCPN1-10047 2026-01-19 13:53:33 +01:00
8128e55ede SCPN1-10047 2026-01-19 11:40:13 +01:00
0ef7219e29 SCPN1-10047 2026-01-19 11:36:09 +01:00
9a130211ba SCPN1-10047 2026-01-16 17:16:19 +01:00
6def04b358 SCPN1-10047 2026-01-16 17:14:20 +01:00
cd63035277 SCPN1-10047 2026-01-16 17:04:51 +01:00
2f04415f2e SCPN1-10047 2026-01-16 17:00:58 +01:00
8821916dc6 Merge branch 'develop' of https://gitlab.hardis-group.com/r-d-technique/tiers/reflex-wms-connector into develop 2026-01-16 16:58:41 +01:00
474061200b SCPN1-10047 2026-01-16 16:58:36 +01:00
2098be0ce7 fix error syntax 2026-01-16 16:58:08 +01:00
e8bcece299 SCPN1-10047 2026-01-16 16:20:16 +01:00
cff6c1fd3f SCPN1-10040 2026-01-15 15:27:29 +01:00
46260b8241 rollback
(cherry picked from commit 0a34359e12)
2026-01-15 09:32:15 +01:00
3e3091f194 SCPN1-9991 2026-01-14 11:56:56 +01:00
efddfdc821 hsrAntRec 2026-01-13 18:09:02 +01:00
e03da2db8d hsrAntRec
(cherry picked from commit 4496a4a2ce)
2026-01-13 18:01:42 +01:00
f5c8640d11 The loading and unloading appointment is not yet managed.
(cherry picked from commit 7e57d91cb6)
2026-01-09 15:37:48 +01:00
adf81809db Release 2.0.17+2 2026-01-08 17:49:13 +01:00
cdcae921fd Merge branch 'release-2.0-fix-1.12-FTL' into 'release/2.0'
release-2.0-fix-1.12-FTL into release/2.0

See merge request r-d-technique/tiers/reflex-wms-connector!221
2026-01-08 16:45:18 +00:00
109b8eb119 SCPN1-9943
(cherry picked from commit a6fec0c333)
2026-01-08 15:39:06 +01:00
a6fec0c333 SCPN1-9943 2026-01-08 15:29:01 +01:00
45258af56e Release 2.0.17+1 2026-01-08 10:27:50 +01:00
11c4386aaa Release 2.0.16+1 2026-01-08 08:51:23 +01:00
4d4578a88c Release 2.0.15+1 2026-01-08 08:49:45 +01:00
c0ebc698c8 Edit VERSION 2026-01-08 07:39:38 +00:00
81c67a8426 Release 2.0.16 2026-01-08 08:25:22 +01:00
8a6260f54d Merge branch 'release-2.0-fix-1.12-FTL' into 'release/2.0'
release-2.0-fix-1.12-FTL

See merge request r-d-technique/tiers/reflex-wms-connector!215
2026-01-07 16:54:57 +00:00
aba0cf5629 Merge branch 'develop' into release-2.0-fix-1.12-FTL 2026-01-07 16:25:50 +01:00
6bdd925601 rdz 2026-01-07 16:02:19 +01:00
9e8e20f6ce RDV 2026-01-07 14:08:07 +01:00
5006beed8c RDV 2026-01-07 11:50:10 +01:00
e2eb764e2e RDV 2026-01-07 09:08:13 +01:00
6b86a61015 RDV 2026-01-06 16:42:13 +01:00
b1c46cd0f1 RDV 2026-01-06 16:29:08 +01:00
e7c3154c56 SCPN1-9905 2026-01-06 14:53:53 +01:00
706c73a530 RDV 2026-01-06 14:37:00 +01:00
955928a754 RDV 2026-01-05 17:23:25 +01:00
ec76673e95 RDV 2026-01-05 16:40:32 +01:00
e6cd04b6bf RDV 2026-01-05 16:37:45 +01:00
2e3cd66843 RDV 2026-01-05 16:05:59 +01:00
2987a4fb38 RDV 2026-01-05 15:58:24 +01:00
d4a389737e RDV 2026-01-05 15:44:34 +01:00
3a14a46b18 RDV 2026-01-05 15:41:23 +01:00
808b2072ce RDV 2026-01-05 14:55:37 +01:00
9c22f7786f RDV 2026-01-02 09:30:45 +01:00
dcbd037b22 RDV 2025-12-23 16:07:44 +01:00
44a4f5f0cc Release 2.0.15+2 2025-12-23 15:37:44 +01:00
03b2104500 Merge branch 'develop' into 'release/2.0'
Develop

See merge request r-d-technique/tiers/reflex-wms-connector!211
2025-12-23 14:35:48 +00:00
e1b1b8ad2d RDV 2025-12-23 15:23:43 +01:00
f66912121e RDV 2025-12-23 15:17:25 +01:00
b361f1fcf7 RDV 2025-12-23 14:54:53 +01:00
51b5fd7d17 RDV 2025-12-23 13:59:33 +01:00
e1d6e3ca3f RDV 2025-12-23 13:56:04 +01:00
861cd70eb9 RDV 2025-12-23 12:11:23 +01:00
b14e6c21ff RDV 2025-12-23 12:03:15 +01:00
c352775cd4 RDV 2025-12-23 11:54:02 +01:00
f1b0d1a5d4 RDV 2025-12-23 11:53:50 +01:00
fad0c31ae8 RDV 2025-12-23 11:52:49 +01:00
f81591371f RDV 2025-12-23 11:43:58 +01:00
7d0d4d5538 RDV 2025-12-23 11:38:32 +01:00
481bbcb1af RDV 2025-12-23 11:31:35 +01:00
6e4cc5549a RDV 2025-12-23 11:12:41 +01:00
ce415efc4e RDV 2025-12-23 10:30:55 +01:00
a6262045f4 RDV 2025-12-23 10:15:16 +01:00
3a7cfb555f RDV 2025-12-23 09:33:10 +01:00
249f9e3fbe RDV 2025-12-22 16:33:31 +01:00
3bd0cd26fd RDV 2025-12-22 16:27:11 +01:00
369a8b7e10 RDV 2025-12-22 16:23:47 +01:00
a3fc98c8d9 RDV 2025-12-22 16:07:50 +01:00
613cfcd377 RDV 2025-12-22 15:54:53 +01:00
c0bec9085b RDV 2025-12-22 15:50:33 +01:00
72143d38bd RDV 2025-12-22 15:48:26 +01:00
4faf7a3753 RDV 2025-12-22 15:35:21 +01:00
6ae403817f RDV 2025-12-22 15:28:42 +01:00
a661bcc5e6 RDV 2025-12-22 15:09:49 +01:00
82c4aea28e RDV 2025-12-22 11:30:31 +01:00
420d1cd0ef RDV 2025-12-22 10:28:09 +01:00
b173ee9ef0 Release 2.0.15+1 2025-12-19 13:53:12 +01:00
9b7ba855d5 Merge branch 'ftl-2.0-for-release1.12.1' into 'release/2.0'
ftl-2.0-for-release1.12.1

See merge request r-d-technique/tiers/reflex-wms-connector!207
2025-12-19 12:44:29 +00:00
dbe31fbb78 Merge branch 'develop' into ftl-2.0-for-release1.12.1 2025-12-19 11:13:25 +01:00
3d957d8572 RDV 2025-12-19 10:22:51 +01:00
edd5562ed5 RDV 2025-12-19 09:44:37 +01:00
0917a0b435 RDV 2025-12-18 10:23:24 +01:00
d94ba65307 Release 2.0.14+1 2025-12-18 09:05:13 +01:00
0c3d1e2136 Merge branch 'ftl-2.0-for-release1.12' into 'release/2.0'
Ftl 2.0 for release1.12

See merge request r-d-technique/tiers/reflex-wms-connector!202
2025-12-18 07:50:51 +00:00
f0145706a6 RDV 2025-12-17 21:52:57 +01:00
190d484c9b RDV 2025-12-17 21:02:25 +01:00
e69022df0a Merge branch 'develop' into ftl-2.0-for-release1.12
# Conflicts:
#	RFXtoRP_HliPrepaL.ftl
#	RFXtoRP_HsaLstCarSta.ftl
#	RFXtoRP_HsrCarrierApt.ftl
#	RFXtoRP_HsrPrepa_GoodsPrepared_HandlingUnitMetadata.ftl
#	RFXtoRP_HsrPro_ExecutionflowDetected_HeaderMetadata.ftl
#	RFXtoRP_HsrReceiptList_ExecutionflowDetected_HeaderMetadata.ftl
#	RFXtoRP_RestResponse.ftl
#	ReflexUtils.ftl
2025-12-17 18:00:16 +01:00
2603c4ee27 Merge branch 'develop-rdz' into 'develop'
modif sur les rdz

See merge request r-d-technique/tiers/reflex-wms-connector!200
2025-12-17 16:46:39 +00:00
eea8276d78 Merge branch 'develop-rdz' into 'develop'
modif sur les rdz

See merge request r-d-technique/tiers/reflex-wms-connector!199
2025-12-17 16:45:44 +00:00
437a39f115 modif sur les rdz 2025-12-17 17:44:23 +01:00
b2afedf9f8 modif sur les rdz 2025-12-17 17:24:26 +01:00
a3283f5531 RDV 2025-12-17 17:23:59 +01:00
608bbb4aee RDV 2025-12-17 17:16:45 +01:00
793abba25f RDV 2025-12-17 17:00:04 +01:00
0ac201dbc5 RDV 2025-12-17 13:29:07 +01:00
1006b619d8 RDV 2025-12-17 09:59:24 +01:00
9d3c536993 RDV 2025-12-17 09:48:14 +01:00
95ba5b5990 RDV 2025-12-17 09:31:47 +01:00
29aa9fa187 RDV 2025-12-17 09:31:24 +01:00
68e695c084 RDV 2025-12-17 08:57:15 +01:00
91d134d02d RDV 2025-12-16 17:49:00 +01:00
f46aa46ae4 RDV 2025-12-16 17:24:58 +01:00
e73fb15ffe RDV 2025-12-16 17:13:31 +01:00
3504515b03 RDV 2025-12-16 16:56:47 +01:00
55c3d24f79 RDV 2025-12-16 16:41:29 +01:00
d6331bd8ca RDV 2025-12-16 11:49:36 +01:00
32c47dcf22 RDV 2025-12-16 11:46:18 +01:00
574cc16f10 RDV 2025-12-16 11:36:07 +01:00
0db8396224 Merge branch 'develop' of https://gitlab.hardis-group.com/r-d-technique/tiers/reflex-wms-connector into develop 2025-12-16 11:30:21 +01:00
f242bf0d95 RDV 2025-12-16 11:30:16 +01:00
80e25c18d1 Merge branch 'develop-rdz' into 'develop'
modif sur les rdz

See merge request r-d-technique/tiers/reflex-wms-connector!197
2025-12-16 10:18:03 +00:00
f7d10368f2 modif sur les rdz 2025-12-16 11:17:22 +01:00
59d170c599 RDV 2025-12-16 11:17:02 +01:00
17ae3b23bf rdv 2025-12-16 10:37:07 +01:00
7f3d3abb08 RDV 2025-12-16 10:33:00 +01:00
29e35d8ed1 RDV 2025-12-16 10:24:29 +01:00
dbb4a21e66 RDV 2025-12-15 17:14:37 +01:00
34133aabec RDV 2025-12-15 16:16:19 +01:00
cd7f2ecb22 RDV 2025-12-15 15:53:57 +01:00
67fb97753d RDV 2025-12-15 15:40:35 +01:00
c654ef5cf9 RDV 2025-12-15 15:38:17 +01:00
8caed06a9e RDV 2025-12-15 15:31:42 +01:00
c15b087c68 RDV 2025-12-15 15:15:04 +01:00
84bb2ca294 Merge branch 'develop-rdz' into 'develop'
modif sur les rdz

See merge request r-d-technique/tiers/reflex-wms-connector!196
2025-12-12 17:15:37 +00:00
ecb0ede86e modif sur les rdz 2025-12-12 18:15:09 +01:00
540a6c9da6 RDV 2025-12-12 17:05:09 +01:00
21516ad815 RDV 2025-12-12 16:57:47 +01:00
a4b2fb2eef RDV 2025-12-12 16:48:11 +01:00
8f66226519 RDV 2025-12-12 15:30:21 +01:00
f0f0078e08 RDV 2025-12-12 15:18:00 +01:00
85e1dfd7d3 RDV 2025-12-12 15:15:21 +01:00
51198beafd RDV 2025-12-12 15:02:57 +01:00
503481e410 RDV 2025-12-12 14:57:08 +01:00
57db370c4c RDV 2025-12-12 14:54:21 +01:00
c47da0ae86 RDV 2025-12-12 14:49:32 +01:00
fbd3e74906 RDV 2025-12-12 14:39:20 +01:00
de2a95e83c RDV 2025-12-12 14:32:13 +01:00
ca1989b91a RDV 2025-12-12 14:08:55 +01:00
863253b7e0 RDV 2025-12-12 11:20:31 +01:00
a75167d7f0 RDV 2025-12-11 16:16:13 +01:00
108d29b5b3 Merge branch 'develop' of https://gitlab.hardis-group.com/r-d-technique/tiers/reflex-wms-connector into develop 2025-12-11 15:49:27 +01:00
be4dcf11f6 RDV 2025-12-11 15:49:22 +01:00
ce9e528b70 Merge branch 'develop-rdz' into 'develop'
modif sur les rdz

See merge request r-d-technique/tiers/reflex-wms-connector!195
2025-12-11 13:31:32 +00:00
261549ed60 modif sur les rdz 2025-12-11 14:28:51 +01:00
825ca2bc54 Merge branch 'develop-rdz' into 'develop'
modif sur les rdz

See merge request r-d-technique/tiers/reflex-wms-connector!194
2025-12-11 13:05:15 +00:00
9c5741cc7f modif sur les rdz 2025-12-11 14:03:56 +01:00
0113829f9b RDV 2025-12-10 18:57:29 +01:00
08e1ac8c11 RDV 2025-12-10 18:46:27 +01:00
18c8a344bf RDV 2025-12-10 18:40:28 +01:00
87a120bb55 RDV 2025-12-10 18:36:58 +01:00
b1d66f66aa RDV 2025-12-10 18:35:04 +01:00
b0e231a38d RDV 2025-12-10 18:23:52 +01:00
e8551aa698 RDV 2025-12-10 18:00:14 +01:00
b24fe76a81 RDV 2025-12-10 14:16:46 +01:00
26e143efb0 RDV 2025-12-10 11:10:47 +01:00
65b34e6fe4 RDV 2025-12-10 11:08:40 +01:00
cb5f3aaa4e RDV 2025-12-10 11:02:43 +01:00
719f0ed475 RDV 2025-12-10 11:00:25 +01:00
c78be4ac9b RDV 2025-12-10 10:55:35 +01:00
268642a1fa RDV 2025-12-10 10:51:42 +01:00
bb20aae908 RDV 2025-12-10 10:48:08 +01:00
23de1ee9b1 RDV 2025-12-10 10:43:31 +01:00
396ad187da RDV 2025-12-09 17:01:00 +01:00
832efcc8f6 RDV 2025-12-09 10:43:48 +01:00
92eecba160 RDV 2025-12-09 10:33:39 +01:00
c635353b69 RDV 2025-12-09 08:47:01 +01:00
63a668340d RDV 2025-12-08 15:01:33 +01:00
7feb4a8242 Merge branch 'develop' of https://gitlab.hardis-group.com/r-d-technique/tiers/reflex-wms-connector into develop 2025-12-08 15:00:04 +01:00
f5b20c2ac3 RDV 2025-12-08 14:59:56 +01:00
3e9cc53ced Merge branch 'develop-rdz' into 'develop'
modif sur les rdz

See merge request r-d-technique/tiers/reflex-wms-connector!193
2025-12-05 09:00:46 +00:00
30cd227b41 modif sur les rdz 2025-12-05 09:50:29 +01:00
efc642999d RDV 2025-12-04 15:17:54 +01:00
0180dfb342 RDV 2025-12-04 15:09:30 +01:00
562d8fbba8 RDV 2025-12-04 14:36:34 +01:00
c382107adc RDV 2025-12-04 14:13:24 +01:00
f3c607ce94 Custom 2025-12-04 11:45:54 +01:00
de580e5b2c HsrPro 2025-12-04 10:22:19 +01:00
7be9de856a RestResponse 2025-12-04 10:21:13 +01:00
a933def832 Merge branch 'develop-rdz' into 'develop'
update custom-field

See merge request r-d-technique/tiers/reflex-wms-connector!192
2025-12-03 17:13:27 +00:00
133050bf8c update custom-field 2025-12-03 18:12:27 +01:00
14ce3c586f Customfields receipt 2025-12-03 16:20:02 +01:00
5c52f62b1e EF customfields 2025-12-03 15:35:54 +01:00
ad040f82d0 Release 2.0.13+1 2025-12-03 10:17:44 +01:00
fe0f78a42e RDV 2025-12-01 13:43:15 +01:00
44187e0c24 Merge branch 'develop' of https://gitlab.hardis-group.com/r-d-technique/tiers/reflex-wms-connector into develop 2025-12-01 13:34:22 +01:00
b259f1762f RDV 2025-12-01 13:34:15 +01:00
5c23ec6dec Merge branch 'develop-rdz' into 'develop'
modif sur les rdz

See merge request r-d-technique/tiers/reflex-wms-connector!189
2025-12-01 09:19:13 +00:00
ad15120def modif sur les rdz 2025-12-01 10:09:35 +01:00
ff28804bd5 DEV 2025-11-28 17:49:45 +01:00
8a43500c2b Merge branch 'develop-rdz' into 'develop'
modif sur les rdz

See merge request r-d-technique/tiers/reflex-wms-connector!188
2025-11-28 15:05:36 +00:00
52b8e3d68d modif sur les rdz 2025-11-28 16:05:14 +01:00
a4c892b9e7 Merge branch 'develop-rdz' into 'develop'
Develop rdz

See merge request r-d-technique/tiers/reflex-wms-connector!187
2025-11-27 13:51:06 +00:00
16f533bed4 Merge branch 'develop' into develop-rdz
# Conflicts:
#	RFXtoRP_HsrCarrierApt_SiteForceUpdateAppointment.ftl
2025-11-27 14:50:26 +01:00
07482da77d modif sur les rdz 2025-11-27 14:47:27 +01:00
df3df0e933 RDV 2025-11-26 17:35:20 +01:00
135862972d RDV 2025-11-26 15:39:33 +01:00
b2ca7897eb RDV 2025-11-26 15:33:10 +01:00
d7c78145ea RDV 2025-11-26 14:43:05 +01:00
d355aa5676 RDV 2025-11-26 11:58:44 +01:00
64e46cace2 Merge branch 'develop-rdz' into 'develop'
Develop rdz

See merge request r-d-technique/tiers/reflex-wms-connector!184
2025-11-25 13:38:02 +00:00
c004d7f36c Merge branch 'develop' into develop-rdz 2025-11-25 14:37:37 +01:00
65b4ed7482 modif sur les rdz 2025-11-25 14:36:44 +01:00
2f09297593 Merge branch 'develop-rdz' into 'develop'
modif sur les rdz

See merge request r-d-technique/tiers/reflex-wms-connector!183
2025-11-25 13:19:49 +00:00
22d11ff07e modif sur les rdz 2025-11-25 14:18:29 +01:00
d3ffb379b6 Merge branch 'develop-rdz' into 'develop'
modif sur les rdz

See merge request r-d-technique/tiers/reflex-wms-connector!182
2025-11-25 12:47:28 +00:00
39f654c95a modif sur les rdz 2025-11-25 13:30:00 +01:00
97ed60c7fa RDV 2025-11-25 11:30:50 +01:00
d6724025ee RDV 2025-11-25 10:46:12 +01:00
178e73d81b RDV 2025-11-24 15:46:31 +01:00
7bf4f67caf Merge branch 'develop-rdz' into 'develop'
modif sur les rdz

See merge request r-d-technique/tiers/reflex-wms-connector!181
2025-11-24 14:05:13 +00:00
9150d2fe1b modif sur les rdz 2025-11-24 15:03:30 +01:00
e81c062092 RDV 2025-11-24 14:24:07 +01:00
efd6a52332 RDV 2025-11-24 13:40:17 +01:00
613bd9739b Merge branch 'develop-rdz' into 'develop'
modif sur les rdz

See merge request r-d-technique/tiers/reflex-wms-connector!180
2025-11-21 15:05:29 +00:00
e0c159215b modif sur les rdz 2025-11-21 16:05:12 +01:00
899b0fd4c2 Merge branch 'develop-rdz' into 'develop'
modif sur les rdz

See merge request r-d-technique/tiers/reflex-wms-connector!179
2025-11-21 14:53:29 +00:00
df49304c05 modif sur les rdz 2025-11-21 14:45:29 +01:00
2f4280a4da RDV 2025-11-21 11:47:10 +01:00
806af7a011 RDV 2025-11-21 11:46:23 +01:00
1caf5b830f Merge branch 'develop-rdz' into 'develop'
Develop rdz

See merge request r-d-technique/tiers/reflex-wms-connector!178
2025-11-20 16:34:47 +00:00
6eea1ad67f Merge branch 'develop' into develop-rdz 2025-11-20 17:34:28 +01:00
243482af3b modif sur les rdz 2025-11-20 17:34:07 +01:00
a678df969c RDV 2025-11-20 17:02:30 +01:00
d4b7b7de82 RDV 2025-11-20 16:09:29 +01:00
0b03e04865 Merge branch 'develop-rdz' into 'develop'
no message

See merge request r-d-technique/tiers/reflex-wms-connector!177
2025-11-20 12:29:55 +00:00
9129186a5a no message 2025-11-20 13:29:39 +01:00
2a9162f31b Merge branch 'develop-rdz' into 'develop'
modif sur les rdz

See merge request r-d-technique/tiers/reflex-wms-connector!176
2025-11-20 12:12:46 +00:00
b691a8bf21 modif sur les rdz 2025-11-20 13:12:29 +01:00
359b416b97 RDV 2025-11-20 11:15:02 +01:00
c273754d49 RDV 2025-11-20 10:11:22 +01:00
64f3a77fb5 RDV 2025-11-20 09:33:41 +01:00
429d9588b2 RDV 2025-11-20 09:09:27 +01:00
e3bbaa0211 RDV 2025-11-19 17:57:11 +01:00
9a458be469 Merge branch 'develop' of https://gitlab.hardis-group.com/r-d-technique/tiers/reflex-wms-connector into develop 2025-11-19 17:52:59 +01:00
8be4f0e949 RDV 2025-11-19 17:52:50 +01:00
c0aeb305af Merge branch 'develop-rdz' into 'develop'
modif sur les rdz

See merge request r-d-technique/tiers/reflex-wms-connector!175
2025-11-19 16:51:03 +00:00
39e2272e67 modif sur les rdz 2025-11-19 17:50:50 +01:00
4d9f26f260 RDV 2025-11-19 17:18:37 +01:00
7233859ed8 RDV 2025-11-19 17:16:16 +01:00
5f9f912347 Merge branch 'develop-rdz' into 'develop'
modif sur les rdz

See merge request r-d-technique/tiers/reflex-wms-connector!174
2025-11-19 12:20:30 +00:00
f0d37c04ed modif sur les rdz 2025-11-19 13:20:18 +01:00
a5891999f2 RDV 2025-11-19 11:55:43 +01:00
d7693249ca Merge branch 'develop-rdz' into 'develop'
modif sur les rdz

See merge request r-d-technique/tiers/reflex-wms-connector!173
2025-11-19 10:45:29 +00:00
65ba8e94c9 modif sur les rdz 2025-11-19 11:45:12 +01:00
ced9c8adab Merge branch 'develop-rdz' into 'develop'
modif sur les rdz

See merge request r-d-technique/tiers/reflex-wms-connector!172
2025-11-19 09:59:07 +00:00
db60006e94 modif sur les rdz 2025-11-19 10:58:52 +01:00
52cbace27a Merge branch 'develop' of https://gitlab.hardis-group.com/r-d-technique/tiers/reflex-wms-connector into develop 2025-11-19 10:54:01 +01:00
2a129f1b9c RDV 2025-11-19 10:53:55 +01:00
45e2779b58 Merge branch 'develop-rdz' into 'develop'
modif sur les rdz

See merge request r-d-technique/tiers/reflex-wms-connector!171
2025-11-19 09:53:32 +00:00
1bff43fe8d modif sur les rdz 2025-11-19 10:53:16 +01:00
08e9b9b9eb rdv 2025-11-19 10:48:56 +01:00
a176edd4c6 Merge branch 'develop-rdz' into 'develop'
modif sur les rdz

See merge request r-d-technique/tiers/reflex-wms-connector!170
2025-11-19 09:11:01 +00:00
35440a5eb3 modif sur les rdz 2025-11-19 10:10:45 +01:00
2432b37d64 RDV 2025-11-18 15:36:02 +01:00
8cbfa04ac1 Merge branch 'develop' of https://gitlab.hardis-group.com/r-d-technique/tiers/reflex-wms-connector into develop 2025-11-18 15:26:44 +01:00
28c5cabbc3 RDV 2025-11-18 15:25:06 +01:00
861766cbe4 Merge branch 'develop-rdz' into 'develop'
modif sur les rdz

See merge request r-d-technique/tiers/reflex-wms-connector!169
2025-11-18 14:23:10 +00:00
1168bfc50f modif sur les rdz 2025-11-18 15:18:52 +01:00
3f1711728a RDV 2025-11-18 15:12:41 +01:00
256e747c48 RDV 2025-11-18 11:57:00 +01:00
d03f3bb7a0 RDV 2025-11-18 11:06:35 +01:00
9018609ca1 Merge branch 'develop-rdz' into 'develop'
modif sur les rdz

See merge request r-d-technique/tiers/reflex-wms-connector!168
2025-11-18 09:49:02 +00:00
ae47fda38f modif sur les rdz 2025-11-18 10:48:46 +01:00
f57276f088 Merge branch 'develop-rdz' into 'develop'
modif sur les rdz

See merge request r-d-technique/tiers/reflex-wms-connector!167
2025-11-18 09:42:04 +00:00
138dd801d2 modif sur les rdz 2025-11-18 10:41:35 +01:00
db0e4df78d Merge branch 'develop-rdz' into 'develop'
Develop rdz

See merge request r-d-technique/tiers/reflex-wms-connector!166
2025-11-17 16:59:10 +00:00
5df1ebe54b Merge branch 'develop' into develop-rdz 2025-11-17 17:58:40 +01:00
4bfd6e7a4f modif sur les rdz 2025-11-17 17:58:20 +01:00
cdab58da71 Merge branch 'develop-rdz' into 'develop'
modif sur les rdz

See merge request r-d-technique/tiers/reflex-wms-connector!165
2025-11-17 16:39:36 +00:00
065d4c026b modif sur les rdz 2025-11-17 17:39:15 +01:00
b930c0eb40 Merge branch 'develop-rdz' into 'develop'
Develop rdz

See merge request r-d-technique/tiers/reflex-wms-connector!164
2025-11-17 16:32:00 +00:00
6c1a19ad04 Merge branch 'develop' into develop-rdz 2025-11-17 17:31:39 +01:00
7ff859420a modif sur les rdz 2025-11-17 17:31:23 +01:00
789e2e6c19 Merge branch 'develop-rdz' into 'develop'
modif sur les rdz

See merge request r-d-technique/tiers/reflex-wms-connector!163
2025-11-17 09:05:02 +00:00
1dcf91bf71 modif sur les rdz 2025-11-17 10:02:33 +01:00
068ef56d25 Merge branch 'develop-rdz' into 'develop'
Develop rdz

See merge request r-d-technique/tiers/reflex-wms-connector!162
2025-11-17 08:46:03 +00:00
c9050d837a Merge branch 'develop' into develop-rdz 2025-11-17 09:45:24 +01:00
e83186cc3f modif sur les rdz 2025-11-17 09:45:06 +01:00
355e170831 Merge branch 'develop-rdz' into 'develop'
Develop rdz

See merge request r-d-technique/tiers/reflex-wms-connector!161
2025-11-14 13:32:28 +00:00
53006d3fa1 Merge branch 'develop' into develop-rdz
# Conflicts:
#	RFXtoRP_HsrCarrierApt_SiteForceBookAppointment.ftl
2025-11-14 14:29:40 +01:00
4648c02a2c modif sur les rdz 2025-11-14 14:27:33 +01:00
8f8f26d2a2 mails 2025-11-13 10:09:11 +01:00
b4f11ef83d SCPN1-8643 2025-11-13 10:02:56 +01:00
a2fd6f1145 Merge branch 'develop' into develop-rdz
# Conflicts:
#	RFXtoRP_HsrCarrierApt_SiteForceBookAppointment.ftl
2025-11-12 17:14:12 +01:00
bd7b24fed7 modif sur les rdz 2025-11-12 17:10:56 +01:00
9c38272c6c SCPN1-9640 2025-11-12 16:37:15 +01:00
e09c0fecda SCPN1-9640 2025-11-12 16:33:27 +01:00
5477fbd66a SCPN1-8643 2025-11-12 16:30:59 +01:00
a151a0b655 Revert "SCPN1-9640"
This reverts commit 894031cc49.
2025-11-10 14:45:26 +01:00
bf365ba170 SCPN1-9640 2025-11-10 14:23:57 +01:00
894031cc49 SCPN1-9640 2025-11-10 14:22:40 +01:00
d895bac137 version 1 des FTL des RDZ 2025-11-07 10:07:21 +01:00
9214df8b96 SCPN1-9601 2025-11-04 10:02:37 +01:00
bfbf654ee2 SCPN1-9577 2025-10-30 14:47:34 +01:00
0adef4a1f3 Brand 2025-10-30 11:50:35 +01:00
e9c7594555 SCPN1-9399SCPN1-9399 2025-10-22 16:19:05 +02:00
a46b06fa3d SCPN1-9399 2025-10-22 14:59:19 +02:00
d116ab3856 json_string order 2025-10-22 14:29:37 +02:00
b3366a3597 Brand 2025-10-21 15:36:15 +02:00
f8c4e5d79d SCPN1-9399 2025-10-21 11:39:54 +02:00
4f8317f007 Coorection HliPrepaL 2025-10-20 15:49:28 +02:00
b783e7dcc1 customFields delete payload 2025-10-17 14:25:35 +02:00
039e984ec0 readme 2025-10-16 10:07:03 +02:00
791a958b4d SCPN1-9437 2025-10-14 17:09:53 +02:00
0732360ff3 Merge branch 'develop' of https://gitlab.hardis-group.com/r-d-technique/tiers/reflex-wms-connector into develop 2025-10-14 12:05:49 +02:00
5bdd9fbfe1 SCPN1-9437 2025-10-14 12:05:44 +02:00
15430bea94 SCPN1-9400 2025-10-14 11:23:55 +02:00
93a0fbd79c SCPN1-9437 2025-10-13 15:31:14 +02:00
ae27efacf3 SCPN1-9437 2025-10-13 14:25:08 +02:00
b4677ea095 test 2025-10-13 13:31:57 +02:00
eafbf7a6e3 nouvelle marque 2025-10-13 12:03:45 +02:00
a262140b4b SCPN1-9400 2025-10-08 15:58:21 +02:00
6080d1a959 SCPN1-8956 2025-10-03 10:04:03 +02:00
a98b0ef16b Merge branch 'develop-SCPN1-9094' into 'develop'
Resolve SCPN1-9094 "Develop "

Closes SCPN1-9094

See merge request r-d-technique/tiers/reflex-wms-connector!144
2025-10-01 07:52:59 +00:00
8ca640ca38 SCPN1-9094 2025-09-29 17:44:43 +02:00
4129dfdd58 SCPN1-9094 2025-09-29 14:55:51 +02:00
a6628be34e SCPN1-9348 2025-09-25 16:23:34 +02:00
4fd4007794 Correction transfert 2025-09-23 10:17:39 +02:00
9b07206cf4 Correction list 2025-09-09 08:13:56 +02:00
8d4721576f Renotified 2025-09-08 16:43:25 +02:00
6b0d53926f Corrections 250908 2025-09-08 10:01:04 +02:00
7c15a16e57 SCPN1-9254 2025-08-29 11:48:14 +02:00
98 changed files with 3283 additions and 396 deletions

11
InternalSettings.ftl Normal file
View File

@@ -0,0 +1,11 @@
<#-- --------------------------------------------------------------------------------------- -->
<#-- DeleteEF est un paramètre qui permet de déterminer si lexécution logistique doit être supprimée lors de la création dune commande.-->
<#-- Attention : si vous choisissez de la supprimer, toutes les métadonnées associées à cette exécution logistique seront également supprimées. -->
<#-- Si DeleteEF_False = true, nous ne supprimons pas l'exécution logistique, Si DeleteEF_False = false, nous supprimons l'exécution logistique.-->
<#-- --------------------------------------------------------------------------------------- -->
<#-- DeleteEF is a parameter used to determine whether the logistics execution should be deleted when creating an order.-->
<#-- Warning: if deletion is selected, all metadata related to the logistics execution will also be removed. -->
<#-- If DeleteEF_False = true, we do not delete the logistics execution. If DeleteEF_False = false, we delete the logistics execution. -->
<#-- --------------------------------------------------------------------------------------- -->
<#assign DeleteEF_False = true>

View File

@@ -8,7 +8,7 @@ This connector does not contain any standalone executable code: it is intended t
## Role of the FTL Files ## Role of the FTL Files
- Each `.ftl` file corresponds to a **flow type** (order, stock, receipt, shipment, etc.). - Each `.ftl` file corresponds to a **flow type** (order, stock, receipt, shipment, appointment etc.).
- These templates use the **FreeMarker** syntax to: - These templates use the **FreeMarker** syntax to:
- Extract the required fields from the WMS source flow. - Extract the required fields from the WMS source flow.
- Apply transformation rules (mapping, conversions, enrichments). - Apply transformation rules (mapping, conversions, enrichments).

View File

@@ -1,6 +1,12 @@
<#-- use protobuf of class HfDtlStockLs to find HARDIS WMS fields names --> <#-- use protobuf of class HfDtlStockLs to find HARDIS WMS fields names -->
<#-- <#--
Best practices:
If the SK is of type:
- string: add ?json_string (e.g. "${stock.batch_1?json_string}")
- boolean: possible values: true and false
- datetime: expected format: 2025-10-30T10:12:10.000Z
- decimal number: the separator is a point (e.g. 10.5)
"SegmentationKeys": [ "SegmentationKeys": [
{ {
@@ -16,7 +22,7 @@
<#if stock.batch_1 == ""> <#if stock.batch_1 == "">
"Value": { "String" : "no batch"} "Value": { "String" : "no batch"}
<#else> <#else>
"Value": { "String" : "${stock.batch_1}"} "Value": { "String" : "${stock.batch_1?json_string}"}
</#if> </#if>
}, },
{ {

View File

@@ -63,18 +63,18 @@
<#include "RFXtoRP_HsrPrepa_HUsAdded_HandlingUnitDispatched.ftl"> <#include "RFXtoRP_HsrPrepa_HUsAdded_HandlingUnitDispatched.ftl">
} }
<#if !hd_numberHmapHUadded[despatched_ipg.hd_number]?? && (trackingNumberSource==2 || trackingNumberSource==3 )> <#if !hd_numberHmapHUadded[despatched_ipg.hd_number]?? && (trackingNumberSource==2 || trackingNumberSource==3 )>
<#assign hd_numberHmapHUadded += {despatched_ipg.hd_number,despatched_ipg.hd_number}> <#assign hd_numberHmapHUadded += {despatched_ipg.hd_number,despatched_ipg.hd_number}>
, ,
{ {
<#assign apiReflexPlatformID = ApiReflexPlatformID.TrackingHULabeled> <#assign apiReflexPlatformID = ApiReflexPlatformID.TrackingHULabeled>
"apiReflexPlatformID" : "${apiReflexPlatformID}", "apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" : "datas" :
<#include "RFXtoRP_HsrPrepa_HUsAdded_TrackingHuLabelled.ftl"> <#include "RFXtoRP_HsrPrepa_HUsAdded_TrackingHuLabelled.ftl">
} }
</#if> </#if>
</#if> </#if>
</#list> </#list>
</#list> </#list>
<#assign refIDHmap ={}> <#assign refIDHmap ={}>
] ]

View File

@@ -1,4 +1,10 @@
<#-- use protobuf of class HsaCarrier to find HARDIS WMS fields names --> <#-- use protobuf of class HsaCarrier to find HARDIS WMS fields names -->
<#-- Best practices:
If the SK is of type:
- string: add ?json_string (e.g. "${stock.batch_1?json_string}")
- boolean: possible values: true and false
- datetime: expected format: 2025-10-30T10:12:10.000Z
- decimal number: the separator is a point (e.g. 10.5)-->
"MetaData": [ ] "MetaData": [ ]

View File

@@ -1,4 +1,10 @@
<#-- use protobuf of class HsaCons to find HARDIS WMS fields names --> <#-- use protobuf of class HsaCons to find HARDIS WMS fields names -->
<#-- Best practices:
If the SK is of type:
- string: add ?json_string (e.g. "${stock.batch_1?json_string}")
- boolean: possible values: true and false
- datetime: expected format: 2025-10-30T10:12:10.000Z
- decimal number: the separator is a point (e.g. 10.5)-->
"MetaData": [ ] "MetaData": [ ]

32
RFXtoRP_HsaDesPatch.ftl Normal file
View File

@@ -0,0 +1,32 @@
<#-- **** input parameters ***** -->
<#-- input : message HARDIS WMS -->
<#-- project : projectId in HARDIS SC NETWORK -->
<#-- organisation : organisationtId in HARDIS SC NETWORK -->
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
<#assign projectRP = project>
<#assign organisationRP = organisation>
<#assign aDateTime = .now>
<#switch cloudEventMsg.action>
<#case "C">
<#case "U">
<#-- *********************************************** Action = CREATE or UPDATE ******************** -->
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
<#assign desPatch = JsonUtil.jsonToMap(dataRfx)>
<#stop "no generic FTL file available yet for desPatch">
<#break>
<#case "D">
<#-- *********************************************** Action = DELETE ******************** -->
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
<#assign desPatch = JsonUtil.jsonToMap(dataRfx)>
<#stop "no generic FTL file available yet for desPatch">
<#break>
<#default>
<#stop >
</#switch>

32
RFXtoRP_HsaDespNt.ftl Normal file
View File

@@ -0,0 +1,32 @@
<#-- **** input parameters ***** -->
<#-- input : message HARDIS WMS -->
<#-- project : projectId in HARDIS SC NETWORK -->
<#-- organisation : organisationtId in HARDIS SC NETWORK -->
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
<#assign projectRP = project>
<#assign organisationRP = organisation>
<#assign aDateTime = .now>
<#switch cloudEventMsg.action>
<#case "C">
<#case "U">
<#-- *********************************************** Action = CREATE or UPDATE ******************** -->
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
<#assign despNt = JsonUtil.jsonToMap(dataRfx)>
<#stop "no generic FTL file available yet for despNt">
<#break>
<#case "D">
<#-- *********************************************** Action = DELETE ******************** -->
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
<#assign despNt = JsonUtil.jsonToMap(dataRfx)>
<#stop "no generic FTL file available yet for despNt">
<#break>
<#default>
<#stop >
</#switch>

View File

@@ -1,4 +1,10 @@
<#-- use protobuf of class HsaDispute to find Reflex Wms fields names --> <#-- use protobuf of class HsaDispute to find HARDIS WMS fields names -->
<#-- Best practices:
If the SK is of type:
- string: add ?json_string (e.g. "${stock.batch_1?json_string}")
- boolean: possible values: true and false
- datetime: expected format: 2025-10-30T10:12:10.000Z
- decimal number: the separator is a point (e.g. 10.5)-->
"MetaData": [ ] "MetaData": [ ]

View File

@@ -1,7 +1,15 @@
<#-- Specify table for reason code --> <#-- Specify table for reason code -->
<#assign TableReasonCode = {}/> <#-- Table example for reason code to claim type ID -->
<#-- <#assign TableReasonCode = { -->
<#-- "001":"ID_CLAIMTYPE_1",-->
<#-- "M1":"ID_CLAIMTYPE_2",-->
<#-- }/>-->
<#assign TableReasonCode = {
"M1" :"CAS"
}
/>

View File

@@ -34,7 +34,7 @@
"ExecutionflowID": "${reflexMvtStockInterface.original_receipt_physical_depot_code}${reflexMvtStockInterface.activity_code}${reflexMvtStockInterface.originator_code}${reflexMvtStockInterface.origin_order_line_reference?trim?json_string}", "ExecutionflowID": "${reflexMvtStockInterface.original_receipt_physical_depot_code}${reflexMvtStockInterface.activity_code}${reflexMvtStockInterface.originator_code}${reflexMvtStockInterface.origin_order_line_reference?trim?json_string}",
"OrderID": "${reflexMvtStockInterface.origin_order_line_reference?trim?json_string}", "OrderID": "${reflexMvtStockInterface.origin_order_line_reference?trim?json_string}",
<#else> <#else>
<#if reflexMvtStockInterface.receipt_reference?? && reflexMvtStockInterface.receipt_reference!=""> <#if reflexMvtStockInterface.receipt_reference?? && reflexMvtStockInterface.receipt_reference!="" && !reflexMvtStockInterface.receipt_reference?starts_with(reflexMvtStockInterface.original_receipt_physical_depot_code + reflexMvtStockInterface.activity_code + reflexMvtStockInterface.receipt_year_number)>
"ExecutionflowID": "${reflexMvtStockInterface.original_receipt_physical_depot_code}${reflexMvtStockInterface.activity_code}${reflexMvtStockInterface.originator_code}${reflexMvtStockInterface.receipt_reference?trim?json_string}", "ExecutionflowID": "${reflexMvtStockInterface.original_receipt_physical_depot_code}${reflexMvtStockInterface.activity_code}${reflexMvtStockInterface.originator_code}${reflexMvtStockInterface.receipt_reference?trim?json_string}",
"OrderID": "${reflexMvtStockInterface.receipt_reference?trim?json_string}", "OrderID": "${reflexMvtStockInterface.receipt_reference?trim?json_string}",
<#else> <#else>

View File

@@ -1,7 +1,12 @@
<#-- use protobuf of class HsaIpgMove to find Reflex WMS fields names --> <#-- use protobuf of class HsaIpgMove to find HARDIS WMS fields names -->
<#-- <#--
<#-- Best practices:
If the SK is of type:
- string: add ?json_string (e.g. "${stock.batch_1?json_string}")
- boolean: possible values: true and false
- datetime: expected format: 2025-10-30T10:12:10.000Z
- decimal number: the separator is a point (e.g. 10.5)
"SegmentationKeys": [ "SegmentationKeys": [
{ {

View File

@@ -1,5 +1,11 @@
<#-- use protobuf of class HsaIpgMove to find HARDIS WMS fields names --> <#-- use protobuf of class HsaIpgMove to find HARDIS WMS fields names -->
<#-- <#--
<#-- Best practices:
If the SK is of type:
- string: add ?json_string (e.g. "${stock.batch_1?json_string}")
- boolean: possible values: true and false
- datetime: expected format: 2025-10-30T10:12:10.000Z
- decimal number: the separator is a point (e.g. 10.5)
"SegmentationKeys": [ "SegmentationKeys": [
{ {
"Key": "Grade", "Key": "Grade",
@@ -15,22 +21,22 @@
"Value": { "String" : "no batch"} "Value": { "String" : "no batch"}
<#else> <#else>
"Value": { "String" : "${reflexMvtStockInterface.batch_1}"} "Value": { "String" : "${reflexMvtStockInterface.batch_1}"}
</#if> </#if>
}, },
{ {
"Key": "HeldForSpecificCode", "Key": "HeldForSpecificCode",
"Value": { "Bool" : "${reflexMvtStockInterface.ipg_specific_code_held}"} "Value": { "Bool" : "${reflexMvtStockInterface.ipg_specific_code_held}"}
}, },
{ {
<#assign manufacturing_date = reflexMvtStockInterface.manufacture_date?datetime(rfx_date_format_default)?iso_utc /> <#assign manufacturing_date = reflexMvtStockInterface.manufacture_date?datetime(rfx_date_format_default)?iso_utc />
"Key": "ManufacturingDate", "Key": "ManufacturingDate",
"Value": "Timestamp": { "Value": "Timestamp": {
"AuthorTimeZone": "${time_zone_rfx}", "AuthorTimeZone": "${time_zone_rfx}",
"DateTime": "${manufacturing_date}" "DateTime": "${manufacturing_date}"
} }
} }
] ]
--> -->
"SegmentationKeys": [ ] "SegmentationKeys": [ ]

View File

@@ -1,4 +1,10 @@
<#-- use protobuf of class HsaItmLv to find HARDIS WMS fields names --> <#-- use protobuf of class HsaItmLv to find HARDIS WMS fields names -->
<#-- Best practices:
If the SK is of type:
- string: add ?json_string (e.g. "${stock.batch_1?json_string}")
- boolean: possible values: true and false
- datetime: expected format: 2025-10-30T10:12:10.000Z
- decimal number: the separator is a point (e.g. 10.5)-->
"MetaData": [ ] "MetaData": [ ]

View File

@@ -24,9 +24,14 @@
<#include "RFXtoRP_HsaItm_ItemCreated_ItemMetadata.ftl"> <#include "RFXtoRP_HsaItm_ItemCreated_ItemMetadata.ftl">
<#-- Item Photo URI could be added here --> <#-- Item Photo URI could be added here -->
<#if item.url?? && item.url!=""> <#if item.saved_picture_path?? && item.saved_picture_path!="" && item.saved_picture_path?starts_with("http") == true>
, ,
"PhotoURI": "${item.url?json_string}" "PhotoURI": "${item.saved_picture_path?json_string}"
<#else>
<#if item.url?? && item.url!="" && item.url?starts_with("http") == true>
,
"PhotoURI": "${item.url?json_string}"
</#if>
</#if> </#if>
<#-- Loop for the Logistical Variants - LV --> <#-- Loop for the Logistical Variants - LV -->

View File

@@ -1,4 +1,10 @@
<#-- use protobuf of class HsaItm to find HARDIS WMS fields names --> <#-- use protobuf of class HsaItm to find HARDIS WMS fields names -->
<#-- Best practices:
If the SK is of type:
- string: add ?json_string (e.g. "${stock.batch_1?json_string}")
- boolean: possible values: true and false
- datetime: expected format: 2025-10-30T10:12:10.000Z
- decimal number: the separator is a point (e.g. 10.5)-->
"MetaData": [ ] "MetaData": [ ]

View File

@@ -1,4 +1,10 @@
<#-- use protobuf of class HsaItm to find Reflex Wms fields names --> <#-- use protobuf of class HsaItm to find HARDIS WMS fields names -->
<#-- Best practices:
If the SK is of type:
- string: add ?json_string (e.g. "${stock.batch_1?json_string}")
- boolean: possible values: true and false
- datetime: expected format: 2025-10-30T10:12:10.000Z
- decimal number: the separator is a point (e.g. 10.5)-->
"MetaData": [ ] "MetaData": [ ]

View File

@@ -1,40 +1,89 @@
<#-- **** input parameters ***** --> <#-- **** input parameters ***** -->
<#-- input : message HARDIS WMS --> <#-- input : message RFX -->
<#-- project : projectId in HARDIS SC NETWORK --> <#-- project : projectId in ReflexPlatform -->
<#-- organisation : organisationtId in HARDIS SC NETWORK --> <#-- organisation : organisationtId in ReflexPlatform -->
<#include "ActorPrefix.ftl">
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)> <#include "HfRpConfig.ftl">
<#assign projectRP = project> <#include "ReflexUtils.ftl">
<#assign organisationRP = organisation>
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
<#assign aDateTime = .now> <#assign projectRP = project>
<#stop> <#assign organisationRP = organisation>
<#switch cloudEventMsg.action> <#assign aDateTime = .now>
<#case "C">
<#case "U"> <#switch cloudEventMsg.action>
<#-- *********************************************** Action = CREATE or UPDATE ******************** --> <#case "C">
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) /> <#case "U">
<#assign depot = JsonUtil.jsonToMap(dataRfx)> <#-- *********************************************** Action = Update ******************** -->
[ <#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
{ <#assign carrier_apt_status = JsonUtil.jsonToMap(dataRfx)>
<#if !carrier_apt_status.status?? || carrier_apt_status.appointment_year_number==0>
} <#stop >
] </#if>
<#break> [
{
<#case "D"> <#switch carrier_apt_status.status.carrier_status_code>
<#-- *********************************************** Action = DELETE *************************** --> <#case "010"> <#--Carrier Expected -->
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) /> <#assign apiReflexPlatformID = ApiReflexPlatformID.AppointmentCarrierExpected>
<#assign depot = JsonUtil.jsonToMap(dataRfx)> "apiReflexPlatformID" : "${apiReflexPlatformID}",
[ "datas" :
{ <#include "RFXtoRP_HsaLstCarSta_CarrierExpected.ftl">
<#break>
} <#case "020"> <#--Carrier Arrived-->
] <#assign apiReflexPlatformID = ApiReflexPlatformID.AppointmentCarrierArrived>
<#break> "apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#default> <#include "RFXtoRP_HsaLstCarSta_CarrierArrived.ftl">
<#stop > <#break>
</#switch> <#case "040"> <#--Unloading Started -->
<#assign apiReflexPlatformID = ApiReflexPlatformID.AppointmentUnloadingStarted>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsaLstCarSta_UnloadingStarted.ftl">
<#break>
<#case "050"> <#--Unloading Completed-->
<#assign apiReflexPlatformID = ApiReflexPlatformID.AppointmentUnloadingCompleted>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsaLstCarSta_UnloadingCompleted.ftl">
<#break>
<#case "060"> <#--Loading Started-->
<#assign apiReflexPlatformID = ApiReflexPlatformID.AppointmentLoadingStarted>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsaLstCarSta_LoadingStarted.ftl">
<#break>
<#case "070"> <#--Loading Completed-->
<#assign apiReflexPlatformID = ApiReflexPlatformID.AppointmentLoadingCompleted>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsaLstCarSta_LoadingCompleted.ftl">
<#break>
<#case "090"> <#--Carrier Departed-->
<#assign apiReflexPlatformID = ApiReflexPlatformID.AppointmentCarrierDeparted>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsaLstCarSta_CarrierDeparted.ftl">
<#break>
<#default>
<#stop 'this updated appointment Status not implemented'>
</#switch>
}
]
<#break>
<#case "D">
<#-- *********************************************** Action = Delete ******************** -->
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
<#assign carrier_apt_status = JsonUtil.jsonToMap(dataRfx)>
<#stop 'Delete Appointment Status not implemented' >
<#break>
<#default>
<#stop >
</#switch>

View File

@@ -0,0 +1,30 @@
[
<#assign ref_datetime = RfxDateTimetoUTCWithTimezone(carrier_apt_status.status.creation_datetime,time_zone_rfx) />
{
"Header": {
"ProjectID": "${projectRP}"
},
"ID": {
<#if carrier_apt_status.constant_appointment?? && carrier_apt_status.constant_appointment== "true">
<#if carrier_apt_status.appointment_reference?? && carrier_apt_status.appointment_reference!="">
"RefID": "${carrier_apt_status.appointment_reference?json_string}-${carrier_apt_status.appointment_year_number?json_string}-${carrier_apt_status.appointment_number?json_string}",
<#else>
"RefID": "${carrier_apt_status.appointment_year_number?json_string}-${carrier_apt_status.appointment_number?json_string}",
</#if>
<#else>
<#if carrier_apt_status.appointment_reference?? && carrier_apt_status.appointment_reference !="">
"RefID": "${carrier_apt_status.appointment_reference?json_string}",
<#else>
"RefID": "${carrier_apt_status.appointment_year_number?json_string}-${carrier_apt_status.appointment_number?json_string}",
</#if>
</#if>
"RefDate": {
"DateTime": "${ref_datetime}",
"AuthorTimeZone": "${time_zone_rfx}"
}
},
"Payload":{
"ActorID": "${RFXtoRPprefixDepot(carrier_apt_status.physical_depot?json_string)}"
}
}
]

View File

@@ -0,0 +1,30 @@
[
<#assign ref_datetime = RfxDateTimetoUTCWithTimezone(carrier_apt_status.status.creation_datetime,time_zone_rfx) />
{
"Header": {
"ProjectID": "${projectRP}"
},
"ID": {
<#if carrier_apt_status.constant_appointment?? && carrier_apt_status.constant_appointment== "true">
<#if carrier_apt_status.appointment_reference?? && carrier_apt_status.appointment_reference!="">
"RefID": "${carrier_apt_status.appointment_reference?json_string}-${carrier_apt_status.appointment_year_number?json_string}-${carrier_apt_status.appointment_number?json_string}",
<#else>
"RefID": "${carrier_apt_status.appointment_year_number?json_string}-${carrier_apt_status.appointment_number?json_string}",
</#if>
<#else>
<#if carrier_apt_status.appointment_reference?? && carrier_apt_status.appointment_reference !="">
"RefID": "${carrier_apt_status.appointment_reference?json_string}",
<#else>
"RefID": "${carrier_apt_status.appointment_year_number?json_string}-${carrier_apt_status.appointment_number?json_string}",
</#if>
</#if>
"RefDate": {
"DateTime": "${ref_datetime}",
"AuthorTimeZone": "${time_zone_rfx}"
}
},
"Payload":{
"ActorID": "${RFXtoRPprefixDepot(carrier_apt_status.physical_depot?json_string)}"
}
}
]

View File

@@ -0,0 +1,30 @@
[
<#assign ref_datetime = RfxDateTimetoUTCWithTimezone(carrier_apt_status.status.creation_datetime,time_zone_rfx) />
{
"Header": {
"ProjectID": "${projectRP}"
},
"ID": {
<#if carrier_apt_status.constant_appointment?? && carrier_apt_status.constant_appointment== "true">
<#if carrier_apt_status.appointment_reference?? && carrier_apt_status.appointment_reference!="">
"RefID": "${carrier_apt_status.appointment_reference?json_string}-${carrier_apt_status.appointment_year_number?json_string}-${carrier_apt_status.appointment_number?json_string}",
<#else>
"RefID": "${carrier_apt_status.appointment_year_number?json_string}-${carrier_apt_status.appointment_number?json_string}",
</#if>
<#else>
<#if carrier_apt_status.appointment_reference?? && carrier_apt_status.appointment_reference !="">
"RefID": "${carrier_apt_status.appointment_reference?json_string}",
<#else>
"RefID": "${carrier_apt_status.appointment_year_number?json_string}-${carrier_apt_status.appointment_number?json_string}",
</#if>
</#if>
"RefDate": {
"DateTime": "${ref_datetime}",
"AuthorTimeZone": "${time_zone_rfx}"
}
},
"Payload":{
"ActorID": "${RFXtoRPprefixDepot(carrier_apt_status.physical_depot?json_string)}"
}
}
]

View File

@@ -0,0 +1,30 @@
[
<#assign ref_datetime = RfxDateTimetoUTCWithTimezone(carrier_apt_status.status.creation_datetime,time_zone_rfx) />
{
"Header": {
"ProjectID": "${projectRP}"
},
"ID": {
<#if carrier_apt_status.constant_appointment?? && carrier_apt_status.constant_appointment== "true">
<#if carrier_apt_status.appointment_reference?? && carrier_apt_status.appointment_reference!="">
"RefID": "${carrier_apt_status.appointment_reference?json_string}-${carrier_apt_status.appointment_year_number?json_string}-${carrier_apt_status.appointment_number?json_string}",
<#else>
"RefID": "${carrier_apt_status.appointment_year_number?json_string}-${carrier_apt_status.appointment_number?json_string}",
</#if>
<#else>
<#if carrier_apt_status.appointment_reference?? && carrier_apt_status.appointment_reference !="">
"RefID": "${carrier_apt_status.appointment_reference?json_string}",
<#else>
"RefID": "${carrier_apt_status.appointment_year_number?json_string}-${carrier_apt_status.appointment_number?json_string}",
</#if>
</#if>
"RefDate": {
"DateTime": "${ref_datetime}",
"AuthorTimeZone": "${time_zone_rfx}"
}
},
"Payload":{
"ActorID": "${RFXtoRPprefixDepot(carrier_apt_status.physical_depot?json_string)}"
}
}
]

View File

@@ -0,0 +1,30 @@
[
<#assign ref_datetime = RfxDateTimetoUTCWithTimezone(carrier_apt_status.status.creation_datetime,time_zone_rfx) />
{
"Header": {
"ProjectID": "${projectRP}"
},
"ID": {
<#if carrier_apt_status.constant_appointment?? && carrier_apt_status.constant_appointment== "true">
<#if carrier_apt_status.appointment_reference?? && carrier_apt_status.appointment_reference!="">
"RefID": "${carrier_apt_status.appointment_reference?json_string}-${carrier_apt_status.appointment_year_number?json_string}-${carrier_apt_status.appointment_number?json_string}",
<#else>
"RefID": "${carrier_apt_status.appointment_year_number?json_string}-${carrier_apt_status.appointment_number?json_string}",
</#if>
<#else>
<#if carrier_apt_status.appointment_reference?? && carrier_apt_status.appointment_reference !="">
"RefID": "${carrier_apt_status.appointment_reference?json_string}",
<#else>
"RefID": "${carrier_apt_status.appointment_year_number?json_string}-${carrier_apt_status.appointment_number?json_string}",
</#if>
</#if>
"RefDate": {
"DateTime": "${ref_datetime}",
"AuthorTimeZone": "${time_zone_rfx}"
}
},
"Payload":{
"ActorID": "${RFXtoRPprefixDepot(carrier_apt_status.physical_depot?json_string)}"
}
}
]

View File

@@ -0,0 +1,30 @@
[
<#assign ref_datetime = RfxDateTimetoUTCWithTimezone(carrier_apt_status.status.creation_datetime,time_zone_rfx) />
{
"Header": {
"ProjectID": "${projectRP}"
},
"ID": {
<#if carrier_apt_status.constant_appointment?? && carrier_apt_status.constant_appointment== "true">
<#if carrier_apt_status.appointment_reference?? && carrier_apt_status.appointment_reference!="">
"RefID": "${carrier_apt_status.appointment_reference?json_string}-${carrier_apt_status.appointment_year_number?json_string}-${carrier_apt_status.appointment_number?json_string}",
<#else>
"RefID": "${carrier_apt_status.appointment_year_number?json_string}-${carrier_apt_status.appointment_number?json_string}",
</#if>
<#else>
<#if carrier_apt_status.appointment_reference?? && carrier_apt_status.appointment_reference !="">
"RefID": "${carrier_apt_status.appointment_reference?json_string}",
<#else>
"RefID": "${carrier_apt_status.appointment_year_number?json_string}-${carrier_apt_status.appointment_number?json_string}",
</#if>
</#if>
"RefDate": {
"DateTime": "${ref_datetime}",
"AuthorTimeZone": "${time_zone_rfx}"
}
},
"Payload":{
"ActorID": "${RFXtoRPprefixDepot(carrier_apt_status.physical_depot?json_string)}"
}
}
]

View File

@@ -0,0 +1,30 @@
[
<#assign ref_datetime = RfxDateTimetoUTCWithTimezone(carrier_apt_status.status.creation_datetime,time_zone_rfx) />
{
"Header": {
"ProjectID": "${projectRP}"
},
"ID": {
<#if carrier_apt_status.constant_appointment?? && carrier_apt_status.constant_appointment== "true">
<#if carrier_apt_status.appointment_reference?? && carrier_apt_status.appointment_reference!="">
"RefID": "${carrier_apt_status.appointment_reference?json_string}-${carrier_apt_status.appointment_year_number?json_string}-${carrier_apt_status.appointment_number?json_string}",
<#else>
"RefID": "${carrier_apt_status.appointment_year_number?json_string}-${carrier_apt_status.appointment_number?json_string}",
</#if>
<#else>
<#if carrier_apt_status.appointment_reference?? && carrier_apt_status.appointment_reference !="">
"RefID": "${carrier_apt_status.appointment_reference?json_string}",
<#else>
"RefID": "${carrier_apt_status.appointment_year_number?json_string}-${carrier_apt_status.appointment_number?json_string}",
</#if>
</#if>
"RefDate": {
"DateTime": "${ref_datetime}",
"AuthorTimeZone": "${time_zone_rfx}"
}
},
"Payload":{
"ActorID": "${RFXtoRPprefixDepot(carrier_apt_status.physical_depot?json_string)}"
}
}
]

View File

@@ -16,6 +16,7 @@
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) /> <#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
<#assign preparationStatusInterface = JsonUtil.jsonToMap(dataRfx) /> <#assign preparationStatusInterface = JsonUtil.jsonToMap(dataRfx) />
[ [
<#if preparationStatusInterface.preparation_type_code=="010" || preparationStatusInterface.preparation_type_code=="030">
<#--**Pick batch runned (200) **--> <#--**Pick batch runned (200) **-->
<#if preparationStatusInterface.preparation_status_type == "100" && preparationStatusInterface.preparation_status_code == "200" > <#if preparationStatusInterface.preparation_status_type == "100" && preparationStatusInterface.preparation_status_code == "200" >
{ {
@@ -63,6 +64,9 @@
</#if> </#if>
</#if> </#if>
</#if> </#if>
<#else>
<#stop >
</#if>
] ]
<#break> <#break>

View File

@@ -1,4 +1,10 @@
<#-- use protobuf of class HsaSup to find HARDIS WMS fields names --> <#-- use protobuf of class HsaSup to find HARDIS WMS fields names -->
<#-- Best practices:
If the SK is of type:
- string: add ?json_string (e.g. "${stock.batch_1?json_string}")
- boolean: possible values: true and false
- datetime: expected format: 2025-10-30T10:12:10.000Z
- decimal number: the separator is a point (e.g. 10.5)-->
"MetaData": [ ] "MetaData": [ ]

50
RFXtoRP_HsrAntRec.ftl Normal file
View File

@@ -0,0 +1,50 @@
<#-- **** input parameters ***** -->
<#-- input : message HARDIS WMS -->
<#-- project : projectId in HARDIS SC NETWORK -->
<#-- organisation : organisationtId in HARDIS SC NETWORK -->
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
<#assign projectRP = project>
<#assign organisationRP = organisation>
<#assign aDateTime = .now>
<#switch cloudEventMsg.action>
<#case "C">
<#-- *********************************************** Action = CREATE ******************** -->
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
<#assign ancReceipt = JsonUtil.jsonToMap(dataRfx)>
[
{
<#stop >
}
]
<#break>
<#case "U">
<#-- *********************************************** Action = UPDATE ******************** -->
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
<#assign ancReceipt = JsonUtil.jsonToMap(dataRfx)>
[
{
<#stop >
}
]
<#break>
<#case "D">
<#-- *********************************************** Action = DELETE ******************** -->
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
<#assign ancReceipt = JsonUtil.jsonToMap(dataRfx)>
[
{
<#stop >
}
]
<#break>
<#default>
<#stop >
</#switch>

View File

@@ -1,40 +1,156 @@
<#-- **** input parameters ***** --> <#-- **** input parameters ***** -->
<#-- input : message HARDIS WMS --> <#-- input : message HARDIS-WMS -->
<#-- project : projectId in HARDIS SC NETWORK --> <#-- project : projectId in ReflexPlatform -->
<#-- organisation : organisationtId in HARDIS SC NETWORK --> <#-- organisation : organisationtId in ReflexPlatform -->
<#include "ActorPrefix.ftl">
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)> <#include "HfRpConfig.ftl">
<#assign projectRP = project> <#include "ReflexUtils.ftl">
<#assign organisationRP = organisation>
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
<#assign aDateTime = .now> <#assign projectRP = project>
<#assign organisationRP = organisation>
<#stop> <#assign partnerApplicationRP = partnerApplication>
<#switch cloudEventMsg.action> <#assign aDateTime = .now>
<#case "C">
<#case "U"> <#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
<#-- *********************************************** Action = CREATE or UPDATE ******************** --> <#assign carrier_apt = JsonUtil.jsonToMap(dataRfx)>
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
<#assign depot = JsonUtil.jsonToMap(dataRfx)> <#switch cloudEventMsg.action>
[ <#case "C">
{ <#-- *********************************************** Action = CREATE or UPDATE ******************** -->
[
} {
] <#assign apiReflexPlatformID = ApiReflexPlatformID.BookingForceBookAppointment>
<#break> "apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#case "D"> <#include "RFXtoRP_HsrCarrierApt_BookingForceBookAppointment.ftl">
<#-- *********************************************** Action = DELETE *************************** --> },
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) /> {
<#assign depot = JsonUtil.jsonToMap(dataRfx)> <#assign apiReflexPlatformID = ApiReflexPlatformID.AppointmentCarrierExpected>
[ "apiReflexPlatformID" : "${apiReflexPlatformID}",
{ "datas" :
<#include "RFXtoRP_HsrCarrierApt_CarrierExpected.ftl">
} }
] ]
<#break> <#break>
<#case "U">
<#default> <#-- *********************************************** Action = Update ********************-->
<#stop > [
</#switch> {
<#assign apiReflexPlatformID = ApiReflexPlatformID.AppointmentCustomFieldsUpdated>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrCarrierApt_AppointmentCustomFieldsUpdated.ftl">
},
<#include "RFXtoRP_HsrCarrierApt_AppointmentMetadataUpdated.ftl">
<#include "RFXtoRP_HsrCarrierApt_AppointmentCarrierInformationUpdated.ftl">
<#if carrier_apt.status?? && (carrier_apt.status.status_code=="999" || carrier_apt.status.status_code=="040" || carrier_apt.status.status_code=="030")>
[
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.BookingForceCancelAppointment>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrCarrierApt_BookingForceCancelAppointment.ftl">
}
]
<#else>
<#if carrier_apt.status?? && carrier_apt.status.status_code=="100"> <#--Carrier Arrived-->
[
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.AppointmentCarrierArrived>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrCarrierApt_CarrierArrived.ftl">
}
]
<#else>
<#if carrier_apt.status?? && carrier_apt.status.status_code=="210"> <#--Unloading Started -->
[
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.AppointmentUnloadingStarted>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrCarrierApt_UnloadingStarted.ftl">
}
]
<#else>
<#if carrier_apt.status?? && carrier_apt.status.status_code=="290"><#--Unloading Completed-->
[
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.AppointmentUnloadingCompleted>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrCarrierApt_UnloadingCompleted.ftl">
}
]
<#else>
<#if carrier_apt.status?? && carrier_apt.status.status_code=="310"><#--Loading Started-->
[
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.AppointmentLoadingStarted>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrCarrierApt_LoadingStarted.ftl">
},
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.AppointmentCarrierExpected>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrCarrierApt_CarrierExpected.ftl">
}
]
<#else>
<#if carrier_apt.status?? && carrier_apt.status.status_code=="390"><#--Loading Completed-->
[
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.AppointmentLoadingCompleted>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrCarrierApt_LoadingCompleted.ftl">
}
]
<#else>
<#if carrier_apt.status?? && carrier_apt.status.status_code=="500"><#--Carrier Departed-->
[
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.AppointmentCarrierDeparted>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrCarrierApt_CarrierDeparted.ftl">
}
]
<#else>
[
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.BookingWMSUpdateAppointment>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrCarrierApt_BookingWMSUpdateAppointment.ftl">
}
]
</#if>
</#if>
</#if>
</#if>
</#if>
</#if>
</#if>
]
<#break>
<#case "D">
<#-- *********************************************** Action = Delete ******************** -->
[
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.BookingForceCancelAppointment>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrCarrierApt_BookingForceCancelAppointment.ftl">
}
]
<#break>
<#default>
<#stop >
</#switch>

View File

@@ -0,0 +1,9 @@
<#-- A décommenter si besoin de les utiliser-->
<#-- Uncomment if you need to use them-->
<#--{
<#assign apiReflexPlatformID = ApiReflexPlatformID.AppointmentCarrierInformationUpdated>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrCarrierApt_AppointmentCarrierInformationUpdatedToConfigure.ftl">
},
-->

View File

@@ -0,0 +1,42 @@
<#--
[
{
"Header": {
"ProjectID": "${projectRP}"
},
"ID": {
<#if carrier_apt.constant_appointment?? && carrier_apt.constant_appointment== "true">
<#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!="">
"RefID": "${carrier_apt.appointment_reference?json_string}-${carrier_apt.year_number}-${carrier_apt.appointment_number}"
<#else>
"RefID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}"
</#if>
<#else>
<#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!="">
"RefID": "${carrier_apt.appointment_reference?json_string}"
<#else>
"RefID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}"
</#if>
</#if>
},
"Payload": {
"ActorID": "${RFXtoRPprefixDepot(carrier_apt.physical_depot?json_string)}",
<#--To configure-->
<#-- "CarrierInformation": [
{
"Key": "string",
"Value": {
"Bool": "true / false",
"Float": 3.1415,
"Int": 42,
"String": "Hello World !",
"Timestamp": {
"AuthorTimeZone": "Europe/Paris",
"DateTime": "2023-01-01T00:00:00Z"
}
}
]
}
}
]
-->

View File

@@ -0,0 +1,60 @@
[
<#assign ref_datetime = RfxDateTimetoUTCWithTimezone(carrier_apt.metadata.creation_datetime,time_zone_rfx) />
{
"Header": {
"ProjectID": "${projectRP}"
},
"ID": {
<#if carrier_apt.constant_appointment?? && carrier_apt.constant_appointment== "true">
<#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!="">
"RefID": "${carrier_apt.appointment_reference?json_string}-${carrier_apt.year_number}-${carrier_apt.appointment_number}",
<#else>
"RefID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}",
</#if>
<#else>
<#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!="">
"RefID": "${carrier_apt.appointment_reference?json_string}",
<#else>
"RefID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}",
</#if>
</#if>
"RefDate": {
"DateTime": "${ref_datetime}",
"AuthorTimeZone": "${time_zone_rfx}"
},
"CustomFields": [
{
"Key": "depot",
"Value": "${carrier_apt.physical_depot?json_string}"
},
{
"Key": "year",
"Value": "${carrier_apt.year_number?json_string}"
},
{
"Key": "number",
"Value": "${carrier_apt.appointment_number?json_string}"
},
{
"Key": "reference",
"Value": "${carrier_apt.appointment_reference?json_string}"
},
{
"Key": "carrier",
"Value": "${carrier_apt.planned_carrier?json_string}"
},
{
"Key": "loading",
"Value": "${carrier_apt.load_appointment?json_string}"
},
{
"Key": "unloading",
"Value": "${carrier_apt.unloading_appointment?json_string}"
}
]
},
"Payload":{
"ActorID": "${RFXtoRPprefixDepot(carrier_apt.physical_depot?json_string)}"
}
}
]

View File

@@ -0,0 +1,9 @@
<#-- A décommenter si besoin de les utiliser-->
<#-- Uncomment if you need to use them-->
<#--{
<#assign apiReflexPlatformID = ApiReflexPlatformID.AppointmentMetaDataUpdated>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrCarrierApt_AppointmentMetadataUpdatedToConfigure.ftl">
},
-->

View File

@@ -0,0 +1,42 @@
<#--
[
{
"Header": {
"ProjectID": "${projectRP}"
},
"ID": {
<#if carrier_apt.constant_appointment?? && carrier_apt.constant_appointment== "true">
<#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!="">
"RefID": "${carrier_apt.appointment_reference?json_string}-${carrier_apt.year_number}-${carrier_apt.appointment_number}"
<#else>
"RefID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}"
</#if>
<#else>
<#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!="">
"RefID": "${carrier_apt.appointment_reference?json_string}"
<#else>
"RefID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}"
</#if>
</#if>
},
"Payload": {
"ActorID": "${RFXtoRPprefixDepot(carrier_apt.physical_depot?json_string)}",
<#--To configure-->
<#-- "MetaData": [
{
"Key": "string",
"Value": {
"Bool": "true / false",
"Float": 3.1415,
"Int": 42,
"String": "Hello World !",
"Timestamp": {
"AuthorTimeZone": "Europe/Paris",
"DateTime": "2023-01-01T00:00:00Z"
}
}
]
}
}
]
-->

View File

@@ -0,0 +1,192 @@
[
<#assign creation_datetime = RfxDateTimetoUTCWithTimezone(carrier_apt.metadata.creation_datetime,time_zone_rfx) />
{
"Header":{
"ProjectID": "${projectRP}:${RFXtoRPprefixDepot(carrier_apt.physical_depot?json_string)}"
},
"ID":{
"RefDate": {
"DateTime": "${creation_datetime}",
"AuthorTimeZone": "${time_zone_rfx}"
},
<#if carrier_apt.constant_appointment?? && carrier_apt.constant_appointment== "true">
<#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!="">
"RefID": "${carrier_apt.appointment_reference?json_string}-${carrier_apt.year_number}-${carrier_apt.appointment_number}",
<#else>
"RefID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}",
</#if>
<#else>
<#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!="">
"RefID": "${carrier_apt.appointment_reference?json_string}",
<#else>
"RefID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}",
</#if>
</#if>
"CustomFields": [
{
"Key": "depot",
"Value": "${carrier_apt.physical_depot?json_string}"
},
{
"Key": "year",
"Value": "${carrier_apt.year_number?json_string}"
},
{
"Key": "number",
"Value": "${carrier_apt.appointment_number?json_string}"
},
{
"Key": "reference",
"Value": "${carrier_apt.appointment_reference?json_string}"
},
{
"Key": "carrier",
"Value": "${carrier_apt.planned_carrier?json_string}"
},
{
"Key": "loading",
"Value": "${carrier_apt.load_appointment?json_string}"
},
{
"Key": "unloading",
"Value": "${carrier_apt.unloading_appointment?json_string}"
}
]
},
"Payload": {
"TimeZone":"${time_zone_rfx}",
<#if carrier_apt.unloading_appointment == "true" && carrier_apt.load_appointment == "false">
<#if carrier_apt.planned_unloading_start_datetime?starts_with("00") || carrier_apt.planned_unloading_start_datetime?contains("-00-") || carrier_apt.planned_unloading_end_datetime?starts_with("00") || carrier_apt.planned_unloading_end_datetime?contains("-00-")>
<#stop "planned_unloading_start_datetime or planned_unloading_end_datetime field of appointmend is not initialized" >
</#if>
<#assign appointmentType = AppointmentType.APPOINTMENT_TYPE_UNLOADING>
<#assign duration = DurationBetweenTwoDatetimeInSeconds(carrier_apt.planned_unloading_start_datetime?datetime.iso,carrier_apt.planned_unloading_end_datetime?datetime.iso) />
<#if (duration < 0)>
<#stop "planned_unloading_start_datetime or planned_unloading_end_datetime field of appointmend are not valid" >
<#else>
<#if (duration == 0)>
<#assign duration = 1 />
</#if>
</#if>
<#else>
<#if carrier_apt.unloading_appointment == "false" && carrier_apt.load_appointment == "true" >
<#if carrier_apt.planned_load_start_datetime?starts_with("00") || carrier_apt.planned_load_start_datetime?contains("-00-") || carrier_apt.planned_load_end_datetime?starts_with("00") || carrier_apt.planned_load_end_datetime?contains("-00-")>
<#stop "planned_load_start_datetime or planned_load_end_datetime field of appointmend is not initialized" >
</#if>
<#assign appointmentType = AppointmentType.APPOINTMENT_TYPE_LOADING>
<#assign duration = DurationBetweenTwoDatetimeInSeconds(carrier_apt.planned_load_start_datetime?datetime.iso,carrier_apt.planned_load_end_datetime?datetime.iso) />
<#if (duration < 0)>
<#stop "planned_load_start_datetime or planned_load_end_datetime field of appointmend are not valid" >
<#else>
<#if (duration == 0)>
<#assign duration = 1 />
</#if>
</#if>
<#else>
<#if carrier_apt.unloading_appointment == "true" && carrier_apt.load_appointment == "true">
<#if carrier_apt.planned_load_end_datetime?starts_with("00") || carrier_apt.planned_load_end_datetime?contains("-00-") || carrier_apt.planned_unloading_start_datetime?starts_with("00") || carrier_apt.planned_unloading_start_datetime?contains("-00-") >
<#stop "planned_unloading_start_datetime or planned_load_end_datetime field of appointmend is not initialized" >
</#if>
<#assign appointmentType = AppointmentType.APPOINTMENT_TYPE_UNLOADING>
<#assign duration = DurationBetweenTwoDatetimeInSeconds(carrier_apt.planned_unloading_start_datetime?datetime.iso,carrier_apt.planned_load_end_datetime?datetime.iso) />
<#if (duration < 0)>
<#stop "planned_unloading_start_datetime or planned_load_end_datetime field of appointmend are not valid" >
<#else>
<#if (duration == 0)>
<#assign duration = 1 />
</#if>
</#if>
<#else>
<#stop "Appointment type not supported" >
</#if>
</#if>
</#if>
"AppointmentType": "${appointmentType}",
"Emails": ["${carrier_apt.creation_user_email?json_string}"],
<#include "RFXtoRP_HsrCarrierApt_SegmentationSelections.ftl">,
<#include "RFXtoRP_HsrCarrierApt_CarrierInformation.ftl">,
<#include "RFXtoRP_HsrCarrierApt_MetadataAppointment.ftl">,
<#if carrier_apt.physical_receipt_list?? && (carrier_apt.physical_receipt_list?filter(l ->l??)?size != 0)>
"Unloading" :
{
"Projects" : [{
"Commissions": [
<#list carrier_apt.physical_receipt_list?filter(l ->l??) as physical_receipt>
{
"ActorID": "${RFXtoRPprefixDepot(carrier_apt.physical_depot?json_string)}",
<#if physical_receipt.physical_receipt_reference?? && physical_receipt.physical_receipt_reference!="">
"OrderID": "${physical_receipt.physical_receipt_reference?json_string}",
<#else>
"OrderID": "R${carrier_apt.physical_depot?json_string}${physical_receipt.receipt_activity?json_string}${physical_receipt.originator_code?json_string}${physical_receipt.receipt_year}${physical_receipt.receipt_number}",
</#if>
"ExecutionflowID": "R${carrier_apt.physical_depot?json_string}${physical_receipt.receipt_activity?json_string}${physical_receipt.originator_code?json_string}${physical_receipt.receipt_year?json_string}${physical_receipt.receipt_number?json_string}",
"ProjectID": "${projectRP}",
"PartnerAppID": "${partnerApplicationRP}",
"OrganisationID": "${organisationRP}"
}<#sep>,</#sep>
</#list>
],
"ProjectID" : "${projectRP}"
}]
},
<#else>
<#if appointmentType == AppointmentType.APPOINTMENT_TYPE_UNLOADING>
"Unloading" :
<#else>
"Loading" :
</#if>
{
"Projects" : [{
"Commissions": [{
"ActorID": "${RFXtoRPprefixDepot(carrier_apt.physical_depot?json_string)}",
"ProjectID": "${projectRP}",
"PartnerAppID": "${partnerApplicationRP}",
"OrganisationID": "${organisationRP}"
}],
"ProjectID" : "${projectRP}"
}]
},
<#if carrier_apt.unloading_appointment == "true" && carrier_apt.load_appointment == "true">
"Reason": "UNLOADING AND LOADING / ${carrier_apt.appointment_designation?json_string}",
<#else>
<#if carrier_apt.appointment_designation?? && carrier_apt.appointment_designation!="">
"Reason": "${carrier_apt.appointment_designation?json_string}",
<#else>
<#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!="">
"Reason": "${carrier_apt.appointment_reference?json_string}",
<#else>
"Reason": "${carrier_apt.year_number}-${carrier_apt.appointment_number}",
</#if>
</#if>
</#if>
</#if>
"Slot": {
<#-- calcul de de la durée en fonction des start et end time-->
"DurationInSeconds": "${duration}",
<#if carrier_apt.unloading_appointment == "true" && carrier_apt.load_appointment == "false" >
<#if carrier_apt.planned_unloading_start_datetime?starts_with("00") || carrier_apt.planned_unloading_start_datetime?contains("-00-")>
<#stop "planned_unloading_start_datetime field of appointmend is not initialized" >
</#if>
"StartDateTime": "${carrier_apt.planned_unloading_start_datetime}"
<#else>
<#if carrier_apt.unloading_appointment == "false" && carrier_apt.load_appointment == "true">
<#if carrier_apt.planned_load_start_datetime?starts_with("00") || carrier_apt.planned_load_start_datetime?contains("-00-")>
<#stop "planned_load_start_datetime field of appointmend is not initialized" >
</#if>
"StartDateTime": "${carrier_apt.planned_load_start_datetime}"
<#else>
<#if carrier_apt.unloading_appointment == "true" && carrier_apt.load_appointment == "true">
<#if carrier_apt.planned_unloading_start_datetime?starts_with("00") || carrier_apt.planned_unloading_start_datetime?contains("-00-")>
<#stop "planned_unloading_start_datetime field of appointmend is not initialized" >
</#if>
"StartDateTime": "${carrier_apt.planned_unloading_start_datetime}"
<#else>
<#stop "Appointment type not supported" >
</#if>
</#if>
</#if>
}
}
}
]

View File

@@ -0,0 +1,58 @@
<#assign update_datetime = RfxDateTimetoUTCWithTimezone(carrier_apt.metadata.last_update_datetime,time_zone_rfx) />
[
{
"ID":{
<#if carrier_apt.constant_appointment?? && carrier_apt.constant_appointment== "true">
<#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!="">
"RefID": "${carrier_apt.appointment_reference?json_string}-${carrier_apt.year_number}-${carrier_apt.appointment_number}",
<#else>
"RefID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}",
</#if>
<#else>
<#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!="">
"RefID": "${carrier_apt.appointment_reference?json_string}",
<#else>
"RefID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}",
</#if>
</#if>
"RefDate": {
"DateTime": "${update_datetime}",
"AuthorTimeZone": "${time_zone_rfx}"
},
"CustomFields": [
{
"Key": "depot",
"Value": "${carrier_apt.physical_depot?json_string}"
},
{
"Key": "year",
"Value": "${carrier_apt.year_number?json_string}"
},
{
"Key": "number",
"Value": "${carrier_apt.appointment_number?json_string}"
},
{
"Key": "reference",
"Value": "${carrier_apt.appointment_reference?json_string}"
},
{
"Key": "carrier",
"Value": "${carrier_apt.planned_carrier?json_string}"
},
{
"Key": "loading",
"Value": "${carrier_apt.load_appointment?json_string}"
},
{
"Key": "unloading",
"Value": "${carrier_apt.unloading_appointment?json_string}"
}
]
},
"Header": {
"ProjectID": "${projectRP}:${RFXtoRPprefixDepot(carrier_apt.physical_depot?json_string)}"
}
}
]

View File

@@ -0,0 +1,196 @@
[
{
<#assign update_datetime = RfxDateTimetoUTCWithTimezone(carrier_apt.metadata.last_update_datetime,time_zone_rfx) />
"Header":{
"ProjectID": "${projectRP}:${RFXtoRPprefixDepot(carrier_apt.physical_depot?json_string)}"
},
"ID":{
"RefDate": {
"DateTime": "${update_datetime}",
"AuthorTimeZone": "${time_zone_rfx}"
},
<#if carrier_apt.constant_appointment?? && carrier_apt.constant_appointment== "true">
<#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!="">
"RefID": "${carrier_apt.appointment_reference?json_string}-${carrier_apt.year_number}-${carrier_apt.appointment_number}",
<#else>
"RefID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}",
</#if>
<#else>
<#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!="">
"RefID": "${carrier_apt.appointment_reference?json_string}",
<#else>
"RefID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}",
</#if>
</#if>
"CustomFields": [
{
"Key": "depot",
"Value": "${carrier_apt.physical_depot?json_string}"
},
{
"Key": "year",
"Value": "${carrier_apt.year_number?json_string}"
},
{
"Key": "number",
"Value": "${carrier_apt.appointment_number?json_string}"
},
{
"Key": "reference",
"Value": "${carrier_apt.appointment_reference?json_string}"
},
{
"Key": "carrier",
"Value": "${carrier_apt.planned_carrier?json_string}"
},
{
"Key": "loading",
"Value": "${carrier_apt.load_appointment?json_string}"
},
{
"Key": "unloading",
"Value": "${carrier_apt.unloading_appointment?json_string}"
}
]
},
"Payload": {
<#if carrier_apt.unloading_appointment == "true" && carrier_apt.load_appointment == "false">
<#if carrier_apt.planned_unloading_start_datetime?starts_with("00") || carrier_apt.planned_unloading_start_datetime?contains("-00-") || carrier_apt.planned_unloading_end_datetime?starts_with("00") || carrier_apt.planned_unloading_end_datetime?contains("-00-")>
<#stop "planned_unloading_start_datetime or planned_unloading_end_datetime field of appointmend is not initialized" >
</#if>
<#assign appointmentType = AppointmentType.APPOINTMENT_TYPE_UNLOADING>
<#assign duration = DurationBetweenTwoDatetimeInSeconds(carrier_apt.planned_unloading_start_datetime?datetime.iso,carrier_apt.planned_unloading_end_datetime?datetime.iso) />
<#if (duration <= 0)>
<#stop "planned_unloading_start_datetime or planned_unloading_end_datetime field of appointmend are not valid" >
</#if>
<#else>
<#if carrier_apt.unloading_appointment == "false" && carrier_apt.load_appointment == "true" >
<#if carrier_apt.planned_load_start_datetime?starts_with("00") || carrier_apt.planned_load_start_datetime?contains("-00-") || carrier_apt.planned_load_end_datetime?starts_with("00") || carrier_apt.planned_load_end_datetime?contains("-00-")>
<#stop "planned_load_start_datetime or planned_load_end_datetime field of appointmend is not initialized" >
</#if>
<#assign appointmentType = AppointmentType.APPOINTMENT_TYPE_LOADING>
<#assign duration = DurationBetweenTwoDatetimeInSeconds(carrier_apt.planned_load_start_datetime?datetime.iso,carrier_apt.planned_load_end_datetime?datetime.iso) />
<#if (duration <= 0)>
<#stop "planned_unloading_start_datetime or planned_unloading_end_datetime field of appointmend are not valid" >
</#if>
<#else>
<#if carrier_apt.unloading_appointment == "true" && carrier_apt.load_appointment == "true">
<#if carrier_apt.planned_load_end_datetime?starts_with("00") || carrier_apt.planned_load_end_datetime?contains("-00-") || carrier_apt.planned_unloading_start_datetime?starts_with("00") || carrier_apt.planned_unloading_start_datetime?contains("-00-") >
<#stop "planned_unloading_start_datetime or planned_load_end_datetime field of appointmend is not initialized" >
</#if>
<#assign appointmentType = AppointmentType.APPOINTMENT_TYPE_UNLOADING>
<#assign duration = DurationBetweenTwoDatetimeInSeconds(carrier_apt.planned_unloading_start_datetime?datetime.iso,carrier_apt.planned_load_end_datetime?datetime.iso) />
<#if (duration <= 0)>
<#stop "planned_unloading_start_datetime or planned_load_end_datetime field of appointmend are not valid" >
</#if>
<#else>
<#stop "Appointment type not supported" >
</#if>
</#if>
</#if>
"TimeZone":"${time_zone_rfx}",
<#if carrier_apt.physical_receipt_list?? && (carrier_apt.physical_receipt_list?filter(l ->l??)?size != 0) && ((carrier_apt.unloading_appointment =="true" && carrier_apt.load_appointment =="false") || (carrier_apt.unloading_appointment =="false" && carrier_apt.load_appointment =="true"))>
"Unloading" :
{
"Projects" : [
{
"Commissions": [
<#list carrier_apt.physical_receipt_list?filter(l ->l??) as physical_receipt>
{
"ActorID": "${RFXtoRPprefixDepot(carrier_apt.physical_depot?json_string)}",
<#if physical_receipt.physical_receipt_reference?? && physical_receipt.physical_receipt_reference!="">
"OrderID": "${physical_receipt.physical_receipt_reference?json_string}",
<#else>
"OrderID": "R${carrier_apt.physical_depot?json_string}${physical_receipt.receipt_activity?json_string}${physical_receipt.originator_code?json_string}${physical_receipt.receipt_year}${physical_receipt.receipt_number}",
</#if>
"ExecutionflowID": "R${carrier_apt.physical_depot?json_string}${physical_receipt.receipt_activity?json_string}${physical_receipt.originator_code?json_string}${physical_receipt.receipt_year?json_string}${physical_receipt.receipt_number?json_string}",
"ProjectID": "${projectRP}",
"PartnerAppID": "${partnerApplicationRP}",
"OrganisationID": "${organisationRP}"
}<#sep>,</#sep>
</#list>
],
"ProjectID" : "${projectRP}"
}]
},
"Reason": "",
<#else>
<#if appointmentType == AppointmentType.APPOINTMENT_TYPE_LOADING>
"Loading" :
{
"Projects" : [
{
"Commissions": [
{
"ActorID": "${RFXtoRPprefixDepot(carrier_apt.physical_depot?json_string)}",
"ProjectID": "${projectRP}",
"PartnerAppID": "${partnerApplicationRP}",
"OrganisationID": "${organisationRP}"
}
],
"ProjectID" : "${projectRP}"
}]
},
<#else>
<#if appointmentType == AppointmentType.APPOINTMENT_TYPE_UNLOADING>
"Unloading" :
{
"Projects" : [
{
"Commissions": [
{
"ActorID": "${RFXtoRPprefixDepot(carrier_apt.physical_depot?json_string)}",
"ProjectID": "${projectRP}",
"PartnerAppID": "${partnerApplicationRP}",
"OrganisationID": "${organisationRP}"
}
],
"ProjectID" : "${projectRP}"
}]
},
</#if>
</#if>
<#if carrier_apt.unloading_appointment == "true" && carrier_apt.load_appointment == "true">
"Reason": "UNLOADING AND LOADING / ${carrier_apt.appointment_designation?json_string}",
<#else>
<#if carrier_apt.appointment_designation?? && carrier_apt.appointment_designation!="">
"Reason": "${carrier_apt.appointment_designation?json_string}",
<#else>
<#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!="">
"Reason": "${carrier_apt.appointment_reference?json_string}",
<#else>
"Reason": "${carrier_apt.year_number}-${carrier_apt.appointment_number}",
</#if>
</#if>
</#if>
</#if>
"Slot": {
<#-- calcul de de la durée en fonction des start et end time-->
"DurationInSeconds": "${duration}",
<#if carrier_apt.unloading_appointment == "true" && carrier_apt.load_appointment == "false" >
<#if carrier_apt.planned_unloading_start_datetime?starts_with("00") || carrier_apt.planned_unloading_start_datetime?contains("-00-")>
<#stop "planned_unloading_start_datetime field of appointmend is not initialized" >
</#if>
"StartDateTime": "${carrier_apt.planned_unloading_start_datetime}"
<#else>
<#if carrier_apt.unloading_appointment == "false" && carrier_apt.load_appointment == "true">
<#if carrier_apt.planned_load_start_datetime?starts_with("00") || carrier_apt.planned_load_start_datetime?contains("-00-")>
<#stop "planned_load_start_datetime field of appointmend is not initialized" >
</#if>
"StartDateTime": "${carrier_apt.planned_load_start_datetime}"
<#else>
<#if carrier_apt.unloading_appointment == "true" && carrier_apt.load_appointment == "true">
<#if carrier_apt.planned_unloading_start_datetime?starts_with("00") || carrier_apt.planned_unloading_start_datetime?contains("-00-")>
<#stop "planned_unloading_start_datetime field of appointmend is not initialized" >
</#if>
"StartDateTime": "${carrier_apt.planned_unloading_start_datetime}"
<#else>
<#stop "Appointment type not supported" >
</#if>
</#if>
</#if>
}
}
}
]

View File

@@ -0,0 +1,30 @@
[
<#assign ref_datetime = RfxDateTimetoUTCWithTimezone(carrier_apt.metadata.last_update_datetime,time_zone_rfx) />
{
"Header": {
"ProjectID": "${projectRP}"
},
"ID": {
<#if carrier_apt.constant_appointment?? && carrier_apt.constant_appointment== "true">
<#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!="">
"RefID": "${carrier_apt.appointment_reference?json_string}-${carrier_apt.year_number}-${carrier_apt.appointment_number}",
<#else>
"RefID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}",
</#if>
<#else>
<#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!="">
"RefID": "${carrier_apt.appointment_reference?json_string}",
<#else>
"RefID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}",
</#if>
</#if>
"RefDate": {
"DateTime": "${ref_datetime}",
"AuthorTimeZone": "${time_zone_rfx}"
}
},
"Payload":{
"ActorID": "${RFXtoRPprefixDepot(carrier_apt.physical_depot?json_string)}"
}
}
]

View File

@@ -0,0 +1,30 @@
[
<#assign ref_datetime = RfxDateTimetoUTCWithTimezone(carrier_apt.metadata.last_update_datetime,time_zone_rfx) />
{
"Header": {
"ProjectID": "${projectRP}"
},
"ID": {
<#if carrier_apt.constant_appointment?? && carrier_apt.constant_appointment== "true">
<#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!="">
"RefID": "${carrier_apt.appointment_reference?json_string}-${carrier_apt.year_number}-${carrier_apt.appointment_number}",
<#else>
"RefID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}",
</#if>
<#else>
<#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!="">
"RefID": "${carrier_apt.appointment_reference?json_string}",
<#else>
"RefID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}",
</#if>
</#if>
"RefDate": {
"DateTime": "${ref_datetime}",
"AuthorTimeZone": "${time_zone_rfx}"
}
},
"Payload":{
"ActorID": "${RFXtoRPprefixDepot(carrier_apt.physical_depot?json_string)}"
}
}
]

View File

@@ -0,0 +1,31 @@
[
<#assign ref_datetime = RfxDateTimetoUTCWithTimezone(carrier_apt.metadata.creation_datetime,time_zone_rfx) />
<#assign ref_datetime2 = AddSecondsToDatetime(ref_datetime?datetime.iso, 60)?iso_utc />
{
"Header": {
"ProjectID": "${projectRP}"
},
"ID": {
<#if carrier_apt.constant_appointment?? && carrier_apt.constant_appointment== "true">
<#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!="">
"RefID": "${carrier_apt.appointment_reference?json_string}-${carrier_apt.year_number}-${carrier_apt.appointment_number}",
<#else>
"RefID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}",
</#if>
<#else>
<#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!="">
"RefID": "${carrier_apt.appointment_reference?json_string}",
<#else>
"RefID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}",
</#if>
</#if>
"RefDate": {
"DateTime": "${ref_datetime2}",
"AuthorTimeZone": "${time_zone_rfx}"
}
},
"Payload":{
"ActorID": "${RFXtoRPprefixDepot(carrier_apt.physical_depot?json_string)}"
}
}
]

View File

@@ -0,0 +1,3 @@
"CarrierInformation": [
]

View File

@@ -0,0 +1,30 @@
[
<#assign ref_datetime = RfxDateTimetoUTCWithTimezone(carrier_apt.metadata.last_update_datetime,time_zone_rfx) />
{
"Header": {
"ProjectID": "${projectRP}"
},
"ID": {
<#if carrier_apt.constant_appointment?? && carrier_apt.constant_appointment== "true">
<#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!="">
"RefID": "${carrier_apt.appointment_reference?json_string}-${carrier_apt.year_number}-${carrier_apt.appointment_number}",
<#else>
"RefID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}",
</#if>
<#else>
<#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!="">
"RefID": "${carrier_apt.appointment_reference?json_string}",
<#else>
"RefID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}",
</#if>
</#if>
"RefDate": {
"DateTime": "${ref_datetime}",
"AuthorTimeZone": "${time_zone_rfx}"
}
},
"Payload":{
"ActorID": "${RFXtoRPprefixDepot(carrier_apt.physical_depot?json_string)}"
}
}
]

View File

@@ -0,0 +1,30 @@
[
<#assign ref_datetime = RfxDateTimetoUTCWithTimezone(carrier_apt.metadata.last_update_datetime,time_zone_rfx) />
{
"Header": {
"ProjectID": "${projectRP}"
},
"ID": {
<#if carrier_apt.constant_appointment?? && carrier_apt.constant_appointment== "true">
<#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!="">
"RefID": "${carrier_apt.appointment_reference?json_string}-${carrier_apt.year_number}-${carrier_apt.appointment_number}",
<#else>
"RefID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}",
</#if>
<#else>
<#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!="">
"RefID": "${carrier_apt.appointment_reference?json_string}",
<#else>
"RefID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}",
</#if>
</#if>
"RefDate": {
"DateTime": "${ref_datetime}",
"AuthorTimeZone": "${time_zone_rfx}"
}
},
"Payload":{
"ActorID": "${RFXtoRPprefixDepot(carrier_apt.physical_depot?json_string)}"
}
}
]

View File

@@ -0,0 +1,5 @@
"MetaData": [
]

View File

@@ -0,0 +1,6 @@
"SegmentationSelections": [
]

View File

@@ -0,0 +1,22 @@
<#assign ref_datetime = RfxDateTimetoUTCWithTimezone(carrier_apt.metadata.last_update_datetime,time_zone_rfx) />
[
{
<#if carrier_apt.constant_appointment?? && carrier_apt.constant_appointment== "true">
<#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!="">
"AppointmentID": "${carrier_apt.appointment_reference?json_string}-${carrier_apt.year_number}-${carrier_apt.appointment_number}",
<#else>
"AppointmentID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}",
</#if>
<#else>
<#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!="">
"AppointmentID": "${carrier_apt.appointment_reference?json_string}",
<#else>
"AppointmentID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}",
</#if>
</#if>
"Header": {
"ProjectID": "${projectRP}"
},
"ActorID": "${RFXtoRPprefixDepot(carrier_apt.physical_depot?json_string)}"
}
]

View File

@@ -0,0 +1,30 @@
[
<#assign ref_datetime = RfxDateTimetoUTCWithTimezone(carrier_apt.metadata.last_update_datetime,time_zone_rfx) />
{
"Header": {
"ProjectID": "${projectRP}"
},
"ID": {
<#if carrier_apt.constant_appointment?? && carrier_apt.constant_appointment== "true">
<#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!="">
"RefID": "${carrier_apt.appointment_reference?json_string}-${carrier_apt.year_number}-${carrier_apt.appointment_number}", <#-- pour les RDV récurrents, aligner les statuts quand la balise sera dispo -->
<#else>
"RefID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}", <#-- pour les RDV récurrents, aligner les statuts quand la balise sera dispo -->
</#if>
<#else>
<#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!="">
"RefID": "${carrier_apt.appointment_reference?json_string}",
<#else>
"RefID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}",
</#if>
</#if>
"RefDate": {
"DateTime": "${ref_datetime}",
"AuthorTimeZone": "${time_zone_rfx}"
}
},
"Payload":{
"ActorID": "${RFXtoRPprefixDepot(carrier_apt.physical_depot?json_string)}"
}
}
]

View File

@@ -0,0 +1,30 @@
[
<#assign ref_datetime = RfxDateTimetoUTCWithTimezone(carrier_apt.metadata.last_update_datetime,time_zone_rfx) />
{
"Header": {
"ProjectID": "${projectRP}"
},
"ID": {
<#if carrier_apt.constant_appointment?? && carrier_apt.constant_appointment== "true">
<#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!="">
"RefID": "${carrier_apt.appointment_reference?json_string}-${carrier_apt.year_number}-${carrier_apt.appointment_number}", <#-- pour les RDV récurrents, aligner les statuts quand la balise sera dispo -->
<#else>
"RefID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}", <#-- pour les RDV récurrents, aligner les statuts quand la balise sera dispo -->
</#if>
<#else>
<#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!="">
"RefID": "${carrier_apt.appointment_reference?json_string}",
<#else>
"RefID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}",
</#if>
</#if>
"RefDate": {
"DateTime": "${ref_datetime}",
"AuthorTimeZone": "${time_zone_rfx}"
}
},
"Payload":{
"ActorID": "${RFXtoRPprefixDepot(carrier_apt.physical_depot?json_string)}"
}
}
]

View File

@@ -0,0 +1,149 @@
[
{
<#assign creation_datetime = RfxDateTimetoUTCWithTimezone(carrier_apt.metadata.creation_datetime,time_zone_rfx) />
"Header":{
"ProjectID": "${projectRP}"
},
<#if carrier_apt.constant_appointment?? && carrier_apt.constant_appointment== "true">
<#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!="">
"AppointmentID": "${carrier_apt.appointment_reference?json_string}-${carrier_apt.year_number}-${carrier_apt.appointment_number}",
<#else>
"AppointmentID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}",
</#if>
<#else>
<#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!="">
"AppointmentID": "${carrier_apt.appointment_reference?json_string}",
<#else>
"AppointmentID": "${carrier_apt.year_number}-${carrier_apt.appointment_number}",
</#if>
</#if>
<#if carrier_apt.unloading_appointment == "true" && carrier_apt.load_appointment == "false">
<#if carrier_apt.planned_unloading_start_datetime?starts_with("00") || carrier_apt.planned_unloading_start_datetime?contains("-00-") || carrier_apt.planned_unloading_end_datetime?starts_with("00") || carrier_apt.planned_unloading_end_datetime?contains("-00-")>
<#stop "planned_unloading_start_datetime or planned_unloading_end_datetime field of appointmend is not initialized" >
</#if>
<#assign appointmentType = AppointmentType.APPOINTMENT_TYPE_UNLOADING>
<#assign duration = DurationBetweenTwoDatetimeInSeconds(carrier_apt.planned_unloading_start_datetime?datetime.iso,carrier_apt.planned_unloading_end_datetime?datetime.iso) />
<#if (duration <= 0)>
<#stop "planned_unloading_start_datetime or planned_unloading_end_datetime field of appointmend are not valid" >
</#if>
<#else>
<#if carrier_apt.unloading_appointment == "false" && carrier_apt.load_appointment == "true" >
<#if carrier_apt.planned_load_start_datetime?starts_with("00") || carrier_apt.planned_load_start_datetime?contains("-00-") || carrier_apt.planned_load_end_datetime?starts_with("00") || carrier_apt.planned_load_end_datetime?contains("-00-")>
<#stop "planned_load_start_datetime or planned_load_end_datetime field of appointmend is not initialized" >
</#if>
<#assign appointmentType = AppointmentType.APPOINTMENT_TYPE_LOADING>
<#assign duration = DurationBetweenTwoDatetimeInSeconds(carrier_apt.planned_load_start_datetime?datetime.iso,carrier_apt.planned_load_end_datetime?datetime.iso) />
<#if (duration <= 0)>
<#stop "planned_unloading_start_datetime or planned_unloading_end_datetime field of appointmend are not valid" >
</#if>
<#else>
<#if carrier_apt.unloading_appointment == "true" && carrier_apt.load_appointment == "true">
<#if carrier_apt.unloading_appointment == "true" && carrier_apt.load_appointment == "true">
<#if carrier_apt.planned_load_end_datetime?starts_with("00") || carrier_apt.planned_load_end_datetime?contains("-00-") || carrier_apt.planned_unloading_start_datetime?starts_with("00") || carrier_apt.planned_unloading_start_datetime?contains("-00-") >
<#stop "planned_unloading_start_datetime or planned_load_end_datetime field of appointmend is not initialized" >
</#if>
<#assign appointmentType = AppointmentType.APPOINTMENT_TYPE_UNLOADING>
<#assign duration = DurationBetweenTwoDatetimeInSeconds(carrier_apt.planned_unloading_start_datetime?datetime.iso,carrier_apt.planned_load_end_datetime?datetime.iso) />
<#if (duration <= 0)>
<#stop "planned_unloading_start_datetime or planned_load_end_datetime field of appointmend are not valid" >
</#if>
<#else>
<#assign appointmentType = AppointmentType.APPOINTMENT_TYPE_UNKNOWN>
<#assign duration = 0 />
</#if>
</#if>
</#if>
</#if>
"ActorID": "${RFXtoRPprefixDepot(carrier_apt.physical_depot?json_string)}",
"TimeZone":"${time_zone_rfx}",
"CustomFields": [
{
"Key": "depot",
"Value": "${carrier_apt.physical_depot?json_string}"
},
{
"Key": "year",
"Value": "${carrier_apt.year_number?json_string}"
},
{
"Key": "number",
"Value": "${carrier_apt.appointment_number?json_string}"
},
{
"Key": "reference",
"Value": "${carrier_apt.appointment_reference?json_string}"
},
{
"Key": "carrier",
"Value": "${carrier_apt.planned_carrier?json_string}"
},
{
"Key": "loading",
"Value": "${carrier_apt.load_appointment?json_string}"
},
{
"Key": "unloading",
"Value": "${carrier_apt.unloading_appointment?json_string}"
}
],
<#if carrier_apt.physical_receipt_list?? && (carrier_apt.physical_receipt_list?filter(l ->l??)?size != 0) && ((carrier_apt.unloading_appointment =="true" && carrier_apt.load_appointment =="false") || (carrier_apt.unloading_appointment =="false" && carrier_apt.load_appointment =="true"))>
"Commissions": [
<#list carrier_apt.physical_receipt_list?filter(l ->l??) as physical_receipt>
{
"ActorID": "${RFXtoRPprefixDepot(carrier_apt.physical_depot?json_string)}",
<#if physical_receipt.physical_receipt_reference?? && physical_receipt.physical_receipt_reference!="">
"OrderID": "${physical_receipt.physical_receipt_reference?json_string}",
<#else>
"OrderID": "R${carrier_apt.physical_depot?json_string}${physical_receipt.receipt_activity?json_string}${physical_receipt.originator_code?json_string}${physical_receipt.receipt_year}${physical_receipt.receipt_number}",
</#if>
"ExecutionflowID": "R${carrier_apt.physical_depot?json_string}${physical_receipt.receipt_activity?json_string}${physical_receipt.originator_code?json_string}${physical_receipt.receipt_year?json_string}${physical_receipt.receipt_number?json_string}",
"ProjectID": "${projectRP}"
}<#sep>,</#sep>
</#list>
],
<#else>
<#if carrier_apt.unloading_appointment == "true" && carrier_apt.load_appointment == "true">
"Reason": "UNLOADING AND LOADING / ${carrier_apt.appointment_designation?json_string}",
<#else>
<#if carrier_apt.appointment_designation?? && carrier_apt.appointment_designation!="">
"Reason": "${carrier_apt.appointment_designation?json_string}",
<#else>
<#if carrier_apt.appointment_reference?? && carrier_apt.appointment_reference!="">
"Reason": "${carrier_apt.appointment_reference?json_string}",
<#else>
"Reason": "${carrier_apt.year_number}-${carrier_apt.appointment_number}",
</#if>
</#if>
</#if>
</#if>
"Slots": [{
<#-- calcul de de la durée en fonction des start et end time-->
"DurationInSeconds": "${duration}",
<#if carrier_apt.unloading_appointment == "true" && carrier_apt.load_appointment == "false" >
<#if carrier_apt.planned_unloading_start_datetime?starts_with("00") || carrier_apt.planned_unloading_start_datetime?contains("-00-")>
<#stop "planned_unloading_start_datetime field of appointmend is not initialized" >
</#if>
"StartDateTime": "${carrier_apt.planned_unloading_start_datetime}"
<#else>
<#if carrier_apt.unloading_appointment == "false" && carrier_apt.load_appointment == "true">
<#if carrier_apt.planned_load_start_datetime?starts_with("00") || carrier_apt.planned_load_start_datetime?contains("-00-")>
<#stop "planned_load_start_datetime field of appointmend is not initialized" >
</#if>
"StartDateTime": "${carrier_apt.planned_load_start_datetime}"
<#else>
<#if carrier_apt.unloading_appointment == "true" && carrier_apt.load_appointment == "true">
<#if carrier_apt.planned_unloading_start_datetime?starts_with("00") || carrier_apt.planned_unloading_start_datetime?contains("-00-")>
<#stop "planned_unloading_start_datetime field of appointmend is not initialized" >
</#if>
"StartDateTime": "${carrier_apt.planned_unloading_start_datetime}"
<#else>
<#stop "Appointment type not supported" >
</#if>
</#if>
</#if>
}]
}
]

View File

@@ -1,4 +1,10 @@
<#-- use protobuf of class HsrDepot to find HARDIS WMS fields names --> <#-- use protobuf of class HsrDepot to find HARDIS WMS fields names -->
<#-- Best practices:
If the SK is of type:
- string: add ?json_string (e.g. "${stock.batch_1?json_string}")
- boolean: possible values: true and false
- datetime: expected format: 2025-10-30T10:12:10.000Z
- decimal number: the separator is a point (e.g. 10.5)-->
"MetaData": [ ] "MetaData": [ ]

View File

@@ -27,14 +27,13 @@
"datas" : "datas" :
<#include "RFXtoRP_HsrPrepa_HandlingunitGoodsPrepared.ftl"> <#include "RFXtoRP_HsrPrepa_HandlingunitGoodsPrepared.ftl">
}, },
<#include "RFXtoRP_HsrPrepa_ExecutionflowMetadataUpdated.ftl">
{ {
<#assign apiReflexPlatformID = ApiReflexPlatformID.HandlingunitDispatched> <#assign apiReflexPlatformID = ApiReflexPlatformID.HandlingunitDispatched>
"apiReflexPlatformID" : "${apiReflexPlatformID}", "apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" : "datas" :
<#include "RFXtoRP_HsrPrepa_HandlingUnitDispatched.ftl"> <#include "RFXtoRP_HsrPrepa_HandlingUnitDispatched.ftl">
} }
<#if preparationOrder.load_data?? && preparationOrder.load_data.carrier_code?? && preparationOrder.load_data.carrier_code!=""> <#if preparationOrder.load_data?? && preparationOrder.load_data.carrier_code?? && preparationOrder.load_data.carrier_code!="">
, ,
{ {

View File

@@ -0,0 +1,27 @@
<#--
{
"Header": {
"ProjectID": "${projectRP}"
},
"ID":{
"RefID": "${Your_Object_ID}"
},
"Payload":{
"MetaData": [
{
"Key": "string",
"Value": {
"Bool": "true / false",
"Float": 3.1415,
"Int": 42,
"String": "Hello World !",
"Timestamp": {
"AuthorTimeZone": "Europe/Paris",
"DateTime": "2023-01-01T00:00:00Z"
}
}
}
]
}
}
-->

View File

@@ -0,0 +1,10 @@
<#-- A décommenter si besoin de les utiliser-->
<#-- Uncomment if you need to use them-->
<#--
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowMetaDataUpdated>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrPrepa_ExecutionflowMetaDataUpdatedToConfigure.ftl">
},
-->

View File

@@ -1,7 +1,10 @@
<#-- use protobuf of class HsrPrepa to find HARDIS WMS fields names --> <#-- use protobuf of class HsrPrepa to find HARDIS WMS fields names -->
<#-- <#-- Best practices:
"MetaData" :[ If the SK is of type:
] - string: add ?json_string (e.g. "${stock.batch_1?json_string}")
--> - boolean: possible values: true and false
- datetime: expected format: 2025-10-30T10:12:10.000Z
- decimal number: the separator is a point (e.g. 10.5)-->
"MetaData": [ ] "MetaData": [ ]

View File

@@ -1,5 +1,11 @@
<#-- use protobuf of class Hsrprepa to find HARDIS WMS fields names --> <#-- use protobuf of class Hsrprepa to find HARDIS WMS fields names -->
<#-- <#--
<#-- Best practices:
If the SK is of type:
- string: add ?json_string (e.g. "${stock.batch_1?json_string}")
- boolean: possible values: true and false
- datetime: expected format: 2025-10-30T10:12:10.000Z
- decimal number: the separator is a point (e.g. 10.5)
"SegmentationKeys": [ "SegmentationKeys": [
{ {
"Key": "Grade", "Key": "Grade",

View File

@@ -1,9 +1,10 @@
<#-- use protobuf of class HsrPrepa to find HARDIS WMS fields names --> <#-- use protobuf of class HsrPrepa to find HARDIS WMS fields names -->
<#-- <#-- Best practices:
"MetaData" :[ If the SK is of type:
- string: add ?json_string (e.g. "${stock.batch_1?json_string}")
- boolean: possible values: true and false
- datetime: expected format: 2025-10-30T10:12:10.000Z
- decimal number: the separator is a point (e.g. 10.5)-->
]
-->
"MetaData": [ ] "MetaData": [ ]

View File

@@ -24,6 +24,12 @@
"apiReflexPlatformID" : "${apiReflexPlatformID}", "apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" : "datas" :
<#include "RFXtoRP_HsrPro_ExecutionflowDetected.ftl"> <#include "RFXtoRP_HsrPro_ExecutionflowDetected.ftl">
},
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowCustomFieldsUpdated>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrPro_ExecutionflowCustomFieldsUpdated.ftl">
} }
<#else> <#else>
<#-- No line --> <#-- No line -->

View File

@@ -0,0 +1,44 @@
<#include "HfRpConfig.ftl">
<#include "ReflexUtils.ftl">
<#include "ActorPrefix.ftl">
[
{
"Header": {
"ProjectID": "${projectRP}"
},
"Payload" :{},
"ID":{
"CustomFields": [
{
"Key": "depot_code",
"Value": "${preparation_order.physical_depot_code?trim?json_string}"
},
{
"Key": "activity_code",
"Value": "${preparation_order.activity_code?trim?json_string}"
},
{
"Key": "originator_code",
"Value": "${preparation_order.originator_code?trim?json_string}"
},
{
"Key": "reference",
"Value": "${preparation_order.originator_reference?trim?json_string}"
},
{
"Key": "order_year",
"Value": "${preparation_order.preparation_order_year}"
},
{
"Key": "order_number",
"Value": "${preparation_order.preparation_order_number}"
}
],
<#if preparation_order.originator_reference?? && preparation_order.originator_reference!="">
"RefID": "${preparation_order.physical_depot_code?trim?json_string}${preparation_order.activity_code?trim?json_string}${preparation_order.originator_code?trim?json_string}${preparation_order.originator_reference?trim?json_string}"
<#else>
"RefID": "O${preparation_order.physical_depot_code?trim?json_string}${preparation_order.activity_code?trim?json_string}${preparation_order.originator_code?trim?json_string}${preparation_order.preparation_order_year}${preparation_order.preparation_order_number}"
</#if>
}
}
]

View File

@@ -9,6 +9,32 @@
"ProjectID": "${projectRP}" "ProjectID": "${projectRP}"
}, },
"ID": { "ID": {
"CustomFields": [
{
"Key": "depot_code",
"Value": "${preparation_order.physical_depot_code?trim?json_string}"
},
{
"Key": "activity_code",
"Value": "${preparation_order.activity_code?trim?json_string}"
},
{
"Key": "originator_code",
"Value": "${preparation_order.originator_code?trim?json_string}"
},
{
"Key": "reference",
"Value": "${preparation_order.originator_reference?trim?json_string}"
},
{
"Key": "order_year",
"Value": "${preparation_order.preparation_order_year}"
},
{
"Key": "order_number",
"Value": "${preparation_order.preparation_order_number}"
}
],
<#if preparation_order.originator_reference?? && preparation_order.originator_reference!=""> <#if preparation_order.originator_reference?? && preparation_order.originator_reference!="">
"RefID": "${preparation_order.physical_depot_code?trim?json_string}${preparation_order.activity_code?trim?json_string}${preparation_order.originator_code?trim?json_string}${preparation_order.originator_reference?trim?json_string}", "RefID": "${preparation_order.physical_depot_code?trim?json_string}${preparation_order.activity_code?trim?json_string}${preparation_order.originator_code?trim?json_string}${preparation_order.originator_reference?trim?json_string}",
<#else> <#else>
@@ -53,6 +79,7 @@
<#else> <#else>
"Actor": "Actor":
{ {
<#include "RFXtoRP_HsrPro_ExecutionflowDetected_ShipToMetadata.ftl">,
"Name" : "${(preparation_order.address.name_or_company_name!"")?json_string}", "Name" : "${(preparation_order.address.name_or_company_name!"")?json_string}",
"Address" : "Address" :
{ {

View File

@@ -1,14 +1,10 @@
<#-- use protobuf of class HsrPro to find HARDIS WMS fields names --> <#-- use protobuf of class HsrPro to find HARDIS WMS fields names -->
<#-- <#-- Best practices:
If the SK is of type:
"MetaData": [ - string: add ?json_string (e.g. "${stock.batch_1?json_string}")
{ - boolean: possible values: true and false
"Key": "OrderType", - datetime: expected format: 2025-10-30T10:12:10.000Z
"Value": { "String" : "${preparation_order.optional_attributes.reason_code}"} - decimal number: the separator is a point (e.g. 10.5)-->
}
],
-->
"MetaData": [ ] "MetaData": [ ]

View File

@@ -1,4 +1,10 @@
<#-- use protobuf of class HsrPro to find HARDIS WMS fields names --> <#-- use protobuf of class HsrPro to find HARDIS WMS fields names -->
<#-- Best practices:
If the SK is of type:
- string: add ?json_string (e.g. "${stock.batch_1?json_string}")
- boolean: possible values: true and false
- datetime: expected format: 2025-10-30T10:12:10.000Z
- decimal number: the separator is a point (e.g. 10.5)-->
"MetaData": [ ] "MetaData": [ ]

View File

@@ -1,5 +1,11 @@
<#-- use protobuf of class HsrPro to find HARDIS WMS fields names --> <#-- use protobuf of class HsrPro to find HARDIS WMS fields names -->
<#-- <#--
<#-- Best practices:
If the SK is of type:
- string: add ?json_string (e.g. "${stock.batch_1?json_string}")
- boolean: possible values: true and false
- datetime: expected format: 2025-10-30T10:12:10.000Z
- decimal number: the separator is a point (e.g. 10.5)
"SegmentationKeys": [ "SegmentationKeys": [
{ {
@@ -16,7 +22,7 @@
"Value": { "String" : "no batch"} "Value": { "String" : "no batch"}
<#else> <#else>
"Value": { "String" : "${preparation_order_line.batch_1}"} "Value": { "String" : "${preparation_order_line.batch_1}"}
</#if> </#if>
} }
] ]
--> -->

View File

@@ -0,0 +1,10 @@
<#-- use protobuf of class HsrPro to find HARDIS WMS fields names -->
<#-- Best practices:
If the SK is of type:
- string: add ?json_string (e.g. "${stock.batch_1?json_string}")
- boolean: possible values: true and false
- datetime: expected format: 2025-10-30T10:12:10.000Z
- decimal number: the separator is a point (e.g. 10.5)-->
"MetaData": [ ]

View File

@@ -15,7 +15,7 @@
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) /> <#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
<#assign receipt = JsonUtil.jsonToMap(dataRfx)> <#assign receipt = JsonUtil.jsonToMap(dataRfx)>
<#if receipt.receipt_type?? && receipt.receipt_type = "030" && receipt.line_list??> <#-- if reception is a transfer type --> <#if receipt.receipt_type?? && receipt.receipt_type = "030" && receipt.line_list?? && receipt.line_list[0]?? > <#-- if reception is a transfer type -->
[ [
{ {
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowDetected> <#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowDetected>
@@ -29,11 +29,16 @@
"apiReflexPlatformID" : "${apiReflexPlatformID}", "apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" : "datas" :
<#include "RFXtoRP_HsrReceiptList_TransfertReceiptExpected.ftl"> <#include "RFXtoRP_HsrReceiptList_TransfertReceiptExpected.ftl">
},
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowCustomFieldsUpdated>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrReceiptList_TransfertCustomFieldsUpdated.ftl">
} }
] ]
<#else> <#else>
<#if receipt.line_list ??> <#if receipt.line_list ?? && receipt.line_list[0]??>
[ [
{ {
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowDetected> <#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowDetected>
@@ -47,7 +52,12 @@
"apiReflexPlatformID" : "${apiReflexPlatformID}", "apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" : "datas" :
<#include "RFXtoRP_HsrReceiptList_ReceiptExpected.ftl"> <#include "RFXtoRP_HsrReceiptList_ReceiptExpected.ftl">
},
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowCustomFieldsUpdated>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrReceiptList_CustomFieldsUpdated.ftl">
} }
] ]
<#else> <#else>
@@ -69,12 +79,40 @@
} }
<#else> <#else>
<#if receipt.receipt_type?? && receipt.receipt_type == "030" && receipt.receipt_confirmed == "true"> <#if receipt.receipt_type?? && receipt.receipt_type == "030" && receipt.receipt_confirmed == "true">
{ <#if receipt.origin_order_line_depot?? && receipt.origin_order_line_depot!="" && receipt.receipt_reference?? && receipt.receipt_reference!="">
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowReceiptCompleted> <#assign ID = "${receipt.origin_order_line_depot?trim?json_string}${receipt.activity_code?trim?json_string}${receipt.originator_code?trim?json_string}${receipt.receipt_reference?trim?json_string}"/>
"apiReflexPlatformID" : "${apiReflexPlatformID}", <#else>
"datas" : <#if receipt.receipt_reference?? && receipt.receipt_reference!="">
<#include "RFXtoRP_HsrReceiptList_TransfertExecutionflowReceiptCompleted.ftl"> <#assign ID = "${receipt.physical_depot_code?trim?json_string}${receipt.activity_code?trim?json_string}${receipt.originator_code?trim?json_string}${receipt.receipt_reference?trim?json_string}"/>
} <#else>
<#assign ID = "R${receipt.physical_depot_code?trim?json_string}${receipt.activity_code?trim?json_string}${receipt.originator_code?trim?json_string}${receipt.receipt_year}${receipt.receipt_number}"/>
</#if>
</#if>
<#assign payload = '{"Header": {"ProjectID": "${projectRP!""}"},"IDs": [{"RefID": "${ID}"}]}' />
<#assign queryApiReflexPlatformID = QueryApiReflexPlatformID.OrderGetByIds>
<#assign response = QueryApiReflexPlatformCall.call(queryApiReflexPlatformID,payload) />
<#assign orderRP = JsonUtil.jsonToMap(response)>
<#if orderRP?? && orderRP.Objects?? && orderRP.Objects[0]?? && orderRP.Objects[0].ID.RefID?? >
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowReceiptCompleted>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrReceiptList_TransfertExecutionflowReceiptCompleted.ftl">
}
<#else>
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowDetected>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrReceiptList_TransfertExecutionflowDetected.ftl">
},
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowReceiptCompleted>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrReceiptList_TransfertExecutionflowReceiptCompleted.ftl">
}
</#if>
<#else> <#else>
<#if receipt.receipt_confirmed?? && receipt.receipt_confirmed == "true" && receipt.confirmation_total_level_1==0 && receipt.confirmation_total_level_2==0 && receipt.confirmation_total_level_3==0> <#if receipt.receipt_confirmed?? && receipt.receipt_confirmed == "true" && receipt.confirmation_total_level_1==0 && receipt.confirmation_total_level_2==0 && receipt.confirmation_total_level_3==0>
{ {
@@ -85,14 +123,34 @@
} }
<#else> <#else>
<#if receipt.receipt_confirmed ?? && receipt.receipt_confirmed == "true" > <#if receipt.receipt_confirmed ?? && receipt.receipt_confirmed == "true" >
{ <#assign ID = "R${receipt.physical_depot_code?trim?json_string}${receipt.activity_code?trim?json_string}${receipt.originator_code?trim?json_string}${receipt.receipt_year}${receipt.receipt_number}"/>
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowReceiptCompleted> <#assign payload = '{"Header": {"ProjectID": "${projectRP!""}"},"IDs": [{"RefID": "${ID}"}]}'/>
"apiReflexPlatformID" : "${apiReflexPlatformID}", <#assign queryApiReflexPlatformID = QueryApiReflexPlatformID.OrderGetByIds>
"datas" : <#assign response = QueryApiReflexPlatformCall.call(queryApiReflexPlatformID,payload) />
<#include "RFXtoRP_HsrReceiptList_ExecutionflowReceiptCompleted.ftl"> <#assign orderRP = JsonUtil.jsonToMap(response)>
} <#if orderRP?? && orderRP.Objects?? && orderRP.Objects[0]?? && orderRP.Objects[0].ID.RefID?? >
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowReceiptCompleted>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrReceiptList_ExecutionflowReceiptCompleted.ftl">
}
<#else>
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowDetected>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrReceiptList_ExecutionflowDetected.ftl">
},
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowReceiptCompleted>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrReceiptList_ExecutionflowReceiptCompleted.ftl">
}
</#if>
<#else> <#else>
<#if receipt.receipt_type?? && receipt.receipt_type == "030" && receipt.receipt_confirmed == "false" && receipt.line_list??> <#if receipt.receipt_type?? && receipt.receipt_type == "030" && receipt.receipt_confirmed == "false" && receipt.line_list?? && receipt.line_list[0]??>
<#if receipt.receipt_reference?? && receipt.receipt_reference!=""> <#if receipt.receipt_reference?? && receipt.receipt_reference!="">
[ [
{ {
@@ -100,21 +158,19 @@
"apiReflexPlatformID" : "${apiReflexPlatformID}", "apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" : "datas" :
<#include "RFXtoRP_HsrReceiptList_TransfertExecutionflowDetected.ftl"> <#include "RFXtoRP_HsrReceiptList_TransfertExecutionflowDetected.ftl">
}, },
{ {
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowReceiptExpected> <#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowReceiptExpected>
"apiReflexPlatformID" : "${apiReflexPlatformID}", "apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" : "datas" :
<#include "RFXtoRP_HsrReceiptList_TransfertReceiptExpected.ftl"> <#include "RFXtoRP_HsrReceiptList_TransfertReceiptExpected.ftl">
} }
] ]
<#else> <#else>
<#stop> <#-- Receipt reference for transfer is empty--> <#stop> <#-- Receipt reference for transfer is empty-->
</#if> </#if>
<#else> <#else>
<#if receipt.line_list ??> <#if receipt.line_list ?? && receipt.line_list[0]??>
{ {
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowDetected> <#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowDetected>
"apiReflexPlatformID" : "${apiReflexPlatformID}", "apiReflexPlatformID" : "${apiReflexPlatformID}",

View File

@@ -0,0 +1,40 @@
<#include "HfRpConfig.ftl">
<#include "ReflexUtils.ftl">
<#include "ActorPrefix.ftl">
[
{
"Header": {
"ProjectID": "${projectRP}"
},
"Payload" :{},
"ID":{
"CustomFields": [
{
"Key": "depot_code",
"Value": "${receipt.physical_depot_code?trim?json_string}"
},
{
"Key": "activity_code",
"Value": "${receipt.activity_code?trim?json_string}"
},
{
"Key": "originator_code",
"Value": "${receipt.originator_code?trim?json_string}"
},
{
"Key": "reference",
"Value": "${receipt.receipt_reference?trim?json_string}"
},
{
"Key": "order_year",
"Value": "${receipt.receipt_year}"
},
{
"Key": "order_number",
"Value": "${receipt.receipt_number}"
}
],
"RefID": "R${receipt.physical_depot_code?trim?json_string}${receipt.activity_code?trim?json_string}${receipt.originator_code?trim?json_string}${receipt.receipt_year}${receipt.receipt_number}"
}
}
]

View File

@@ -9,6 +9,32 @@
"ProjectID": "${projectRP}" "ProjectID": "${projectRP}"
}, },
"ID": { "ID": {
"CustomFields": [
{
"Key": "depot_code",
"Value": "${receipt.physical_depot_code?trim?json_string}"
},
{
"Key": "activity_code",
"Value": "${receipt.activity_code?trim?json_string}"
},
{
"Key": "originator_code",
"Value": "${receipt.originator_code?trim?json_string}"
},
{
"Key": "reference",
"Value": "${receipt.receipt_reference?trim?json_string}"
},
{
"Key": "order_year",
"Value": "${receipt.receipt_year}"
},
{
"Key": "order_number",
"Value": "${receipt.receipt_number}"
}
],
"RefID": "R${receipt.physical_depot_code?trim?json_string}${receipt.activity_code?trim?json_string}${receipt.originator_code?trim?json_string}${receipt.receipt_year}${receipt.receipt_number}", "RefID": "R${receipt.physical_depot_code?trim?json_string}${receipt.activity_code?trim?json_string}${receipt.originator_code?trim?json_string}${receipt.receipt_year}${receipt.receipt_number}",
"RefDate": { "RefDate": {
"DateTime": "${receipt_creation_datetime}", "DateTime": "${receipt_creation_datetime}",
@@ -29,7 +55,7 @@
<#if receipt.receipt_type == '020'> <#if receipt.receipt_type == '020'>
"ActorID": "${RFXtoRPprefixConsignee(receipt.original_code?trim?json_string)}" "ActorID": "${RFXtoRPprefixConsignee(receipt.original_code?trim?json_string)}"
<#else> <#else>
"ActorID": "${RFXtoRPprefixSupplier(receipt.original_code?trim?json_string)}" "ActorID": "${RFXtoRPprefixSupplier(receipt.original_code?trim?json_string)}"
</#if> </#if>
}, },
"ShipTo" : "ShipTo" :

View File

@@ -1,7 +1,12 @@
<#-- use protobuf of class HsrReceiptList to find HARDIS WMS fields names --> <#-- use protobuf of class HsrReceiptList to find HARDIS WMS fields names -->
<#-- <#--
<#-- Best practices:
If the SK is of type:
- string: add ?json_string (e.g. "${stock.batch_1?json_string}")
- boolean: possible values: true and false
- datetime: expected format: 2025-10-30T10:12:10.000Z
- decimal number: the separator is a point (e.g. 10.5)
"MetaData": [ "MetaData": [
{ {
"Key": "OrderType", "Key": "OrderType",

View File

@@ -1,4 +1,10 @@
<#-- use protobuf of class HsrReceiptList to find HARDIS WMS fields names --> <#-- use protobuf of class HsrReceiptList to find HARDIS WMS fields names -->
<#-- Best practices:
If the SK is of type:
- string: add ?json_string (e.g. "${stock.batch_1?json_string}")
- boolean: possible values: true and false
- datetime: expected format: 2025-10-30T10:12:10.000Z
- decimal number: the separator is a point (e.g. 10.5)-->
"MetaData": [ ] "MetaData": [ ]

View File

@@ -1,6 +1,12 @@
<#-- use protobuf of class HsrReceiptList to find HARDIS WMS fields names --> <#-- use protobuf of class HsrReceiptList to find HARDIS WMS fields names -->
<#-- <#--
<#-- Best practices:
If the SK is of type:
- string: add ?json_string (e.g. "${stock.batch_1?json_string}")
- boolean: possible values: true and false
- datetime: expected format: 2025-10-30T10:12:10.000Z
- decimal number: the separator is a point (e.g. 10.5)
"SegmentationKeys": [ "SegmentationKeys": [
{ {
"Key": "Grade", "Key": "Grade",
@@ -16,7 +22,7 @@
"Value": { "String" : "no batch"} "Value": { "String" : "no batch"}
<#else> <#else>
"Value": { "String" : "${line_without_detail.batch_1}"} "Value": { "String" : "${line_without_detail.batch_1}"}
</#if> </#if>
}, },
{ {
"Key": "HeldForSpecificCode", "Key": "HeldForSpecificCode",
@@ -25,15 +31,15 @@
<#else> <#else>
"Value": { "Bool" : "False"} "Value": { "Bool" : "False"}
}, },
{ {
<#assign manufacturing_date = line_without_detail.ipg_date_of_manufacture_date?datetime(rfx_date_format_default)?iso_utc /> <#assign manufacturing_date = line_without_detail.ipg_date_of_manufacture_date?datetime(rfx_date_format_default)?iso_utc />
"Key": "ManufacturingDate", "Key": "ManufacturingDate",
"Value": "Timestamp": { "Value": "Timestamp": {
"AuthorTimeZone": "${time_zone_rfx}", "AuthorTimeZone": "${time_zone_rfx}",
"DateTime": "${manufacturing_date}" "DateTime": "${manufacturing_date}"
} }
} }
] ]

View File

@@ -0,0 +1,48 @@
<#include "HfRpConfig.ftl">
<#include "ReflexUtils.ftl">
<#include "ActorPrefix.ftl">
[
{
"Header": {
"ProjectID": "${projectRP}"
},
"Payload" :{},
"ID":{
"CustomFields": [
{
"Key": "depot_code",
<#if receipt.origin_order_line_depot?? && receipt.origin_order_line_depot!="">
"Value": "${receipt.origin_order_line_depot?trim?json_string}"
<#else>
"Value": "${receipt.physical_depot_code?trim?json_string}"
</#if>
},
{
"Key": "activity_code",
"Value": "${receipt.activity_code?trim?json_string}"
},
{
"Key": "originator_code",
"Value": "${receipt.originator_code?trim?json_string}"
},
{
"Key": "reference",
"Value": "${receipt.receipt_reference?trim?json_string}"
},
{
"Key": "order_year",
"Value": "${receipt.receipt_year}"
},
{
"Key": "order_number",
"Value": "${receipt.receipt_number}"
}
],
<#if receipt.origin_order_line_depot?? && receipt.origin_order_line_depot!="">
"RefID": "${receipt.origin_order_line_depot?trim?json_string}${receipt.activity_code?trim?json_string}${receipt.originator_code?trim?json_string}${receipt.receipt_reference?trim?json_string}"
<#else>
"RefID": "R${receipt.physical_depot_code?trim?json_string}${receipt.activity_code?trim?json_string}${receipt.originator_code?trim?json_string}${receipt.receipt_year}${receipt.receipt_number}"
</#if>
}
}
]

View File

@@ -7,11 +7,15 @@
{ {
"Header": {"ProjectID": "${projectRP}"}, "Header": {"ProjectID": "${projectRP}"},
"ID": { "ID": {
<#if receipt.origin_order_line_depot?? && receipt.origin_order_line_depot!=""> <#if receipt.origin_order_line_depot?? && receipt.origin_order_line_depot!="" && receipt.receipt_reference?? && receipt.receipt_reference!="">
"RefID": "${receipt.origin_order_line_depot?trim?json_string}${receipt.activity_code?trim?json_string}${receipt.originator_code?trim?json_string}${receipt.receipt_reference?trim?json_string}", "RefID": "${receipt.origin_order_line_depot?trim?json_string}${receipt.activity_code?trim?json_string}${receipt.originator_code?trim?json_string}${receipt.receipt_reference?trim?json_string}",
<#else> <#else>
"RefID": "${receipt.physical_depot_code?trim?json_string}${receipt.activity_code?trim?json_string}${receipt.originator_code?trim?json_string}${receipt.receipt_reference?trim?json_string}", <#if receipt.receipt_reference?? && receipt.receipt_reference!="">
</#if> "RefID": "${receipt.physical_depot_code?trim?json_string}${receipt.activity_code?trim?json_string}${receipt.originator_code?trim?json_string}${receipt.receipt_reference?trim?json_string}",
<#else>
"RefID": "R${receipt.physical_depot_code?trim?json_string}${receipt.activity_code?trim?json_string}${receipt.originator_code?trim?json_string}${receipt.receipt_year}${receipt.receipt_number}",
</#if>
</#if>
"RefDate": { "RefDate": {
"DateTime": "${receipt_status_datetime}", "DateTime": "${receipt_status_datetime}",
"AuthorTimeZone": "${time_zone_rfx}" "AuthorTimeZone": "${time_zone_rfx}"

View File

@@ -9,10 +9,44 @@
{ {
"Header": {"ProjectID": "${projectRP}"}, "Header": {"ProjectID": "${projectRP}"},
"ID": { "ID": {
<#if receipt.origin_order_line_depot?? && receipt.origin_order_line_depot!=""> "CustomFields": [
{
"Key": "depot_code",
<#if receipt.origin_order_line_depot?? && receipt.origin_order_line_depot!="">
"Value": "${receipt.origin_order_line_depot?trim?json_string}"
<#else>
"Value": "${receipt.physical_depot_code?trim?json_string}"
</#if>
},
{
"Key": "activity_code",
"Value": "${receipt.activity_code?trim?json_string}"
},
{
"Key": "originator_code",
"Value": "${receipt.originator_code?trim?json_string}"
},
{
"Key": "reference",
"Value": "${receipt.receipt_reference?trim?json_string}"
},
{
"Key": "order_year",
"Value": "${receipt.receipt_year}"
},
{
"Key": "order_number",
"Value": "${receipt.receipt_number}"
}
],
<#if receipt.origin_order_line_depot?? && receipt.origin_order_line_depot!="" && receipt.receipt_reference?? && receipt.receipt_reference!="">
"RefID": "${receipt.origin_order_line_depot?trim?json_string}${receipt.activity_code?trim?json_string}${receipt.originator_code?trim?json_string}${receipt.receipt_reference?trim?json_string}", "RefID": "${receipt.origin_order_line_depot?trim?json_string}${receipt.activity_code?trim?json_string}${receipt.originator_code?trim?json_string}${receipt.receipt_reference?trim?json_string}",
<#else> <#else>
"RefID": "R${receipt.physical_depot_code?trim?json_string}${receipt.activity_code?trim?json_string}${receipt.originator_code?trim?json_string}${receipt.receipt_year}${receipt.receipt_number}", <#if receipt.receipt_reference?? && receipt.receipt_reference!="">
"RefID": "${receipt.physical_depot_code?trim?json_string}${receipt.activity_code?trim?json_string}${receipt.originator_code?trim?json_string}${receipt.receipt_reference?trim?json_string}",
<#else>
"RefID": "R${receipt.physical_depot_code?trim?json_string}${receipt.activity_code?trim?json_string}${receipt.originator_code?trim?json_string}${receipt.receipt_year}${receipt.receipt_number}",
</#if>
</#if> </#if>
"RefDate": { "RefDate": {
"DateTime": "${receipt_creation_datetime}", "DateTime": "${receipt_creation_datetime}",
@@ -24,11 +58,11 @@
"DateTime": "${receipt_creation_datetime}", "DateTime": "${receipt_creation_datetime}",
"AuthorTimeZone": "${time_zone_rfx}" "AuthorTimeZone": "${time_zone_rfx}"
}, },
<#if receipt.origin_order_line_depot?? && receipt.origin_order_line_depot!=""> <#if receipt.receipt_reference?? && receipt.receipt_reference!="">
"OrderID": "${receipt.receipt_reference?trim?json_string}", "OrderID": "${receipt.receipt_reference?trim?json_string}",
<#else> <#else>
"OrderID": "R${receipt.physical_depot_code?trim?json_string}${receipt.activity_code?trim?json_string}${receipt.originator_code?trim?json_string}${receipt.receipt_year}${receipt.receipt_number}", "OrderID": "R${receipt.physical_depot_code?trim?json_string}${receipt.activity_code?trim?json_string}${receipt.originator_code?trim?json_string}${receipt.receipt_year}${receipt.receipt_number}",
</#if> </#if>
<#-- Header Metadata inclusion --> <#-- Header Metadata inclusion -->
<#include "RFXtoRP_HsrReceiptList_ExecutionflowDetected_HeaderMetadata.ftl">, <#include "RFXtoRP_HsrReceiptList_ExecutionflowDetected_HeaderMetadata.ftl">,
"ShipFrom": "ShipFrom":
@@ -203,7 +237,7 @@
"DateTime": "${receipt_creation_datetime}", "DateTime": "${receipt_creation_datetime}",
"AuthorTimeZone": "${time_zone_rfx}" "AuthorTimeZone": "${time_zone_rfx}"
}, },
"OrderID":"${receipt.physical_depot_code?trim?json_string}${receipt.activity_code?trim?json_string}${receipt.originator_code?trim?json_string}${receipt.receipt_year?trim?json_string}${receipt.receipt_number?trim?json_string}", "OrderID":"R${receipt.physical_depot_code?trim?json_string}${receipt.activity_code?trim?json_string}${receipt.originator_code?trim?json_string}${receipt.receipt_year?trim?json_string}${receipt.receipt_number?trim?json_string}",
<#-- Header Metadata inclusion --> <#-- Header Metadata inclusion -->
<#include "RFXtoRP_HsrReceiptList_ExecutionflowDetected_HeaderMetadata.ftl">, <#include "RFXtoRP_HsrReceiptList_ExecutionflowDetected_HeaderMetadata.ftl">,
"ShipFrom": "ShipFrom":

View File

@@ -7,11 +7,15 @@
{ {
"Header": {"ProjectID": "${projectRP}"}, "Header": {"ProjectID": "${projectRP}"},
"ID": { "ID": {
<#if receipt.origin_order_line_depot?? && receipt.origin_order_line_depot!=""> <#if receipt.origin_order_line_depot?? && receipt.origin_order_line_depot!="" && receipt.receipt_reference?? && receipt.receipt_reference!="">
"RefID": "${receipt.origin_order_line_depot?trim?json_string}${receipt.activity_code?trim?json_string}${receipt.originator_code?trim?json_string}${receipt.receipt_reference?trim?json_string}", "RefID": "${receipt.origin_order_line_depot?trim?json_string}${receipt.activity_code?trim?json_string}${receipt.originator_code?trim?json_string}${receipt.receipt_reference?trim?json_string}",
<#else> <#else>
"RefID": "${receipt.physical_depot_code?trim?json_string}${receipt.activity_code?trim?json_string}${receipt.originator_code?trim?json_string}${receipt.receipt_reference?trim?json_string}", <#if receipt.receipt_reference?? && receipt.receipt_reference!="">
</#if> "RefID": "${receipt.physical_depot_code?trim?json_string}${receipt.activity_code?trim?json_string}${receipt.originator_code?trim?json_string}${receipt.receipt_reference?trim?json_string}",
<#else>
"RefID": "R${receipt.physical_depot_code?trim?json_string}${receipt.activity_code?trim?json_string}${receipt.originator_code?trim?json_string}${receipt.receipt_year}${receipt.receipt_number}",
</#if>
</#if>
"RefDate": { "RefDate": {
"DateTime": "${receipt_status_datetime}", "DateTime": "${receipt_status_datetime}",
"AuthorTimeZone": "${time_zone_rfx}" "AuthorTimeZone": "${time_zone_rfx}"

View File

@@ -7,11 +7,15 @@
{ {
"Header": {"ProjectID": "${projectRP}"}, "Header": {"ProjectID": "${projectRP}"},
"ID": { "ID": {
<#if receipt.origin_order_line_depot?? && receipt.origin_order_line_depot!=""> <#if receipt.origin_order_line_depot?? && receipt.origin_order_line_depot!="" && receipt.receipt_reference?? && receipt.receipt_reference!="">
"RefID": "${receipt.origin_order_line_depot?trim?json_string}${receipt.activity_code?trim?json_string}${receipt.originator_code?trim?json_string}${receipt.receipt_reference?trim?json_string}", "RefID": "${receipt.origin_order_line_depot?trim?json_string}${receipt.activity_code?trim?json_string}${receipt.originator_code?trim?json_string}${receipt.receipt_reference?trim?json_string}",
<#else> <#else>
"RefID": "${receipt.physical_depot_code?trim?json_string}${receipt.activity_code?trim?json_string}${receipt.originator_code?trim?json_string}${receipt.receipt_reference?trim?json_string}", <#if receipt.receipt_reference?? && receipt.receipt_reference!="">
</#if> "RefID": "${receipt.physical_depot_code?trim?json_string}${receipt.activity_code?trim?json_string}${receipt.originator_code?trim?json_string}${receipt.receipt_reference?trim?json_string}",
<#else>
"RefID": "R${receipt.physical_depot_code?trim?json_string}${receipt.activity_code?trim?json_string}${receipt.originator_code?trim?json_string}${receipt.receipt_year}${receipt.receipt_number}",
</#if>
</#if>
"RefDate": { "RefDate": {
"DateTime": "${receipt_status_datetime}", "DateTime": "${receipt_status_datetime}",
"AuthorTimeZone": "${time_zone_rfx}" "AuthorTimeZone": "${time_zone_rfx}"

View File

@@ -33,7 +33,7 @@
"DetailElements": [], "DetailElements": [],
"CorrelationID": "${id.correlationid!"no Correlationid"}", "CorrelationID": "${id.correlationid!"no Correlationid"}",
"ContextPayload": ${strJsonBody}, "ContextPayload": ${strJsonBody},
"Type": "RP_EXECUTIONFLOW_EVENT", "Type": "${event}",
"Task": "${id.apiRestReflexID!"no Task"}", "Task": "${id.apiRestReflexID!"no Task"}",
"OriginalID": "${id.refid!"no OriginalID"?trim?json_string}", "OriginalID": "${id.refid!"no OriginalID"?trim?json_string}",
"StackTrace": "" "StackTrace": ""

View File

@@ -1,206 +1,523 @@
<#-- **** input parameters ***** --> <#-- **** input parameters ***** -->
<#-- input : Response message from HARDIS WMS --> <#-- input : Response message from HARDIS WMS -->
<#-- project : projectId in HARDIS SC NETWORK --> <#-- project : projectId in HARDIS SC NETWORK -->
<#-- organisation : organisationtId in HARDIS SC NETWORK --> <#-- organisation : organisationtId in HARDIS SC NETWORK -->
<#assign restResponsetMsg = JsonUtil.jsonToMap(input)> <#assign restResponsetMsg = JsonUtil.jsonToMap(input)>
<#assign id = JsonUtil.jsonToMap(restResponsetMsg.id!"{}")> <#assign id = JsonUtil.jsonToMap(restResponsetMsg.id!"{}")>
<#assign projectRP = project> <#assign projectRP = project>
<#assign organisationRP = organisation> <#assign organisationRP = organisation>
<#assign aDateTime = .now>
<#assign aDateTime = .now> <#assign no_apiRestReflexID = "no apiRestReflexID">
<#assign no_apiRestReflexID = "no apiRestReflexID"> <#assign no_status = -99999>
<#assign no_status = -99999> <#assign event = "UNKNOW_EVENT" >
<#-- DeleteEF_False a définir dans ce fichier -->
<#-- DeleteEF_False to be defined in this file.-->
<#switch id.apiRestReflexID!no_apiRestReflexID> <#include "InternalSettings.ftl">
<#case no_apiRestReflexID>
[ <#switch id.apiRestReflexID!no_apiRestReflexID>
{ <#case no_apiRestReflexID>
<#if restResponsetMsg.body?? > [
<#assign restResponseBody = JsonUtil.decodeBase64(restResponsetMsg.body) /> {
<#else> <#if restResponsetMsg.body?? >
<#assign restResponseBody = "${restResponsetMsg?trim?json_string}" /> <#assign restResponseBody = JsonUtil.decodeBase64(restResponsetMsg.body) />
</#if> <#else>
<#assign apiReflexPlatformID = ApiReflexPlatformID.PlatformLogCreate> <#assign restResponseBody = "${restResponsetMsg?trim?json_string}" />
"apiReflexPlatformID" : "${apiReflexPlatformID}", </#if>
"datas" : <#assign apiReflexPlatformID = ApiReflexPlatformID.PlatformLogCreate>
<#include "RFXtoRP_PlatformLogCreate.ftl"> "apiReflexPlatformID" : "${apiReflexPlatformID}",
} "datas" :
] <#include "RFXtoRP_PlatformLogCreate.ftl">
<#break> }
]
<#case "preparation_orders_post"> <#break>
<#switch restResponsetMsg.status!no_status> <#-- *********************************************** ApiRestID = preparation_orders_post ******************** -->
<#case no_status> <#case "preparation_orders_post">
[ <#switch restResponsetMsg.status!no_status>
{ <#case no_status>
<#if restResponsetMsg.body?? > [
<#assign restResponseBody = JsonUtil.decodeBase64(restResponsetMsg.body) /> {
<#else> <#if restResponsetMsg.body?? >
<#assign restResponseBody = "${restResponsetMsg?trim?json_string}" /> <#assign restResponseBody = JsonUtil.decodeBase64(restResponsetMsg.body) />
</#if> <#else>
<#assign apiReflexPlatformID = ApiReflexPlatformID.PlatformLogCreate> <#assign restResponseBody = "${restResponsetMsg?trim?json_string}" />
"apiReflexPlatformID" : "${apiReflexPlatformID}", </#if>
"datas" : <#assign apiReflexPlatformID = ApiReflexPlatformID.PlatformLogCreate>
<#include "RFXtoRP_PlatformLogCreate.ftl"> "apiReflexPlatformID" : "${apiReflexPlatformID}",
}, "datas" :
{ <#assign event = "RP_EXECUTIONFLOW_EVENT" />
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowAllocationError> <#include "RFXtoRP_PlatformLogCreate.ftl">
"apiReflexPlatformID" : "${apiReflexPlatformID}", },
"datas" : {
<#include "RFXtoRP_RestResponseAllocationError.ftl"> <#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowAllocationError>
} "apiReflexPlatformID" : "${apiReflexPlatformID}",
] "datas" :
<#break> <#include "RFXtoRP_RestResponseAllocationError.ftl">
}
<#case 200> ]
<#case 201> <#break>
<#-- *********************************************** ApiRestID = preparation_orders_post ******************** --> <#case 200>
<#assign restResponseBody = JsonUtil.decodeBase64(restResponsetMsg.body) /> <#case 201>
<#assign preparationOrderPostResponse = JsonUtil.jsonToMap(restResponseBody)> <#assign restResponseBody = JsonUtil.decodeBase64(restResponsetMsg.body) />
<#if preparationOrderPostResponse.status?? && preparationOrderPostResponse.status == "SUCCESS" > <#assign preparationOrderPostResponse = JsonUtil.jsonToMap(restResponseBody)>
[ <#if preparationOrderPostResponse.status?? && (preparationOrderPostResponse.status == "SUCCESS" || preparationOrderPostResponse.status == "WARN") >
{ <#if DeleteEF_False>
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowShipFromAcked> [
"apiReflexPlatformID" : "${apiReflexPlatformID}", {
"datas" : <#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowShipFromAcked>
<#include "RFXtoRP_PrepOrder_ShipFromAcked.ftl"> "apiReflexPlatformID" : "${apiReflexPlatformID}",
} "datas" :
] <#include "RFXtoRP_PrepOrder_ShipFromAcked.ftl">
<#else> }
<#if preparationOrderPostResponse.status?? && preparationOrderPostResponse.status == "WARN"> ]
[ <#else>
{ [
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowShipFromAcked> {
"apiReflexPlatformID" : "${apiReflexPlatformID}", <#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowDeleted>
"datas" : "apiReflexPlatformID" : "${apiReflexPlatformID}",
<#include "RFXtoRP_PrepOrder_ShipFromAcked.ftl"> "datas" :
} <#include "RFXtoRP_ExecutionflowDeleted.ftl">
] }
<#else> ]
[ </#if>
{ <#else>
<#assign restResponseBody = JsonUtil.decodeBase64(restResponsetMsg.body) /> [
<#assign apiReflexPlatformID = ApiReflexPlatformID.PlatformLogCreate> {
"apiReflexPlatformID" : "${apiReflexPlatformID}", <#assign restResponseBody = JsonUtil.decodeBase64(restResponsetMsg.body) />
"datas" : <#assign apiReflexPlatformID = ApiReflexPlatformID.PlatformLogCreate>
<#include "RFXtoRP_PlatformLogCreate.ftl"> "apiReflexPlatformID" : "${apiReflexPlatformID}",
}, "datas" :
{ <#assign event = "RP_EXECUTIONFLOW_EVENT">
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowAllocationError> <#include "RFXtoRP_PlatformLogCreate.ftl">
"apiReflexPlatformID" : "${apiReflexPlatformID}", },
"datas" : {
<#include "RFXtoRP_RestResponseAllocationError.ftl"> <#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowAllocationError>
} "apiReflexPlatformID" : "${apiReflexPlatformID}",
] "datas" :
</#if> <#include "RFXtoRP_RestResponseAllocationError.ftl">
</#if> }
<#break> ]
<#default> </#if>
[ <#break>
{ <#default>
<#if restResponsetMsg.body?? > [
<#assign restResponseBody = JsonUtil.decodeBase64(restResponsetMsg.body) /> {
<#else> <#if restResponsetMsg.body?? >
<#assign restResponseBody = "${restResponsetMsg?trim?json_string}}" /> <#assign restResponseBody = JsonUtil.decodeBase64(restResponsetMsg.body) />
</#if> <#else>
<#assign apiReflexPlatformID = ApiReflexPlatformID.PlatformLogCreate> <#assign restResponseBody = "${restResponsetMsg?trim?json_string}" />
"apiReflexPlatformID" : "${apiReflexPlatformID}", </#if>
"datas" : <#assign apiReflexPlatformID = ApiReflexPlatformID.PlatformLogCreate>
<#include "RFXtoRP_PlatformLogCreate.ftl"> "apiReflexPlatformID" : "${apiReflexPlatformID}",
}, "datas" :
{ <#assign event = "RP_EXECUTIONFLOW_EVENT" />
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowAllocationError> <#include "RFXtoRP_PlatformLogCreate.ftl">
"apiReflexPlatformID" : "${apiReflexPlatformID}", },
"datas" : {
<#include "RFXtoRP_RestResponseAllocationError.ftl"> <#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowAllocationError>
} "apiReflexPlatformID" : "${apiReflexPlatformID}",
] "datas" :
</#switch> <#include "RFXtoRP_RestResponseAllocationError.ftl">
<#break> }
]
<#case "receipts_post"> </#switch>
<#switch restResponsetMsg.status!no_status> <#break>
<#case no_status> <#-- *********************************************** ApiRestID = receipts_post ******************** -->
[ <#case "receipts_post">
{ <#switch restResponsetMsg.status!no_status>
<#if restResponsetMsg.body?? > <#case no_status>
<#assign restResponseBody = JsonUtil.decodeBase64(restResponsetMsg.body) /> [
<#else> {
<#assign restResponseBody = "${restResponsetMsg?trim?json_string}" /> <#if restResponsetMsg.body?? >
</#if> <#assign restResponseBody = JsonUtil.decodeBase64(restResponsetMsg.body) />
<#assign apiReflexPlatformID = ApiReflexPlatformID.PlatformLogCreate> <#else>
"apiReflexPlatformID" : "${apiReflexPlatformID}", <#assign restResponseBody = "${restResponsetMsg?trim?json_string}" />
"datas" : </#if>
<#include "RFXtoRP_PlatformLogCreate.ftl"> <#assign apiReflexPlatformID = ApiReflexPlatformID.PlatformLogCreate>
}, "apiReflexPlatformID" : "${apiReflexPlatformID}",
{ "datas" :
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowAllocationError> <#assign event = "RP_EXECUTIONFLOW_EVENT" />
"apiReflexPlatformID" : "${apiReflexPlatformID}", <#include "RFXtoRP_PlatformLogCreate.ftl">
"datas" : },
<#include "RFXtoRP_RestResponseAllocationError.ftl"> {
} <#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowAllocationError>
] "apiReflexPlatformID" : "${apiReflexPlatformID}",
<#break> "datas" :
<#include "RFXtoRP_RestResponseAllocationError.ftl">
<#case 200> }
<#case 201> ]
<#-- *********************************************** ApiRestID = receipts_post ******************** --> <#break>
<#assign restResponseBody = JsonUtil.decodeBase64(restResponsetMsg.body) /> <#case 200>
<#assign preparationOrderPostResponse = JsonUtil.jsonToMap(restResponseBody)> <#case 201>
<#if preparationOrderPostResponse.status?? && preparationOrderPostResponse.status == "SUCCESS" > <#assign restResponseBody = JsonUtil.decodeBase64(restResponsetMsg.body) />
[ <#assign preparationOrderPostResponse = JsonUtil.jsonToMap(restResponseBody)>
{ <#if preparationOrderPostResponse.status?? && (preparationOrderPostResponse.status == "SUCCESS" || preparationOrderPostResponse.status == "WARN") >
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowDeleted> [
"apiReflexPlatformID" : "${apiReflexPlatformID}", {
"datas" : <#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowDeleted>
<#include "RFXtoRP_Receipt_ExecutionflowDeleted.ftl"> "apiReflexPlatformID" : "${apiReflexPlatformID}",
} "datas" :
] <#include "RFXtoRP_ExecutionflowDeleted.ftl">
<#else> }
[ ]
{ <#else>
<#assign restResponseBody = JsonUtil.decodeBase64(restResponsetMsg.body) /> [
<#assign apiReflexPlatformID = ApiReflexPlatformID.PlatformLogCreate> {
"apiReflexPlatformID" : "${apiReflexPlatformID}", <#assign restResponseBody = JsonUtil.decodeBase64(restResponsetMsg.body) />
"datas" : <#assign apiReflexPlatformID = ApiReflexPlatformID.PlatformLogCreate>
<#include "RFXtoRP_PlatformLogCreate.ftl"> "apiReflexPlatformID" : "${apiReflexPlatformID}",
}, "datas" :
{ <#assign event = "RP_EXECUTIONFLOW_EVENT" />
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowAllocationError> <#include "RFXtoRP_PlatformLogCreate.ftl">
"apiReflexPlatformID" : "${apiReflexPlatformID}", },
"datas" : {
<#include "RFXtoRP_RestResponseAllocationError.ftl"> <#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowAllocationError>
} "apiReflexPlatformID" : "${apiReflexPlatformID}",
] "datas" :
<#include "RFXtoRP_RestResponseAllocationError.ftl">
</#if> }
<#break> ]
<#default> </#if>
[ <#break>
{ <#default>
<#if restResponsetMsg.body?? > [
<#assign restResponseBody = JsonUtil.decodeBase64(restResponsetMsg.body) /> {
<#else> <#if restResponsetMsg.body?? >
<#assign restResponseBody = "${restResponsetMsg?trim?json_string}" /> <#assign restResponseBody = JsonUtil.decodeBase64(restResponsetMsg.body) />
</#if> <#else>
<#assign apiReflexPlatformID = ApiReflexPlatformID.PlatformLogCreate> <#assign restResponseBody = "${restResponsetMsg?trim?json_string}" />
"apiReflexPlatformID" : "${apiReflexPlatformID}", </#if>
"datas" : <#assign apiReflexPlatformID = ApiReflexPlatformID.PlatformLogCreate>
<#include "RFXtoRP_PlatformLogCreate.ftl"> "apiReflexPlatformID" : "${apiReflexPlatformID}",
}, "datas" :
{ <#assign event = "RP_EXECUTIONFLOW_EVENT" />
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowAllocationError> <#include "RFXtoRP_PlatformLogCreate.ftl">
"apiReflexPlatformID" : "${apiReflexPlatformID}", },
"datas" : {
<#include "RFXtoRP_RestResponseAllocationError.ftl"> <#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowAllocationError>
} "apiReflexPlatformID" : "${apiReflexPlatformID}",
] "datas" :
</#switch> <#include "RFXtoRP_RestResponseAllocationError.ftl">
<#break> }
<#default> ]
<#stop> </#switch>
</#switch> <#break>
<#-- *********************************************** Appointment_post_create ******************** -->
<#case "appointment_post_create">
<#switch restResponsetMsg.status!no_status>
<#case no_status>
[
{
<#if restResponsetMsg.body?? >
<#assign restResponseBody = JsonUtil.decodeBase64(restResponsetMsg.body) />
<#else>
<#assign restResponseBody = "${restResponsetMsg?trim?json_string}" />
</#if>
<#assign apiReflexPlatformID = ApiReflexPlatformID.PlatformLogCreate>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#assign event = "RP_APPOINTMENT_EVENT" />
<#include "RFXtoRP_PlatformLogCreate.ftl">
},
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.AppointmentAllocationError>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_RestResponseAppointmentAllocationError.ftl">
}
]
<#break>
<#case 200>
<#case 201>
<#assign restResponseBody = JsonUtil.decodeBase64(restResponsetMsg.body) />
<#assign preparationOrderPostResponse = JsonUtil.jsonToMap(restResponseBody)>
<#if preparationOrderPostResponse.status?? && (preparationOrderPostResponse.status == "SUCCESS" || preparationOrderPostResponse.status == "WARN") >
[
{
<#stop >
}
]
<#else>
[
{
<#assign restResponseBody = JsonUtil.decodeBase64(restResponsetMsg.body) />
<#assign apiReflexPlatformID = ApiReflexPlatformID.PlatformLogCreate>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#assign event = "RP_APPOINTMENT_EVENT" />
<#include "RFXtoRP_PlatformLogCreate.ftl">
},
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.AppointmentAllocationError>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_RestResponseAppointmentAllocationError.ftl">
}
]
</#if>
<#break>
<#default>
[
{
<#if restResponsetMsg.body?? >
<#assign restResponseBody = JsonUtil.decodeBase64(restResponsetMsg.body) />
<#else>
<#assign restResponseBody = "${restResponsetMsg?trim?json_string}" />
</#if>
<#assign apiReflexPlatformID = ApiReflexPlatformID.PlatformLogCreate>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#assign event = "RP_APPOINTMENT_EVENT" />
<#include "RFXtoRP_PlatformLogCreate.ftl">
},
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.AppointmentAllocationError>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_RestResponseAppointmentAllocationError.ftl">
}
]
</#switch>
<#break>
<#-- *********************************************** ApiRestID = appointment_put_update_ref ******************** -->
<#case "appointment_put_update_by_ref">
<#case "appointment_put_update_by_number">
<#switch restResponsetMsg.status!no_status>
<#case no_status>
[
{
<#if restResponsetMsg.body?? >
<#assign restResponseBody = JsonUtil.decodeBase64(restResponsetMsg.body) />
<#else>
<#assign restResponseBody = "${restResponsetMsg?trim?json_string}" />
</#if>
<#assign apiReflexPlatformID = ApiReflexPlatformID.PlatformLogCreate>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#assign event = "RP_APPOINTMENT_EVENT" />
<#include "RFXtoRP_PlatformLogCreate.ftl">
},
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.AppointmentAllocationError>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_RestResponseAppointmentAllocationError.ftl">
}
]
<#break>
<#case 200>
<#case 201>
<#assign restResponseBody = JsonUtil.decodeBase64(restResponsetMsg.body) />
<#assign preparationOrderPostResponse = JsonUtil.jsonToMap(restResponseBody)>
<#if preparationOrderPostResponse.status?? && (preparationOrderPostResponse.status == "SUCCESS" || preparationOrderPostResponse.status == "WARN") >
[
{
<#stop >
}
]
<#else>
[
{
<#assign restResponseBody = JsonUtil.decodeBase64(restResponsetMsg.body) />
<#assign apiReflexPlatformID = ApiReflexPlatformID.PlatformLogCreate>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#assign event = "RP_APPOINTMENT_EVENT" />
<#include "RFXtoRP_PlatformLogCreate.ftl">
},
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.AppointmentAllocationError>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_RestResponseAppointmentAllocationError.ftl">
}
]
</#if>
<#break>
<#default>
[
{
<#if restResponsetMsg.body?? >
<#assign restResponseBody = JsonUtil.decodeBase64(restResponsetMsg.body) />
<#else>
<#assign restResponseBody = "${restResponsetMsg?trim?json_string}" />
</#if>
<#assign apiReflexPlatformID = ApiReflexPlatformID.PlatformLogCreate>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#assign event = "RP_APPOINTMENT_EVENT" />
<#include "RFXtoRP_PlatformLogCreate.ftl">
},
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.AppointmentAllocationError>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_RestResponseAppointmentAllocationError.ftl">
}
]
</#switch>
<#break>
<#-- *********************************************** ApiRestID = canceled ******************** -->
<#case "status_appointment_put_update_by_ref">
<#case "status_appointment_put_update_by_number">
<#switch restResponsetMsg.status!no_status>
<#case no_status>
[
{
<#if restResponsetMsg.body?? >
<#assign restResponseBody = JsonUtil.decodeBase64(restResponsetMsg.body) />
<#else>
<#assign restResponseBody = "${restResponsetMsg?trim?json_string}" />
</#if>
<#assign apiReflexPlatformID = ApiReflexPlatformID.PlatformLogCreate>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#assign event = "RP_APPOINTMENT_EVENT" />
<#include "RFXtoRP_PlatformLogCreate.ftl">
},
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.AppointmentAllocationError>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_RestResponseAppointmentAllocationError.ftl">
}
]
<#break>
<#case 200>
<#case 201>
<#assign restResponseBody = JsonUtil.decodeBase64(restResponsetMsg.body) />
<#assign preparationOrderPostResponse = JsonUtil.jsonToMap(restResponseBody)>
<#if preparationOrderPostResponse.status?? && (preparationOrderPostResponse.status == "SUCCESS" || preparationOrderPostResponse.status == "WARN") >
[
{
<#stop >
}
]
<#else>
[
{
<#assign restResponseBody = JsonUtil.decodeBase64(restResponsetMsg.body) />
<#assign apiReflexPlatformID = ApiReflexPlatformID.PlatformLogCreate>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#assign event = "RP_APPOINTMENT_EVENT" />
<#include "RFXtoRP_PlatformLogCreate.ftl">
},
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.AppointmentAllocationError>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_RestResponseAppointmentAllocationError.ftl">
}
]
</#if>
<#break>
<#default>
[
{
<#if restResponsetMsg.body?? >
<#assign restResponseBody = JsonUtil.decodeBase64(restResponsetMsg.body) />
<#else>
<#assign restResponseBody = "${restResponsetMsg?trim?json_string}" />
</#if>
<#assign apiReflexPlatformID = ApiReflexPlatformID.PlatformLogCreate>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#assign event = "RP_APPOINTMENT_EVENT" />
<#include "RFXtoRP_PlatformLogCreate.ftl">
},
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.AppointmentAllocationError>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_RestResponseAppointmentAllocationError.ftl">
}
]
</#switch>
<#break>
<#-- *********************************************** ApiRestID = appointment_post_physical_receipt_associations/dissociations ******************** -->
<#case "appointment_post_physical_receipt_associations_by_ref">
<#case "appointment_post_physical_receipt_associations_by_number">
<#case "appointment_post_physical_receipt_dissociations_by_ref">
<#case "appointment_post_physical_receipt_dissociations_by_number">
<#switch restResponsetMsg.status!no_status>
<#case no_status>
[
{
<#if restResponsetMsg.body?? >
<#assign restResponseBody = JsonUtil.decodeBase64(restResponsetMsg.body) />
<#else>
<#assign restResponseBody = "${restResponsetMsg?trim?json_string}" />
</#if>
<#assign apiReflexPlatformID = ApiReflexPlatformID.PlatformLogCreate>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#assign event = "RP_APPOINTMENT_EVENT" />
<#include "RFXtoRP_PlatformLogCreate.ftl">
},
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.AppointmentAllocationError>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_RestResponseAppointmentAllocationError.ftl">
}
]
<#break>
<#case 200>
<#case 201>
<#assign restResponseBody = JsonUtil.decodeBase64(restResponsetMsg.body) />
<#assign preparationOrderPostResponse = JsonUtil.jsonToMap(restResponseBody)>
<#if preparationOrderPostResponse.status?? && (preparationOrderPostResponse.status == "SUCCESS" || preparationOrderPostResponse.status == "WARN") >
[
{
<#stop >
}
]
<#else>
[
{
<#assign restResponseBody = JsonUtil.decodeBase64(restResponsetMsg.body) />
<#assign apiReflexPlatformID = ApiReflexPlatformID.PlatformLogCreate>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#assign event = "RP_APPOINTMENT_EVENT" />
<#include "RFXtoRP_PlatformLogCreate.ftl">
},
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.AppointmentAllocationError>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_RestResponseAppointmentAllocationError.ftl">
}
]
</#if>
<#break>
<#default>
[
{
<#if restResponsetMsg.body?? >
<#assign restResponseBody = JsonUtil.decodeBase64(restResponsetMsg.body) />
<#else>
<#assign restResponseBody = "${restResponsetMsg?trim?json_string}" />
</#if>
<#assign apiReflexPlatformID = ApiReflexPlatformID.PlatformLogCreate>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#assign event = "RP_APPOINTMENT_EVENT" />
<#include "RFXtoRP_PlatformLogCreate.ftl">
},
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.AppointmentAllocationError>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_RestResponseAppointmentAllocationError.ftl">
}
]
</#switch>
<#break>
<#-- *********************************************** default ******************** -->
<#default>
<#stop>
</#switch>

View File

@@ -0,0 +1,22 @@
<#include "HfRpConfig.ftl">
<#include "ReflexUtils.ftl">
<#include "ActorPrefix.ftl">
[
{
"Header": {
"ProjectID": "${projectRP}"
},
"ID": {
"RefID": "${id.refid!"no RefID"?trim?json_string}",
"RefDate": {
"DateTime": "${aDateTime?iso_utc}",
"AuthorTimeZone": "${time_zone_rfx}"
}
},
"Payload": {
"ActorID":"${RFXtoRPprefixDepot(id.actorID)?trim?json_string}"
}
}
]

View File

@@ -0,0 +1,131 @@
<#-- **** input parameters ***** -->
<#-- input : message HARDIS WMS -->
<#-- project : projectId in HARDIS SC NETWORK -->
<#-- organisation : organisationtId in HARDIS SC NETWORK -->
<#include "HfRpConfig.ftl">
<#include "ReflexUtils.ftl">
<#include "ActorPrefix.ftl">
<#assign eventRP = JsonUtil.jsonToMap(input)>
<#assign projectRP = project>
<#assign organisationRP = organisation>
<#switch eventRP.event>
<#-- *********************************************** Action = CREATE ******************** -->
<#case "Created">
<#assign appointment = eventRP.data />
[
{
<#assign apiRestReflexID = ApiRestReflexID.appointment_post_create>
"apiRestReflexID" : "${apiRestReflexID}",
"datas" :
<#include "RPtoRFX_CarrierAppointmentCreated.ftl">
}
]
<#break>
<#-- *********************************************** Action = CommissionsUpdated ******************** -->
<#case "Updated">
<#assign AddComma = false />
<#assign appointment = eventRP.data />
[
<#if appointment?? && (!(appointment.WMSCreated??) || !appointment.WMSCreated) && appointment.Status?? && appointment.Status.Current?? && appointment.Status.Current.StatusCode?? && appointment.Status.Current.StatusCode == AppointmentStatusCode.APPOINTMENT_0150_ALLOCATION_ERROR>
{
<#assign apiRestReflexID = ApiRestReflexID.appointment_post_create>
"apiRestReflexID" : "${apiRestReflexID}",
"datas" :
<#include "RPtoRFX_CarrierAppointmentCreated.ftl">
}
<#else>
<#if eventRP.commissionsUpdated>
<#if appointment.AppointmentType == AppointmentType.APPOINTMENT_TYPE_UNLOADING && eventRP.addedUnloadCommissions?? && eventRP.addedUnloadCommissions != "">
<#if eventRP.appointmentCustomFields?has_content>
{
<#assign apiRestReflexID = ApiRestReflexID.appointment_post_physical_receipt_associations_by_number>
"apiRestReflexID" : "${apiRestReflexID}",
"datas" :
<#include "RPtoRFX_CarrierAppointmentPhysicalReceiptAssociationByNumber.ftl">
}
<#else>
{
<#assign apiRestReflexID = ApiRestReflexID.appointment_post_physical_receipt_associations_by_ref>
"apiRestReflexID" : "${apiRestReflexID}",
"datas" :
<#include "RPtoRFX_CarrierAppointmentPhysicalReceiptAssociationByRef.ftl">
}
</#if>
<#assign AddComma = true />
</#if>
<#if appointment.AppointmentType == AppointmentType.APPOINTMENT_TYPE_UNLOADING && eventRP.removedUnloadCommissions?? && eventRP.removedUnloadCommissions!="">
<#if AddComma == true>
,
</#if>
<#if eventRP.appointmentCustomFields?has_content>
{
<#assign apiRestReflexID = ApiRestReflexID.appointment_post_physical_receipt_dissociations_by_number>
"apiRestReflexID" : "${apiRestReflexID}",
"datas" :
<#include "RPtoRFX_CarrierAppointmentPhysicalReceiptDissociationByNumber.ftl">
}
<#else>
{
<#assign apiRestReflexID = ApiRestReflexID.appointment_post_physical_receipt_dissociations_by_ref>
"apiRestReflexID" : "${apiRestReflexID}",
"datas" :
<#include "RPtoRFX_CarrierAppointmentPhysicalReceiptDissociationByRef.ftl">
}
</#if>
<#assign AddComma = true />
</#if>
</#if>
<#-- *********************************************** Action = reasonUpdated or slotUpdated ******************** -->
<#if eventRP.reasonUpdated || eventRP.slotUpdated || eventRP.carrierInformationUpdated>
<#if AddComma == true>
,
</#if>
<#if eventRP.appointmentCustomFields?has_content>
{
<#assign apiRestReflexID = ApiRestReflexID.appointment_put_update_by_number>
"apiRestReflexID" : "${apiRestReflexID}",
"datas" :
<#include "RPtoRFX_CarrierAppointmentSlotOrCarrierInformationUpdatedByNumber.ftl">
}
<#else>
{
<#assign apiRestReflexID = ApiRestReflexID.appointment_put_update_by_ref>
"apiRestReflexID" : "${apiRestReflexID}",
"datas" :
<#include "RPtoRFX_CarrierAppointmentSlotOrCarrierInformationUpdatedByRef.ftl">
}
</#if>
<#assign AddComma = true />
</#if>
</#if>
]
<#break>
<#-- *********************************************** Action = Canceled ******************** -->
<#case "Canceled">
<#assign appointment = eventRP.data />
[
<#if eventRP.appointmentCustomFields?has_content>
{
<#assign apiRestReflexID = ApiRestReflexID.status_appointment_put_update_by_number>
"apiRestReflexID" : "${apiRestReflexID}",
"datas" :
<#include "RPtoRFX_CarrierAppointmentCanceledByNumber.ftl">
}
<#else>
{
<#assign apiRestReflexID = ApiRestReflexID.status_appointment_put_update_by_ref>
"apiRestReflexID" : "${apiRestReflexID}",
"datas" :
<#include "RPtoRFX_CarrierAppointmentCanceledByRef.ftl">
}
</#if>
]
<#break>
<#default>
<#stop >
</#switch>

View File

@@ -0,0 +1,15 @@
{
"id" : {"refid" : "${eventRP.refid?json_string}","actorID":"${RPtoRFXprefixDepot(eventRP.actor)}"},
"route" : "rest/public/v1/physical_depots/{physical_depot_code}/appointment_years/{appointment_year}/appointment_numbers/{appointment_number}/status",
"method" : "PUT",
"uri_substitutions": {
"physical_depot_code": "${RPtoRFXprefixDepot(eventRP.actor)}",
"appointment_year":"${eventRP.appointmentCustomFields.year?json_string}",
"appointment_number":"${eventRP.appointmentCustomFields.number?json_string}"
},
"payload" :
{
"status_code": "999",
<#include "RPtoRFX_CarrierAppointmentCancellationCode.ftl">
}
}

View File

@@ -0,0 +1,14 @@
{
"id" : {"refid" : "${eventRP.refid?json_string}","actorID":"${RPtoRFXprefixDepot(eventRP.actor)}"},
"route" : "rest/public/v1/physical_depots/{physical_depot_code}/carrier_appointments/{appointment_reference}/status",
"method" : "PUT",
"uri_substitutions": {
"physical_depot_code": "${RPtoRFXprefixDepot(eventRP.actor)}",
"appointment_reference":"${eventRP.refid?json_string}"
},
"payload" :
{
"status_code": "999",
<#include "RPtoRFX_CarrierAppointmentCancellationCode.ftl">
}
}

View File

@@ -0,0 +1,2 @@
<#-- To custom with cancellation reason code, the reason code must be cancellation type-->
"cancellation_reason_code": ""

View File

@@ -0,0 +1,67 @@
{
"id" : {"refid" : "${eventRP.refid?json_string}","actorID":"${RPtoRFXprefixDepot(eventRP.actor)}"},
"route" : "rest/public/v1/physical_depots/{physical_depot_code}/carrier_appointments",
"method" : "POST",
"uri_substitutions": {
"physical_depot_code": "${RPtoRFXprefixDepot(eventRP.actor)}"
},
"payload" :
{
"appointment_reference": "${eventRP.refid?json_string}",
<#switch appointment.AppointmentType>
<#case AppointmentType.APPOINTMENT_TYPE_LOADING>
"unloading_appointment" : "false",
"load_appointment" : "true",
<#if appointment.TimeZone?? && appointment.TimeZone!="">
"planned_load_start_datetime" : "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.StartDateTime,appointment.TimeZone),time_zone_rfx)}",
"planned_load_end_datetime": "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.EndDateTime,appointment.TimeZone),time_zone_rfx)}",
<#else>
"planned_load_start_datetime" : "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.StartDateTime,time_zone_rfx),time_zone_rfx)}",
"planned_load_end_datetime": "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.EndDateTime,time_zone_rfx),time_zone_rfx)}",
</#if>
<#break>
<#case AppointmentType.APPOINTMENT_TYPE_UNLOADING>
"unloading_appointment" : "true",
"load_appointment" : "false",
<#if appointment.TimeZone?? && appointment.TimeZone!="">
"planned_unloading_start_datetime":"${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.StartDateTime,appointment.TimeZone),time_zone_rfx)}",
"planned_unloading_end_datetime" : "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.EndDateTime,appointment.TimeZone),time_zone_rfx)}",
<#else>
"planned_unloading_start_datetime":"${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.StartDateTime,time_zone_rfx),time_zone_rfx)}",
"planned_unloading_end_datetime" : "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.EndDateTime,time_zone_rfx),time_zone_rfx)}",
</#if>
<#break>
<#default>
<#stop "appointment.AppointmentType not implemented" >
</#switch>
<#include "RPtoRFX_CarrierAppointmentDefaultData.ftl">
<#if appointment.AppointmentType == AppointmentType.APPOINTMENT_TYPE_UNLOADING >
<#if appointment.Unloading?? && appointment.Unloading.Projects?? && appointment.Unloading.Projects[0]?? &&
appointment.Unloading.Projects[0].Commissions?? &&
appointment.Unloading.Projects[0].Commissions[0]?? && appointment.Unloading.Projects[0].Commissions[0].ExecutionflowID?? && appointment.Unloading.Projects[0].Commissions[0].ExecutionflowID!="" >
"physical_receipt_list": [
<#list appointment.Unloading.Projects[0].Commissions?filter(l ->l.ExecutionflowID?? && l.ExecutionflowID !="") as commission>
<#list eventRP.executionflowCustomFields.entrySet()?filter(l ->l.key == commission.ExecutionflowID && l.value?? && l.value?has_content) as custom>
{
"receipt_activity": "${custom.value.activity_code?json_string}",
"originator_code": "${custom.value.originator_code?json_string}",
"physical_receipt_reference": "${custom.value.reference?json_string}",
"receipt_year": "${custom.value.order_year?json_string}",
"receipt_number": "${custom.value.order_number?json_string}"
}
<#sep>,</#sep>
</#list>
<#sep>,</#sep>
</#list>
],
<#else>
"appointment_designation":"${(appointment.Reason!"")!?json_string}",
</#if>
<#else>
<#if appointment.AppointmentType == AppointmentType.APPOINTMENT_TYPE_LOADING>
"appointment_designation":"${(appointment.Reason!"")?json_string}",
</#if>
</#if>
"constant_appointment": "false"
}
}

View File

@@ -0,0 +1,21 @@
<#-- Note : you can use Order Line Metadata, using the define map : Line_MetaData_Map -->
<#-- Note : you can use Order Line Segmentation keys, using the define map : SegmentationKeys_Map -->
<#-- How to use MD or SK map
<#if appointment.CarrierInformation??>
<#assign CarrierInformation_Map = JsonUtil.sequenceToMap(appointment.CarrierInformation, "Key", "Value") />
<#if CarrierInformation_Map["Immatriculation"]??>
<#assign registration_number1 = CarrierInformation_Map["Immatriculation"].String!""/>
"registration_number":"${registration_number1}",
<#else>
"registration_number":"no plate number",
</#if>
</#if>
If your SK is :
Boolean : .Bool
Float : .Float
Timestamp : .Timestamp.DateTime or .Timestamp.AuthorTimeZone
Int : .Int
String : .String
-->

View File

@@ -0,0 +1,41 @@
<#-- Note : you can use Order Line Metadata, using the define map : Line_MetaData_Map -->
<#-- Note : you can use Order Line Segmentation keys, using the define map : SegmentationKeys_Map -->
<#-- How to use MD or SK map
<#if appointment.CarrierInformation??>
<#assign CarrierInformation_Map = JsonUtil.sequenceToMap(appointment.CarrierInformation, "Key", "Value") />
<#if CarrierInformation_Map["Immatriculation"]??>
<#assign registration_number1 = CarrierInformation_Map["Immatriculation"].String!""/>
"registration_number":"${registration_number1}",
<#else>
"registration_number":"no plate number",
</#if>
</#if>
If your SK is :
Boolean : .Bool
Float : .Float
Timestamp : .Timestamp.DateTime or .Timestamp.AuthorTimeZone
Int : .Int
String : .String
-->
<#-- Note : you can send url path of appointment to WMS, using this below code -->
<#--
<#assign appointmentPathURL = JsonUtil.getAppointmentPathURL(eventRP.site,eventRP.refid)>
<#assign payLoad = '{ "Header": {"ProjectID": "${projectRP!""}"},"IsOnce": false,"IsPublic": true,"TimeToLive": "0","URL": "${appointmentPathURL}"}' />
<#assign projectGetTinyURL = QueryApiReflexPlatformID.ProjectGetTinyURL>
<#assign response = QueryApiReflexPlatformCall.call(projectGetTinyURL,payLoad) />
<#assign tinyURL = JsonUtil.jsonToMap(response)>
<#if tinyURL?? && tinyURL.TinyURL?? >
"comment_list": [
{
"line_number": 1,
"group_code": "SCN",
"text": "${tinyURL.TinyURL.URL?json_string}"
}
],
</#if>
-->

View File

@@ -0,0 +1,32 @@
{
"id" : {"refid" : "${eventRP.refid?json_string}","actorID":"${RPtoRFXprefixDepot(eventRP.actor)}"},
"route" : "rest/public/v1/physical_depots/{physical_depot_code}/appointment_years/{appointment_year}/appointment_numbers/{appointment_number}/physical_receipt_associations",
"method" : "POST",
"uri_substitutions": {
"physical_depot_code": "${RPtoRFXprefixDepot(eventRP.actor)}",
"appointment_year":"${eventRP.appointmentCustomFields.year?json_string}",
"appointment_number":"${eventRP.appointmentCustomFields.number?json_string}"
},
"payload" :
{
<#assign executionflowCustomFields = eventRP.executionflowCustomFields >
<#if appointment.AppointmentType == AppointmentType.APPOINTMENT_TYPE_UNLOADING>
<#assign addedCommissions = eventRP.addedUnloadCommissions />
<#else>
<#assign addedCommissions = eventRP.addedLoadCommissions />
</#if>
"physical_receipt_list": [
<#list addedCommissions?filter(l -> l.ExecutionflowID??) as addedCommission>
{
"receipt_activity": "${executionflowCustomFields[addedCommission.ExecutionflowID].activity_code?json_string}",
"originator_code": "${executionflowCustomFields[addedCommission.ExecutionflowID].originator_code?json_string}",
"physical_receipt_reference": "${executionflowCustomFields[addedCommission.ExecutionflowID].reference?json_string}",
"receipt_year": "${executionflowCustomFields[addedCommission.ExecutionflowID].order_year?json_string}",
"receipt_number": "${executionflowCustomFields[addedCommission.ExecutionflowID].order_number?json_string}"
}
<#sep>,</#sep>
</#list>
]
}
}

View File

@@ -0,0 +1,31 @@
{
"id" : {"refid" : "${eventRP.refid?json_string}","actorID":"${RPtoRFXprefixDepot(eventRP.actor)}"},
"route" : "rest/public/v1/physical_depots/{physical_depot_code}/carrier_appointments/{appointment_reference}/physical_receipt_associations",
"method" : "POST",
"uri_substitutions": {
"physical_depot_code": "${RPtoRFXprefixDepot(eventRP.actor)}",
"appointment_reference":"${eventRP.refid?json_string}"
},
"payload" :
{
<#assign executionflowCustomFields = eventRP.executionflowCustomFields >
<#if appointment.AppointmentType == AppointmentType.APPOINTMENT_TYPE_UNLOADING>
<#assign addedCommissions = eventRP.addedUnloadCommissions />
<#else>
<#assign addedCommissions = eventRP.addedLoadCommissions />
</#if>
"physical_receipt_list": [
<#list addedCommissions?filter(l -> l.ExecutionflowID??) as addedCommission>
{
"receipt_activity": "${executionflowCustomFields[addedCommission.ExecutionflowID].activity_code?json_string}",
"originator_code": "${executionflowCustomFields[addedCommission.ExecutionflowID].originator_code?json_string}",
"physical_receipt_reference": "${executionflowCustomFields[addedCommission.ExecutionflowID].reference?json_string}",
"receipt_year": "${executionflowCustomFields[addedCommission.ExecutionflowID].order_year?json_string}",
"receipt_number": "${executionflowCustomFields[addedCommission.ExecutionflowID].order_number?json_string}"
}
<#sep>,</#sep>
</#list>
]
}
}

View File

@@ -0,0 +1,32 @@
{
"id" : {"refid" : "${eventRP.refid?json_string}","actorID":"${RPtoRFXprefixDepot(eventRP.actor)}"},
"route" : "rest/public/v1/physical_depots/{physical_depot_code}/appointment_years/{appointment_year}/appointment_numbers/{appointment_number}/physical_receipt_dissociations",
"method" : "POST",
"uri_substitutions": {
"physical_depot_code": "${RPtoRFXprefixDepot(eventRP.actor)}",
"appointment_year":"${eventRP.appointmentCustomFields.year?json_string}",
"appointment_number":"${eventRP.appointmentCustomFields.number?json_string}"
},
"payload" :
{
<#assign executionflowCustomFields = eventRP.executionflowCustomFields >
<#if appointment.AppointmentType == AppointmentType.APPOINTMENT_TYPE_UNLOADING>
<#assign removedCommissions = eventRP.removedUnloadCommissions />
<#else>
<#assign removedCommissions = eventRP.removedLoadCommissions />
</#if>
"physical_receipt_list": [
<#list removedCommissions?filter(l -> l.ExecutionflowID??) as removedCommission>
{
"receipt_activity": "${executionflowCustomFields[removedCommission.ExecutionflowID].activity_code?json_string}",
"originator_code": "${executionflowCustomFields[removedCommission.ExecutionflowID].originator_code?json_string}",
"physical_receipt_reference": "${executionflowCustomFields[removedCommission.ExecutionflowID].reference?json_string}",
"receipt_year": "${executionflowCustomFields[removedCommission.ExecutionflowID].order_year?json_string}",
"receipt_number": "${executionflowCustomFields[removedCommission.ExecutionflowID].order_number?json_string}"
}
<#sep>,</#sep>
</#list>
]
}
}

View File

@@ -0,0 +1,31 @@
{
"id" : {"refid" : "${eventRP.refid?json_string}","actorID":"${RPtoRFXprefixDepot(eventRP.actor)}"},
"route" : "rest/public/v1/physical_depots/{physical_depot_code}/carrier_appointments/{appointment_reference}/physical_receipt_dissociations",
"method" : "POST",
"uri_substitutions": {
"physical_depot_code": "${RPtoRFXprefixDepot(eventRP.actor)}",
"appointment_reference":"${eventRP.refid?json_string}"
},
"payload" :
{
<#assign executionflowCustomFields = eventRP.executionflowCustomFields >
<#if appointment.AppointmentType == AppointmentType.APPOINTMENT_TYPE_UNLOADING>
<#assign removedCommissions = eventRP.removedUnloadCommissions />
<#else>
<#assign removedCommissions = eventRP.removedLoadCommissions />
</#if>
"physical_receipt_list": [
<#list removedCommissions?filter(l -> l.ExecutionflowID??) as removedCommission>
{
"receipt_activity": "${executionflowCustomFields[removedCommission.ExecutionflowID].activity_code?json_string}",
"originator_code": "${executionflowCustomFields[removedCommission.ExecutionflowID].originator_code?json_string}",
"physical_receipt_reference": "${executionflowCustomFields[removedCommission.ExecutionflowID].reference?json_string}",
"receipt_year": "${executionflowCustomFields[removedCommission.ExecutionflowID].order_year?json_string}",
"receipt_number": "${executionflowCustomFields[removedCommission.ExecutionflowID].order_number?json_string}"
}
<#sep>,</#sep>
</#list>
]
}
}

View File

@@ -0,0 +1,38 @@
{
"id" : {"refid" : "${eventRP.refid?json_string}","actorID":"${RPtoRFXprefixDepot(eventRP.actor)}"},
"route" : "rest/public/v1/physical_depots/{physical_depot_code}/appointment_years/{appointment_year}/appointment_numbers/{appointment_number}",
"method" : "PUT",
"uri_substitutions": {
"physical_depot_code": "${RPtoRFXprefixDepot(eventRP.actor)}",
"appointment_year":"${eventRP.appointmentCustomFields.year?json_string}",
"appointment_number":"${eventRP.appointmentCustomFields.number?json_string}"
},
"payload" :
{
"unloading_appointment" : "${eventRP.appointmentCustomFields.unloading!"false"?json_string}",
"load_appointment" : "${eventRP.appointmentCustomFields.loading!"false"?json_string}",
<#switch appointment.AppointmentType>
<#case AppointmentType.APPOINTMENT_TYPE_LOADING>
<#if appointment.TimeZone?? && appointment.TimeZone!="">
"planned_load_start_datetime" : "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.StartDateTime,appointment.TimeZone),time_zone_rfx)}",
"planned_load_end_datetime": "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.EndDateTime,appointment.TimeZone),time_zone_rfx)}",
<#else>
"planned_load_start_datetime" : "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.StartDateTime,time_zone_rfx),time_zone_rfx)}",
"planned_load_end_datetime": "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.EndDateTime,time_zone_rfx),time_zone_rfx)}",
</#if>
<#break>
<#case AppointmentType.APPOINTMENT_TYPE_UNLOADING>
<#if appointment.TimeZone?? && appointment.TimeZone!="">
"planned_unloading_start_datetime":"${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.StartDateTime,appointment.TimeZone),time_zone_rfx)}",
"planned_unloading_end_datetime" : "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.EndDateTime,appointment.TimeZone),time_zone_rfx)}",
<#else>
"planned_unloading_start_datetime":"${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.StartDateTime,time_zone_rfx),time_zone_rfx)}",
"planned_unloading_end_datetime" : "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.EndDateTime,time_zone_rfx),time_zone_rfx)}",
</#if>
<#break>
<#default>
<#stop "appointment.AppointmentType not implemented" >
</#switch>
"appointment_designation":"${(appointment.Reason!"")!?json_string}"
}
}

View File

@@ -0,0 +1,39 @@
{
"id" : {"refid" : "${eventRP.refid?json_string}","actorID":"${RPtoRFXprefixDepot(eventRP.actor)}"},
"route" : "rest/public/v1/physical_depots/{physical_depot_code}/carrier_appointments/{appointment_reference}",
"method" : "PUT",
"uri_substitutions": {
"physical_depot_code": "${RPtoRFXprefixDepot(eventRP.actor)}",
"appointment_reference":"${eventRP.refid?json_string}"
},
"payload" :
{
<#switch appointment.AppointmentType>
<#case AppointmentType.APPOINTMENT_TYPE_LOADING>
"unloading_appointment" : "false",
"load_appointment" : "true",
<#if appointment.TimeZone?? && appointment.TimeZone!="">
"planned_load_start_datetime" : "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.StartDateTime,appointment.TimeZone),time_zone_rfx)}",
"planned_load_end_datetime": "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.EndDateTime,appointment.TimeZone),time_zone_rfx)}",
<#else>
"planned_load_start_datetime" : "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.StartDateTime,time_zone_rfx),time_zone_rfx)}",
"planned_load_end_datetime": "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.EndDateTime,time_zone_rfx),time_zone_rfx)}",
</#if>
<#break>
<#case AppointmentType.APPOINTMENT_TYPE_UNLOADING>
"unloading_appointment" : "true",
"load_appointment" : "false",
<#if appointment.TimeZone?? && appointment.TimeZone!="">
"planned_unloading_start_datetime":"${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.StartDateTime,appointment.TimeZone),time_zone_rfx)}",
"planned_unloading_end_datetime" : "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.EndDateTime,appointment.TimeZone),time_zone_rfx)}",
<#else>
"planned_unloading_start_datetime":"${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.StartDateTime,time_zone_rfx),time_zone_rfx)}",
"planned_unloading_end_datetime" : "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.EndDateTime,time_zone_rfx),time_zone_rfx)}",
</#if>
<#break>
<#default>
<#stop "appointment.AppointmentType not implemented" >
</#switch>
"appointment_designation":"${(appointment.Reason!"")!?json_string}"
}
}

View File

@@ -0,0 +1,39 @@
{
"id" : {"refid" : "${eventRP.refid?json_string}","actorID":"${RPtoRFXprefixDepot(eventRP.actor)}"},
"route" : "rest/public/v1/physical_depots/{physical_depot_code}/appointment_years/{appointment_year}/appointment_numbers/{appointment_number}",
"method" : "PUT",
"uri_substitutions": {
"physical_depot_code": "${RPtoRFXprefixDepot(eventRP.actor)}",
"appointment_year":"${eventRP.appointmentCustomFields.year?json_string}",
"appointment_number":"${eventRP.appointmentCustomFields.number?json_string}"
},
"payload" :
{
<#include "RPtoRFX_CarrierAppointmentDataUpdated.ftl">
"unloading_appointment" : "${eventRP.appointmentCustomFields.unloading!"false"?json_string}",
"load_appointment" : "${eventRP.appointmentCustomFields.loading!"false"?json_string}",
<#switch appointment.AppointmentType>
<#case AppointmentType.APPOINTMENT_TYPE_LOADING>
<#if appointment.TimeZone?? && appointment.TimeZone!="">
"planned_load_start_datetime" : "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.StartDateTime,appointment.TimeZone),time_zone_rfx)}",
"planned_load_end_datetime": "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.EndDateTime,appointment.TimeZone),time_zone_rfx)}",
<#else>
"planned_load_start_datetime" : "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.StartDateTime,time_zone_rfx),time_zone_rfx)}",
"planned_load_end_datetime": "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.EndDateTime,time_zone_rfx),time_zone_rfx)}",
</#if>
<#break>
<#case AppointmentType.APPOINTMENT_TYPE_UNLOADING>
<#if appointment.TimeZone?? && appointment.TimeZone!="">
"planned_unloading_start_datetime":"${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.StartDateTime,appointment.TimeZone),time_zone_rfx)}",
"planned_unloading_end_datetime" : "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.EndDateTime,appointment.TimeZone),time_zone_rfx)}",
<#else>
"planned_unloading_start_datetime":"${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.StartDateTime,time_zone_rfx),time_zone_rfx)}",
"planned_unloading_end_datetime" : "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.EndDateTime,time_zone_rfx),time_zone_rfx)}",
</#if>
<#break>
<#default>
<#stop "appointment.AppointmentType not implemented" >
</#switch>
"appointment_designation":"${(appointment.Reason!"")!?json_string}"
}
}

View File

@@ -0,0 +1,40 @@
{
"id" : {"refid" : "${eventRP.refid?json_string}","actorID":"${RPtoRFXprefixDepot(eventRP.actor)}"},
"route" : "rest/public/v1/physical_depots/{physical_depot_code}/carrier_appointments/{appointment_reference}",
"method" : "PUT",
"uri_substitutions": {
"physical_depot_code": "${RPtoRFXprefixDepot(eventRP.actor)}",
"appointment_reference":"${eventRP.refid?json_string}"
},
"payload" :
{
<#include "RPtoRFX_CarrierAppointmentDataUpdated.ftl">
<#switch appointment.AppointmentType>
<#case AppointmentType.APPOINTMENT_TYPE_LOADING>
"unloading_appointment" : "false",
"load_appointment" : "true",
<#if appointment.TimeZone?? && appointment.TimeZone!="">
"planned_load_start_datetime" : "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.StartDateTime,appointment.TimeZone),time_zone_rfx)}",
"planned_load_end_datetime": "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.EndDateTime,appointment.TimeZone),time_zone_rfx)}",
<#else>
"planned_load_start_datetime" : "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.StartDateTime,time_zone_rfx),time_zone_rfx)}",
"planned_load_end_datetime": "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.EndDateTime,time_zone_rfx),time_zone_rfx)}",
</#if>
<#break>
<#case AppointmentType.APPOINTMENT_TYPE_UNLOADING>
"unloading_appointment" : "true",
"load_appointment" : "false",
<#if appointment.TimeZone?? && appointment.TimeZone!="">
"planned_unloading_start_datetime":"${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.StartDateTime,appointment.TimeZone),time_zone_rfx)}",
"planned_unloading_end_datetime" : "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.EndDateTime,appointment.TimeZone),time_zone_rfx)}",
<#else>
"planned_unloading_start_datetime":"${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.StartDateTime,time_zone_rfx),time_zone_rfx)}",
"planned_unloading_end_datetime" : "${DateTimeUTCtoRfxLocale(RfxDateTimetoUTCWithTimezone(appointment.Slot.EndDateTime,time_zone_rfx),time_zone_rfx)}",
</#if>
<#break>
<#default>
<#stop "appointment.AppointmentType not implemented" >
</#switch>
"appointment_designation":"${(appointment.Reason!"")!?json_string}"
}
}

View File

@@ -29,9 +29,9 @@
[ [
<#if eventRP.partnerAppRole == "ShipFrom" && executionflow.ShipFrom.ActorID != "" && executionflow.ShipFrom.Actor.IsShipFromConnected?? && executionflow.ShipFrom.Actor.IsShipFromConnected> <#if eventRP.partnerAppRole == "ShipFrom" && executionflow.ShipFrom.ActorID != "" && executionflow.ShipFrom.Actor.IsShipFromConnected?? && executionflow.ShipFrom.Actor.IsShipFromConnected>
{ {
<#assign apiRestReflexID = ApiRestReflexID.preparation_orders_post> <#assign apiRestReflexID = ApiRestReflexID.preparation_orders_post>
"apiRestReflexID" : "${apiRestReflexID}", "apiRestReflexID" : "${apiRestReflexID}",
"datas" : "datas" :
<#include "RPtoRFX_PrepOrder.ftl"> <#include "RPtoRFX_PrepOrder.ftl">
} }
</#if> </#if>

View File

@@ -16,8 +16,8 @@
<#assign activity_code = ""/> <#assign activity_code = ""/>
<#assign originator_code = ""/> <#assign originator_code = ""/>
<#assign preparation_type_code = ""/> <#assign preparation_type_code = "010"/>
<#assign requested_delivery_date_type = ""/> <#assign requested_delivery_date_type = "010"/>
<#assign consolidated_delivery_flag ="false"/> <#assign consolidated_delivery_flag ="false"/>
<#assign pick_sequence_code = ""/> <#assign pick_sequence_code = ""/>
<#assign protected_flag ="false"/> <#assign protected_flag ="false"/>
@@ -26,7 +26,7 @@
<#-- A supprimer si utilisation de la table de correspondance--> <#-- A supprimer si utilisation de la table de correspondance-->
<#--To be deleted if using the correspondence table--> <#--To be deleted if using the correspondence table-->
<#assign load_grouping = "default"> <#assign load_grouping = "">
<#-- Table de correspondance Transporteur/Code regroupement chargement, <#-- Table de correspondance Transporteur/Code regroupement chargement,

View File

@@ -20,7 +20,6 @@
"work_mode_code" : "${work_mode_code}", "work_mode_code" : "${work_mode_code}",
"original_code" : "${RPtoRFXprefixSupplier(executionflow.ShipFrom.ActorID)}", "original_code" : "${RPtoRFXprefixSupplier(executionflow.ShipFrom.ActorID)}",
"carrier_code" : "${RPtoRFXprefixCarrier(executionflow.Carrier.ActorID!"")}", "carrier_code" : "${RPtoRFXprefixCarrier(executionflow.Carrier.ActorID!"")}",
<#if executionflow.RequestedMilestones?? && executionflow.RequestedMilestones.RequestedDeliveryDateTime??> <#if executionflow.RequestedMilestones?? && executionflow.RequestedMilestones.RequestedDeliveryDateTime??>
"receipt_datetime": "${DateTimeUTCtoRfxLocale(executionflow.RequestedMilestones.RequestedDeliveryDateTime.DateTime,time_zone_rfx)}", "receipt_datetime": "${DateTimeUTCtoRfxLocale(executionflow.RequestedMilestones.RequestedDeliveryDateTime.DateTime,time_zone_rfx)}",
<#else> <#else>

View File

@@ -1,6 +1,6 @@
<#-- --------------------------------------------------------------------------------------- --> <#-- -------------------------------------------------------------------------------------------- -->
<#-- Concat HARDIS WMS timestamp with HARDIS WMS time zone and format this date in ISO UTC format --> <#-- Concat HARDIS WMS timestamp with HARDIS WMS time zone and format this date in ISO UTC format -->
<#-- --------------------------------------------------------------------------------------- --> <#-- -------------------------------------------------------------------------------------------- -->
<#function RfxDateTimetoUTC rfxdatetime offset > <#function RfxDateTimetoUTC rfxdatetime offset >
<#return ((rfxdatetime + offset)?datetime.iso?iso_utc)> <#return ((rfxdatetime + offset)?datetime.iso?iso_utc)>
</#function> </#function>
@@ -9,6 +9,22 @@
<#return dateutc?datetime.iso?iso_nz(locale)> <#return dateutc?datetime.iso?iso_nz(locale)>
</#function> </#function>
<#-- -------------------------------------------------------------------------------------------- -->
<#-- Add second to dateTime ex: AddSecondsToDatetime("2025-11-17T09:15:00Z"?datetime.iso, 61) -->
<#-- -------------------------------------------------------------------------------------------- -->
<#function AddSecondsToDatetime date seconds>
<#assign timeInMilliseconds = (1000 * seconds) >
<#assign aDate = date?long + timeInMilliseconds>
<#return aDate?number_to_datetime>
</#function>
<#-- -------------------------------------------------------------------------------------------- -->
<#-- Duration between two datetimes in second -->
<#-- -------------------------------------------------------------------------------------------- -->
<#function DurationBetweenTwoDatetimeInSeconds startDate endDate>
<#return (endDate?long - startDate?long) / 1000 >
</#function>
<#-- --------------------------------------------------------------------------------------- --> <#-- --------------------------------------------------------------------------------------- -->
<#-- Split email HARDIS WMS into json array string --> <#-- Split email HARDIS WMS into json array string -->
<#-- Example : splitemail "john.doe@hardis-group.com,; name@hardis-group.com" --> <#-- Example : splitemail "john.doe@hardis-group.com,; name@hardis-group.com" -->

View File

@@ -1 +1 @@
2.0.12+1 2.0.22+2