Compare commits

..

88 Commits

Author SHA1 Message Date
f23a11933d Release 1.2.45+4 2025-10-16 15:47:44 +02:00
d77f51fa52 Merge branch 'release-1.2-SCPN1-9437' into 'release/1.2'
SCPN1-9437 to release1.2

See merge request r-d-technique/tiers/reflex-wms-connector!149
2025-10-16 13:39:18 +00:00
c8806baf5c SCPN1-9437
(cherry picked from commit 374ab54994)
2025-10-16 15:10:27 +02:00
8ca2f62591 SCPN1-9437
(cherry picked from commit 8cafa21aa7)
2025-10-16 15:10:20 +02:00
97dbd248f8 SCPN1-9437
(cherry picked from commit d787148aae)
2025-10-16 15:10:12 +02:00
6bf2ea2329 SCPN1-9437
(cherry picked from commit 7786a93b25)
2025-10-16 15:10:01 +02:00
6bb1d45783 SCPN1-9437
(cherry picked from commit f05096636e)
2025-10-16 15:09:41 +02:00
f373cbe734 Release 1.2.45+3 2025-09-26 09:22:26 +02:00
1256e3d68c Merge branch 'SCPN1-9348-1.2' into 'release/1.2'
SCPN1-9348-1.2

See merge request r-d-technique/tiers/reflex-wms-connector!140
2025-09-26 07:12:32 +00:00
983a59b592 SCPN1-9348
(cherry picked from commit cb2f8fe59e)
2025-09-25 16:31:53 +02:00
eb6fc3f4a3 Release 1.2.45+2 2025-09-09 15:48:03 +02:00
8cf596e251 Merge branch 'SCPN1-9296-1.2-2' into 'release/1.2'
SCPN1-9296

See merge request r-d-technique/tiers/reflex-wms-connector!136
2025-09-09 13:46:36 +00:00
55070c8ce3 SCPN1-9296 2025-09-09 15:44:56 +02:00
928c05bff4 Release 1.2.45+1 2025-09-09 09:24:36 +02:00
2d8bdeb8a5 Merge branch 'SCPN1-9296-1.2' into 'release/1.2'
SCPN1-9296-1.2

See merge request r-d-technique/tiers/reflex-wms-connector!132
2025-09-09 07:22:34 +00:00
bb2aaae375 Correction list
(cherry picked from commit 7d874d7a68)
2025-09-09 09:00:24 +02:00
f4286949f7 Renotified
(cherry picked from commit 68668789b6)
2025-09-08 18:02:43 +02:00
6d6a56710b Release 1.2.44+2 2025-09-08 10:42:36 +02:00
9b93729ab4 Merge branch 'SCPN1-9288-1.2' into 'release/1.2'
SCPN1-9288-1.2

See merge request r-d-technique/tiers/reflex-wms-connector!128
2025-09-08 08:38:28 +00:00
18c4959a62 Correction 080925
(cherry picked from commit 0ad605af1d)
2025-09-08 10:13:17 +02:00
efe3ac2134 Corrections 250908
(cherry picked from commit 17830c1c6e)
2025-09-08 10:12:23 +02:00
0d162d5de2 Correction 080925
(cherry picked from commit 0ad605af1d)
2025-09-08 10:12:03 +02:00
77421779f3 Release 1.2.44+1 2025-08-26 16:22:14 +02:00
ff59e45573 Merge branch 'v11-connector1.2' into 'release/1.2'
v11-connector1.2

