You've already forked reflex-wms-connector
Compare commits
36 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 3d4c41b6d3 | |||
| 2b779cf8aa | |||
| b812177bf5 | |||
| 175f0169ea | |||
| 22d9f48b09 | |||
| f0933a5c6a | |||
| 4b090088db | |||
| d3fa6876e7 | |||
| 05c3d17a03 | |||
| bdd17502d7 | |||
| 1ed84f6c19 | |||
| 5bc723540c | |||
| 374aef32fd | |||
| f23a11933d | |||
| d77f51fa52 | |||
| c8806baf5c | |||
| 8ca2f62591 | |||
| 97dbd248f8 | |||
| 6bf2ea2329 | |||
| 6bb1d45783 | |||
| a880fff33b | |||
| f373cbe734 | |||
| 1256e3d68c | |||
| 983a59b592 | |||
| eb6fc3f4a3 | |||
| 8cf596e251 | |||
| 55070c8ce3 | |||
| 928c05bff4 | |||
| 2d8bdeb8a5 | |||
| bb2aaae375 | |||
| f4286949f7 | |||
| 6d6a56710b | |||
| 9b93729ab4 | |||
| 18c4959a62 | |||
| efe3ac2134 | |||
| 0d162d5de2 |
10
README.md
10
README.md
@@ -1,8 +1,7 @@
|
|||||||
# Reflex Platform Core FTLs
|
# HARDIS SC NETWORK Core FTLs
|
||||||
|
|
||||||
## Overview
|
## Overview
|
||||||
|
The **HARDIS WMS Connector** is a set of **FreeMarker templates (FTL)** designed to transform **outgoing JSON flows from HARDIS WMS** into **flows compatible with HARDIS SC NETWORK**.
|
||||||
|
|
||||||
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**.
|
|
||||||
|
|
||||||
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.
|
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.
|
||||||
|
|
||||||
@@ -12,9 +11,10 @@ This connector does not contain any standalone executable code: it is intended t
|
|||||||
- 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).
|
||||||
- Generate a **final structured JSON** for Reflex Platform.
|
- Generate a **final structured JSON** for HARDIS SC NETWORK.
|
||||||
|
|
||||||
## Useful Resources
|
## Useful Resources
|
||||||
|
|
||||||
- [FreeMarker Documentation](https://freemarker.apache.org/docs/index.html)
|
- [FreeMarker Documentation](https://freemarker.apache.org/docs/index.html)
|
||||||
- [Reflex Platform](https://auth.reflex-platform.com/)
|
- [HARDIS SC NETWORK](https://auth.reflex-platform.com/)
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<#-- **** input parameters ***** -->
|
<#-- **** input parameters ***** -->
|
||||||
<#-- input : message RFX -->
|
<#-- input : message HARDIS WMS -->
|
||||||
<#-- project : projectId in ReflexPlatform -->
|
<#-- project : projectId in HARDIS SC NETWORK -->
|
||||||
<#-- organisation : organisationtId in ReflexPlatform -->
|
<#-- organisation : organisationtId in HARDIS SC NETWORK -->
|
||||||
<#-- sum_elt : nb element in snapshot (optional parameter) -->
|
<#-- sum_elt : nb element in snapshot (optional parameter) -->
|
||||||
|
|
||||||
<#include "HfRpConfig.ftl">
|
<#include "HfRpConfig.ftl">
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<#-- use protobuf of class HfDtlStockLs to find Reflex WMS fields names -->
|
<#-- use protobuf of class HfDtlStockLs to find HARDIS WMS fields names -->
|
||||||
|
|
||||||
<#--
|
<#--
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<#-- ****
|
<#-- ****
|
||||||
Reflex WMS provides some of their environment parameters through the class HfRpConfig
|
HARDIS WMS provides some of their environment parameters through the class HfRpConfig
|
||||||
those parameters are stored in FTL file HfRpConfig.ftl for later use in some of the data ftl files
|
those parameters are stored in FTL file HfRpConfig.ftl for later use in some of the data ftl files
|
||||||
*** -->
|
*** -->
|
||||||
|
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
<#-- project : projectId in ReflexPlatform -->
|
<#-- project : projectId in ReflexPlatform -->
|
||||||
<#-- organisation : organisationtId in ReflexPlatform -->
|
<#-- organisation : organisationtId in ReflexPlatform -->
|
||||||
<#include "ReflexUtils.ftl">
|
<#include "ReflexUtils.ftl">
|
||||||
|
<#include "HfRpConfig.ftl">
|
||||||
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
|
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
|
||||||
<#assign projectRP = project>
|
<#assign projectRP = project>
|
||||||
<#assign organisationRP = organisation>
|
<#assign organisationRP = organisation>
|
||||||
@@ -13,17 +14,86 @@
|
|||||||
<#switch cloudEventMsg.action>
|
<#switch cloudEventMsg.action>
|
||||||
<#case "C">
|
<#case "C">
|
||||||
<#--<#case "U">
|
<#--<#case "U">
|
||||||
<#-- *********************************************** Action = CREATE or UPDATE ******************** -->
|
<#-- *********************************************** Action = CREATE or UPDATE ******************** -->
|
||||||
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
|
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
|
||||||
<#assign preparationOrderLines = JsonUtil.jsonToMap(dataRfx)>
|
<#assign preparationOrder = JsonUtil.jsonToMap(dataRfx)>
|
||||||
<#stop "no generic FTL file available yet for preparationOrderLines">
|
|
||||||
<#break>
|
<#if preparationOrder.total_lv_validated !=0>
|
||||||
|
<#if preparationOrder.preparation_line_lst??>
|
||||||
|
[
|
||||||
|
{
|
||||||
|
<#assign apiReflexPlatformID = ApiReflexPlatformID.HandlingunitGoodsPrepared>
|
||||||
|
"apiReflexPlatformID" : "${apiReflexPlatformID}",
|
||||||
|
"datas" :
|
||||||
|
<#include "RFXtoRP_HsrPrepa_HandlingunitGoodsPrepared.ftl">
|
||||||
|
},
|
||||||
|
{
|
||||||
|
|
||||||
|
<#assign apiReflexPlatformID = ApiReflexPlatformID.HandlingunitDispatched>
|
||||||
|
"apiReflexPlatformID" : "${apiReflexPlatformID}",
|
||||||
|
"datas" :
|
||||||
|
<#include "RFXtoRP_HsrPrepa_HandlingUnitDispatched.ftl">
|
||||||
|
}
|
||||||
|
|
||||||
|
<#assign refIDHmap ={}>
|
||||||
|
<#assign hd_numberHmap ={}>
|
||||||
|
<#assign hd_numberHmapHUadded ={}>
|
||||||
|
<#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]?? || !hd_numberHmap[despatched_ipg.carton_number]??) && (trackingNumberSource==2 || trackingNumberSource==3 || (despatched_ipg.consignment_unit_id!="" && trackingNumberSource==1))>
|
||||||
|
,
|
||||||
|
{
|
||||||
|
<#assign apiReflexPlatformID = ApiReflexPlatformID.TrackingHULabeled>
|
||||||
|
"apiReflexPlatformID" : "${apiReflexPlatformID}",
|
||||||
|
"datas" :
|
||||||
|
<#include "RFXtoRP_HsrPrepa_TrackingHuLabelled.ftl">
|
||||||
|
}
|
||||||
|
</#if>
|
||||||
|
<#if despatched_ipg.carton_number != "000000000000000000" && despatched_ipg.carton_number!=despatched_ipg.hd_number >
|
||||||
|
,
|
||||||
|
{
|
||||||
|
<#assign apiReflexPlatformID = ApiReflexPlatformID.HandlingunitHUsAdded>
|
||||||
|
"apiReflexPlatformID" : "${apiReflexPlatformID}",
|
||||||
|
"datas" :
|
||||||
|
<#include "RFXtoRP_HsrPrepa_HandlingunitHUsAdded.ftl">
|
||||||
|
},
|
||||||
|
{
|
||||||
|
<#assign apiReflexPlatformID = ApiReflexPlatformID.HandlingunitDispatched>
|
||||||
|
"apiReflexPlatformID" : "${apiReflexPlatformID}",
|
||||||
|
"datas" :
|
||||||
|
<#include "RFXtoRP_HsrPrepa_HUsAdded_HandlingUnitDispatched.ftl">
|
||||||
|
}
|
||||||
|
<#if !hd_numberHmapHUadded[despatched_ipg.hd_number]?? && (trackingNumberSource==2 || trackingNumberSource==3 )>
|
||||||
|
<#assign hd_numberHmapHUadded += {despatched_ipg.hd_number,despatched_ipg.hd_number}>
|
||||||
|
,
|
||||||
|
{
|
||||||
|
<#assign apiReflexPlatformID = ApiReflexPlatformID.TrackingHULabeled>
|
||||||
|
"apiReflexPlatformID" : "${apiReflexPlatformID}",
|
||||||
|
"datas" :
|
||||||
|
<#include "RFXtoRP_HsrPrepa_HUsAdded_TrackingHuLabelled.ftl">
|
||||||
|
}
|
||||||
|
</#if>
|
||||||
|
|
||||||
|
</#if>
|
||||||
|
</#list>
|
||||||
|
</#list>
|
||||||
|
<#assign refIDHmap ={}>
|
||||||
|
]
|
||||||
|
<#else>
|
||||||
|
<#-- No line-->
|
||||||
|
<#stop >
|
||||||
|
</#if>
|
||||||
|
<#else>
|
||||||
|
<#-- no confirmed quantity for the preparation - preparation closed-->
|
||||||
|
<#stop >
|
||||||
|
</#if>
|
||||||
|
|
||||||
|
|
||||||
|
<#break>
|
||||||
<#case "D">
|
<#case "D">
|
||||||
<#-- *********************************************** Action = DELETE ******************** -->
|
<#-- *********************************************** Action = DELETE ******************** -->
|
||||||
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
|
<#stop>
|
||||||
<#assign preparationOrderLines = JsonUtil.jsonToMap(dataRfx)>
|
|
||||||
<#stop "no generic FTL file available yet for preparationOrderLines">
|
|
||||||
<#break>
|
|
||||||
<#break>
|
<#break>
|
||||||
|
|
||||||
<#default>
|
<#default>
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<#-- **** input parameters ***** -->
|
<#-- **** input parameters ***** -->
|
||||||
<#-- input : message RFX -->
|
<#-- input : message HARDIS WMS -->
|
||||||
<#-- project : projectId in ReflexPlatform -->
|
<#-- project : projectId in HARDIS SC NETWORK -->
|
||||||
<#-- organisation : organisationtId in ReflexPlatform -->
|
<#-- organisation : organisationtId in HARDIS SC NETWORK -->
|
||||||
|
|
||||||
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
|
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
|
||||||
<#assign projectRP = project>
|
<#assign projectRP = project>
|
||||||
@@ -11,22 +11,113 @@
|
|||||||
|
|
||||||
<#switch cloudEventMsg.action>
|
<#switch cloudEventMsg.action>
|
||||||
<#case "C">
|
<#case "C">
|
||||||
<#case "U">
|
|
||||||
<#-- *********************************************** Action = CREATE ******************** -->
|
<#-- *********************************************** Action = CREATE ******************** -->
|
||||||
|
|
||||||
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
|
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
|
||||||
<#assign receiptLines = JsonUtil.jsonToMap(dataRfx)>
|
<#assign receipt = JsonUtil.jsonToMap(dataRfx)>
|
||||||
|
<#if receipt.receipt_type == "030">
|
||||||
|
<#stop "ignored message because receipt type = transfert">
|
||||||
|
<#else>
|
||||||
|
<#if receipt.line_list ??>
|
||||||
|
[
|
||||||
|
{
|
||||||
|
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowLinesAdded>
|
||||||
|
"apiReflexPlatformID" : "${apiReflexPlatformID}",
|
||||||
|
"datas" :
|
||||||
|
<#include "RFXtoRP_HliReceiptLr_ExecutionflowLinesAdded.ftl">
|
||||||
|
|
||||||
<#stop "no generic FTL file available yet for receiptLines">
|
},
|
||||||
<#break>
|
{
|
||||||
|
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowReceiptExpected>
|
||||||
|
"apiReflexPlatformID" : "${apiReflexPlatformID}",
|
||||||
|
"datas" :
|
||||||
|
<#include "RFXtoRP_HsrReceiptList_ReceiptExpected.ftl">
|
||||||
|
|
||||||
|
}
|
||||||
|
]
|
||||||
|
<#else>
|
||||||
|
<#-- No line-->
|
||||||
|
<#stop>
|
||||||
|
</#if>
|
||||||
|
</#if>
|
||||||
|
<#break>
|
||||||
|
<#case "U">
|
||||||
|
<#-- *********************************************** Action = UPDATE ******************** -->
|
||||||
|
<#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>
|
||||||
|
"apiReflexPlatformID" : "${apiReflexPlatformID}",
|
||||||
|
"datas" :
|
||||||
|
<#include "RFXtoRP_HsrReceiptList_ExecutionflowCancelled.ftl">
|
||||||
|
}
|
||||||
|
<#else>
|
||||||
|
<#if receipt.receipt_confirmed == "true" >
|
||||||
|
{
|
||||||
|
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowReceiptCompleted>
|
||||||
|
"apiReflexPlatformID" : "${apiReflexPlatformID}",
|
||||||
|
"datas" :
|
||||||
|
<#include "RFXtoRP_HsrReceiptList_ExecutionflowReceiptCompleted.ftl">
|
||||||
|
}
|
||||||
|
<#else>
|
||||||
|
<#if receipt.receipt_type == "030">
|
||||||
|
<#stop "ignored message because receipt type = transfert">
|
||||||
|
<#else>
|
||||||
|
<#if receipt.line_list ??>
|
||||||
|
{
|
||||||
|
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowLinesAdded>
|
||||||
|
"apiReflexPlatformID" : "${apiReflexPlatformID}",
|
||||||
|
"datas" :
|
||||||
|
<#include "RFXtoRP_HliReceiptLr_ExecutionflowLinesAdded.ftl">
|
||||||
|
},
|
||||||
|
{
|
||||||
|
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowReceiptExpected>
|
||||||
|
"apiReflexPlatformID" : "${apiReflexPlatformID}",
|
||||||
|
"datas" :
|
||||||
|
<#include "RFXtoRP_HsrReceiptList_ReceiptExpected.ftl">
|
||||||
|
}
|
||||||
|
<#else>
|
||||||
|
<#-- No line-->
|
||||||
|
<#stop>
|
||||||
|
</#if>
|
||||||
|
</#if>
|
||||||
|
</#if>
|
||||||
|
</#if>
|
||||||
|
<#else>
|
||||||
|
<#-- Receipt reference is empty-->
|
||||||
|
<#stop >
|
||||||
|
</#if>
|
||||||
|
]
|
||||||
|
<#break>
|
||||||
|
|
||||||
<#case "D">
|
<#case "D">
|
||||||
<#-- *********************************************** Action = DELETE ******************** -->
|
<#-- *********************************************** Action = DELETE ******************** -->
|
||||||
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
|
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
|
||||||
<#assign receiptLines = JsonUtil.jsonToMap(dataRfx)>
|
<#assign receipt = JsonUtil.jsonToMap(dataRfx)>
|
||||||
|
[
|
||||||
|
<#if receipt.receipt_reference?? && receipt.receipt_reference!="">
|
||||||
|
<#if receipt.line_list ??>
|
||||||
|
{
|
||||||
|
|
||||||
|
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowCancelled>
|
||||||
|
"apiReflexPlatformID" : "${apiReflexPlatformID}",
|
||||||
|
"datas" :
|
||||||
|
<#include "RFXtoRP_HsrReceiptList_ExecutionflowCancelled.ftl">
|
||||||
|
}
|
||||||
|
<#else>
|
||||||
|
<#-- No line-->
|
||||||
|
<#stop>
|
||||||
|
</#if>
|
||||||
|
<#else>
|
||||||
|
<#-- Receipt reference is empty-->
|
||||||
|
<#stop >
|
||||||
|
</#if>
|
||||||
|
]
|
||||||
|
<#break>
|
||||||
|
|
||||||
<#stop "no generic FTL file available yet for receiptLines">
|
|
||||||
<#break>
|
|
||||||
|
|
||||||
<#default>
|
<#default>
|
||||||
<#stop >
|
<#stop >
|
||||||
|
|||||||
64
RFXtoRP_HliReceiptLr_ExecutionflowLinesAdded.ftl
Normal file
64
RFXtoRP_HliReceiptLr_ExecutionflowLinesAdded.ftl
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
<#include "HfRpConfig.ftl">
|
||||||
|
<#include "ReflexUtils.ftl">
|
||||||
|
<#include "ActorPrefix.ftl">
|
||||||
|
[
|
||||||
|
{
|
||||||
|
<#assign receipt_datetime = RfxDateTimetoUTCWithTimezone(receipt.receipt_datetime,time_zone_rfx) />
|
||||||
|
<#assign receipt_creation_datetime = RfxDateTimetoUTCWithTimezone(receipt.creation_datetime,time_zone_rfx) />
|
||||||
|
"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_creation_datetime}",
|
||||||
|
"AuthorTimeZone": "${time_zone_rfx}"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Payload": {
|
||||||
|
<#if receipt.line_list??>
|
||||||
|
"Lines" : [
|
||||||
|
<#list receipt.line_list as line>
|
||||||
|
{
|
||||||
|
"LineID": "${line.receipt_line_number}",
|
||||||
|
<#-- Line Metadata inclusion -->
|
||||||
|
<#include "RFXtoRP_HsrReceiptList_ExecutionflowDetected_LineMetadata.ftl">,
|
||||||
|
"RequestedContent":
|
||||||
|
{
|
||||||
|
"Goods":
|
||||||
|
{
|
||||||
|
"ItemID": "${line.item_code?trim?json_string!"0"}",
|
||||||
|
"LVBranchID": "${line.item_lv_code?json_string!"0"}",
|
||||||
|
<#if (line.line_without_detail?? && line.line_without_detail.priority_date?length != 0) && (line.line_without_detail.priority_date?starts_with("00") == false)>
|
||||||
|
<#assign line_without_detail_priority_date = line.line_without_detail.priority_date?datetime(rfx_date_format_default)?iso_utc />
|
||||||
|
"PriorityDate": "${line_without_detail_priority_date}",
|
||||||
|
<#else>
|
||||||
|
<#if (line.line_detail?? && line.line_detail?size == 1 && line.line_detail[0].priority_date?length != 0) && (line.line_detail[0].priority_date?starts_with("00") == false)>
|
||||||
|
<#assign line_detail_priority_date = line.line_detail[0].priority_date?datetime(rfx_date_format_default)?iso_utc />
|
||||||
|
"PriorityDate": "${line_detail_priority_date}",
|
||||||
|
<#else>
|
||||||
|
"PriorityDate": "1970-01-01T00:00:00Z",
|
||||||
|
</#if>
|
||||||
|
</#if>
|
||||||
|
<#-- Segmentation Keys inclusion -->
|
||||||
|
<#include "RFXtoRP_HsrReceiptList_ExecutionflowDetected_SegmentationKeys.ftl">
|
||||||
|
},
|
||||||
|
"Quantity" :
|
||||||
|
{
|
||||||
|
"LVID": "${quantity_in_base_lv_RP_Cst}",
|
||||||
|
"Value": "${line.order_quantity_in_lv!0}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
<#sep>,</#sep>
|
||||||
|
</#list>
|
||||||
|
]
|
||||||
|
</#if>
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
<#-- **** input parameters ***** -->
|
<#-- **** input parameters ***** -->
|
||||||
<#-- input : message RFX -->
|
<#-- input : message HARDIS WMS -->
|
||||||
<#-- project : projectId in ReflexPlatform -->
|
<#-- project : projectId in HARDIS SC NETWORK -->
|
||||||
<#-- organisation : organisationtId in ReflexPlatform -->
|
<#-- organisation : organisationtId in HARDIS SC NETWORK -->
|
||||||
|
|
||||||
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
|
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
|
||||||
<#assign projectRP = project>
|
<#assign projectRP = project>
|
||||||
@@ -12,20 +12,60 @@
|
|||||||
<#switch cloudEventMsg.action>
|
<#switch cloudEventMsg.action>
|
||||||
<#case "C">
|
<#case "C">
|
||||||
<#case "U">
|
<#case "U">
|
||||||
<#-- *********************************************** Action = CREATE or UPDATE ******************** -->
|
<#-- *********************************************** Action = CREATE or UPDATE ******************** -->
|
||||||
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
|
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
|
||||||
<#assign preparationOrderLines = JsonUtil.jsonToMap(dataRfx)>
|
<#assign preparation_order = JsonUtil.jsonToMap(dataRfx)>
|
||||||
|
[
|
||||||
<#stop "no generic FTL file available yet for preparationOrderLines">
|
<#if preparation_order.originator_reference?? && preparation_order.originator_reference!="">
|
||||||
<#break>
|
<#-- check preparation type code (internal order and reservation are ignored) -->
|
||||||
|
<#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.ExecutionflowLinesAdded>
|
||||||
|
"apiReflexPlatformID" : "${apiReflexPlatformID}",
|
||||||
|
"datas" :
|
||||||
|
<#include "RFXtoRP_HlrProL_ExecutionflowLinesAdded.ftl">
|
||||||
|
}
|
||||||
|
<#else>
|
||||||
|
<#-- No line -->
|
||||||
|
<#stop>
|
||||||
|
</#if>
|
||||||
|
<#else>
|
||||||
|
<#-- preparation order type not supported -->
|
||||||
|
<#stop>
|
||||||
|
</#if>
|
||||||
|
<#else>
|
||||||
|
<#-- PRO reference is empty -->
|
||||||
|
<#stop>
|
||||||
|
</#if>
|
||||||
|
]
|
||||||
|
<#break>
|
||||||
|
|
||||||
<#case "D">
|
<#case "D">
|
||||||
<#-- *********************************************** Action = DELETE ******************** -->
|
<#-- *********************************************** Action = DELETE ******************** -->
|
||||||
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
|
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
|
||||||
<#assign preparationOrderLines = JsonUtil.jsonToMap(dataRfx)>
|
<#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}",
|
||||||
|
"datas" :
|
||||||
|
<#include "RFXtoRP_HsrPro_ExecutionflowCancelled.ftl">
|
||||||
|
}
|
||||||
|
<#else>
|
||||||
|
<#-- No line -->
|
||||||
|
<#stop>
|
||||||
|
</#if>
|
||||||
|
<#else>
|
||||||
|
<#-- PRO reference is empty -->
|
||||||
|
<#stop>
|
||||||
|
</#if>
|
||||||
|
]
|
||||||
|
<#break>
|
||||||
|
|
||||||
|
|
||||||
<#stop "no generic FTL file available yet for preparationOrderLines">
|
|
||||||
<#break>
|
|
||||||
<#default>
|
<#default>
|
||||||
<#stop >
|
<#stop >
|
||||||
</#switch>
|
</#switch>
|
||||||
|
|||||||
55
RFXtoRP_HlrProL_ExecutionflowLinesAdded.ftl
Normal file
55
RFXtoRP_HlrProL_ExecutionflowLinesAdded.ftl
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
<#include "HfRpConfig.ftl">
|
||||||
|
<#include "ReflexUtils.ftl">
|
||||||
|
<#include "ActorPrefix.ftl">
|
||||||
|
[
|
||||||
|
{
|
||||||
|
<#assign planned_final_delivery_start_datetime = RfxDateTimetoUTCWithTimezone(preparation_order.planned_final_delivery_start_datetime,time_zone_rfx) />
|
||||||
|
<#assign pro_creation_datetime = RfxDateTimetoUTCWithTimezone(preparation_order.creation_datetime,time_zone_rfx) />
|
||||||
|
"Header": {
|
||||||
|
"ProjectID": "${projectRP}"
|
||||||
|
},
|
||||||
|
"ID": {
|
||||||
|
"RefID": "${preparation_order.originator_reference?trim?json_string}",
|
||||||
|
"RefDate": {
|
||||||
|
"DateTime": "${pro_creation_datetime}",
|
||||||
|
"AuthorTimeZone": "${time_zone_rfx}"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Payload": {
|
||||||
|
<#if preparation_order.line_list??>
|
||||||
|
"Lines" : [
|
||||||
|
<#list preparation_order.line_list as preparation_order_line >
|
||||||
|
{
|
||||||
|
<#if (preparation_order_line.originator_reference_line_number!0) != 0>
|
||||||
|
"LineID": "${preparation_order_line.originator_reference_line_number}",
|
||||||
|
<#else>
|
||||||
|
"LineID": "${preparation_order_line.preparation_order_line_number!0}",
|
||||||
|
</#if>
|
||||||
|
<#-- Line Metadata inclusion -->
|
||||||
|
<#include "RFXtoRP_HsrPro_ExecutionflowDetected_LineMetadata.ftl">,
|
||||||
|
"RequestedContent":
|
||||||
|
{
|
||||||
|
"Goods":
|
||||||
|
{
|
||||||
|
"ItemID": "${preparation_order_line.item_code?trim?json_string!"0"}",
|
||||||
|
"LVBranchID": "${preparation_order_line.item_lv_code?json_string!"0"}",
|
||||||
|
<#if (preparation_order_line.optional_attributes.forced_priority_date?length != 0) && (preparation_order_line.optional_attributes.forced_priority_date?starts_with("00") == false)>
|
||||||
|
<#assign forced_priority_date = preparation_order_line.optional_attributes.forced_priority_date?datetime(rfx_date_format_default)?iso_utc />
|
||||||
|
"PriorityDate": "${forced_priority_date}",
|
||||||
|
</#if>
|
||||||
|
<#-- Segmentation Keys inclusion -->
|
||||||
|
<#include "RFXtoRP_HsrPro_ExecutionflowDetected_SegmentationKeys.ftl">
|
||||||
|
},
|
||||||
|
"Quantity" :
|
||||||
|
{
|
||||||
|
"LVID": "${quantity_in_base_lv_RP_Cst}",
|
||||||
|
"Value": "${preparation_order_line.base_lv_quantity_to_prepare!0}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}<#sep>,</#sep>
|
||||||
|
</#list>
|
||||||
|
]
|
||||||
|
</#if>
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
@@ -21,7 +21,7 @@
|
|||||||
|
|
||||||
"Address":
|
"Address":
|
||||||
{
|
{
|
||||||
<#-- if Reflex WMS address is structured -->
|
<#-- if HARDIS WMS address is structured -->
|
||||||
<#if carrier.carrier_structured_address?? >
|
<#if carrier.carrier_structured_address?? >
|
||||||
|
|
||||||
"Name": "${carrier.carrier_structured_address.name_or_company?json_string}",
|
"Name": "${carrier.carrier_structured_address.name_or_company?json_string}",
|
||||||
@@ -38,7 +38,7 @@
|
|||||||
"ProvinceCode": "${carrier.carrier_structured_address.territorial_div_code?json_string}",
|
"ProvinceCode": "${carrier.carrier_structured_address.territorial_div_code?json_string}",
|
||||||
"State": "${carrier.carrier_structured_address.country_designation?json_string}"
|
"State": "${carrier.carrier_structured_address.country_designation?json_string}"
|
||||||
|
|
||||||
<#-- if Reflex WMS address is not structured -->
|
<#-- if HARDIS WMS address is not structured -->
|
||||||
<#else>
|
<#else>
|
||||||
<#if carrier.address??>
|
<#if carrier.address??>
|
||||||
"Name": "${carrier.address.company_name?json_string}",
|
"Name": "${carrier.address.company_name?json_string}",
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<#-- use protobuf of class HsaCarrier to find Reflex WMS fields names -->
|
<#-- use protobuf of class HsaCarrier to find HARDIS WMS fields names -->
|
||||||
|
|
||||||
|
|
||||||
"MetaData": [ ]
|
"MetaData": [ ]
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
<#-- **** input parameters ***** -->
|
<#-- **** input parameters ***** -->
|
||||||
<#-- input : message RFX -->
|
<#-- input : message HARDIS WMS -->
|
||||||
<#-- project : projectId in ReflexPlatform -->
|
<#-- project : projectId in HARDIS SC NETWORK -->
|
||||||
<#-- organisation : organisationtId in ReflexPlatform -->
|
<#-- organisation : organisationtId in HARDIS SC NETWORK -->
|
||||||
|
|
||||||
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
|
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
|
||||||
<#assign projectRP = project>
|
<#assign projectRP = project>
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
"Address":
|
"Address":
|
||||||
{
|
{
|
||||||
|
|
||||||
<#-- if Reflex WMS is structured -->
|
<#-- if HARDIS WMS is structured -->
|
||||||
<#if actor.consignee_structured_address??>
|
<#if actor.consignee_structured_address??>
|
||||||
|
|
||||||
"Name": "${actor.consignee_structured_address.name_or_company?json_string}",
|
"Name": "${actor.consignee_structured_address.name_or_company?json_string}",
|
||||||
@@ -40,7 +40,7 @@
|
|||||||
"ProvinceCode": "${actor.consignee_structured_address.territorial_div_code?json_string}",
|
"ProvinceCode": "${actor.consignee_structured_address.territorial_div_code?json_string}",
|
||||||
"State": "${actor.consignee_structured_address.country_designation?json_string}"
|
"State": "${actor.consignee_structured_address.country_designation?json_string}"
|
||||||
|
|
||||||
<#-- if Reflex WMS is not structured -->
|
<#-- if HARDIS WMS is not structured -->
|
||||||
<#else>
|
<#else>
|
||||||
<#if actor.address?? >
|
<#if actor.address?? >
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<#-- use protobuf of class HsaCons to find Reflex WMS fields names -->
|
<#-- use protobuf of class HsaCons to find HARDIS WMS fields names -->
|
||||||
|
|
||||||
|
|
||||||
"MetaData": [ ]
|
"MetaData": [ ]
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
<#-- **** input parameters ***** -->
|
<#-- **** input parameters ***** -->
|
||||||
<#-- input : message RFX -->
|
<#-- input : message HARDIS WMS -->
|
||||||
<#-- project : projectId in ReflexPlatform -->
|
<#-- project : projectId in HARDIS SC NETWORK -->
|
||||||
<#-- organisation : organisationtId in ReflexPlatform -->
|
<#-- organisation : organisationtId in HARDIS SC NETWORK -->
|
||||||
|
|
||||||
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
|
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
|
||||||
<#assign projectRP = project>
|
<#assign projectRP = project>
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<#-- use protobuf of class HsaDispute to find Reflex Wms fields names -->
|
<#-- use protobuf of class HsaDispute to find HARDIS WMS fields names -->
|
||||||
|
|
||||||
|
|
||||||
"MetaData": [ ]
|
"MetaData": [ ]
|
||||||
@@ -47,7 +47,6 @@
|
|||||||
<#if (reflexMvtStockInterface.ipg_move_type == "100" ||
|
<#if (reflexMvtStockInterface.ipg_move_type == "100" ||
|
||||||
reflexMvtStockInterface.ipg_move_type == "110" ||
|
reflexMvtStockInterface.ipg_move_type == "110" ||
|
||||||
reflexMvtStockInterface.ipg_move_type == "120") >
|
reflexMvtStockInterface.ipg_move_type == "120") >
|
||||||
<#if reflexMvtStockInterface.receipt_reference?? && reflexMvtStockInterface.receipt_reference!="">
|
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
<#assign apiReflexPlatformID = ApiReflexPlatformID.HandlingunitGoodsReceived>
|
<#assign apiReflexPlatformID = ApiReflexPlatformID.HandlingunitGoodsReceived>
|
||||||
@@ -56,10 +55,6 @@
|
|||||||
<#include "RFXtoRP_HsaIpgMove_GoodsReceived.ftl">
|
<#include "RFXtoRP_HsaIpgMove_GoodsReceived.ftl">
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
<#else>
|
|
||||||
<#-- Case of IPG move type volontarilly ignored, Reference receipt is empty-->
|
|
||||||
<#stop >
|
|
||||||
</#if>
|
|
||||||
<#else>
|
<#else>
|
||||||
<#stop>
|
<#stop>
|
||||||
</#if>
|
</#if>
|
||||||
|
|||||||
@@ -37,6 +37,9 @@
|
|||||||
<#if reflexMvtStockInterface.receipt_reference?? && reflexMvtStockInterface.receipt_reference!="">
|
<#if reflexMvtStockInterface.receipt_reference?? && reflexMvtStockInterface.receipt_reference!="">
|
||||||
"ExecutionflowID": "${reflexMvtStockInterface.receipt_reference?trim?json_string}",
|
"ExecutionflowID": "${reflexMvtStockInterface.receipt_reference?trim?json_string}",
|
||||||
"OrderID": "${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>
|
</#if>
|
||||||
<#else>
|
<#else>
|
||||||
@@ -44,8 +47,8 @@
|
|||||||
"ExecutionflowID": "${reflexMvtStockInterface.receipt_reference?trim?json_string}",
|
"ExecutionflowID": "${reflexMvtStockInterface.receipt_reference?trim?json_string}",
|
||||||
"OrderID": "${reflexMvtStockInterface.receipt_reference?trim?json_string}",
|
"OrderID": "${reflexMvtStockInterface.receipt_reference?trim?json_string}",
|
||||||
<#else>
|
<#else>
|
||||||
"ExecutionflowID": "${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.ipg_move_year_number}${reflexMvtStockInterface.extended_ipg_move_number}",
|
"OrderID": "${reflexMvtStockInterface.physical_depot_code}${reflexMvtStockInterface.activity_code}${reflexMvtStockInterface.originator_code}${reflexMvtStockInterface.receipt_year_number}${reflexMvtStockInterface.receipt_number}",
|
||||||
</#if>
|
</#if>
|
||||||
</#if>
|
</#if>
|
||||||
<#if reflexMvtStockInterface.origin_order_line_number_reference?? && reflexMvtStockInterface.origin_order_line_number_reference!=0>
|
<#if reflexMvtStockInterface.origin_order_line_number_reference?? && reflexMvtStockInterface.origin_order_line_number_reference!=0>
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<#-- use protobuf of class HsaIpgMove to find Reflex WMS fields names -->
|
<#-- use protobuf of class HsaIpgMove to find HARDIS WMS fields names -->
|
||||||
|
|
||||||
<#--
|
<#--
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<#-- use protobuf of class HsaIpgMove to find Reflex WMS fields names -->
|
<#-- use protobuf of class HsaIpgMove to find HARDIS WMS fields names -->
|
||||||
<#--
|
<#--
|
||||||
"SegmentationKeys": [
|
"SegmentationKeys": [
|
||||||
{
|
{
|
||||||
@@ -15,22 +15,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": [ ]
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
<#-- **** input parameters ***** -->
|
<#-- **** input parameters ***** -->
|
||||||
<#-- input : message RFX -->
|
<#-- input : message HARDIS WMS -->
|
||||||
<#-- project : projectId in ReflexPlatform -->
|
<#-- project : projectId in HARDIS SC NETWORK -->
|
||||||
<#-- organisation : organisationtId in ReflexPlatform -->
|
<#-- organisation : organisationtId in HARDIS SC NETWORK -->
|
||||||
|
|
||||||
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
|
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
|
||||||
<#assign projectRP = project>
|
<#assign projectRP = project>
|
||||||
@@ -18,14 +18,10 @@
|
|||||||
<#assign item = JsonUtil.jsonToMap(dataRfx)>
|
<#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>
|
<#assign apiReflexPlatformID = ApiReflexPlatformID.ItemCreated>
|
||||||
"apiReflexPlatformID" : "${apiReflexPlatformID}",
|
"apiReflexPlatformID" : "${apiReflexPlatformID}",
|
||||||
"datas" :
|
"datas" :
|
||||||
<#include "RFXtoRP_HsaItm_ItemCreated.ftl">
|
<#include "RFXtoRP_HsaItm_ItemCreated.ftl">
|
||||||
<#else>
|
|
||||||
<#stop "no LV for the item">
|
|
||||||
</#if>
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
<#break>
|
<#break>
|
||||||
|
|||||||
@@ -1,45 +1,45 @@
|
|||||||
<#-- **** input parameters ***** -->
|
<#-- **** input parameters ***** -->
|
||||||
<#-- input : message RFX -->
|
<#-- input : message HARDIS WMS -->
|
||||||
<#-- project : projectId in ReflexPlatform -->
|
<#-- project : projectId in HARDIS SC NETWORK -->
|
||||||
<#-- organisation : organisationtId in ReflexPlatform -->
|
<#-- organisation : organisationtId in HARDIS SC NETWORK -->
|
||||||
|
|
||||||
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
|
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
|
||||||
<#assign projectRP = project>
|
<#assign projectRP = project>
|
||||||
<#assign organisationRP = organisation>
|
<#assign organisationRP = organisation>
|
||||||
|
|
||||||
|
|
||||||
<#assign aDateTime = .now>
|
<#assign aDateTime = .now>
|
||||||
|
|
||||||
<#switch cloudEventMsg.action>
|
<#switch cloudEventMsg.action>
|
||||||
<#case "C">
|
<#case "C">
|
||||||
<#case "U">
|
<#case "U">
|
||||||
<#-- *********************************************** Action = CREATE or UPDATE ******************** -->
|
<#-- *********************************************** Action = CREATE or UPDATE ******************** -->
|
||||||
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
|
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
|
||||||
<#assign lv = JsonUtil.jsonToMap(dataRfx)>
|
<#assign lv = JsonUtil.jsonToMap(dataRfx)>
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
<#assign apiReflexPlatformID = ApiReflexPlatformID.ItemLogisticVariantUpdated>
|
<#assign apiReflexPlatformID = ApiReflexPlatformID.ItemLogisticVariantUpdated>
|
||||||
"apiReflexPlatformID" : "${apiReflexPlatformID}",
|
"apiReflexPlatformID" : "${apiReflexPlatformID}",
|
||||||
"datas" :
|
"datas" :
|
||||||
<#include "RFXtoRP_HsaItmLv_LogisticVariantUpdated.ftl">
|
<#include "RFXtoRP_HsaItmLv_LogisticVariantUpdated.ftl">
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
<#break>
|
<#break>
|
||||||
|
|
||||||
<#case "D">
|
<#case "D">
|
||||||
<#-- *********************************************** Action = DELETE ******************** -->
|
<#-- *********************************************** Action = DELETE ******************** -->
|
||||||
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
|
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
|
||||||
<#assign lv = JsonUtil.jsonToMap(dataRfx)>
|
<#assign lv = JsonUtil.jsonToMap(dataRfx)>
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
<#assign apiReflexPlatformID = ApiReflexPlatformID.ItemLogisticVariantRemoved>
|
<#assign apiReflexPlatformID = ApiReflexPlatformID.ItemLogisticVariantRemoved>
|
||||||
"apiReflexPlatformID" : "${apiReflexPlatformID}",
|
"apiReflexPlatformID" : "${apiReflexPlatformID}",
|
||||||
"datas" :
|
"datas" :
|
||||||
<#include "RFXtoRP_HsaItmLv_LogisticVariantRemoved.ftl">
|
<#include "RFXtoRP_HsaItmLv_LogisticVariantRemoved.ftl">
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
<#break>
|
<#break>
|
||||||
<#default>
|
<#default>
|
||||||
<#stop >
|
<#stop >
|
||||||
</#switch>
|
</#switch>
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
{
|
{
|
||||||
"LVID": "${lv.logistical_variant_code?json_string}",
|
"LVID": "${lv.logistical_variant_code?json_string}",
|
||||||
"Name" : "${lv.lv_type_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": [
|
"Codes": [
|
||||||
<#list lv.id_list as id>
|
<#list lv.id_list as id>
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<#-- use protobuf of class HsaItmLv to find Reflex Wms fields names -->
|
<#-- use protobuf of class HsaItmLv to find HARDIS WMS fields names -->
|
||||||
|
|
||||||
|
|
||||||
"MetaData": [ ]
|
"MetaData": [ ]
|
||||||
@@ -21,15 +21,17 @@
|
|||||||
},
|
},
|
||||||
|
|
||||||
<#-- Item metadata inclusion -->
|
<#-- Item metadata inclusion -->
|
||||||
<#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.url?? && item.url!="">
|
||||||
"PhotoURI": "${item.url?json_string}",
|
,
|
||||||
|
"PhotoURI": "${item.url?json_string}"
|
||||||
</#if>
|
</#if>
|
||||||
|
|
||||||
<#-- Loop for the Logistical Variants - LV -->
|
<#-- 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": [
|
"LogisticVariants": [
|
||||||
|
|
||||||
<#list item.logistical_variant_list as logistical_variant>
|
<#list item.logistical_variant_list as logistical_variant>
|
||||||
@@ -37,7 +39,7 @@
|
|||||||
"LVID": "${logistical_variant.logistical_variant_code?json_string}",
|
"LVID": "${logistical_variant.logistical_variant_code?json_string}",
|
||||||
"Name" : "${logistical_variant.lv_type_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": [
|
"Codes": [
|
||||||
<#list logistical_variant.id_list as id>
|
<#list logistical_variant.id_list as id>
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<#-- use protobuf of class HsaItm to find Reflex Wms fields names -->
|
<#-- use protobuf of class HsaItm to find HARDIS WMS fields names -->
|
||||||
|
|
||||||
|
|
||||||
"MetaData": [ ]
|
"MetaData": [ ]
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
<#-- use protobuf of class HsaItm to find Reflex Wms fields names -->
|
<#-- use protobuf of class HsaItm to find HARDIS WMS fields names -->
|
||||||
|
|
||||||
|
|
||||||
"MetaData": [ ]
|
"MetaData": [ ]
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
<#-- **** input parameters ***** -->
|
<#-- **** input parameters ***** -->
|
||||||
<#-- input : message RFX -->
|
<#-- input : message HARDIS WMS -->
|
||||||
<#-- project : projectId in ReflexPlatform -->
|
<#-- project : projectId in HARDIS SC NETWORK -->
|
||||||
<#-- organisation : organisationtId in ReflexPlatform -->
|
<#-- organisation : organisationtId in HARDIS SC NETWORK -->
|
||||||
|
|
||||||
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
|
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
|
||||||
<#assign projectRP = project>
|
<#assign projectRP = project>
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<#-- **** input parameters ***** -->
|
<#-- **** input parameters ***** -->
|
||||||
<#-- input : message RFX -->
|
<#-- input : message HARDIS WMS -->
|
||||||
<#-- project : projectId in ReflexPlatform -->
|
<#-- project : projectId in HARDIS SC NETWORK -->
|
||||||
<#-- organisation : organisationtId in ReflexPlatform -->
|
<#-- organisation : organisationtId in HARDIS SC NETWORK -->
|
||||||
|
|
||||||
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
|
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
|
||||||
<#assign projectRP = project>
|
<#assign projectRP = project>
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<#-- **** input parameters ***** -->
|
<#-- **** input parameters ***** -->
|
||||||
<#-- input : message RFX -->
|
<#-- input : message HARDIS WMS -->
|
||||||
<#-- project : projectId in ReflexPlatform -->
|
<#-- project : projectId in HARDIS SC NETWORK -->
|
||||||
<#-- organisation : organisationtId in ReflexPlatform -->
|
<#-- organisation : organisationtId in HARDIS SC NETWORK -->
|
||||||
|
|
||||||
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
|
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
|
||||||
<#assign projectRP = project>
|
<#assign projectRP = project>
|
||||||
|
|||||||
@@ -20,7 +20,7 @@
|
|||||||
|
|
||||||
"Address":
|
"Address":
|
||||||
{
|
{
|
||||||
<#-- if Reflex WMS address is structured -->
|
<#-- if HARDIS WMS address is structured -->
|
||||||
<#if actor.supplier_structured_address?? >
|
<#if actor.supplier_structured_address?? >
|
||||||
|
|
||||||
"Name": "${actor.supplier_structured_address.name_or_company?json_string}",
|
"Name": "${actor.supplier_structured_address.name_or_company?json_string}",
|
||||||
@@ -37,7 +37,7 @@
|
|||||||
"ProvinceCode": "${actor.supplier_structured_address.territorial_div_code?json_string}",
|
"ProvinceCode": "${actor.supplier_structured_address.territorial_div_code?json_string}",
|
||||||
"State": "${actor.supplier_structured_address.country_designation?json_string}"
|
"State": "${actor.supplier_structured_address.country_designation?json_string}"
|
||||||
|
|
||||||
<#-- if Reflex WMS address is not structured -->
|
<#-- if HARDIS WMS address is not structured -->
|
||||||
<#else>
|
<#else>
|
||||||
<#if actor.optional_attributes?? >
|
<#if actor.optional_attributes?? >
|
||||||
"Name": "${actor.optional_attributes.company_name?json_string}",
|
"Name": "${actor.optional_attributes.company_name?json_string}",
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<#-- use protobuf of class HsaSup to find Reflex WMS fields names -->
|
<#-- use protobuf of class HsaSup to find HARDIS WMS fields names -->
|
||||||
|
|
||||||
|
|
||||||
"MetaData": [ ]
|
"MetaData": [ ]
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
<#-- **** input parameters ***** -->
|
<#-- **** input parameters ***** -->
|
||||||
<#-- input : message RFX -->
|
<#-- input : message HARDIS WMS -->
|
||||||
<#-- project : projectId in ReflexPlatform -->
|
<#-- project : projectId in HARDIS SC NETWORK -->
|
||||||
<#-- organisation : organisationtId in ReflexPlatform -->
|
<#-- organisation : organisationtId in HARDIS SC NETWORK -->
|
||||||
|
|
||||||
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
|
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
|
||||||
<#assign projectRP = project>
|
<#assign projectRP = project>
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<#-- **** input parameters ***** -->
|
<#-- **** input parameters ***** -->
|
||||||
<#-- input : message RFX -->
|
<#-- input : message HARDIS WMS -->
|
||||||
<#-- project : projectId in ReflexPlatform -->
|
<#-- project : projectId in HARDIS SC NETWORK -->
|
||||||
<#-- organisation : organisationtId in ReflexPlatform -->
|
<#-- organisation : organisationtId in HARDIS SC NETWORK -->
|
||||||
|
|
||||||
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
|
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
|
||||||
<#assign projectRP = project>
|
<#assign projectRP = project>
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
|
|
||||||
"Address":
|
"Address":
|
||||||
{
|
{
|
||||||
<#-- if Reflex WMS address is structured -->
|
<#-- if HARDIS WMS address is structured -->
|
||||||
<#if depot.physical_depot_structured_address?? >
|
<#if depot.physical_depot_structured_address?? >
|
||||||
|
|
||||||
"Name": "${depot.physical_depot_structured_address.name_or_company?json_string}",
|
"Name": "${depot.physical_depot_structured_address.name_or_company?json_string}",
|
||||||
@@ -39,7 +39,7 @@
|
|||||||
"ProvinceCode": "${depot.physical_depot_structured_address.territorial_div_code?json_string}",
|
"ProvinceCode": "${depot.physical_depot_structured_address.territorial_div_code?json_string}",
|
||||||
"State": "${depot.physical_depot_structured_address.country_designation?json_string}"
|
"State": "${depot.physical_depot_structured_address.country_designation?json_string}"
|
||||||
|
|
||||||
<#-- if Reflex WMS address is not structured -->
|
<#-- if HARDIS WMS address is not structured -->
|
||||||
<#else>
|
<#else>
|
||||||
<#if depot.physical_depot_address??>
|
<#if depot.physical_depot_address??>
|
||||||
"Name": "${depot.physical_depot_address.company_name?json_string}",
|
"Name": "${depot.physical_depot_address.company_name?json_string}",
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<#-- use protobuf of class HsrDepot to find Reflex WMS fields names -->
|
<#-- use protobuf of class HsrDepot to find HARDIS WMS fields names -->
|
||||||
|
|
||||||
|
|
||||||
"MetaData": [ ]
|
"MetaData": [ ]
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
<#-- **** input parameters ***** -->
|
<#-- **** input parameters ***** -->
|
||||||
<#-- input : message RFX -->
|
<#-- input : message HARDIS WMS -->
|
||||||
<#-- project : projectId in ReflexPlatform -->
|
<#-- project : projectId in HARDIS SC NETWORK -->
|
||||||
<#-- organisation : organisationtId in ReflexPlatform -->
|
<#-- organisation : organisationtId in HARDIS SC NETWORK -->
|
||||||
|
|
||||||
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
|
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
|
||||||
<#assign projectRP = project>
|
<#assign projectRP = project>
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<#-- **** input parameters ***** -->
|
<#-- **** input parameters ***** -->
|
||||||
<#-- input : message RFX -->
|
<#-- input : message HARDIS WMS -->
|
||||||
<#-- project : projectId in ReflexPlatform -->
|
<#-- project : projectId in HARDIS SC NETWORK -->
|
||||||
<#-- organisation : organisationtId in ReflexPlatform -->
|
<#-- organisation : organisationtId in HARDIS SC NETWORK -->
|
||||||
|
|
||||||
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
|
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
|
||||||
<#assign projectRP = project>
|
<#assign projectRP = project>
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<#-- **** input parameters ***** -->
|
<#-- **** input parameters ***** -->
|
||||||
<#-- input : message RFX -->
|
<#-- input : message HARDIS WMS -->
|
||||||
<#-- project : projectId in ReflexPlatform -->
|
<#-- project : projectId in HARDIS SC NETWORK -->
|
||||||
<#-- organisation : organisationtId in ReflexPlatform -->
|
<#-- organisation : organisationtId in HARDIS SC NETWORK -->
|
||||||
|
|
||||||
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
|
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
|
||||||
<#assign projectRP = project>
|
<#assign projectRP = project>
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<#-- **** input parameters ***** -->
|
<#-- **** input parameters ***** -->
|
||||||
<#-- input : message RFX -->
|
<#-- input : message HARDIS WMS -->
|
||||||
<#-- project : projectId in ReflexPlatform -->
|
<#-- project : projectId in HARDIS SC NETWORK -->
|
||||||
<#-- organisation : organisationtId in ReflexPlatform -->
|
<#-- organisation : organisationtId in HARDIS SC NETWORK -->
|
||||||
<#include "ReflexUtils.ftl">
|
<#include "ReflexUtils.ftl">
|
||||||
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
|
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
|
||||||
<#assign projectRP = project>
|
<#assign projectRP = project>
|
||||||
@@ -56,8 +56,7 @@
|
|||||||
<#list preparationOrder.preparation_line_lst?filter(l ->l.despatched_ipg_list?? && l.preparation_order_originator_reference!="") as preparation_line>
|
<#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>
|
<#list preparation_line.despatched_ipg_list as despatched_ipg>
|
||||||
<#assign HUadded_packing_datetime = RfxDateTimetoUTCWithTimezone(preparation_line.confirmation_datetime,time_zone_rfx) />
|
<#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))>
|
<#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 hd_numberHmap += {despatched_ipg.hd_number,despatched_ipg.hd_number}>
|
|
||||||
,
|
,
|
||||||
{
|
{
|
||||||
<#assign apiReflexPlatformID = ApiReflexPlatformID.TrackingHULabeled>
|
<#assign apiReflexPlatformID = ApiReflexPlatformID.TrackingHULabeled>
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<#-- use protobuf of class HsrPrepa to find Reflex WMS fields names -->
|
<#-- use protobuf of class HsrPrepa to find HARDIS WMS fields names -->
|
||||||
|
|
||||||
<#--
|
<#--
|
||||||
"MetaData" :[
|
"MetaData" :[
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<#-- use protobuf of class Hsrprepa to find Reflex WMS fields names -->
|
<#-- use protobuf of class Hsrprepa to find HARDIS WMS fields names -->
|
||||||
<#--
|
<#--
|
||||||
"SegmentationKeys": [
|
"SegmentationKeys": [
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<#-- use protobuf of class HsrPrepa to find Reflex WMS fields names -->
|
<#-- use protobuf of class HsrPrepa to find HARDIS WMS fields names -->
|
||||||
|
|
||||||
<#--
|
<#--
|
||||||
"MetaData" :[
|
"MetaData" :[
|
||||||
|
|||||||
@@ -53,8 +53,10 @@
|
|||||||
"Payload": {
|
"Payload": {
|
||||||
<#if despatched_ipg.carton_number != "000000000000000000">
|
<#if despatched_ipg.carton_number != "000000000000000000">
|
||||||
"HandlingunitID": "${despatched_ipg.carton_number}"
|
"HandlingunitID": "${despatched_ipg.carton_number}"
|
||||||
|
<#assign hd_numberHmap += {despatched_ipg.carton_number,despatched_ipg.carton_number}>
|
||||||
<#else>
|
<#else>
|
||||||
"HandlingunitID": "${despatched_ipg.hd_number}"
|
"HandlingunitID": "${despatched_ipg.hd_number}"
|
||||||
|
<#assign hd_numberHmap += {despatched_ipg.hd_number,despatched_ipg.hd_number}>
|
||||||
</#if>
|
</#if>
|
||||||
<#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!="" >
|
||||||
,
|
,
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<#-- **** input parameters ***** -->
|
<#-- **** input parameters ***** -->
|
||||||
<#-- input : message RFX -->
|
<#-- input : message HARDIS WMS -->
|
||||||
<#-- project : projectId in ReflexPlatform -->
|
<#-- project : projectId in HARDIS SC NETWORK -->
|
||||||
<#-- organisation : organisationtId in ReflexPlatform -->
|
<#-- organisation : organisationtId in HARDIS SC NETWORK -->
|
||||||
|
|
||||||
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
|
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
|
||||||
<#assign projectRP = project>
|
<#assign projectRP = project>
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<#-- use protobuf of class HsrPro to find Reflex Wms fields names -->
|
<#-- use protobuf of class HsrPro to find HARDIS WMS fields names -->
|
||||||
|
|
||||||
<#--
|
<#--
|
||||||
|
|
||||||
"MetaData": [
|
"MetaData": [
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<#-- use protobuf of class HsrPro to find Reflex Wms fields names -->
|
<#-- use protobuf of class HsrPro to find HARDIS WMS fields names -->
|
||||||
|
|
||||||
|
|
||||||
"MetaData": [ ]
|
"MetaData": [ ]
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
<#-- use protobuf of class HsrPro to find Reflex WMS fields names -->
|
<#-- use protobuf of class HsrPro to find HARDIS WMS fields names -->
|
||||||
<#--
|
<#--
|
||||||
|
|
||||||
"SegmentationKeys": [
|
"SegmentationKeys": [
|
||||||
@@ -16,7 +16,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>
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
-->
|
-->
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<#-- **** input parameters ***** -->
|
<#-- **** input parameters ***** -->
|
||||||
<#-- input : message RFX -->
|
<#-- input : message HARDIS WMS -->
|
||||||
<#-- project : projectId in ReflexPlatform -->
|
<#-- project : projectId in HARDIS SC NETWORK -->
|
||||||
<#-- organisation : organisationtId in ReflexPlatform -->
|
<#-- organisation : organisationtId in HARDIS SC NETWORK -->
|
||||||
|
|
||||||
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
|
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
|
||||||
<#assign projectRP = project>
|
<#assign projectRP = project>
|
||||||
@@ -15,7 +15,6 @@
|
|||||||
|
|
||||||
<#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_reference ?? && receipt.receipt_reference!="">
|
|
||||||
<#if receipt.receipt_type == "030">
|
<#if receipt.receipt_type == "030">
|
||||||
<#stop "ignored message because receipt type = transfert">
|
<#stop "ignored message because receipt type = transfert">
|
||||||
<#else>
|
<#else>
|
||||||
@@ -40,18 +39,13 @@
|
|||||||
<#-- No line-->
|
<#-- No line-->
|
||||||
<#stop>
|
<#stop>
|
||||||
</#if>
|
</#if>
|
||||||
</#if>
|
</#if>
|
||||||
<#else>
|
|
||||||
<#-- "Receipt reference is empty"-->
|
|
||||||
<#stop>
|
|
||||||
</#if>
|
|
||||||
<#break>
|
<#break>
|
||||||
<#case "U">
|
<#case "U">
|
||||||
<#-- *********************************************** Action = UPDATE ******************** -->
|
<#-- *********************************************** Action = UPDATE ******************** -->
|
||||||
<#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_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>
|
<#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>
|
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowCancelled>
|
||||||
@@ -91,10 +85,6 @@
|
|||||||
</#if>
|
</#if>
|
||||||
</#if>
|
</#if>
|
||||||
</#if>
|
</#if>
|
||||||
<#else>
|
|
||||||
<#-- Receipt reference is empty-->
|
|
||||||
<#stop >
|
|
||||||
</#if>
|
|
||||||
]
|
]
|
||||||
<#break>
|
<#break>
|
||||||
|
|
||||||
@@ -103,7 +93,6 @@
|
|||||||
<#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_reference?? && receipt.receipt_reference!="">
|
|
||||||
<#if receipt.line_list ??>
|
<#if receipt.line_list ??>
|
||||||
{
|
{
|
||||||
|
|
||||||
@@ -116,10 +105,6 @@
|
|||||||
<#-- No line-->
|
<#-- No line-->
|
||||||
<#stop>
|
<#stop>
|
||||||
</#if>
|
</#if>
|
||||||
<#else>
|
|
||||||
<#-- Receipt reference is empty-->
|
|
||||||
<#stop >
|
|
||||||
</#if>
|
|
||||||
]
|
]
|
||||||
<#break>
|
<#break>
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
[
|
[
|
||||||
<#if receipt.line_list??>
|
<#if receipt.line_list??>
|
||||||
<#list receipt.line_list as receipt_line >
|
<#list receipt.line_list as receipt_line >
|
||||||
<#if receipt_line.origin_order_line_reference!="">
|
<#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[receipt_line.origin_order_line_reference]?? >
|
||||||
<#if refIDHmap_local?size != 0 >
|
<#if refIDHmap_local?size != 0 >
|
||||||
,
|
,
|
||||||
@@ -25,11 +25,14 @@
|
|||||||
}
|
}
|
||||||
</#if>
|
</#if>
|
||||||
<#else>
|
<#else>
|
||||||
<#if receipt.receipt_reference?? && receipt.receipt_reference!="">
|
|
||||||
{
|
{
|
||||||
"Header": {"ProjectID": "${projectRP}"},
|
"Header": {"ProjectID": "${projectRP}"},
|
||||||
"ID": {
|
"ID": {
|
||||||
|
<#if receipt.receipt_reference?? && receipt.receipt_reference!="">
|
||||||
"RefID": "${receipt.receipt_reference?trim?json_string}",
|
"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": {
|
"RefDate": {
|
||||||
"DateTime": "${receipt_status_datetime}",
|
"DateTime": "${receipt_status_datetime}",
|
||||||
"AuthorTimeZone": "${time_zone_rfx}"
|
"AuthorTimeZone": "${time_zone_rfx}"
|
||||||
@@ -39,7 +42,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
<#break>
|
<#break>
|
||||||
</#if>
|
|
||||||
</#if>
|
</#if>
|
||||||
</#list>
|
</#list>
|
||||||
</#if>
|
</#if>
|
||||||
|
|||||||
@@ -9,7 +9,11 @@
|
|||||||
"ProjectID": "${projectRP}"
|
"ProjectID": "${projectRP}"
|
||||||
},
|
},
|
||||||
"ID": {
|
"ID": {
|
||||||
"RefID": "${receipt.receipt_reference?trim?json_string}",
|
<#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": {
|
"RefDate": {
|
||||||
"DateTime": "${receipt_creation_datetime}",
|
"DateTime": "${receipt_creation_datetime}",
|
||||||
"AuthorTimeZone": "${time_zone_rfx}"
|
"AuthorTimeZone": "${time_zone_rfx}"
|
||||||
@@ -44,7 +48,11 @@
|
|||||||
"ActorID":"${RFXtoRPprefixCarrier(receipt.carrier_informations.carrier_code?trim?json_string)}"
|
"ActorID":"${RFXtoRPprefixCarrier(receipt.carrier_informations.carrier_code?trim?json_string)}"
|
||||||
},
|
},
|
||||||
</#if>
|
</#if>
|
||||||
"OrderID": "${receipt.receipt_reference?trim?json_string}",
|
<#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??>
|
<#if receipt.line_list??>
|
||||||
"Lines" : [
|
"Lines" : [
|
||||||
<#list receipt.line_list as line>
|
<#list receipt.line_list as line>
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<#-- use protobuf of class HsrReceiptList to find Reflex Wms fields names -->
|
<#-- use protobuf of class HsrReceiptList to find HARDIS WMS fields names -->
|
||||||
|
|
||||||
<#--
|
<#--
|
||||||
|
|
||||||
"MetaData": [
|
"MetaData": [
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<#-- use protobuf of class HsrReceiptList to find Reflex Wms fields names -->
|
<#-- use protobuf of class HsrReceiptList to find HARDIS WMS fields names -->
|
||||||
|
|
||||||
|
|
||||||
"MetaData": [ ]
|
"MetaData": [ ]
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
<#-- use protobuf of class HsrReceiptList to find Reflex WMS fields names -->
|
<#-- use protobuf of class HsrReceiptList to find HARDIS WMS fields names -->
|
||||||
|
|
||||||
<#--
|
<#--
|
||||||
"SegmentationKeys": [
|
"SegmentationKeys": [
|
||||||
@@ -16,7 +16,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 +25,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}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
[
|
[
|
||||||
<#if receipt.line_list??>
|
<#if receipt.line_list??>
|
||||||
<#list receipt.line_list as receipt_line >
|
<#list receipt.line_list as receipt_line >
|
||||||
<#if receipt_line.origin_order_line_reference!="">
|
<#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[receipt_line.origin_order_line_reference]?? >
|
||||||
<#if refIDHmap_local?size != 0 >
|
<#if refIDHmap_local?size != 0 >
|
||||||
,
|
,
|
||||||
@@ -25,11 +25,14 @@
|
|||||||
}
|
}
|
||||||
</#if>
|
</#if>
|
||||||
<#else>
|
<#else>
|
||||||
<#if receipt.receipt_reference?? && receipt.receipt_reference!="">
|
|
||||||
{
|
{
|
||||||
"Header": {"ProjectID": "${projectRP}"},
|
"Header": {"ProjectID": "${projectRP}"},
|
||||||
"ID": {
|
"ID": {
|
||||||
|
<#if receipt.receipt_reference?? && receipt.receipt_reference!="">
|
||||||
"RefID": "${receipt.receipt_reference?trim?json_string}",
|
"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": {
|
"RefDate": {
|
||||||
"DateTime": "${receipt_status_datetime}",
|
"DateTime": "${receipt_status_datetime}",
|
||||||
"AuthorTimeZone": "${time_zone_rfx}"
|
"AuthorTimeZone": "${time_zone_rfx}"
|
||||||
@@ -39,7 +42,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
<#break>
|
<#break>
|
||||||
</#if>
|
|
||||||
</#if>
|
</#if>
|
||||||
</#list>
|
</#list>
|
||||||
</#if>
|
</#if>
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
[
|
[
|
||||||
<#if receipt.line_list??>
|
<#if receipt.line_list??>
|
||||||
<#list receipt.line_list as receipt_line >
|
<#list receipt.line_list as receipt_line >
|
||||||
<#if receipt_line.origin_order_line_reference!="">
|
<#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[receipt_line.origin_order_line_reference]?? >
|
||||||
<#if refIDHmap_local?size != 0 >
|
<#if refIDHmap_local?size != 0 >
|
||||||
,
|
,
|
||||||
@@ -25,11 +25,14 @@
|
|||||||
}
|
}
|
||||||
</#if>
|
</#if>
|
||||||
<#else>
|
<#else>
|
||||||
<#if receipt.receipt_reference?? && receipt.receipt_reference!="">
|
|
||||||
{
|
{
|
||||||
"Header": {"ProjectID": "${projectRP}"},
|
"Header": {"ProjectID": "${projectRP}"},
|
||||||
"ID": {
|
"ID": {
|
||||||
|
<#if receipt.receipt_reference?? && receipt.receipt_reference!="">
|
||||||
"RefID": "${receipt.receipt_reference?trim?json_string}",
|
"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": {
|
"RefDate": {
|
||||||
"DateTime": "${receipt_status_datetime}",
|
"DateTime": "${receipt_status_datetime}",
|
||||||
"AuthorTimeZone": "${time_zone_rfx}"
|
"AuthorTimeZone": "${time_zone_rfx}"
|
||||||
@@ -39,7 +42,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
<#break>
|
<#break>
|
||||||
</#if>
|
|
||||||
</#if>
|
</#if>
|
||||||
</#list>
|
</#list>
|
||||||
</#if>
|
</#if>
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<#-- **** input parameters ***** -->
|
<#-- **** input parameters ***** -->
|
||||||
<#-- input : Response message from Reflex -->
|
<#-- input : Response message from HARDIS WMS -->
|
||||||
<#-- project : projectId in ReflexPlatform -->
|
<#-- project : projectId in HARDIS SC NETWORK -->
|
||||||
<#-- organisation : organisationtId in ReflexPlatform -->
|
<#-- 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!"{}")>
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ those parameters are stored in FTL file Conf-connector.ftl for later use in some
|
|||||||
|
|
||||||
<#noparse><#-- Possible values for SupplyOfTheTrackingNumber parameter : --></#noparse>
|
<#noparse><#-- Possible values for SupplyOfTheTrackingNumber parameter : --></#noparse>
|
||||||
<#noparse><#-- 0 : Always empty --></#noparse>
|
<#noparse><#-- 0 : Always empty --></#noparse>
|
||||||
<#noparse><#-- 1 : Always use Reflex WMS tracking --></#noparse>
|
<#noparse><#-- 1 : Always use HARDIS WMS tracking --></#noparse>
|
||||||
<#noparse><#-- 2 : Always use the HU number --></#noparse>
|
<#noparse><#-- 2 : Always use the HU number --></#noparse>
|
||||||
<#noparse><#-- 3 : Use Reflex tracking if it exists, the HU number otherwise --></#noparse>
|
<#noparse><#-- 3 : Use Reflex tracking if it exists, the HU number otherwise --></#noparse>
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<#-- **** input parameters ***** -->
|
<#-- **** input parameters ***** -->
|
||||||
<#-- input : message RFX -->
|
<#-- input : message HARDIS WMS -->
|
||||||
<#-- project : projectId in ReflexPlatform -->
|
<#-- project : projectId in HARDIS SC NETWORK -->
|
||||||
<#-- organisation : organisationtId in ReflexPlatform -->
|
<#-- organisation : organisationtId in HARDIS SC NETWORK -->
|
||||||
<#include "HfRpConfig.ftl">
|
<#include "HfRpConfig.ftl">
|
||||||
<#include "ReflexUtils.ftl">
|
<#include "ReflexUtils.ftl">
|
||||||
|
|
||||||
@@ -17,6 +17,7 @@
|
|||||||
|
|
||||||
<#switch eventRP.event>
|
<#switch eventRP.event>
|
||||||
<#case "Created">
|
<#case "Created">
|
||||||
|
<#case "Renotified">
|
||||||
<#-- *********************************************** Action = CREATE or UPDATE ******************** -->
|
<#-- *********************************************** Action = CREATE or UPDATE ******************** -->
|
||||||
<#assign executionflow = eventRP.data />
|
<#assign executionflow = eventRP.data />
|
||||||
|
|
||||||
|
|||||||
@@ -7,8 +7,8 @@
|
|||||||
<#assign titlecode ="1">
|
<#assign titlecode ="1">
|
||||||
<#assign contacttypecode ="010">
|
<#assign contacttypecode ="010">
|
||||||
<#assign adresstypecode ="010">
|
<#assign adresstypecode ="010">
|
||||||
<#-- Si vous utilisez des acteurs non référencés, il faudra créer un destinataire "VIZ" dans Reflex WMS pour utiliser cette fonctionnalité -->
|
<#-- Si vous utilisez des acteurs non référencés, il faudra créer un destinataire "VIZ" dans HARDIS WMS pour utiliser cette fonctionnalité -->
|
||||||
<#-- If you are using unreferenced actors, you will need to create a "VIZ" consignee in Reflex WMS to use this feature -->
|
<#-- If you are using unreferenced actors, you will need to create a "VIZ" consignee in HARDIS WMS to use this feature -->
|
||||||
<#assign defaultactor ="VIZ">
|
<#assign defaultactor ="VIZ">
|
||||||
<#if executionflow.ShipTo.ActorID?? && executionflow.ShipTo.ActorID!="">
|
<#if executionflow.ShipTo.ActorID?? && executionflow.ShipTo.ActorID!="">
|
||||||
<#assign actorID = "${RPtoRFXprefixConsignee(executionflow.ShipTo.ActorID)}" >
|
<#assign actorID = "${RPtoRFXprefixConsignee(executionflow.ShipTo.ActorID)}" >
|
||||||
@@ -96,7 +96,7 @@
|
|||||||
{
|
{
|
||||||
<#include "RPtoRFX_PrepOrder_LineMetadata.ftl">
|
<#include "RPtoRFX_PrepOrder_LineMetadata.ftl">
|
||||||
"originator_reference_line_number": ${line.LineID?number},
|
"originator_reference_line_number": ${line.LineID?number},
|
||||||
"item_code": "${line.RequestedContent.Goods.ItemID!""}",
|
"item_code": "${line.RequestedContent.Goods.ItemID?json_string!""}",
|
||||||
"item_lv_code": "${line.RequestedContent.Goods.LVBranchID!""}",
|
"item_lv_code": "${line.RequestedContent.Goods.LVBranchID!""}",
|
||||||
"base_lv_quantity_to_prepare": ${line.RequestedMetrics.QuantityInBaseLV.Value!0},
|
"base_lv_quantity_to_prepare": ${line.RequestedMetrics.QuantityInBaseLV.Value!0},
|
||||||
"owner_code_to_prepare" :"${owner_code_to_prepare}",
|
"owner_code_to_prepare" :"${owner_code_to_prepare}",
|
||||||
|
|||||||
@@ -50,7 +50,7 @@
|
|||||||
{
|
{
|
||||||
<#include "RPtoRFX_Receipt_LineMetadata.ftl">
|
<#include "RPtoRFX_Receipt_LineMetadata.ftl">
|
||||||
"receipt_reference_line_no": ${line.LineID?number},
|
"receipt_reference_line_no": ${line.LineID?number},
|
||||||
"item_code": "${line.RequestedContent.Goods.ItemID!""}",
|
"item_code": "${line.RequestedContent.Goods.ItemID?json_string!""}",
|
||||||
"item_lv_code": "${line.RequestedContent.Goods.LVBranchID!""}",
|
"item_lv_code": "${line.RequestedContent.Goods.LVBranchID!""}",
|
||||||
"level_1_quantity": ${line.RequestedMetrics.QuantityInBaseLV.Value!0},
|
"level_1_quantity": ${line.RequestedMetrics.QuantityInBaseLV.Value!0},
|
||||||
"owner_code": "${owner_code}",
|
"owner_code": "${owner_code}",
|
||||||
|
|||||||
Reference in New Issue
Block a user