See merge request r-d-technique/tiers/reflex-wms-connector!125
2025-08-26 13:55:41 +00:00
ce32967617 Merge branch 'develop-1.2' into v11-connector-1.2
# Conflicts:
#	README.md
#	RFXtoRP_HsrReceiptList.ftl
2025-08-26 15:33:06 +02:00
df15106ef5 Release 1.2.43+1 2025-08-26 11:01:08 +02:00
127e69db7b Modifs line ref trf hsaipgmove receipt 2025-08-26 10:27:57 +02:00
ff01a944e4 Readme 2025-08-07 16:39:01 +02:00
18ac89f664 Modifs Optional_attributes 2025-08-07 10:58:08 +02:00
499a16796a Modif RPtoRFX_Receipt 2025-08-07 09:46:44 +02:00
8863cd66a7 Controle line_list 2025-08-06 11:13:02 +02:00
27a762caa8 ODP confirmed 2025-08-05 17:06:20 +02:00
649452207d modifs goods received 2025-07-23 15:45:50 +02:00
2d1fefd96f suppression commentaires 2025-07-18 11:31:24 +02:00
06376dd2d7 suppression commentaires 2025-07-18 11:08:12 +02:00
9642b8b8ad revert 2025-07-17 16:30:16 +02:00
7d998634d3 revert 2025-07-17 14:08:14 +02:00
7bf9d3c674 Revert "SCPN1-8865"
This reverts commit 8cd98b8638.
2025-07-17 13:59:57 +02:00
632cc2b647 dispute 2025-07-17 10:24:02 +02:00
27f2d525dc SCPN1-9084
(cherry picked from commit 3d2670b9a2)
2025-07-15 16:23:35 +02:00
835b8062ee SCPN1-9059 2025-07-10 09:57:26 +02:00
e50893e8c9 SCPN1-9059 2025-07-09 15:09:39 +02:00
592ccb8905 SCPN1-9059 2025-07-09 15:01:36 +02:00
ddab0673d4 modif date cancelled 2025-07-07 16:15:49 +02:00
42237b2029 modif réception date 2025-07-07 16:11:37 +02:00
8c228dd0eb modif réception 2025-07-07 15:58:10 +02:00
cded3aa0e3 Modifs réception 2025-07-07 15:52:22 +02:00
5c4dc74bb8 modif receipt 2025-07-07 15:42:42 +02:00
9f34588a6a Receipt 2025-07-07 15:41:19 +02:00
16f4e35c02 modif receipt expected 2025-07-04 17:02:52 +02:00
9b8a5ad5c6 modifs recipt canceled 2025-07-04 16:51:30 +02:00
676fab0fea Modif receipt completed 2025-07-04 16:44:58 +02:00
297e3ea4c8 modif réception 2025-07-04 16:10:01 +02:00
58118c394b Correction HsrPrepa_Carrier 2025-07-04 15:05:14 +02:00
83a1f59edf SCPN1-8865 2025-07-03 16:40:53 +02:00
890768f89a SCPN1-8865 2025-07-03 16:33:56 +02:00
0a5ec7329c SCPN1-8863 2025-07-03 16:09:48 +02:00
9999313dfc SCPN1-8865 2025-07-03 15:02:19 +02:00
dd4d31b443 SCPN1-8865 2025-07-03 15:01:26 +02:00
c1704af84d SCPN1-8987
(cherry picked from commit bcd2d995c2)
2025-07-02 15:51:31 +02:00
a248dc16ed ajout controle 2025-07-02 15:05:35 +02:00
dfdfbdeb15 SCPN1-8865 2025-07-02 10:28:24 +02:00
d875085657 SCPN1-8991
(cherry picked from commit 9d7293d92e)
2025-07-01 15:43:57 +02:00
899cdd2508 SCPN1-8980 2025-06-30 13:47:50 +02:00
d1f251ba32 modif statut 2025-06-25 17:08:44 +02:00
30337cc003 SCPN1-8863 2025-06-24 17:35:46 +02:00
24f7b8b36a SCPN1-8863 2025-06-24 17:24:32 +02:00
a1b063a9d4 SCPN1-8863 2025-06-24 17:05:41 +02:00
88fa6bd2af SCPN1-8863 2025-06-24 16:50:59 +02:00
01b2706cb5 SCPN1-8865 2025-06-24 16:35:38 +02:00
8cd98b8638 SCPN1-8865 2025-06-24 16:20:04 +02:00
4c8ab232d0 SCPN1-8870 2025-06-24 15:39:30 +02:00
3d816434af SCPN1-8870 2025-06-24 15:28:59 +02:00
9f0bedc583 Modifs 2025-06-24 10:54:23 +02:00
8abf2771ba SCPN1-8865 2025-06-20 16:39:19 +02:00
8229616050 SCPN1-8870 2025-06-16 10:52:41 +02:00
5581b8cd29 SCPN1-8800 2025-05-26 10:03:49 +02:00
cf5ef67c23 SCPN1-8728-8696 2025-05-13 11:36:23 +02:00
09df74f0e0 SCPN1-8729 2025-05-12 14:22:34 +02:00
0ea5a04d6b SCPN1-8696 2025-04-28 14:03:08 +02:00
777197b26b clean README 2025-04-25 13:10:06 +00:00
a23e6654f1 clean README 2025-04-25 09:54:47 +00:00
b7eab6ccfd clean README 2025-04-25 09:53:11 +00:00
c58772f755 clean README 2025-04-25 09:39:58 +00:00
fbaddfe891 clean README 2025-04-25 09:00:02 +00:00
df4377f77d clean README 2025-04-25 08:56:34 +00:00
65795a6077 SCPN1-8583 2025-04-24 15:47:22 +02:00
9a55811bfc delete ftl not use 2025-04-15 17:52:33 +02:00
35 changed files with 526 additions and 231 deletions

View File

@@ -1,10 +1,20 @@
# Reflex Platform Core FTLs
## Overview
The **Reflex WMS Connector** is a set of **FreeMarker templates (FTL)** designed to transform **outgoing JSON flows from Reflex WMS** into **flows compatible with Reflex Platform**.
These FTL core files aim to translate data flow from Reflex WMS into Reflex platform API.
This connector does not contain any standalone executable code: it is intended to be used by **Reflex integration engines** or **data exchange pipelines**, where it applies the mapping rules defined in the `.ftl` files.
## Role of the FTL Files
- Each `.ftl` file corresponds to a **flow type** (order, stock, receipt, shipment, etc.).
- These templates use the **FreeMarker** syntax to:
- Extract the required fields from the WMS source flow.
- Apply transformation rules (mapping, conversions, enrichments).
- Generate a **final structured JSON** for Reflex Platform.
You can find more info about those files in the Reflex platform documentation center : https://docs.viz.reflex-platform.com/connectivity/partnerapp/reflex-wms-connector/
## Useful Resources
- [FreeMarker Documentation](https://freemarker.apache.org/docs/index.html)
- [Reflex Platform](https://auth.reflex-platform.com/)

31
RFXtoRP_HliPrepaL.ftl Normal file
View File

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

34
RFXtoRP_HliReceiptLr.ftl Normal file
View File

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

32
RFXtoRP_HlrProL.ftl Normal file
View File

@@ -0,0 +1,32 @@
<#-- **** input parameters ***** -->
<#-- input : message RFX -->
<#-- project : projectId in ReflexPlatform -->
<#-- organisation : organisationtId in ReflexPlatform -->
<#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 preparationOrderLines = JsonUtil.jsonToMap(dataRfx)>
<#stop "no generic FTL file available yet for preparationOrderLines">
<#break>
<#case "D">
<#-- *********************************************** Action = DELETE ******************** -->
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
<#assign preparationOrderLines = JsonUtil.jsonToMap(dataRfx)>
<#stop "no generic FTL file available yet for preparationOrderLines">
<#break>
<#default>
<#stop >
</#switch>

View File

@@ -36,7 +36,8 @@
<#stop>
</#if>
<#else>
<#stop "Reference is empty">
<#-- "Reference is empty"-->
<#stop>
</#if>
</#if>
]

View File

@@ -47,7 +47,6 @@
<#if (reflexMvtStockInterface.ipg_move_type == "100" ||
reflexMvtStockInterface.ipg_move_type == "110" ||
reflexMvtStockInterface.ipg_move_type == "120") >
<#if reflexMvtStockInterface.receipt_reference?? && reflexMvtStockInterface.receipt_reference!="">
[
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.HandlingunitGoodsReceived>
@@ -56,10 +55,6 @@
<#include "RFXtoRP_HsaIpgMove_GoodsReceived.ftl">
}
]
<#else>
<#-- Case of IPG move type volontarilly ignored-->
<#stop " Reference receipt is empty">
</#if>
<#else>
<#stop>
</#if>

View File

@@ -29,14 +29,33 @@
<#-- Goods received Segmentation Keys inclusion -->
<#include "RFXtoRP_HsaIpgMove_GoodsReceived_SegmentationKeys.ftl">
},
<#if reflexMvtStockInterface.receipt_reference!="">
<#if reflexMvtStockInterface.ipg_move_type?? & reflexMvtStockInterface.ipg_move_type=="120"> <#-- if it is a transfer-type movement -->
<#if reflexMvtStockInterface.origin_order_line_reference?? && reflexMvtStockInterface.origin_order_line_reference!="">
"ExecutionflowID": "${reflexMvtStockInterface.origin_order_line_reference?trim?json_string}",
"OrderID": "${reflexMvtStockInterface.origin_order_line_reference?trim?json_string}",
<#else>
<#if reflexMvtStockInterface.receipt_reference?? && reflexMvtStockInterface.receipt_reference!="">
"ExecutionflowID": "${reflexMvtStockInterface.receipt_reference?trim?json_string}",
"OrderID": "${reflexMvtStockInterface.receipt_reference?trim?json_string}",
<#else>
"ExecutionflowID": "${reflexMvtStockInterface.physical_depot_code}${reflexMvtStockInterface.activity_code}${reflexMvtStockInterface.ipg_move_year_number}${reflexMvtStockInterface.extended_ipg_move_number}",
"OrderID": "${reflexMvtStockInterface.physical_depot_code}${reflexMvtStockInterface.activity_code}${reflexMvtStockInterface.ipg_move_year_number}${reflexMvtStockInterface.extended_ipg_move_number}",
"ExecutionflowID": "${reflexMvtStockInterface.physical_depot_code}${reflexMvtStockInterface.activity_code}${reflexMvtStockInterface.originator_code}${reflexMvtStockInterface.receipt_year_number}${reflexMvtStockInterface.receipt_number}",
"OrderID": "${reflexMvtStockInterface.physical_depot_code}${reflexMvtStockInterface.activity_code}${reflexMvtStockInterface.originator_code}${reflexMvtStockInterface.receipt_year_number}${reflexMvtStockInterface.receipt_number}",
</#if>
</#if>
<#else>
<#if reflexMvtStockInterface.receipt_reference?? && reflexMvtStockInterface.receipt_reference!="">
"ExecutionflowID": "${reflexMvtStockInterface.receipt_reference?trim?json_string}",
"OrderID": "${reflexMvtStockInterface.receipt_reference?trim?json_string}",
<#else>
"ExecutionflowID": "${reflexMvtStockInterface.physical_depot_code}${reflexMvtStockInterface.activity_code}${reflexMvtStockInterface.originator_code}${reflexMvtStockInterface.receipt_year_number}${reflexMvtStockInterface.receipt_number}",
"OrderID": "${reflexMvtStockInterface.physical_depot_code}${reflexMvtStockInterface.activity_code}${reflexMvtStockInterface.originator_code}${reflexMvtStockInterface.receipt_year_number}${reflexMvtStockInterface.receipt_number}",
</#if>
</#if>
<#if reflexMvtStockInterface.origin_order_line_number_reference?? && reflexMvtStockInterface.origin_order_line_number_reference!=0>
"LineID": "${reflexMvtStockInterface.origin_order_line_number_reference}",
<#else>
"LineID": "${reflexMvtStockInterface.receipt_line_number}",
</#if>
"ActorID": "${RFXtoRPprefixDepot(reflexMvtStockInterface.physical_depot_code?trim?json_string)}",
"Quantity": {
"LVID": "${quantity_in_base_lv_RP_Cst}",

View File

@@ -18,14 +18,10 @@
<#assign item = JsonUtil.jsonToMap(dataRfx)>
[
{
<#if item.logistical_variant_list?? && (item.logistical_variant_list?size == item.logistical_variant_list?filter(l ->l??)?size)>
<#assign apiReflexPlatformID = ApiReflexPlatformID.ItemCreated>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsaItm_ItemCreated.ftl">
<#else>
<#stop "no LV for the item">
</#if>
}
]
<#break>

View File

@@ -12,7 +12,7 @@
{
"LVID": "${lv.logistical_variant_code?json_string}",
"Name" : "${lv.lv_type_code?json_string}",
<#if lv.id_list??>
<#if lv.id_list?? && (lv.id_list?size == lv.id_list?filter(l ->l??)?size)>
"Codes": [
<#list lv.id_list as id>
{

View File

@@ -21,15 +21,17 @@
},
<#-- Item metadata inclusion -->
<#include "RFXtoRP_HsaItm_ItemCreated_ItemMetadata.ftl">,
<#include "RFXtoRP_HsaItm_ItemCreated_ItemMetadata.ftl">
<#-- Item Photo URI could be added here -->
<#if item.url?? && item.url!="">
"PhotoURI": "${item.url?json_string}",
,
"PhotoURI": "${item.url?json_string}"
</#if>
<#-- Loop for the Logistical Variants - LV -->
<#if item.logistical_variant_list??>
<#if item.logistical_variant_list?? && (item.logistical_variant_list?size == item.logistical_variant_list?filter(l ->l??)?size)>
,
"LogisticVariants": [
<#list item.logistical_variant_list as logistical_variant>
@@ -37,7 +39,7 @@
"LVID": "${logistical_variant.logistical_variant_code?json_string}",
"Name" : "${logistical_variant.lv_type_code?json_string}",
<#if logistical_variant.id_list??>
<#if logistical_variant.id_list?? && (logistical_variant.id_list?size == logistical_variant.id_list?filter(l ->l??)?size)>
"Codes": [
<#list logistical_variant.id_list as id>
{

View File

@@ -65,7 +65,8 @@
</#if>
</#if>
<#else>
<#stop "PRO reference is empty">
<#--PRO reference is empty-->
<#stop >
</#if>
]
<#break>

32
RFXtoRP_HsrPackBranch.ftl Normal file
View File

@@ -0,0 +1,32 @@
<#-- **** input parameters ***** -->
<#-- input : message RFX -->
<#-- project : projectId in ReflexPlatform -->
<#-- organisation : organisationtId in ReflexPlatform -->
<#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 packBranch = JsonUtil.jsonToMap(dataRfx)>
<#stop "no generic FTL file available yet for Pack Branch">
<#break>
<#case "D">
<#-- *********************************************** Action = DELETE ******************** -->
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
<#assign packBranch = JsonUtil.jsonToMap(dataRfx)>
<#stop "no generic FTL file available yet for Pack Branch">
<#break>
<#default>
<#stop >
</#switch>

32
RFXtoRP_HsrPackOrder.ftl Normal file
View File

@@ -0,0 +1,32 @@
<#-- **** input parameters ***** -->
<#-- input : message RFX -->
<#-- project : projectId in ReflexPlatform -->
<#-- organisation : organisationtId in ReflexPlatform -->
<#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 packOrder = JsonUtil.jsonToMap(dataRfx)>
<#stop "no generic FTL file available yet for Pack Order">
<#break>
<#case "D">
<#-- *********************************************** Action = DELETE ******************** -->
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
<#assign packOrder = JsonUtil.jsonToMap(dataRfx)>
<#stop "no generic FTL file available yet for Pack Order">
<#break>
<#default>
<#stop >
</#switch>

View File

@@ -18,6 +18,7 @@
<#assign preparationOrder = JsonUtil.jsonToMap(dataRfx)>
<#if preparationOrder.total_lv_validated !=0>
<#if preparationOrder.preparation_line_lst??>
[
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.HandlingunitGoodsPrepared>
@@ -55,8 +56,7 @@
<#list preparationOrder.preparation_line_lst?filter(l ->l.despatched_ipg_list?? && l.preparation_order_originator_reference!="") as preparation_line>
<#list preparation_line.despatched_ipg_list as despatched_ipg>
<#assign HUadded_packing_datetime = RfxDateTimetoUTCWithTimezone(preparation_line.confirmation_datetime,time_zone_rfx) />
<#if !hd_numberHmap[despatched_ipg.hd_number]?? && (trackingNumberSource==2 || trackingNumberSource==3 || (despatched_ipg.consignment_unit_id!="" && trackingNumberSource==1))>
<#assign hd_numberHmap += {despatched_ipg.hd_number,despatched_ipg.hd_number}>
<#if (!hd_numberHmap[despatched_ipg.hd_number]?? || !hd_numberHmap[despatched_ipg.carton_number]??) && (trackingNumberSource==2 || trackingNumberSource==3 || (despatched_ipg.consignment_unit_id!="" && trackingNumberSource==1))>
,
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.TrackingHULabeled>
@@ -96,7 +96,12 @@
<#assign refIDHmap ={}>
]
<#else>
<#stop "no confirmed quantity for the preparation - preparation closed">
<#-- No line-->
<#stop >
</#if>
<#else>
<#-- no confirmed quantity for the preparation - preparation closed-->
<#stop >
</#if>

View File

@@ -53,8 +53,10 @@
"Payload": {
<#if despatched_ipg.carton_number != "000000000000000000">
"HandlingunitID": "${despatched_ipg.carton_number}"
<#assign hd_numberHmap += {despatched_ipg.carton_number,despatched_ipg.carton_number}>
<#else>
"HandlingunitID": "${despatched_ipg.hd_number}"
<#assign hd_numberHmap += {despatched_ipg.hd_number,despatched_ipg.hd_number}>
</#if>
<#if preparationOrder.load_data?? && preparationOrder.load_data.carrier_code?? && preparationOrder.load_data.carrier_code!="" >
,

View File

@@ -16,12 +16,10 @@
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
<#assign preparation_order = JsonUtil.jsonToMap(dataRfx)>
[
<#if preparation_order.originator_reference?? && preparation_order.originator_reference!="">
<#-- check preparation type code (internal order and reservation are ignored) -->
<#if preparation_order.preparation_type_code == "010" || preparation_order.preparation_type_code == "030">
<#-- Only if preparation order not confirmed -->
<#if preparation_order.preparation_order_confirmed == "false" >
<#if preparation_order.preparation_type_code?? && (preparation_order.preparation_type_code == "010" || preparation_order.preparation_type_code == "030")>
<#if preparation_order.line_list??>
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowDetected>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
@@ -29,16 +27,16 @@
<#include "RFXtoRP_HsrPro_ExecutionflowDetected.ftl">
}
<#else>
<#-- preparation order already confirmed -->
<#-- No line -->
<#stop>
</#if>
<#else>
<#-- preparation order type not supported -->
<#stop>
</#if>
<#else>
<#stop "PRO reference is empty">
<#-- PRO reference is empty -->
<#stop>
</#if>
]
<#break>
@@ -49,6 +47,7 @@
<#assign preparation_order = JsonUtil.jsonToMap(dataRfx)>
[
<#if preparation_order.originator_reference?? && preparation_order.originator_reference!="">
<#if preparation_order.line_list??>
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowCancelled>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
@@ -56,7 +55,12 @@
<#include "RFXtoRP_HsrPro_ExecutionflowCancelled.ftl">
}
<#else>
<#stop "PRO reference is empty">
<#-- No line -->
<#stop>
</#if>
<#else>
<#-- PRO reference is empty -->
<#stop>
</#if>
]
<#break>

View File

@@ -78,7 +78,7 @@
}
</#if>
},
"OrderID": "${preparation_order.originator_reference?trim?json_string}",
<#if preparation_order.line_list??>
"Lines" : [
<#list preparation_order.line_list as preparation_order_line >

View File

@@ -15,10 +15,10 @@
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
<#assign receipt = JsonUtil.jsonToMap(dataRfx)>
<#if receipt.receipt_reference ?? && receipt.receipt_reference!="">
<#if receipt.receipt_type == "030">
<#stop "ignored message because receipt type = transfert">
<#else>
<#if receipt.line_list ??>
[
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowDetected>
@@ -35,9 +35,10 @@
}
]
</#if>
<#else>
<#stop "Receipt reference is empty">
<#-- No line-->
<#stop>
</#if>
</#if>
<#break>
<#case "U">
@@ -45,7 +46,6 @@
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
<#assign receipt = JsonUtil.jsonToMap(dataRfx)>
[
<#if receipt.receipt_reference?? && receipt.receipt_reference!="">
<#if receipt.receipt_confirmed == "true" && receipt.confirmation_total_level_1==0 && receipt.confirmation_total_level_2==0 && receipt.confirmation_total_level_3==0>
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowCancelled>
@@ -65,6 +65,7 @@
<#if receipt.receipt_type == "030">
<#stop "ignored message because receipt type = transfert">
<#else>
<#if receipt.line_list ??>
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowDetected>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
@@ -77,11 +78,12 @@
"datas" :
<#include "RFXtoRP_HsrReceiptList_ReceiptExpected.ftl">
}
</#if>
</#if>
</#if>
<#else>
<#stop "Receipt reference is empty">
<#-- No line-->
<#stop>
</#if>
</#if>
</#if>
</#if>
]
<#break>
@@ -91,7 +93,7 @@
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
<#assign receipt = JsonUtil.jsonToMap(dataRfx)>
[
<#if receipt.receipt_reference?? && receipt.receipt_reference!="">
<#if receipt.line_list ??>
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowCancelled>
@@ -100,7 +102,8 @@
<#include "RFXtoRP_HsrReceiptList_ExecutionflowCancelled.ftl">
}
<#else>
<#stop "Receipt reference is empty">
<#-- No line-->
<#stop>
</#if>
]
<#break>

View File

@@ -1,14 +1,20 @@
<#include "HfRpConfig.ftl">
<#include "ReflexUtils.ftl">
<#assign receipt_status_datetime = RfxDateTimetoUTCWithTimezone(receipt.modification_datetime,time_zone_rfx) />
<#assign refIDHmap_local ={}>
[
<#if receipt.line_list??>
<#list receipt.line_list as receipt_line >
<#if receipt_line.origin_order_line_reference?? && receipt_line.origin_order_line_reference!="">
<#if !refIDHmap_local[receipt_line.origin_order_line_reference]?? >
<#if refIDHmap_local?size != 0 >
,
</#if>
<#assign refIDHmap_local +={receipt_line.origin_order_line_reference,receipt_line.origin_order_line_reference}>
{
"Header": {
"ProjectID": "${projectRP}"
},
"Header": {"ProjectID": "${projectRP}"},
"ID": {
"RefID": "${receipt.receipt_reference?trim?json_string}",
"RefID": "${receipt_line.origin_order_line_reference?trim?json_string}",
"RefDate": {
"DateTime": "${receipt_status_datetime}",
"AuthorTimeZone": "${time_zone_rfx}"
@@ -17,4 +23,26 @@
"Payload": {
}
}
</#if>
<#else>
{
"Header": {"ProjectID": "${projectRP}"},
"ID": {
<#if receipt.receipt_reference?? && receipt.receipt_reference!="">
"RefID": "${receipt.receipt_reference?trim?json_string}",
<#else>
"RefID": "${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>
"RefDate": {
"DateTime": "${receipt_status_datetime}",
"AuthorTimeZone": "${time_zone_rfx}"
}
},
"Payload": {
}
}
<#break>
</#if>
</#list>
</#if>
]

View File

@@ -9,7 +9,11 @@
"ProjectID": "${projectRP}"
},
"ID": {
<#if receipt.receipt_reference?? && receipt.receipt_reference!="">
"RefID": "${receipt.receipt_reference?trim?json_string}",
<#else>
"RefID": "${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>
"RefDate": {
"DateTime": "${receipt_creation_datetime}",
"AuthorTimeZone": "${time_zone_rfx}"
@@ -44,7 +48,11 @@
"ActorID":"${RFXtoRPprefixCarrier(receipt.carrier_informations.carrier_code?trim?json_string)}"
},
</#if>
<#if receipt.receipt_reference?? && receipt.receipt_reference!="">
"OrderID": "${receipt.receipt_reference?trim?json_string}",
<#else>
"OrderID": "${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 receipt.line_list??>
"Lines" : [
<#list receipt.line_list as line>

View File

@@ -1,13 +1,20 @@
<#include "HfRpConfig.ftl">
<#include "ReflexUtils.ftl">
<#assign receipt_status_datetime = RfxDateTimetoUTCWithTimezone(receipt.confirmation_datetime,time_zone_rfx) />
<#assign receipt_status_datetime = RfxDateTimetoUTCWithTimezone(receipt.modification_datetime,time_zone_rfx) />
<#assign refIDHmap_local ={}>
[
<#if receipt.line_list??>
<#list receipt.line_list as receipt_line >
<#if receipt_line.origin_order_line_reference?? && receipt_line.origin_order_line_reference!="">
<#if !refIDHmap_local[receipt_line.origin_order_line_reference]?? >
<#if refIDHmap_local?size != 0 >
,
</#if>
<#assign refIDHmap_local +={receipt_line.origin_order_line_reference,receipt_line.origin_order_line_reference}>
{
"Header": {
"ProjectID": "${projectRP}"
},
"Header": {"ProjectID": "${projectRP}"},
"ID": {
"RefID": "${receipt.receipt_reference?trim?json_string}",
"RefID": "${receipt_line.origin_order_line_reference?trim?json_string}",
"RefDate": {
"DateTime": "${receipt_status_datetime}",
"AuthorTimeZone": "${time_zone_rfx}"
@@ -16,4 +23,26 @@
"Payload": {
}
}
</#if>
<#else>
{
"Header": {"ProjectID": "${projectRP}"},
"ID": {
<#if receipt.receipt_reference?? && receipt.receipt_reference!="">
"RefID": "${receipt.receipt_reference?trim?json_string}",
<#else>
"RefID": "${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>
"RefDate": {
"DateTime": "${receipt_status_datetime}",
"AuthorTimeZone": "${time_zone_rfx}"
}
},
"Payload": {
}
}
<#break>
</#if>
</#list>
</#if>
]

View File

@@ -1,21 +1,48 @@
<#include "HfRpConfig.ftl">
<#include "ReflexUtils.ftl">
<#assign receipt_status_datetime = RfxDateTimetoUTCWithTimezone(receipt.creation_datetime,time_zone_rfx) />
<#assign receipt_status_datetime = RfxDateTimetoUTCWithTimezone(receipt.modification_datetime,time_zone_rfx) />
<#assign refIDHmap_local ={}>
[
<#if receipt.line_list??>
<#list receipt.line_list as receipt_line >
<#if receipt_line.origin_order_line_reference?? && receipt_line.origin_order_line_reference!="">
<#if !refIDHmap_local[receipt_line.origin_order_line_reference]?? >
<#if refIDHmap_local?size != 0 >
,
</#if>
<#assign refIDHmap_local +={receipt_line.origin_order_line_reference,receipt_line.origin_order_line_reference}>
{
"Header": {
"ProjectID": "${projectRP}"
},
"Header": {"ProjectID": "${projectRP}"},
"ID": {
"RefID": "${receipt.receipt_reference?trim?json_string}",
"RefID": "${receipt_line.origin_order_line_reference?trim?json_string}",
"RefDate": {
"DateTime": "${receipt_status_datetime}",
"AuthorTimeZone": "${time_zone_rfx}"
}
},
"Payload": {}
"Payload": {
}
}
</#if>
<#else>
{
"Header": {"ProjectID": "${projectRP}"},
"ID": {
<#if receipt.receipt_reference?? && receipt.receipt_reference!="">
"RefID": "${receipt.receipt_reference?trim?json_string}",
<#else>
"RefID": "${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>
"RefDate": {
"DateTime": "${receipt_status_datetime}",
"AuthorTimeZone": "${time_zone_rfx}"
}
},
"Payload": {
}
}
<#break>
</#if>
</#list>
</#if>
]

View File

@@ -17,6 +17,7 @@
<#switch eventRP.event>
<#case "Created">
<#case "Renotified">
<#-- *********************************************** Action = CREATE or UPDATE ******************** -->
<#assign executionflow = eventRP.data />

View File

@@ -105,13 +105,6 @@
"batch_1": "${batch_1?json_string}",
"base_lv_quantity": "true",
"any_lv": "false"
<#--
"stock_reservation": "false",
"forced_priority_date_min_lead_time": "false",
"temp_substitution_possible": "false",
"substitution_possible": "false"
-->
}
<#sep>,</#sep>
</#list>

View File

@@ -57,15 +57,9 @@
"grade_code": "${grade_code}",
"batch_1": "${batch_1?json_string!""}",
"optional_attributes": {
<#--"held_for_check": "false",
"hold_code": "false", -->
<#include "RPtoRFX_Receipt_OptionalAttributes.ftl">
"hold_for_specific_code": "false"
}
<#--"quality_control_attributes": {
"qcf_to_create_for_receipt_line": "false",
"exclude_item_from_inspection": "false"
} -->
}<#sep>,</#sep>
</#list>
]

View File

@@ -0,0 +1,16 @@
<#-- Here are the fields that can be added
"batch_2": "string",
"batch_3": "string",
"anticipated_receipt_line_activity_code": "str",
"anticipated_receipt_line_physical_depot_code": "str",
"anticipated_receipt_line_originator_code": "string",
"anticipated_receipt_reference": "string",
"anticipated_receipt_planned_date": "0000-00-00",
"anticipated_receipt_reference_line_no": 999999,
"reservation_consignee_code": "string",
"reservation_consignee_group_code": "string",
"pro_reservation_reference": "string",
"held_for_check": "false",
"held_for_repacking": "false",
"hold_code": "str"
-->

View File

@@ -1 +1 @@
1.2.42+1
1.2.45+4