You've already forked reflex-wms-connector
Compare commits
6 Commits
develop
...
develop-Ap
| Author | SHA1 | Date | |
|---|---|---|---|
| 8012a30f88 | |||
| cda8b488ca | |||
| 8145d012ac | |||
| 71bb4beff0 | |||
| e1115585c6 | |||
| 2c9f49e8fc |
@@ -1,4 +0,0 @@
|
||||
<#assign ExpiryGroupList = {}/>
|
||||
<#assign ExpiryGroupList64 = ""/>
|
||||
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
|
||||
<#-- --------------------------------------------------------------------------------------- -->
|
||||
<#-- DeleteEF est un paramètre qui permet de déterminer si l’exécution logistique doit être supprimée lors de la création d’une commande.-->
|
||||
<#-- Attention : si vous choisissez de la supprimer, toutes les métadonnées associées à cette exécution logistique seront également supprimées. -->
|
||||
<#-- Si DeleteEF_Creation = true, nous supprimons l'exécution logistique, Si DeleteEF_Creation = false, nous ne supprimons pas l'exécution logistique.-->
|
||||
<#-- --------------------------------------------------------------------------------------- -->
|
||||
<#-- DeleteEF is a parameter used to determine whether the logistics execution should be deleted when creating an order.-->
|
||||
<#-- Warning: if deletion is selected, all metadata related to the logistics execution will also be removed. -->
|
||||
<#-- If DeleteEF_Creation = true, we delete the logistics execution. If DeleteEF_Creation = false, we do not delete the logistics execution. -->
|
||||
<#-- --------------------------------------------------------------------------------------- -->
|
||||
<#assign DeleteEF_Creation = true>
|
||||
@@ -1 +0,0 @@
|
||||
<#assign trackingNumberSource = 3>
|
||||
@@ -1,11 +0,0 @@
|
||||
[
|
||||
{
|
||||
"Header": {
|
||||
"ProjectID": "${projectRP}"
|
||||
},
|
||||
"ID": {
|
||||
"RefID": "${id.refid?json_string}"
|
||||
},
|
||||
"Payload": {}
|
||||
}
|
||||
]
|
||||
@@ -1,60 +0,0 @@
|
||||
<#-- **** input parameters ***** -->
|
||||
<#-- input : message HARDIS WMS for stock snapshotted -->
|
||||
<#-- project : projectId in HARDIS SC NETWORK -->
|
||||
<#-- organisation : organisationtId in HARDIS SC NETWORK -->
|
||||
<#-- sum_elt : nb element in snapshot (optional parameter) -->
|
||||
|
||||
<#include "HfRpConfig.ftl">
|
||||
|
||||
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
|
||||
<#assign projectRP = project>
|
||||
<#assign organisationRP = organisation>
|
||||
|
||||
<#switch cloudEventMsg.action>
|
||||
<#case "C">
|
||||
<#case "U">
|
||||
<#-- *********************************************** Action = CREATE or UPDATE ******************** -->
|
||||
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
|
||||
<#assign reflexStockPicturesInterface = JsonUtil.jsonToMap(dataRfx)>
|
||||
|
||||
<#-- idSnapshot MUST BE UNIQUE regardless of the number of messages in the stock image -->
|
||||
<#if cloudEventMsg.messageSet??>
|
||||
<#assign idSnapshot = cloudEventMsg.messageSet />
|
||||
<#else>
|
||||
<#assign idSnapshot = cloudEventMsg.id />
|
||||
</#if>
|
||||
|
||||
<#list reflexStockPicturesInterface.detailled_stock_list as stock>
|
||||
<#if stock.stock_type_code != "200">
|
||||
<#stop>
|
||||
<#break>
|
||||
</#if>
|
||||
</#list>
|
||||
[
|
||||
{
|
||||
<#if sum_elt??>
|
||||
<#assign apiReflexPlatformID = ApiReflexPlatformID.ActorSnapshotCompleted>
|
||||
"apiReflexPlatformID" : "${apiReflexPlatformID}",
|
||||
"datas" :
|
||||
<#include "RFXtoRP_HfDtlStockLs_ActorSnapshotCompleted.ftl">
|
||||
<#else>
|
||||
<#assign apiReflexPlatformID = ApiReflexPlatformID.StockSnapshotted>
|
||||
"apiReflexPlatformID" : "${apiReflexPlatformID}",
|
||||
"datas" :
|
||||
<#include "RFXtoRP_HfDtlStockLs_StockSnapshotted.ftl">
|
||||
</#if>
|
||||
}
|
||||
]
|
||||
|
||||
<#break>
|
||||
|
||||
<#case "D">
|
||||
<#-- *********************************************** Action = DELETE ******************** -->
|
||||
<#stop >
|
||||
<#break>
|
||||
|
||||
|
||||
<#default>
|
||||
<#stop >
|
||||
</#switch>
|
||||
|
||||
@@ -1,29 +0,0 @@
|
||||
<#include "ReflexUtils.ftl">
|
||||
<#include "HfRpConfig.ftl">
|
||||
<#include "ActorPrefix.ftl">
|
||||
[
|
||||
<#list reflexStockPicturesInterface.detailled_stock_list as stock>
|
||||
{
|
||||
"Header": {
|
||||
"ProjectID": "${projectRP}"
|
||||
},
|
||||
"ID": {
|
||||
"RefID": "${RFXtoRPprefixDepot(stock.physical_depot_code)}"
|
||||
},
|
||||
"Payload": {
|
||||
<#assign generation_date = RfxDateTimetoUTCWithTimezone(stock.generation_date,time_zone_rfx) />
|
||||
"Snapshot": {
|
||||
"EndDateTime": {
|
||||
"DateTime": "${generation_date}",
|
||||
"AuthorTimeZone": "${time_zone_rfx}"
|
||||
},
|
||||
"ID": "${stock.physical_depot_code}-${idSnapshot}",
|
||||
"MessageNb": ${sum_elt}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
<#break>
|
||||
</#list>
|
||||
]
|
||||
|
||||
@@ -1,44 +0,0 @@
|
||||
<#include "ReflexUtils.ftl">
|
||||
<#include "HfRpConfig.ftl">
|
||||
<#include "ActorPrefix.ftl">
|
||||
[
|
||||
<#list reflexStockPicturesInterface.detailled_stock_list as stock>
|
||||
{
|
||||
"Header": {
|
||||
"ProjectID": "${projectRP}"
|
||||
},
|
||||
"Payload": {
|
||||
"ActorID": "${RFXtoRPprefixDepot(stock.physical_depot_code)}",
|
||||
<#assign generation_date = RfxDateTimetoUTCWithTimezone(stock.generation_date,time_zone_rfx) />
|
||||
"Snapshot": {
|
||||
"DateTime": {
|
||||
"DateTime": "${generation_date}",
|
||||
"AuthorTimeZone": "${time_zone_rfx}"
|
||||
},
|
||||
"ID": "${stock.physical_depot_code}-${idSnapshot}",
|
||||
"Quantity":
|
||||
{
|
||||
"Value" : "${stock.quantity_in_base_lvs!"0"}",
|
||||
"LVID": "${quantity_in_base_lv_RP_Cst}"
|
||||
}
|
||||
},
|
||||
|
||||
"Goods": {
|
||||
"ItemID": "${stock.item_code?trim?json_string}",
|
||||
"LVBranchID": "${stock.item_logistical_variant_code}",
|
||||
<#assign priority_date = stock.priority_date?datetime(rfx_date_format_default)?iso_utc />
|
||||
<#if (stock.priority_date!="") && (stock.priority_date?starts_with("00")== false) >
|
||||
"PriorityDate" : "${priority_date}",
|
||||
<#else>
|
||||
"PriorityDate": "1970-01-01T00:00:00Z",
|
||||
</#if>
|
||||
|
||||
<#-- Segmentation keys inclusion -->
|
||||
<#include "RFXtoRP_HfDtlStockLs_StockSnapshotted_SegmentationKeys.ftl">
|
||||
}
|
||||
|
||||
}
|
||||
}<#sep>,</#sep>
|
||||
</#list>
|
||||
]
|
||||
|
||||
@@ -1,48 +0,0 @@
|
||||
<#-- use protobuf of class HfDtlStockLs to find HARDIS WMS fields names -->
|
||||
|
||||
<#--
|
||||
Best practices:
|
||||
If the SK is of type:
|
||||
- string: add ?json_string (e.g. "${stock.batch_1?json_string}")
|
||||
- boolean: possible values: true and false
|
||||
- datetime: expected format: 2025-10-30T10:12:10.000Z
|
||||
- decimal number: the separator is a point (e.g. 10.5)
|
||||
|
||||
"SegmentationKeys": [
|
||||
{
|
||||
"Key": "Grade",
|
||||
"Value": { "String" : "${stock.grade_code}"}
|
||||
},
|
||||
{
|
||||
"Key": "Owner",
|
||||
"Value": { "String" : "${stock.owner_code}"}
|
||||
},
|
||||
{
|
||||
"Key": "BatchNumber",
|
||||
<#if stock.batch_1 == "">
|
||||
"Value": { "String" : "no batch"}
|
||||
<#else>
|
||||
"Value": { "String" : "${stock.batch_1?json_string}"}
|
||||
</#if>
|
||||
},
|
||||
{
|
||||
"Key": "HeldForSpecificCode",
|
||||
"Value": { "Bool" : "${stock.held_for_specific_code}"}
|
||||
},
|
||||
|
||||
{
|
||||
<#assign manufacturing_datetime = RfxDateTimetoUTCWithTimezone(stock.Date_of_manufacture,time_zone_rfx) />
|
||||
"Key": "ManufacturingDate",
|
||||
"Value": "Timestamp": {
|
||||
"AuthorTimeZone": "${time_zone_rfx}",
|
||||
"DateTime": "${manufacturing_datetime}"
|
||||
}
|
||||
}
|
||||
]
|
||||
-->
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
"SegmentationKeys": [ ]
|
||||
@@ -1,29 +0,0 @@
|
||||
<#-- input : message HARDIS WMS for expiry group -->
|
||||
<#-- *********************************************** Parameter global ******************** -->
|
||||
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
|
||||
<#assign projectRP = project>
|
||||
<#assign organisationRP = organisation>
|
||||
<#include "HfExpGrpList.ftl">
|
||||
<#assign aDateTime = .now>
|
||||
<#assign Date_Tye_Code_KV = {"010":"PRODUCTION_DATE","020":"PRODUCTION_DATE","030":"BEST_BEFORE_DATE","040":"SELL_BY_DATE","050":"USE_BY_DATE"} >
|
||||
|
||||
|
||||
<#switch cloudEventMsg.action>
|
||||
<#case "C">
|
||||
<#case "U">
|
||||
<#case "D">
|
||||
<#-- *********************************************** Action = CREATE or UPDATE or DELETE ******************** -->
|
||||
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
|
||||
<#assign file = JsonUtil.jsonToMap(dataRfx)>
|
||||
|
||||
<#assign temp = ExpiryGroupList64>
|
||||
<#list file.expiry_group_list as expiry_group>
|
||||
<#assign temp = JsonUtil.update(temp,cloudEventMsg.action,expiry_group.exipiry_group_code,Date_Tye_Code_KV[expiry_group.priority_date_type_code])>
|
||||
</#list>
|
||||
<#assign output = JsonUtil.print(temp)>
|
||||
${output}
|
||||
<#break>
|
||||
|
||||
<#default>
|
||||
<#stop >
|
||||
</#switch>
|
||||
@@ -1,20 +0,0 @@
|
||||
<#-- input : message HARDIS WMS for grades -->
|
||||
<#-- *********************************************** Parameter global ******************** -->
|
||||
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
|
||||
<#assign projectRP = project>
|
||||
<#assign organisationRP = organisation>
|
||||
|
||||
<#assign aDateTime = .now>
|
||||
|
||||
<#switch cloudEventMsg.action>
|
||||
<#case "C">
|
||||
<#case "U">
|
||||
<#case "D">
|
||||
<#stop >
|
||||
<#break>
|
||||
|
||||
|
||||
<#default>
|
||||
<#stop >
|
||||
</#switch>
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
<#-- input : message HARDIS WMS for logistics variants types -->
|
||||
<#-- *********************************************** Parameter global ******************** -->
|
||||
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
|
||||
<#assign projectRP = project>
|
||||
<#assign organisationRP = organisation>
|
||||
|
||||
<#assign aDateTime = .now>
|
||||
|
||||
<#switch cloudEventMsg.action>
|
||||
<#case "C">
|
||||
<#case "U">
|
||||
<#case "D">
|
||||
|
||||
<#stop >
|
||||
|
||||
<#break>
|
||||
|
||||
|
||||
<#default>
|
||||
<#stop >
|
||||
</#switch>
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
<#-- input : message HARDIS WMS for owners -->
|
||||
<#-- *********************************************** Parameter global ******************** -->
|
||||
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
|
||||
<#assign projectRP = project>
|
||||
<#assign organisationRP = organisation>
|
||||
|
||||
<#assign aDateTime = .now>
|
||||
|
||||
<#switch cloudEventMsg.action>
|
||||
<#case "C">
|
||||
<#case "U">
|
||||
<#case "D">
|
||||
<#stop >
|
||||
<#break>
|
||||
|
||||
|
||||
<#default>
|
||||
<#stop >
|
||||
</#switch>
|
||||
|
||||
@@ -1,54 +0,0 @@
|
||||
<#-- **** input parameters ***** -->
|
||||
<#-- input : message HARDIS WMS -->
|
||||
<#-- project : projectId in HARDIS SC NETWORK -->
|
||||
<#-- organisation : organisationtId in HARDIS SC NETWORK -->
|
||||
|
||||
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
|
||||
<#assign projectRP = project>
|
||||
<#assign organisationRP = organisation>
|
||||
|
||||
<#assign aDateTime = .now>
|
||||
|
||||
<#switch cloudEventMsg.action>
|
||||
<#case "C">
|
||||
<#-- *********************************************** Action = CREATE ******************** -->
|
||||
|
||||
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
|
||||
<#assign AncReceipt = JsonUtil.jsonToMap(dataRfx)>
|
||||
[
|
||||
<#if AncReceipt.line_list?? && AncReceipt.line_list[0]??>
|
||||
{
|
||||
<#assign apiReflexPlatformID = ApiReflexPlatformID.OrderLinesAdded>
|
||||
"apiReflexPlatformID" : "${apiReflexPlatformID}",
|
||||
"datas" :
|
||||
<#include "RFXtoRP_HliAntRecLr_OrderLinesAdded.ftl">
|
||||
},
|
||||
{
|
||||
<#assign apiReflexPlatformID = ApiReflexPlatformID.OrderReceiptExpected>
|
||||
"apiReflexPlatformID" : "${apiReflexPlatformID}",
|
||||
"datas" :
|
||||
<#include "RFXtoRP_HsrAntRec_ReceiptExpected.ftl">
|
||||
}
|
||||
]
|
||||
<#else>
|
||||
<#stop>
|
||||
</#if>
|
||||
<#break>
|
||||
|
||||
<#case "U">
|
||||
<#-- *********************************************** Action = UPDATE ******************** -->
|
||||
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
|
||||
<#assign AncReceipt = JsonUtil.jsonToMap(dataRfx)>
|
||||
<#stop>
|
||||
<#break>
|
||||
<#case "D">
|
||||
<#-- *********************************************** Action = DELETE ******************** -->
|
||||
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
|
||||
<#assign AncReceipt = JsonUtil.jsonToMap(dataRfx)>
|
||||
<#stop>
|
||||
<#break>
|
||||
|
||||
<#default>
|
||||
<#stop >
|
||||
</#switch>
|
||||
|
||||
@@ -1,47 +0,0 @@
|
||||
<#include "ReflexUtils.ftl">
|
||||
<#include "HfRpConfig.ftl">
|
||||
<#include "ActorPrefix.ftl">
|
||||
|
||||
[
|
||||
{
|
||||
"Header": {
|
||||
"ProjectID": "${projectRP}"
|
||||
},
|
||||
"ID": {
|
||||
<#if AncReceipt.anticipated_receipt_reference?? && AncReceipt.anticipated_receipt_reference!="">
|
||||
"RefID": "${AncReceipt.anticipated_receipt_reference?json_string}"
|
||||
<#else>
|
||||
"RefID": "AR-${AncReceipt.physical_depot_code?trim?json_string}${AncReceipt.activity_code?trim?json_string}${AncReceipt.originator_code?trim?json_string}${AncReceipt.anticipated_receipt_year?json_string}${AncReceipt.anticipated_receipt_number?json_string}"
|
||||
</#if>
|
||||
},
|
||||
"Payload": {
|
||||
"Lines": [
|
||||
<#-- Lines iteration -->
|
||||
<#list AncReceipt.line_list?filter(l -> l??) as line>
|
||||
{
|
||||
<#if line.anticipated_receipt_reference_line_no?? && line.anticipated_receipt_reference_line_no!=0>
|
||||
"LineID": "${line.anticipated_receipt_reference_line_no}",
|
||||
<#else>
|
||||
"LineID": "${line.anticipated_receipt_line_number}",
|
||||
</#if>
|
||||
<#-- Line Metadata inclusion -->
|
||||
<#include "RFXtoRP_HsrAntRec_Created_LineMetadata.ftl">,
|
||||
"RequestedContent":{
|
||||
"Goods":{
|
||||
"ItemID":"${line.item_code?trim?json_string!"0"}",
|
||||
"LVBranchID":"${line.item_lv_code?trim?json_string!"0"}",
|
||||
<#-- Segmentation Keys inclusion -->
|
||||
<#include "RFXtoRP_HsrAntRec_Created_SegmentationKeys.ftl">
|
||||
},
|
||||
"Quantity" :
|
||||
{
|
||||
"LVID": "${quantity_in_base_lv_RP_Cst}",
|
||||
"Value": ${line.planned_quantity_in_base_lv!0}
|
||||
}
|
||||
}
|
||||
}<#sep>,</#sep>
|
||||
</#list>
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
@@ -1,103 +0,0 @@
|
||||
<#-- **** input parameters ***** -->
|
||||
<#-- input : message HARDIS WMS for lines of preparation order shipped-->
|
||||
<#-- project : projectId in HARDIS SC NETWORK -->
|
||||
<#-- organisation : organisationtId in HARDIS SC NETWORK -->
|
||||
<#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 preparationOrder = JsonUtil.jsonToMap(dataRfx)>
|
||||
|
||||
<#if preparationOrder.total_lv_validated?? && preparationOrder.total_lv_validated !=0>
|
||||
<#if preparationOrder.preparation_type_code=="010" || preparationOrder.preparation_type_code=="030">
|
||||
<#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?? ) 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>
|
||||
<#-- Preparation Type not supported-->
|
||||
<#stop>
|
||||
</#if>
|
||||
<#else>
|
||||
<#-- no confirmed quantity for the preparation - preparation closed-->
|
||||
<#stop>
|
||||
</#if>
|
||||
|
||||
|
||||
<#break>
|
||||
<#case "D">
|
||||
<#-- *********************************************** Action = DELETE ******************** -->
|
||||
<#stop>
|
||||
<#break>
|
||||
|
||||
<#default>
|
||||
<#stop>
|
||||
</#switch>
|
||||
@@ -1,163 +0,0 @@
|
||||
<#-- **** input parameters ***** -->
|
||||
<#-- input : message HARDIS WMS -->
|
||||
<#-- project : projectId in HARDIS SC NETWORK -->
|
||||
<#-- organisation : organisationtId in HARDIS SC NETWORK -->
|
||||
|
||||
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
|
||||
<#assign projectRP = project>
|
||||
<#assign organisationRP = organisation>
|
||||
|
||||
<#assign aDateTime = .now>
|
||||
|
||||
<#switch cloudEventMsg.action>
|
||||
<#case "C">
|
||||
<#-- *********************************************** Action = CREATE ******************** -->
|
||||
|
||||
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
|
||||
<#assign receipt = JsonUtil.jsonToMap(dataRfx)>
|
||||
<#if receipt.receipt_type?? && receipt.receipt_type = "030" && receipt.line_list??> <#-- if reception is a transfer type -->
|
||||
[
|
||||
{
|
||||
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowLinesAdded>
|
||||
"apiReflexPlatformID" : "${apiReflexPlatformID}",
|
||||
"datas" :
|
||||
<#include "RFXtoRP_HliReceiptLr_TransfertExecutionflowLinesAdded.ftl">
|
||||
},
|
||||
{
|
||||
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowReceiptExpected>
|
||||
"apiReflexPlatformID" : "${apiReflexPlatformID}",
|
||||
"datas" :
|
||||
<#include "RFXtoRP_HsrReceiptList_TransfertReceiptExpected.ftl">
|
||||
|
||||
}
|
||||
]
|
||||
<#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>
|
||||
<#stop>
|
||||
</#if>
|
||||
</#if>
|
||||
<#break>
|
||||
<#case "U">
|
||||
<#-- *********************************************** Action = UPDATE ******************** -->
|
||||
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
|
||||
<#assign receipt = JsonUtil.jsonToMap(dataRfx)>
|
||||
[
|
||||
<#if receipt.receipt_type?? && receipt.receipt_type == "030" && 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_TransfertExecutionflowCancelled.ftl">
|
||||
}
|
||||
<#else>
|
||||
<#if receipt.receipt_type?? && receipt.receipt_type == "030" && receipt.receipt_confirmed == "true">
|
||||
{
|
||||
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowReceiptCompleted>
|
||||
"apiReflexPlatformID" : "${apiReflexPlatformID}",
|
||||
"datas" :
|
||||
<#include "RFXtoRP_HsrReceiptList_TransfertExecutionflowReceiptCompleted.ftl">
|
||||
}
|
||||
<#else>
|
||||
<#if receipt.receipt_confirmed?? && receipt.receipt_confirmed == "true" && receipt.confirmation_total_level_1==0 && receipt.confirmation_total_level_2==0 && receipt.confirmation_total_level_3==0>
|
||||
{
|
||||
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowCancelled>
|
||||
"apiReflexPlatformID" : "${apiReflexPlatformID}",
|
||||
"datas" :
|
||||
<#include "RFXtoRP_HsrReceiptList_ExecutionflowCancelled.ftl">
|
||||
}
|
||||
<#else>
|
||||
<#if receipt.receipt_confirmed ?? && receipt.receipt_confirmed == "true" >
|
||||
{
|
||||
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowReceiptCompleted>
|
||||
"apiReflexPlatformID" : "${apiReflexPlatformID}",
|
||||
"datas" :
|
||||
<#include "RFXtoRP_HsrReceiptList_ExecutionflowReceiptCompleted.ftl">
|
||||
}
|
||||
<#else>
|
||||
<#if receipt.receipt_type?? && receipt.receipt_type == "030" && receipt.receipt_confirmed == "false" && receipt.line_list??>
|
||||
<#if receipt.receipt_reference?? && receipt.receipt_reference!="">
|
||||
[
|
||||
{
|
||||
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowLinesAdded>
|
||||
"apiReflexPlatformID" : "${apiReflexPlatformID}",
|
||||
"datas" :
|
||||
<#include "RFXtoRP_HliReceiptLr_TransfertExecutionflowLinesAdded.ftl">
|
||||
|
||||
},
|
||||
{
|
||||
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowReceiptExpected>
|
||||
"apiReflexPlatformID" : "${apiReflexPlatformID}",
|
||||
"datas" :
|
||||
<#include "RFXtoRP_HsrReceiptList_TransfertReceiptExpected.ftl">
|
||||
|
||||
}
|
||||
]
|
||||
<#else>
|
||||
<#stop> <#-- Receipt reference for transfer is empty-->
|
||||
</#if>
|
||||
<#else>
|
||||
<#if receipt.line_list ??>
|
||||
{
|
||||
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowLinesAdded>
|
||||
"apiReflexPlatformID" : "${apiReflexPlatformID}",
|
||||
"datas" :
|
||||
<#include "RFXtoRP_HliReceiptLr_TransfertExecutionflowLinesAdded.ftl">
|
||||
},
|
||||
{
|
||||
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowReceiptExpected>
|
||||
"apiReflexPlatformID" : "${apiReflexPlatformID}",
|
||||
"datas" :
|
||||
<#include "RFXtoRP_HsrReceiptList_ReceiptExpected.ftl">
|
||||
}
|
||||
<#else>
|
||||
<#stop>
|
||||
</#if>
|
||||
</#if>
|
||||
</#if>
|
||||
</#if>
|
||||
</#if>
|
||||
</#if>
|
||||
]
|
||||
<#break>
|
||||
|
||||
<#case "D">
|
||||
<#-- *********************************************** Action = DELETE ******************** -->
|
||||
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
|
||||
<#assign receipt = JsonUtil.jsonToMap(dataRfx)>
|
||||
<#if receipt.line_list ??>
|
||||
[
|
||||
{
|
||||
|
||||
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowCancelled>
|
||||
"apiReflexPlatformID" : "${apiReflexPlatformID}",
|
||||
"datas" :
|
||||
<#include "RFXtoRP_HsrReceiptList_ExecutionflowCancelled.ftl">
|
||||
}
|
||||
]
|
||||
<#else>
|
||||
<#stop> <#-- No line-->
|
||||
</#if>
|
||||
<#break>
|
||||
|
||||
|
||||
<#default>
|
||||
<#stop >
|
||||
</#switch>
|
||||
|
||||
@@ -1,60 +0,0 @@
|
||||
<#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": {
|
||||
"RefID": "R${receipt.physical_depot_code?trim?json_string}${receipt.activity_code?trim?json_string}${receipt.originator_code?trim?json_string}${receipt.receipt_year}${receipt.receipt_number}",
|
||||
"RefDate": {
|
||||
"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,193 +0,0 @@
|
||||
<#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) />
|
||||
<#assign refIDHmap_local ={}>
|
||||
[
|
||||
<#if receipt.receipt_reference?? && receipt.receipt_reference!="">
|
||||
{
|
||||
"Header": {"ProjectID": "${projectRP}"},
|
||||
"ID": {
|
||||
<#if receipt.origin_order_line_depot?? && receipt.origin_order_line_depot!="">
|
||||
"RefID": "${receipt.origin_order_line_depot?trim?json_string}${receipt.activity_code?trim?json_string}${receipt.originator_code?trim?json_string}${receipt.receipt_reference?trim?json_string}",
|
||||
<#else>
|
||||
"RefID": "R${receipt.physical_depot_code?trim?json_string}${receipt.activity_code?trim?json_string}${receipt.originator_code?trim?json_string}${receipt.receipt_year}${receipt.receipt_number}",
|
||||
</#if>
|
||||
"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>
|
||||
}
|
||||
}
|
||||
<#else>
|
||||
<#if receipt.line_list??>
|
||||
<#list receipt.line_list as receipt_line >
|
||||
<#if 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}"},
|
||||
"ID": {
|
||||
<#if receipt.origin_order_line_depot?? && receipt.origin_order_line_depot!="">
|
||||
"RefID": "${receipt.origin_order_line_depot?trim?json_string}${receipt.activity_code?trim?json_string}${receipt.originator_code?trim?json_string}${receipt_line.origin_order_line_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_line.origin_order_line_reference?trim?json_string}",
|
||||
</#if>
|
||||
"RefDate": {
|
||||
"DateTime": "${receipt_creation_datetime}",
|
||||
"AuthorTimeZone": "${time_zone_rfx}"
|
||||
}
|
||||
},
|
||||
"Payload": {
|
||||
"CreationDateTime": {
|
||||
"DateTime": "${receipt_creation_datetime}",
|
||||
"AuthorTimeZone": "${time_zone_rfx}"
|
||||
},
|
||||
"OrderID":"${receipt_line.origin_order_line_reference?trim?json_string}",
|
||||
<#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>
|
||||
}
|
||||
}
|
||||
</#if>
|
||||
<#else>
|
||||
{
|
||||
"Header": {"ProjectID": "${projectRP}"},
|
||||
"ID": {
|
||||
"RefID": "R${receipt.physical_depot_code?trim?json_string}${receipt.activity_code?trim?json_string}${receipt.originator_code?trim?json_string}${receipt.receipt_year?trim?json_string}${receipt.receipt_number?trim?json_string}",
|
||||
"RefDate": {
|
||||
"DateTime": "${receipt_creation_datetime}",
|
||||
"AuthorTimeZone": "${time_zone_rfx}"
|
||||
}
|
||||
},
|
||||
"Payload": {
|
||||
"CreationDateTime": {
|
||||
"DateTime": "${receipt_creation_datetime}",
|
||||
"AuthorTimeZone": "${time_zone_rfx}"
|
||||
},
|
||||
"OrderID":"${receipt.physical_depot_code?trim?json_string}${receipt.activity_code?trim?json_string}${receipt.originator_code?trim?json_string}${receipt.receipt_year?trim?json_string}${receipt.receipt_number?trim?json_string}",
|
||||
<#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>
|
||||
}
|
||||
}
|
||||
<#break>
|
||||
</#if>
|
||||
</#list>
|
||||
</#if>
|
||||
</#if>
|
||||
]
|
||||
@@ -1,65 +0,0 @@
|
||||
<#-- **** input parameters ***** -->
|
||||
<#-- input : message HARDIS WMS -->
|
||||
<#-- project : projectId in HARDIS SC NETWORK -->
|
||||
<#-- organisation : organisationtId in HARDIS SC NETWORK -->
|
||||
|
||||
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
|
||||
<#assign projectRP = project>
|
||||
<#assign organisationRP = organisation>
|
||||
|
||||
<#assign aDateTime = .now>
|
||||
|
||||
<#switch cloudEventMsg.action>
|
||||
<#case "C">
|
||||
<#case "U">
|
||||
<#-- *********************************************** Action = CREATE or UPDATE ******************** -->
|
||||
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
|
||||
<#assign preparation_order = JsonUtil.jsonToMap(dataRfx)>
|
||||
[
|
||||
<#-- check preparation type code (internal order and reservation are ignored) -->
|
||||
<#if 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>
|
||||
]
|
||||
<#break>
|
||||
|
||||
<#case "D">
|
||||
<#-- *********************************************** Action = DELETE ******************** -->
|
||||
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
|
||||
<#assign preparation_order = JsonUtil.jsonToMap(dataRfx)>
|
||||
[
|
||||
<#if preparation_order.preparation_type_code == "010" || preparation_order.preparation_type_code == "030" >
|
||||
<#if preparation_order.line_list??>
|
||||
{
|
||||
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowCancelled>
|
||||
"apiReflexPlatformID" : "${apiReflexPlatformID}",
|
||||
"datas" :
|
||||
<#include "RFXtoRP_HsrPro_ExecutionflowCancelled.ftl">
|
||||
}
|
||||
<#else>
|
||||
<#-- No line -->
|
||||
<#stop>
|
||||
</#if>
|
||||
<#else>
|
||||
<#-- Preparation order type not supported -->
|
||||
<#stop>
|
||||
</#if>
|
||||
]
|
||||
<#break>
|
||||
<#default>
|
||||
<#stop >
|
||||
</#switch>
|
||||
|
||||
@@ -1,59 +0,0 @@
|
||||
<#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": {
|
||||
<#if preparation_order.originator_reference?? && preparation_order.originator_reference!="">
|
||||
"RefID": "${preparation_order.physical_depot_code?trim?json_string}${preparation_order.activity_code?trim?json_string}${preparation_order.originator_code?trim?json_string}${preparation_order.originator_reference?trim?json_string}",
|
||||
<#else>
|
||||
"RefID": "O${preparation_order.physical_depot_code?trim?json_string}${preparation_order.activity_code?trim?json_string}${preparation_order.originator_code?trim?json_string}${preparation_order.preparation_order_year}${preparation_order.preparation_order_number}",
|
||||
</#if>
|
||||
"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>
|
||||
}
|
||||
}
|
||||
]
|
||||
@@ -1,32 +0,0 @@
|
||||
<#-- **** input parameters ***** -->
|
||||
<#-- input : message HARDIS WMS -->
|
||||
<#-- project : projectId in HARDIS SC NETWORK -->
|
||||
<#-- organisation : organisationtId in HARDIS SC NETWORK -->
|
||||
|
||||
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
|
||||
<#assign projectRP = project>
|
||||
<#assign organisationRP = organisation>
|
||||
|
||||
<#assign aDateTime = .now>
|
||||
|
||||
<#switch cloudEventMsg.action>
|
||||
<#case "C">
|
||||
<#case "U">
|
||||
<#-- *********************************************** Action = CREATE or UPDATE ******************** -->
|
||||
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
|
||||
<#assign desPatch = JsonUtil.jsonToMap(dataRfx)>
|
||||
|
||||
<#stop >
|
||||
<#break>
|
||||
|
||||
<#case "D">
|
||||
<#-- *********************************************** Action = DELETE ******************** -->
|
||||
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
|
||||
<#assign desPatch = JsonUtil.jsonToMap(dataRfx)>
|
||||
|
||||
<#stop >
|
||||
<#break>
|
||||
<#default>
|
||||
<#stop >
|
||||
</#switch>
|
||||
|
||||
@@ -1,32 +0,0 @@
|
||||
<#-- **** input parameters ***** -->
|
||||
<#-- input : message HARDIS WMS -->
|
||||
<#-- project : projectId in HARDIS SC NETWORK -->
|
||||
<#-- organisation : organisationtId in HARDIS SC NETWORK -->
|
||||
|
||||
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
|
||||
<#assign projectRP = project>
|
||||
<#assign organisationRP = organisation>
|
||||
|
||||
<#assign aDateTime = .now>
|
||||
|
||||
<#switch cloudEventMsg.action>
|
||||
<#case "C">
|
||||
<#case "U">
|
||||
<#-- *********************************************** Action = CREATE or UPDATE ******************** -->
|
||||
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
|
||||
<#assign despNt = JsonUtil.jsonToMap(dataRfx)>
|
||||
|
||||
<#stop >
|
||||
<#break>
|
||||
|
||||
<#case "D">
|
||||
<#-- *********************************************** Action = DELETE ******************** -->
|
||||
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
|
||||
<#assign despNt = JsonUtil.jsonToMap(dataRfx)>
|
||||
|
||||
<#stop >
|
||||
<#break>
|
||||
<#default>
|
||||
<#stop >
|
||||
</#switch>
|
||||
|
||||
@@ -1,82 +0,0 @@
|
||||
<#-- **** input parameters ***** -->
|
||||
<#-- input : message HARDIS WMS for moves-->
|
||||
<#-- project : projectId in HARDIS SC NETWORK -->
|
||||
<#-- organisation : organisationtId in HARDIS SC NETWORK -->
|
||||
|
||||
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
|
||||
<#assign projectRP = project>
|
||||
<#assign organisationRP = organisation>
|
||||
|
||||
<#assign aDateTime = .now>
|
||||
|
||||
<#switch cloudEventMsg.action>
|
||||
<#case "C">
|
||||
<#case "U">
|
||||
<#-- *********************************************** Action = CREATE or UPDATE ******************** -->
|
||||
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
|
||||
<#assign reflexMvtStockInterface = JsonUtil.jsonToMap(dataRfx)>
|
||||
|
||||
<#-- exclusion of the cases of an IPG move with quantity = 0 (weight modification) -->
|
||||
|
||||
<#if reflexMvtStockInterface.ipg_move_quantity_in_base_lvs != 0>
|
||||
<#-- IPG moves translated into Stock moves -->
|
||||
<#if reflexMvtStockInterface.ipg_move_type == "130" ||
|
||||
reflexMvtStockInterface.ipg_move_type == "200" ||
|
||||
reflexMvtStockInterface.ipg_move_type == "210" ||
|
||||
reflexMvtStockInterface.ipg_move_type == "220" ||
|
||||
reflexMvtStockInterface.ipg_move_type == "230" ||
|
||||
reflexMvtStockInterface.ipg_move_type == "240" ||
|
||||
reflexMvtStockInterface.ipg_move_type == "260" ||
|
||||
reflexMvtStockInterface.ipg_move_type == "290" ||
|
||||
reflexMvtStockInterface.ipg_move_type == "300" ||
|
||||
reflexMvtStockInterface.ipg_move_type == "350" ||
|
||||
reflexMvtStockInterface.ipg_move_type == "370" ||
|
||||
reflexMvtStockInterface.ipg_move_type == "400" ||
|
||||
reflexMvtStockInterface.ipg_move_type == "410" ||
|
||||
reflexMvtStockInterface.ipg_move_type == "420" ||
|
||||
reflexMvtStockInterface.ipg_move_type == "455" ||
|
||||
reflexMvtStockInterface.ipg_move_type == "460" ||
|
||||
reflexMvtStockInterface.ipg_move_type == "465" ||
|
||||
(reflexMvtStockInterface.ipg_move_type == "520" && reflexMvtStockInterface.ipg_move_creation_program == "HFST69")
|
||||
>
|
||||
[
|
||||
{
|
||||
<#assign apiReflexPlatformID = ApiReflexPlatformID.MovementCreated>
|
||||
"apiReflexPlatformID" : "${apiReflexPlatformID}",
|
||||
"datas" :
|
||||
<#include "RFXtoRP_HsaIpgMove_StockMoved.ftl">
|
||||
}
|
||||
]
|
||||
<#else>
|
||||
<#-- IPG moves translated into goods received (all type of receipt) -->
|
||||
<#if (reflexMvtStockInterface.ipg_move_type == "100" ||
|
||||
reflexMvtStockInterface.ipg_move_type == "110" ||
|
||||
reflexMvtStockInterface.ipg_move_type == "120") >
|
||||
[
|
||||
{
|
||||
<#assign apiReflexPlatformID = ApiReflexPlatformID.HandlingunitGoodsReceived>
|
||||
"apiReflexPlatformID" : "${apiReflexPlatformID}",
|
||||
"datas" :
|
||||
<#include "RFXtoRP_HsaIpgMove_GoodsReceived.ftl">
|
||||
}
|
||||
]
|
||||
<#else>
|
||||
<#stop>
|
||||
</#if>
|
||||
</#if>
|
||||
<#else>
|
||||
<#-- cases of an IPG move with quantity = 0 (weight modification)-->
|
||||
<#stop>
|
||||
</#if>
|
||||
<#break>
|
||||
|
||||
<#case "D">
|
||||
<#-- *********************************************** Action = DELETE ******************** -->
|
||||
<#stop >
|
||||
<#break>
|
||||
|
||||
|
||||
<#default>
|
||||
<#stop>
|
||||
</#switch>
|
||||
|
||||
@@ -1,114 +0,0 @@
|
||||
<#include "HfRpConfig.ftl">
|
||||
<#include "ReflexUtils.ftl">
|
||||
<#include "ActorPrefix.ftl">
|
||||
[
|
||||
<#assign receipt_confirmation_datetime = RfxDateTimetoUTCWithTimezone(reflexMvtStockInterface.ipg_move_creation_datetime,time_zone_rfx) />
|
||||
<#assign priority_date = reflexMvtStockInterface.ipg_priority_date?datetime(rfx_date_format_default)?iso_utc />
|
||||
{
|
||||
"Header": {
|
||||
"ProjectID": "${projectRP}"
|
||||
},
|
||||
"ID": {
|
||||
<#-- Test if the Hu reference exists -->
|
||||
<#assign HuReference="${reflexMvtStockInterface.hd_number?trim?json_string}"/>
|
||||
<#if reflexMvtStockInterface.ipg_move_type?? && reflexMvtStockInterface.ipg_move_type=="120"> <#-- Transfer -->
|
||||
<#if reflexMvtStockInterface.origin_order_line_reference?? && reflexMvtStockInterface.origin_order_line_reference!="">
|
||||
<#assign HuEFID= "${reflexMvtStockInterface.original_receipt_physical_depot_code}${reflexMvtStockInterface.activity_code}${reflexMvtStockInterface.originator_code}${reflexMvtStockInterface.origin_order_line_reference?trim?json_string}"/>
|
||||
<#else>
|
||||
<#if reflexMvtStockInterface.receipt_reference?? && reflexMvtStockInterface.receipt_reference!="" && !reflexMvtStockInterface.receipt_reference?starts_with(reflexMvtStockInterface.original_receipt_physical_depot_code + reflexMvtStockInterface.activity_code + reflexMvtStockInterface.receipt_year_number)>
|
||||
<#assign HuEFID= "${reflexMvtStockInterface.original_receipt_physical_depot_code}${reflexMvtStockInterface.activity_code}${reflexMvtStockInterface.originator_code}${reflexMvtStockInterface.receipt_reference?trim?json_string}"/>
|
||||
<#else>
|
||||
<#assign HuEFID= "R${reflexMvtStockInterface.physical_depot_code}${reflexMvtStockInterface.activity_code}${reflexMvtStockInterface.originator_code}${reflexMvtStockInterface.receipt_year_number}${reflexMvtStockInterface.receipt_number}"/>
|
||||
</#if>
|
||||
</#if>
|
||||
<#else>
|
||||
<#if reflexMvtStockInterface.originator_reference?? && reflexMvtStockInterface.originator_reference!="">
|
||||
<#assign HuEFID= "${reflexMvtStockInterface.physical_depot_code}${reflexMvtStockInterface.activity_code}${reflexMvtStockInterface.originator_code}${reflexMvtStockInterface.originator_reference}"/>
|
||||
<#else>
|
||||
<#assign HuEFID= "R${reflexMvtStockInterface.physical_depot_code}${reflexMvtStockInterface.activity_code}${reflexMvtStockInterface.originator_code}${reflexMvtStockInterface.receipt_year_number}${reflexMvtStockInterface.receipt_number}"/>
|
||||
</#if>
|
||||
</#if>
|
||||
<#assign payload =
|
||||
'{"Header":
|
||||
{"ProjectID": "${projectRP!""}"},
|
||||
"BlockFilters": [
|
||||
{
|
||||
"simpleFilters": [
|
||||
{
|
||||
"Attribute": "Payload.Reference",
|
||||
"Value": "${HuReference}",
|
||||
"Values": [],
|
||||
"Operator": "",
|
||||
"CombinedID": ""
|
||||
},
|
||||
{
|
||||
"Attribute": "Payload.PreparedContents<>.ExecutionflowID",
|
||||
"Value": "${HuEFID}",
|
||||
"Values": [],
|
||||
"Operator": "",
|
||||
"CombinedID": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
]}' />
|
||||
<#assign queryApiReflexPlatformID = QueryApiReflexPlatformID.HandlingunitFind>
|
||||
<#assign response = QueryApiReflexPlatformCall.call(queryApiReflexPlatformID,payload) />
|
||||
<#assign HuRP = JsonUtil.jsonToMap(response)>
|
||||
<#if HuRP?? && HuRP.Objects?? && HuRP.Objects[0]?? && HuRP.Objects[0].ID.RefID?? >
|
||||
"RefID": "${HuRP.Objects[0].ID.RefID?json_string}"
|
||||
<#else>
|
||||
"RefID": "${reflexMvtStockInterface.hd_number?trim?json_string}-${receipt_confirmation_datetime}"
|
||||
</#if>
|
||||
},
|
||||
"Payload": {
|
||||
"Reference":"${reflexMvtStockInterface.hd_number?trim?json_string}",
|
||||
"ReceivedContents" :[
|
||||
{
|
||||
"DateTime": {
|
||||
"DateTime": "${receipt_confirmation_datetime}",
|
||||
"AuthorTimeZone": "${time_zone_rfx}"
|
||||
},
|
||||
"Goods": {
|
||||
"ItemID": "${reflexMvtStockInterface.item_code?trim?json_string}",
|
||||
"LVBranchID": "${reflexMvtStockInterface.lv_code?json_string}",
|
||||
<#if (priority_date!="") && (priority_date?starts_with("00")== false) >
|
||||
"PriorityDate": "${priority_date}",
|
||||
<#else>
|
||||
"PriorityDate": "1970-01-01T00:00:00Z",
|
||||
</#if>
|
||||
<#-- Goods received Segmentation Keys inclusion -->
|
||||
<#include "RFXtoRP_HsaIpgMove_GoodsReceived_SegmentationKeys.ftl">
|
||||
},
|
||||
<#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.original_receipt_physical_depot_code}${reflexMvtStockInterface.activity_code}${reflexMvtStockInterface.originator_code}${reflexMvtStockInterface.origin_order_line_reference?trim?json_string}",
|
||||
<#else>
|
||||
<#if reflexMvtStockInterface.receipt_reference?? && reflexMvtStockInterface.receipt_reference!="" && !reflexMvtStockInterface.receipt_reference?starts_with(reflexMvtStockInterface.original_receipt_physical_depot_code + reflexMvtStockInterface.activity_code + reflexMvtStockInterface.receipt_year_number)>
|
||||
"ExecutionflowID": "${reflexMvtStockInterface.original_receipt_physical_depot_code}${reflexMvtStockInterface.activity_code}${reflexMvtStockInterface.originator_code}${reflexMvtStockInterface.receipt_reference?trim?json_string}",
|
||||
<#else>
|
||||
"ExecutionflowID": "R${reflexMvtStockInterface.physical_depot_code}${reflexMvtStockInterface.activity_code}${reflexMvtStockInterface.originator_code}${reflexMvtStockInterface.receipt_year_number}${reflexMvtStockInterface.receipt_number}",
|
||||
</#if>
|
||||
</#if>
|
||||
<#else>
|
||||
"ExecutionflowID": "R${reflexMvtStockInterface.physical_depot_code}${reflexMvtStockInterface.activity_code}${reflexMvtStockInterface.originator_code}${reflexMvtStockInterface.receipt_year_number}${reflexMvtStockInterface.receipt_number}",
|
||||
</#if>
|
||||
<#if reflexMvtStockInterface.origin_order_line_number_reference?? && reflexMvtStockInterface.origin_order_line_number_reference!=0 && reflexMvtStockInterface.ipg_move_type=="120">
|
||||
"LineID": "${reflexMvtStockInterface.origin_order_line_number_reference}",
|
||||
<#else>
|
||||
<#if reflexMvtStockInterface.line_number_reference?? && reflexMvtStockInterface.line_number_reference!=0>
|
||||
"LineID": "${reflexMvtStockInterface.line_number_reference}",
|
||||
<#else>
|
||||
"LineID": "${reflexMvtStockInterface.receipt_line_number}",
|
||||
</#if>
|
||||
</#if>
|
||||
"ActorID": "${RFXtoRPprefixDepot(reflexMvtStockInterface.physical_depot_code?trim?json_string)}",
|
||||
"Quantity": {
|
||||
"LVID": "${quantity_in_base_lv_RP_Cst}",
|
||||
"Value": ${reflexMvtStockInterface.ipg_move_quantity_in_base_lvs}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
]
|
||||
@@ -1,44 +0,0 @@
|
||||
<#-- use protobuf of class HsaIpgMove to find HARDIS WMS fields names -->
|
||||
|
||||
<#--
|
||||
<#-- Best practices:
|
||||
If the SK is of type:
|
||||
- string: add ?json_string (e.g. "${stock.batch_1?json_string}")
|
||||
- boolean: possible values: true and false
|
||||
- datetime: expected format: 2025-10-30T10:12:10.000Z
|
||||
- decimal number: the separator is a point (e.g. 10.5)
|
||||
|
||||
"SegmentationKeys": [
|
||||
{
|
||||
"Key": "Grade",
|
||||
"Value": { "String" : "${reflexMvtStockInterface.grade_code}"}
|
||||
},
|
||||
{
|
||||
"Key": "Owner",
|
||||
"Value": { "String" : "${reflexMvtStockInterface.owner_code}"}
|
||||
},
|
||||
{
|
||||
"Key": "BatchNumber",
|
||||
<#if reflexMvtStockInterface.batch_1 == "">
|
||||
"Value": { "String" : "no batch"}
|
||||
<#else>
|
||||
"Value": { "String" : "${reflexMvtStockInterface.batch_1}"}
|
||||
</#if>
|
||||
},
|
||||
{
|
||||
"Key": "HeldForSpecificCode",
|
||||
"Value": { "Bool" : "${reflexMvtStockInterface.ipg_specific_code_held}"}
|
||||
},
|
||||
|
||||
{
|
||||
<#assign manufacturing_date = reflexMvtStockInterface.manufacture_date?datetime(rfx_date_format_default)?iso_utc />
|
||||
"Key": "ManufacturingDate",
|
||||
"Value": "Timestamp": {
|
||||
"AuthorTimeZone": "${time_zone_rfx}",
|
||||
"DateTime": "${manufacturing_date}"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
-->
|
||||
"SegmentationKeys": [ ]
|
||||
@@ -1,78 +0,0 @@
|
||||
<#include "HfRpConfig.ftl">
|
||||
<#include "ReflexUtils.ftl">
|
||||
<#include "ActorPrefix.ftl">
|
||||
|
||||
<#assign MoveType_KV = {"130":"STOCK_MOVEMENT_TYPE_PRODUCTION",
|
||||
"200":"STOCK_MOVEMENT_TYPE_FIX",
|
||||
"210":"STOCK_MOVEMENT_TYPE_FIX",
|
||||
"220":"STOCK_MOVEMENT_TYPE_FIX",
|
||||
"230":"STOCK_MOVEMENT_TYPE_REQUALIFICATION",
|
||||
"240":"STOCK_MOVEMENT_TYPE_REQUALIFICATION",
|
||||
"260":"STOCK_MOVEMENT_TYPE_REQUALIFICATION",
|
||||
"290":"STOCK_MOVEMENT_TYPE_REQUALIFICATION",
|
||||
"300":"STOCK_MOVEMENT_TYPE_REQUALIFICATION",
|
||||
"350":"STOCK_MOVEMENT_TYPE_USE_OF_GOODS",
|
||||
"370":"STOCK_MOVEMENT_TYPE_USE_OF_GOODS",
|
||||
"400":"STOCK_MOVEMENT_TYPE_FIX",
|
||||
"410":"STOCK_MOVEMENT_TYPE_FIX",
|
||||
"420":"STOCK_MOVEMENT_TYPE_REQUALIFICATION",
|
||||
"455":"STOCK_MOVEMENT_TYPE_FIX",
|
||||
"460":"STOCK_MOVEMENT_TYPE_FIX",
|
||||
"465":"STOCK_MOVEMENT_TYPE_FIX",
|
||||
"520":"STOCK_MOVEMENT_TYPE_OUTBOUND"
|
||||
}>
|
||||
<#assign generation_date = RfxDateTimetoUTCWithTimezone(reflexMvtStockInterface.ipg_move_creation_datetime,time_zone_rfx) />
|
||||
<#assign ipg_priority_datetime = reflexMvtStockInterface.ipg_priority_date?datetime(rfx_date_format_default)?iso_utc />
|
||||
[
|
||||
{
|
||||
"Header": {
|
||||
"ProjectID": "${projectRP}"
|
||||
},
|
||||
"Payload": {
|
||||
"Goods": {
|
||||
"ItemID": "${reflexMvtStockInterface.item_code?trim?json_string}",
|
||||
<#if (reflexMvtStockInterface.ipg_priority_date!="") && (reflexMvtStockInterface.ipg_priority_date?starts_with("00")== false) >
|
||||
"PriorityDate": "${ipg_priority_datetime}",
|
||||
<#else>
|
||||
"PriorityDate": "1970-01-01T00:00:00Z",
|
||||
</#if>
|
||||
|
||||
<#-- Segmentation keys inclusions -->
|
||||
<#include "RFXtoRP_HsaIpgMove_StockMoved_SegmentationKeys.ftl">,
|
||||
|
||||
|
||||
"LVBranchID": "${reflexMvtStockInterface.lv_code?json_string}"
|
||||
},
|
||||
"ActorID": "${RFXtoRPprefixDepot(reflexMvtStockInterface.physical_depot_code?trim?json_string)}",
|
||||
"Movement": {
|
||||
|
||||
"DateTime": {
|
||||
"DateTime": "${generation_date}",
|
||||
"AuthorTimeZone": "${time_zone_rfx}"
|
||||
},
|
||||
"Author": "ReflexWMS-${reflexMvtStockInterface.ipg_move_creation_user_code?json_string}",
|
||||
"ExternalMoveRef" : "${reflexMvtStockInterface.ipg_move_year_number} - ${reflexMvtStockInterface.ipg_move_number}",
|
||||
"Type": "${MoveType_KV[reflexMvtStockInterface.ipg_move_type]!reflexMvtStockInterface.ipg_move_type}",
|
||||
<#if reflexMvtStockInterface.ipg_move_type == "520" >
|
||||
"Reason": " Direct Transfert ${RFXtoRPprefixDepot(reflexMvtStockInterface.physical_depot_code?trim?json_string)} to ${RFXtoRPprefixDepot(reflexMvtStockInterface.transfer_consignee_physical_depot_code?trim?json_string)}",
|
||||
<#else>
|
||||
"Reason": "${reflexMvtStockInterface.miscellaneous_receipts_despatches_code?json_string}",
|
||||
</#if>
|
||||
"ExternalInfo" : "${reflexMvtStockInterface.stock_move_reference?json_string}",
|
||||
<#if reflexMvtStockInterface.ipg_move_operation_year_number!= 0>
|
||||
"OperationReference": "${reflexMvtStockInterface.physical_depot_code}${reflexMvtStockInterface.activity_code}-${reflexMvtStockInterface.ipg_move_operation_year_number}-${reflexMvtStockInterface.ipg_move_operation_number}",
|
||||
</#if>
|
||||
|
||||
"Quantity":
|
||||
{
|
||||
"LVID": "${quantity_in_base_lv_RP_Cst}",
|
||||
<#if reflexMvtStockInterface.move_sign == "+" || reflexMvtStockInterface.ipg_move_quantity_in_base_lvs <= 0 >
|
||||
"Value": ${reflexMvtStockInterface.ipg_move_quantity_in_base_lvs}
|
||||
<#else>
|
||||
"Value": -${reflexMvtStockInterface.ipg_move_quantity_in_base_lvs}
|
||||
</#if>
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
@@ -1,42 +0,0 @@
|
||||
<#-- use protobuf of class HsaIpgMove to find HARDIS WMS fields names -->
|
||||
<#--
|
||||
<#-- Best practices:
|
||||
If the SK is of type:
|
||||
- string: add ?json_string (e.g. "${stock.batch_1?json_string}")
|
||||
- boolean: possible values: true and false
|
||||
- datetime: expected format: 2025-10-30T10:12:10.000Z
|
||||
- decimal number: the separator is a point (e.g. 10.5)
|
||||
"SegmentationKeys": [
|
||||
{
|
||||
"Key": "Grade",
|
||||
"Value": { "String" : "${reflexMvtStockInterface.grade_code}"}
|
||||
},
|
||||
{
|
||||
"Key": "Owner",
|
||||
"Value": { "String" : "${reflexMvtStockInterface.owner_code}"}
|
||||
},
|
||||
{
|
||||
"Key": "BatchNumber",
|
||||
<#if reflexMvtStockInterface.batch_1 == "">
|
||||
"Value": { "String" : "no batch"}
|
||||
<#else>
|
||||
"Value": { "String" : "${reflexMvtStockInterface.batch_1}"}
|
||||
</#if>
|
||||
},
|
||||
{
|
||||
"Key": "HeldForSpecificCode",
|
||||
"Value": { "Bool" : "${reflexMvtStockInterface.ipg_specific_code_held}"}
|
||||
},
|
||||
|
||||
{
|
||||
<#assign manufacturing_date = reflexMvtStockInterface.manufacture_date?datetime(rfx_date_format_default)?iso_utc />
|
||||
"Key": "ManufacturingDate",
|
||||
"Value": "Timestamp": {
|
||||
"AuthorTimeZone": "${time_zone_rfx}",
|
||||
"DateTime": "${manufacturing_date}"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
-->
|
||||
"SegmentationKeys": [ ]
|
||||
@@ -1,47 +0,0 @@
|
||||
<#-- **** input parameters ***** -->
|
||||
<#-- input : message HARDIS WMS for items -->
|
||||
<#-- project : projectId in HARDIS SC NETWORK -->
|
||||
<#-- organisation : organisationtId in HARDIS SC NETWORK -->
|
||||
|
||||
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
|
||||
<#assign projectRP = project>
|
||||
<#assign organisationRP = organisation>
|
||||
|
||||
|
||||
<#assign aDateTime = .now>
|
||||
|
||||
<#switch cloudEventMsg.action>
|
||||
<#case "C">
|
||||
<#case "U">
|
||||
<#-- *********************************************** Action = CREATE or UPDATE ******************** -->
|
||||
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
|
||||
<#assign item = JsonUtil.jsonToMap(dataRfx)>
|
||||
[
|
||||
{
|
||||
<#assign apiReflexPlatformID = ApiReflexPlatformID.ItemCreated>
|
||||
"apiReflexPlatformID" : "${apiReflexPlatformID}",
|
||||
"datas" :
|
||||
<#include "RFXtoRP_HsaItm_ItemCreated.ftl">
|
||||
}
|
||||
]
|
||||
<#break>
|
||||
|
||||
<#case "D">
|
||||
<#-- *********************************************** Action = DELETE ******************************** -->
|
||||
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
|
||||
<#assign item = JsonUtil.jsonToMap(dataRfx)>
|
||||
[
|
||||
{
|
||||
<#assign apiReflexPlatformID = ApiReflexPlatformID.ItemDeleted>
|
||||
"apiReflexPlatformID" : "${apiReflexPlatformID}",
|
||||
"datas" :
|
||||
<#include "RFXtoRP_HsaItm_ItemDeleted.ftl">
|
||||
}
|
||||
]
|
||||
<#break>
|
||||
|
||||
|
||||
<#default>
|
||||
<#stop >
|
||||
</#switch>
|
||||
|
||||
@@ -1,45 +0,0 @@
|
||||
<#-- **** input parameters ***** -->
|
||||
<#-- input : message HARDIS WMS for logistic variants -->
|
||||
<#-- project : projectId in HARDIS SC NETWORK -->
|
||||
<#-- organisation : organisationtId in HARDIS SC NETWORK -->
|
||||
|
||||
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
|
||||
<#assign projectRP = project>
|
||||
<#assign organisationRP = organisation>
|
||||
|
||||
|
||||
<#assign aDateTime = .now>
|
||||
|
||||
<#switch cloudEventMsg.action>
|
||||
<#case "C">
|
||||
<#case "U">
|
||||
<#-- *********************************************** Action = CREATE or UPDATE ******************** -->
|
||||
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
|
||||
<#assign lv = JsonUtil.jsonToMap(dataRfx)>
|
||||
[
|
||||
{
|
||||
<#assign apiReflexPlatformID = ApiReflexPlatformID.ItemLogisticVariantUpdated>
|
||||
"apiReflexPlatformID" : "${apiReflexPlatformID}",
|
||||
"datas" :
|
||||
<#include "RFXtoRP_HsaItmLv_LogisticVariantUpdated.ftl">
|
||||
}
|
||||
]
|
||||
<#break>
|
||||
|
||||
<#case "D">
|
||||
<#-- *********************************************** Action = DELETE ******************** -->
|
||||
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
|
||||
<#assign lv = JsonUtil.jsonToMap(dataRfx)>
|
||||
[
|
||||
{
|
||||
<#assign apiReflexPlatformID = ApiReflexPlatformID.ItemLogisticVariantRemoved>
|
||||
"apiReflexPlatformID" : "${apiReflexPlatformID}",
|
||||
"datas" :
|
||||
<#include "RFXtoRP_HsaItmLv_LogisticVariantRemoved.ftl">
|
||||
}
|
||||
]
|
||||
<#break>
|
||||
<#default>
|
||||
<#stop >
|
||||
</#switch>
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
<#include "HfRpConfig.ftl">
|
||||
[
|
||||
{
|
||||
"Header": {
|
||||
"ProjectID": "${projectRP}"
|
||||
},
|
||||
"ID": {
|
||||
"RefID": "${lv.item_code?trim?json_string}"
|
||||
},
|
||||
"Payload": {
|
||||
"RemovedLogisticVariantIDs":["${lv.logistical_variant_code}"]
|
||||
}
|
||||
}
|
||||
]
|
||||
@@ -1,73 +0,0 @@
|
||||
<#include "HfRpConfig.ftl">
|
||||
[
|
||||
{
|
||||
"Header": {
|
||||
"ProjectID": "${projectRP}"
|
||||
},
|
||||
"ID": {
|
||||
"RefID": "${lv.item_code?trim?json_string}"
|
||||
},
|
||||
"Payload": {
|
||||
"LogisticVariants": [
|
||||
{
|
||||
"LVID": "${lv.logistical_variant_code?json_string}",
|
||||
"Name" : "${lv.lv_type_code?json_string}",
|
||||
<#if lv.id_list?? && (lv.id_list?size == lv.id_list?filter(l ->l??)?size)>
|
||||
"Codes": [
|
||||
<#list lv.id_list as id>
|
||||
{
|
||||
"Key": "${(id.logistical_variant_ID_type_code!"")?json_string}",
|
||||
"Value": "${(id.logistical_variant_ID_code!"")?json_string}"
|
||||
}<#sep>,</#sep>
|
||||
</#list>
|
||||
],
|
||||
</#if>
|
||||
|
||||
<#-- LV Metadata inclusion -->
|
||||
<#include "RFXtoRP_HsaItmLv_LogisticVariantUpdated_Metadata.ftl">,
|
||||
|
||||
"IsBaseLogisticVariant": ${lv.base_lv},
|
||||
|
||||
<#if lv.base_lv != "true">
|
||||
"RefLV": "${lv.subpackaging_lv_code?json_string}",
|
||||
</#if>
|
||||
|
||||
"QuantityInRefLV": ${lv.quantity_in_subpackaging_lv},
|
||||
|
||||
"NetWeight": {
|
||||
"Value": ${lv.net_weight},
|
||||
"Unit": "${weight_unit_rfx}"
|
||||
},
|
||||
"GrossWeight": {
|
||||
"Value": ${lv.gross_weight},
|
||||
"Unit": "${weight_unit_rfx}"
|
||||
},
|
||||
"Volume": {
|
||||
"Value": ${lv.volume},
|
||||
"Unit": "${volume_unit_rfx}"
|
||||
},
|
||||
"Height": {
|
||||
"Value": ${lv.height},
|
||||
"Unit": "${length_unit_rfx}"
|
||||
},
|
||||
"Width": {
|
||||
"Value": ${lv.width},
|
||||
"Unit": "${length_unit_rfx}"
|
||||
},
|
||||
"Length": {
|
||||
"Value": ${lv.depth},
|
||||
"Unit": "${length_unit_rfx}"
|
||||
},
|
||||
|
||||
<#if lv.packaging_lv == "true">
|
||||
"BranchIDs": ["${lv.logistical_variant_code}"]
|
||||
<#else>
|
||||
"BranchIDs": []
|
||||
</#if>
|
||||
|
||||
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
@@ -1,10 +0,0 @@
|
||||
<#-- use protobuf of class HsaItmLv to find HARDIS WMS fields names -->
|
||||
|
||||
<#-- Best practices:
|
||||
If the SK is of type:
|
||||
- string: add ?json_string (e.g. "${stock.batch_1?json_string}")
|
||||
- boolean: possible values: true and false
|
||||
- datetime: expected format: 2025-10-30T10:12:10.000Z
|
||||
- decimal number: the separator is a point (e.g. 10.5)-->
|
||||
|
||||
"MetaData": [ ]
|
||||
@@ -1,113 +0,0 @@
|
||||
<#include "HfRpConfig.ftl">
|
||||
<#include "HfExpGrpList.ftl">
|
||||
[
|
||||
{
|
||||
"Header": {
|
||||
"ProjectID": "${projectRP}"
|
||||
},
|
||||
"ID": {
|
||||
"RefID": "${item.item_code?trim?json_string}"
|
||||
},
|
||||
"Payload": {
|
||||
"DescriptionsByLanguage": [{
|
||||
"ShortDescription": "${item.short_designation?json_string}",
|
||||
"LongDescription": "${item.designation?json_string}",
|
||||
"TechnicalDetails": "${item.item_description?json_string}",
|
||||
"LanguageCodeISO6391": "${text_language_rfx}"
|
||||
}
|
||||
],
|
||||
"ExpiryConstraint": {
|
||||
"Type": "${ExpiryGroupList[item.expiry_group_code]!"UNKNOWN_DATE"}"
|
||||
},
|
||||
|
||||
<#-- Item metadata inclusion -->
|
||||
<#include "RFXtoRP_HsaItm_ItemCreated_ItemMetadata.ftl">
|
||||
|
||||
<#-- Item Photo URI could be added here -->
|
||||
<#if item.saved_picture_path?? && item.saved_picture_path!="" && item.saved_picture_path?starts_with("http") == true>
|
||||
,
|
||||
"PhotoURI": "${item.saved_picture_path?json_string}"
|
||||
<#else>
|
||||
<#if item.url?? && item.url!="" && item.url?starts_with("http") == true>
|
||||
,
|
||||
"PhotoURI": "${item.url?json_string}"
|
||||
</#if>
|
||||
</#if>
|
||||
|
||||
<#-- Loop for the Logistical Variants - LV -->
|
||||
<#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>
|
||||
{
|
||||
"LVID": "${logistical_variant.logistical_variant_code?json_string}",
|
||||
"Name" : "${logistical_variant.lv_type_code?json_string}",
|
||||
|
||||
<#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>
|
||||
{
|
||||
"Key": "${(id.logistical_variant_ID_type_code!"")?json_string}",
|
||||
"Value": "${(id.logistical_variant_ID_code!"")?json_string}"
|
||||
}<#sep>,</#sep>
|
||||
</#list>
|
||||
],
|
||||
</#if>
|
||||
|
||||
<#-- LV Metadata inclusion -->
|
||||
<#include "RFXtoRP_HsaItm_ItemCreated_LogisticVariantMetadata.ftl">,
|
||||
|
||||
<#if logistical_variant.base_lv?? && logistical_variant.base_lv!="">
|
||||
"IsBaseLogisticVariant": ${logistical_variant.base_lv},
|
||||
</#if>
|
||||
|
||||
<#if logistical_variant.base_lv != "true">
|
||||
"RefLV": "${logistical_variant.subpackaging_lv_code?json_string}",
|
||||
</#if>
|
||||
|
||||
"QuantityInRefLV": ${logistical_variant.quantity_in_subpackaging_lv},
|
||||
|
||||
"NetWeight": {
|
||||
"Value": ${logistical_variant.net_weight},
|
||||
"Unit": "${weight_unit_rfx}"
|
||||
},
|
||||
"GrossWeight": {
|
||||
"Value": ${logistical_variant.gross_weight},
|
||||
"Unit": "${weight_unit_rfx}"
|
||||
},
|
||||
"Volume": {
|
||||
"Value": ${logistical_variant.volume},
|
||||
"Unit": "${volume_unit_rfx}"
|
||||
},
|
||||
"Height": {
|
||||
"Value": ${logistical_variant.height},
|
||||
"Unit": "${length_unit_rfx}"
|
||||
},
|
||||
"Width": {
|
||||
"Value": ${logistical_variant.width},
|
||||
"Unit": "${length_unit_rfx}"
|
||||
},
|
||||
"Length": {
|
||||
"Value": ${logistical_variant.depth},
|
||||
"Unit": "${length_unit_rfx}"
|
||||
},
|
||||
|
||||
|
||||
<#if logistical_variant.packaging_lv == "true">
|
||||
"BranchIDs": ["${logistical_variant.logistical_variant_code}"]
|
||||
<#else>
|
||||
"BranchIDs": []
|
||||
</#if>
|
||||
|
||||
}
|
||||
<#sep>,</#sep>
|
||||
|
||||
</#list>
|
||||
]
|
||||
</#if>
|
||||
<#-- End of LV loop -->
|
||||
|
||||
}
|
||||
}
|
||||
]
|
||||
@@ -1,10 +0,0 @@
|
||||
<#-- use protobuf of class HsaItm to find HARDIS WMS fields names -->
|
||||
|
||||
<#-- Best practices:
|
||||
If the SK is of type:
|
||||
- string: add ?json_string (e.g. "${stock.batch_1?json_string}")
|
||||
- boolean: possible values: true and false
|
||||
- datetime: expected format: 2025-10-30T10:12:10.000Z
|
||||
- decimal number: the separator is a point (e.g. 10.5)-->
|
||||
|
||||
"MetaData": [ ]
|
||||
@@ -1,10 +0,0 @@
|
||||
<#-- use protobuf of class HsaItm to find HARDIS WMS fields names -->
|
||||
|
||||
<#-- Best practices:
|
||||
If the SK is of type:
|
||||
- string: add ?json_string (e.g. "${stock.batch_1?json_string}")
|
||||
- boolean: possible values: true and false
|
||||
- datetime: expected format: 2025-10-30T10:12:10.000Z
|
||||
- decimal number: the separator is a point (e.g. 10.5)-->
|
||||
|
||||
"MetaData": [ ]
|
||||
@@ -1,12 +0,0 @@
|
||||
<#include "HfRpConfig.ftl">
|
||||
[
|
||||
{
|
||||
"Header": {
|
||||
"ProjectID": "${projectRP}"
|
||||
},
|
||||
"ID": {
|
||||
"RefID": "${item.item_code?trim?json_string}"
|
||||
},
|
||||
"Payload": {}
|
||||
}
|
||||
]
|
||||
@@ -68,33 +68,7 @@
|
||||
"Anticipated": true,
|
||||
<#-- Header Metadata inclusion -->
|
||||
<#include "RFXtoRP_HsrAntRec_Created_HeaderMetadata.ftl">,
|
||||
"Lines": [
|
||||
<#-- Lines iteration -->
|
||||
<#list AncReceipt.line_list?filter(l -> l??) as line>
|
||||
{
|
||||
<#if line.anticipated_receipt_reference_line_no?? && line.anticipated_receipt_reference_line_no!=0>
|
||||
"LineID": "${line.anticipated_receipt_reference_line_no}",
|
||||
<#else>
|
||||
"LineID": "${line.anticipated_receipt_line_number}",
|
||||
</#if>
|
||||
<#-- Line Metadata inclusion -->
|
||||
<#include "RFXtoRP_HsrAntRec_Created_LineMetadata.ftl">,
|
||||
"RequestedContent":{
|
||||
"Goods":{
|
||||
"ItemID":"${line.item_code?trim?json_string!"0"}",
|
||||
"LVBranchID":"${line.item_lv_code?trim?json_string!"0"}",
|
||||
<#-- Segmentation Keys inclusion -->
|
||||
<#include "RFXtoRP_HsrAntRec_Created_SegmentationKeys.ftl">
|
||||
},
|
||||
"Quantity" :
|
||||
{
|
||||
"LVID": "${quantity_in_base_lv_RP_Cst}",
|
||||
"Value": ${line.planned_quantity_in_base_lv!0}
|
||||
}
|
||||
}
|
||||
}<#sep>,</#sep>
|
||||
</#list>
|
||||
]
|
||||
"Lines": [ ]
|
||||
<#if AncReceipt.planned_receipt_datetime?? && AncReceipt.planned_receipt_datetime!="0000-00-00T00:00:00">
|
||||
,
|
||||
"RequestedMilestones" :
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
<#-- use protobuf of class HsrReceiptList to find HARDIS WMS fields names -->
|
||||
|
||||
<#-- Best practices:
|
||||
If the SK is of type:
|
||||
- string: add ?json_string (e.g. "${stock.batch_1?json_string}")
|
||||
- boolean: possible values: true and false
|
||||
- datetime: expected format: 2025-10-30T10:12:10.000Z
|
||||
- decimal number: the separator is a point (e.g. 10.5)-->
|
||||
|
||||
"MetaData": [ ]
|
||||
@@ -1,32 +0,0 @@
|
||||
<#-- **** input parameters ***** -->
|
||||
<#-- input : message HARDIS WMS -->
|
||||
<#-- project : projectId in HARDIS SC NETWORK -->
|
||||
<#-- organisation : organisationtId in HARDIS SC NETWORK -->
|
||||
|
||||
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
|
||||
<#assign projectRP = project>
|
||||
<#assign organisationRP = organisation>
|
||||
|
||||
<#assign aDateTime = .now>
|
||||
|
||||
<#stop>
|
||||
|
||||
<#switch cloudEventMsg.action>
|
||||
<#case "C">
|
||||
<#case "U">
|
||||
<#-- *********************************************** Action = CREATE or UPDATE ******************** -->
|
||||
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
|
||||
<#assign depot = JsonUtil.jsonToMap(dataRfx)>
|
||||
<#stop >
|
||||
<#break>
|
||||
|
||||
<#case "D">
|
||||
<#-- *********************************************** Action = DELETE *************************** -->
|
||||
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
|
||||
<#assign depot = JsonUtil.jsonToMap(dataRfx)>
|
||||
<#stop >
|
||||
<#break>
|
||||
|
||||
<#default>
|
||||
<#stop >
|
||||
</#switch>
|
||||
@@ -1,32 +0,0 @@
|
||||
<#-- **** input parameters ***** -->
|
||||
<#-- input : message HARDIS WMS -->
|
||||
<#-- project : projectId in HARDIS SC NETWORK -->
|
||||
<#-- organisation : organisationtId in HARDIS SC NETWORK -->
|
||||
|
||||
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
|
||||
<#assign projectRP = project>
|
||||
<#assign organisationRP = organisation>
|
||||
|
||||
<#assign aDateTime = .now>
|
||||
|
||||
<#switch cloudEventMsg.action>
|
||||
<#case "C">
|
||||
<#case "U">
|
||||
<#-- *********************************************** Action = CREATE or UPDATE ******************** -->
|
||||
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
|
||||
<#assign packBranch = JsonUtil.jsonToMap(dataRfx)>
|
||||
|
||||
<#stop >
|
||||
<#break>
|
||||
|
||||
<#case "D">
|
||||
<#-- *********************************************** Action = DELETE ******************** -->
|
||||
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
|
||||
<#assign packBranch = JsonUtil.jsonToMap(dataRfx)>
|
||||
|
||||
<#stop >
|
||||
<#break>
|
||||
<#default>
|
||||
<#stop >
|
||||
</#switch>
|
||||
|
||||
@@ -1,32 +0,0 @@
|
||||
<#-- **** input parameters ***** -->
|
||||
<#-- input : message HARDIS WMS -->
|
||||
<#-- project : projectId in HARDIS SC NETWORK -->
|
||||
<#-- organisation : organisationtId in HARDIS SC NETWORK -->
|
||||
|
||||
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
|
||||
<#assign projectRP = project>
|
||||
<#assign organisationRP = organisation>
|
||||
|
||||
<#assign aDateTime = .now>
|
||||
|
||||
<#switch cloudEventMsg.action>
|
||||
<#case "C">
|
||||
<#case "U">
|
||||
<#-- *********************************************** Action = CREATE or UPDATE ******************** -->
|
||||
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
|
||||
<#assign packOrder = JsonUtil.jsonToMap(dataRfx)>
|
||||
|
||||
<#stop >
|
||||
<#break>
|
||||
|
||||
<#case "D">
|
||||
<#-- *********************************************** Action = DELETE ******************** -->
|
||||
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
|
||||
<#assign packOrder = JsonUtil.jsonToMap(dataRfx)>
|
||||
|
||||
<#stop >
|
||||
<#break>
|
||||
<#default>
|
||||
<#stop >
|
||||
</#switch>
|
||||
|
||||
@@ -1,114 +0,0 @@
|
||||
<#-- **** input parameters ***** -->
|
||||
<#-- input : message HARDIS WMS for preparation order shipped-->
|
||||
<#-- project : projectId in HARDIS SC NETWORK -->
|
||||
<#-- organisation : organisationtId in HARDIS SC NETWORK -->
|
||||
<#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 preparationOrder = JsonUtil.jsonToMap(dataRfx)>
|
||||
|
||||
<#if preparationOrder.total_lv_validated?? && preparationOrder.total_lv_validated !=0>
|
||||
<#if preparationOrder.preparation_type_code=="010" || preparationOrder.preparation_type_code=="030">
|
||||
<#if preparationOrder.preparation_line_lst??>
|
||||
[
|
||||
{
|
||||
<#assign apiReflexPlatformID = ApiReflexPlatformID.HandlingunitGoodsPrepared>
|
||||
"apiReflexPlatformID" : "${apiReflexPlatformID}",
|
||||
"datas" :
|
||||
<#include "RFXtoRP_HsrPrepa_HandlingunitGoodsPrepared.ftl">
|
||||
},
|
||||
<#include "RFXtoRP_HsrPrepa_ExecutionflowMetadataUpdated.ftl">
|
||||
{
|
||||
<#assign apiReflexPlatformID = ApiReflexPlatformID.HandlingunitDispatched>
|
||||
"apiReflexPlatformID" : "${apiReflexPlatformID}",
|
||||
"datas" :
|
||||
<#include "RFXtoRP_HsrPrepa_HandlingUnitDispatched.ftl">
|
||||
}
|
||||
<#if preparationOrder.load_data?? && preparationOrder.load_data.carrier_code?? && preparationOrder.load_data.carrier_code!="">
|
||||
,
|
||||
{
|
||||
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowCarrierUpdated>
|
||||
"apiReflexPlatformID" : "${apiReflexPlatformID}",
|
||||
"datas" :
|
||||
<#include "RFXtoRP_HsrPrepa_CarrierUpdated.ftl">
|
||||
}
|
||||
</#if>
|
||||
|
||||
<#assign refIDHmap ={}>
|
||||
<#assign hd_numberHmap ={}>
|
||||
<#assign hd_numberHmapHUadded ={}>
|
||||
<#list preparationOrder.preparation_line_lst?filter(l ->l.despatched_ipg_list?? ) 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>
|
||||
<#-- Preparation Type not supported-->
|
||||
<#stop>
|
||||
</#if>
|
||||
<#else>
|
||||
<#-- no confirmed quantity for the preparation - preparation closed-->
|
||||
<#stop>
|
||||
</#if>
|
||||
|
||||
|
||||
<#break>
|
||||
<#case "D">
|
||||
<#-- *********************************************** Action = DELETE ******************** -->
|
||||
<#stop>
|
||||
<#break>
|
||||
|
||||
<#default>
|
||||
<#stop>
|
||||
</#switch>
|
||||
@@ -1,38 +0,0 @@
|
||||
<#include "HfRpConfig.ftl">
|
||||
<#include "ReflexUtils.ftl">
|
||||
<#include "ActorPrefix.ftl">
|
||||
[
|
||||
<#assign refIDHmap_local ={}>
|
||||
<#list preparationOrder.preparation_line_lst as preparation_line>
|
||||
<#if preparation_line.preparation_order_originator_reference?? && preparation_line.preparation_order_originator_reference!="">
|
||||
<#assign OrderOriginReference = "${preparation_line.pro_physical_depot_code?trim?json_string}${preparationOrder.activity_code?trim?json_string}${preparation_line.pro_originator_code?trim?json_string}${preparation_line.preparation_order_originator_reference?trim?json_string}">
|
||||
<#else>
|
||||
<#assign OrderOriginReference = "O${preparation_line.pro_physical_depot_code?trim?json_string}${preparationOrder.activity_code?trim?json_string}${preparation_line.pro_originator_code?trim?json_string}${preparation_line.pro_year}${preparation_line.pro_number}">
|
||||
</#if>
|
||||
<#if !refIDHmap_local[OrderOriginReference]?? >
|
||||
<#if refIDHmap_local?size != 0 >
|
||||
,
|
||||
</#if>
|
||||
<#assign refIDHmap_local +={OrderOriginReference,OrderOriginReference}>
|
||||
{
|
||||
"Header": {
|
||||
"ProjectID": "${projectRP}"
|
||||
},
|
||||
"ID":{
|
||||
"RefID": "${OrderOriginReference}"
|
||||
},
|
||||
"Payload":{
|
||||
"Carrier": {
|
||||
"ActorID": "${RFXtoRPprefixCarrier(preparationOrder.load_data.carrier_code?trim?json_string)}"
|
||||
}
|
||||
<#-- Add transport grade code
|
||||
<#if preparationOrder.transport_grade_code!="">
|
||||
,
|
||||
"CarrierService":"${preparationOrder.transport_grade_code?trim?json_string}"
|
||||
</#if> -->
|
||||
}
|
||||
}
|
||||
</#if>
|
||||
</#list>
|
||||
<#assign refIDHmap_local ={}>
|
||||
]
|
||||
@@ -1,27 +0,0 @@
|
||||
<#--
|
||||
{
|
||||
"Header": {
|
||||
"ProjectID": "${projectRP}"
|
||||
},
|
||||
"ID":{
|
||||
"RefID": "${Your_Object_ID}"
|
||||
},
|
||||
"Payload":{
|
||||
"MetaData": [
|
||||
{
|
||||
"Key": "string",
|
||||
"Value": {
|
||||
"Bool": "true / false",
|
||||
"Float": 3.1415,
|
||||
"Int": 42,
|
||||
"String": "Hello World !",
|
||||
"Timestamp": {
|
||||
"AuthorTimeZone": "Europe/Paris",
|
||||
"DateTime": "2023-01-01T00:00:00Z"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
-->
|
||||
@@ -1,10 +0,0 @@
|
||||
<#-- A décommenter si besoin de les utiliser-->
|
||||
<#-- Uncomment if you need to use them-->
|
||||
<#--
|
||||
{
|
||||
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowMetaDataUpdated>
|
||||
"apiReflexPlatformID" : "${apiReflexPlatformID}",
|
||||
"datas" :
|
||||
<#include "RFXtoRP_HsrPrepa_ExecutionflowMetaDataUpdatedToConfigure.ftl">
|
||||
},
|
||||
-->
|
||||
@@ -1,10 +0,0 @@
|
||||
<#-- use protobuf of class HsrPrepa to find HARDIS WMS fields names -->
|
||||
|
||||
<#-- Best practices:
|
||||
If the SK is of type:
|
||||
- string: add ?json_string (e.g. "${stock.batch_1?json_string}")
|
||||
- boolean: possible values: true and false
|
||||
- datetime: expected format: 2025-10-30T10:12:10.000Z
|
||||
- decimal number: the separator is a point (e.g. 10.5)-->
|
||||
|
||||
"MetaData": [ ]
|
||||
@@ -1,46 +0,0 @@
|
||||
<#-- use protobuf of class Hsrprepa to find HARDIS WMS fields names -->
|
||||
<#--
|
||||
<#-- Best practices:
|
||||
If the SK is of type:
|
||||
- string: add ?json_string (e.g. "${stock.batch_1?json_string}")
|
||||
- boolean: possible values: true and false
|
||||
- datetime: expected format: 2025-10-30T10:12:10.000Z
|
||||
- decimal number: the separator is a point (e.g. 10.5)
|
||||
"SegmentationKeys": [
|
||||
{
|
||||
"Key": "Grade",
|
||||
"Value": { "String" : "${preparation_line.grade_code}"}
|
||||
},
|
||||
{
|
||||
"Key": "Owner",
|
||||
"Value": { "String" : "${preparation_line.owner_code}"}
|
||||
},
|
||||
{
|
||||
"Key": "BatchNumber",
|
||||
<#if reflexMvtStockInterface.batch_1 == "">
|
||||
"Value": { "String" : "no batch"}
|
||||
<#else>
|
||||
"Value": { "String" : "${despatched_ipg.batch_number}"}
|
||||
</#if>
|
||||
},
|
||||
{
|
||||
"Key": "HeldForSpecificCode",
|
||||
<#if despatched_ipg.ipg_held == "true">
|
||||
"Value": { "Bool" : "True"}
|
||||
<#else>
|
||||
"Value": { "Bool" : "False"}
|
||||
},
|
||||
{
|
||||
<#assign manufacturing_date = despatched_ipg.ipg_manufacture_date?datetime(rfx_date_format_default)?iso_utc />
|
||||
"Key": "ManufacturingDate",
|
||||
"Value": "Timestamp": {
|
||||
"AuthorTimeZone": "${time_zone_rfx}",
|
||||
"DateTime": "${manufacturing_date}"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
|
||||
|
||||
-->
|
||||
"SegmentationKeys": [ ]
|
||||
@@ -1,35 +0,0 @@
|
||||
<#include "HfRpConfig.ftl">
|
||||
<#include "ReflexUtils.ftl">
|
||||
[
|
||||
<#assign dispatched3_datetime = RfxDateTimetoUTCWithTimezone(preparationOrder.stock_despatch_at_preparation_datetime,time_zone_rfx) />
|
||||
|
||||
<#list preparationOrder.preparation_line_lst?filter(l ->l.despatched_ipg_list?? && l.despatched_ipg_list?size != 0) as preparation_line3>
|
||||
<#list preparation_line3.despatched_ipg_list?filter(j ->j.carton_number!="000000000000000000") as despatched_ipg3>
|
||||
<#if !refIDHmap[despatched_ipg3.carton_number]?? >
|
||||
<#if refIDHmap?size != 0 >
|
||||
,
|
||||
</#if>
|
||||
<#assign refIDHmap += {despatched_ipg3.carton_number,despatched_ipg3.carton_number}>
|
||||
{
|
||||
"Header": {
|
||||
"ProjectID": "${projectRP}"
|
||||
},
|
||||
"ID": {
|
||||
<#if preparation_line3.despatched_cartons_list?? && preparation_line3.despatched_cartons_list?size != 0>
|
||||
<#list preparation_line3.despatched_cartons_list?filter(l -> l?? && l.carton_number==despatched_ipg3.carton_number) as HuCartonCycle>
|
||||
"RefID": "${despatched_ipg3.carton_number}-${HuCartonCycle.carton_creation_datetime}",
|
||||
</#list>
|
||||
<#else>
|
||||
"RefID": "${despatched_ipg3.carton_number}",
|
||||
</#if>
|
||||
"RefDate": {
|
||||
"DateTime": "${dispatched3_datetime}",
|
||||
"AuthorTimeZone": "${time_zone_rfx}"
|
||||
}
|
||||
},
|
||||
"Payload": { }
|
||||
}
|
||||
</#if>
|
||||
</#list>
|
||||
</#list>
|
||||
]
|
||||
@@ -1,10 +0,0 @@
|
||||
<#-- use protobuf of class HsrPrepa to find HARDIS WMS fields names -->
|
||||
|
||||
<#-- Best practices:
|
||||
If the SK is of type:
|
||||
- string: add ?json_string (e.g. "${stock.batch_1?json_string}")
|
||||
- boolean: possible values: true and false
|
||||
- datetime: expected format: 2025-10-30T10:12:10.000Z
|
||||
- decimal number: the separator is a point (e.g. 10.5)-->
|
||||
|
||||
"MetaData": [ ]
|
||||
@@ -1,33 +0,0 @@
|
||||
<#include "HfRpConfig.ftl">
|
||||
<#include "ReflexUtils.ftl">
|
||||
<#include "ActorPrefix.ftl">
|
||||
[
|
||||
<#assign dispatched_datetime5 = RfxDateTimetoUTCWithTimezone(preparationOrder.stock_despatch_at_preparation_datetime,time_zone_rfx) />
|
||||
{
|
||||
"Header": {
|
||||
"ProjectID": "${projectRP}"
|
||||
},
|
||||
"ID": {
|
||||
"RefID": "${despatched_ipg.hd_number}",
|
||||
"RefDate": {
|
||||
"DateTime": "${dispatched_datetime5}",
|
||||
"AuthorTimeZone": "${time_zone_rfx}"
|
||||
}
|
||||
},
|
||||
"Payload": {
|
||||
<#if preparation_line.despatched_hds_list?? && preparation_line.despatched_hds_list?size != 0>
|
||||
<#list preparation_line.despatched_hds_list?filter(l -> l?? && l.handling_device_number==despatched_ipg.hd_number) as HuCycle>
|
||||
"HandlingunitID": "${despatched_ipg.hd_number}-${HuCycle.hd_creation_datetime}"
|
||||
</#list>
|
||||
<#else>
|
||||
"HandlingunitID": "${despatched_ipg.hd_number}"
|
||||
</#if>
|
||||
<#if preparationOrder.load_data?? && preparationOrder.load_data.carrier_code?? && preparationOrder.load_data.carrier_code!="" >
|
||||
,
|
||||
"HUCarrier":{
|
||||
"ActorID": "${RFXtoRPprefixCarrier(preparationOrder.load_data.carrier_code?trim?json_string)}"
|
||||
}
|
||||
</#if>
|
||||
}
|
||||
}
|
||||
]
|
||||
@@ -1,34 +0,0 @@
|
||||
<#include "HfRpConfig.ftl">
|
||||
<#include "ReflexUtils.ftl">
|
||||
[
|
||||
<#assign dispatched_datetime = RfxDateTimetoUTCWithTimezone(preparationOrder.stock_despatch_at_preparation_datetime,time_zone_rfx) />
|
||||
<#assign refIDHmap_local ={}>
|
||||
<#list preparationOrder.preparation_line_lst?filter(l ->l.despatched_ipg_list?? && l.despatched_ipg_list?size != 0) as preparation_line>
|
||||
<#list preparation_line.despatched_ipg_list as despatched_ipg>
|
||||
<#if !refIDHmap_local[despatched_ipg.hd_number]?? >
|
||||
<#if refIDHmap_local?size != 0 >
|
||||
,
|
||||
</#if>
|
||||
<#assign refIDHmap_local +={despatched_ipg.hd_number,despatched_ipg.hd_number}>
|
||||
{
|
||||
"Header": {"ProjectID": "${projectRP}"},
|
||||
"ID": {
|
||||
<#if preparation_line.despatched_hds_list?? && preparation_line.despatched_hds_list?size != 0>
|
||||
<#list preparation_line.despatched_hds_list?filter(l -> l?? && l.handling_device_number==despatched_ipg.hd_number) as HuCycle>
|
||||
"RefID": "${despatched_ipg.hd_number}-${HuCycle.hd_creation_datetime}",
|
||||
</#list>
|
||||
<#else>
|
||||
"RefID": "${despatched_ipg.hd_number}",
|
||||
</#if>
|
||||
"RefDate": {
|
||||
"DateTime": "${dispatched_datetime}",
|
||||
"AuthorTimeZone": "${time_zone_rfx}"
|
||||
}
|
||||
},
|
||||
"Payload": { }
|
||||
}
|
||||
</#if>
|
||||
</#list>
|
||||
</#list>
|
||||
<#assign refIDHmap_local ={}>
|
||||
]
|
||||
@@ -1,159 +0,0 @@
|
||||
<#include "ReflexUtils.ftl">
|
||||
<#include "HfRpConfig.ftl">
|
||||
<#include "ActorPrefix.ftl">
|
||||
[
|
||||
<#list preparationOrder.preparation_line_lst?filter(l ->l.despatched_ipg_list?? && l.despatched_ipg_list?size != 0 ) as preparation_line>
|
||||
<#list preparation_line.despatched_ipg_list as despatched_ipg>
|
||||
<#assign packing_datetime = RfxDateTimetoUTCWithTimezone(preparation_line.confirmation_datetime,time_zone_rfx) />
|
||||
{
|
||||
"Header": {
|
||||
"ProjectID": "${projectRP}"
|
||||
},
|
||||
"ID": {
|
||||
"RefDate": {
|
||||
"AuthorTimeZone": "${time_zone_rfx}",
|
||||
"DateTime": "${packing_datetime}"
|
||||
},
|
||||
<#if despatched_ipg.carton_number != "000000000000000000">
|
||||
<#if preparation_line.despatched_cartons_list?? && preparation_line.despatched_cartons_list?size != 0>
|
||||
<#list preparation_line.despatched_cartons_list?filter(l -> l?? && l.carton_number==despatched_ipg.carton_number) as HuCartonCycle>
|
||||
"RefID": "${despatched_ipg.carton_number}-${HuCartonCycle.carton_creation_datetime}"
|
||||
</#list>
|
||||
<#else>
|
||||
"RefID": "${despatched_ipg.carton_number}"
|
||||
</#if>
|
||||
<#else>
|
||||
<#-- Add HU cycle -->
|
||||
<#if preparation_line.despatched_hds_list?? && preparation_line.despatched_hds_list?size != 0>
|
||||
<#list preparation_line.despatched_hds_list?filter(l -> l?? && l.handling_device_number==despatched_ipg.hd_number) as HuCycle>
|
||||
"RefID": "${despatched_ipg.hd_number}-${HuCycle.hd_creation_datetime}"
|
||||
</#list>
|
||||
<#else>
|
||||
"RefID": "${despatched_ipg.hd_number}"
|
||||
</#if>
|
||||
</#if>
|
||||
},
|
||||
|
||||
"Payload": {
|
||||
<#if despatched_ipg.carton_number != "000000000000000000">
|
||||
"Reference": "${despatched_ipg.carton_number}",
|
||||
<#else>
|
||||
"Reference": "${despatched_ipg.hd_number}",
|
||||
</#if>
|
||||
"Information" :{
|
||||
<#if despatched_ipg.carton_number != "000000000000000000">
|
||||
"ContainerType": "${despatched_ipg.carton_type_code?json_string}"
|
||||
<#if preparation_line.despatched_cartons_list?? >
|
||||
<#list preparation_line.despatched_cartons_list?filter(l -> l?? && l.carton_number==despatched_ipg.carton_number) as dimensionCarton>
|
||||
,
|
||||
"Length": {
|
||||
"Unit": "${length_unit_rfx}",
|
||||
"Value": "${dimensionCarton.overall_depth}"
|
||||
},
|
||||
"Weight": {
|
||||
"Unit": "${weight_unit_rfx}",
|
||||
"Value": "${dimensionCarton.carton_gross_weight}"
|
||||
},
|
||||
"Height": {
|
||||
"Unit": "${length_unit_rfx}",
|
||||
"Value": "${dimensionCarton.overall_height}"
|
||||
},
|
||||
"Width": {
|
||||
"Unit": "${length_unit_rfx}",
|
||||
"Value": "${dimensionCarton.overall_width}"
|
||||
}
|
||||
</#list>
|
||||
</#if>
|
||||
<#else>
|
||||
"ContainerType": "${despatched_ipg.hd_type_code?json_string}"
|
||||
<#if preparation_line.despatched_hds_list??>
|
||||
<#list preparation_line.despatched_hds_list?filter(j -> j?? && j.handling_device_number==despatched_ipg.hd_number) as dimensionHU>
|
||||
,
|
||||
"Length": {
|
||||
"Unit": "${length_unit_rfx}",
|
||||
"Value": "${dimensionHU.hd_type_depth}"
|
||||
},
|
||||
"Weight": {
|
||||
"Unit": "${weight_unit_rfx}",
|
||||
"Value": "${dimensionHU.hd_gross_weight}"
|
||||
},
|
||||
"Width": {
|
||||
"Unit": "${length_unit_rfx}",
|
||||
"Value": "${dimensionHU.hd_type_width}"
|
||||
}
|
||||
</#list>
|
||||
</#if>
|
||||
</#if>
|
||||
},
|
||||
|
||||
<#-- HU Metadata inclusin inclusion -->
|
||||
<#include "RFXtoRP_HsrPrepa_GoodsPrepared_HandlingUnitMetadata.ftl">
|
||||
,
|
||||
"PreparedContents" :[
|
||||
{
|
||||
"Goods": {
|
||||
"ItemID": "${preparation_line.item_code?trim?json_string}",
|
||||
"LVBranchID": "${preparation_line.item_lv_code?json_string}",
|
||||
|
||||
<#if (despatched_ipg.ipg_use_by_date?length != 0) && (despatched_ipg.ipg_use_by_date?starts_with("00")== false)>
|
||||
<#assign priority_date = despatched_ipg.ipg_use_by_date?datetime(rfx_date_format_default)?iso_utc />
|
||||
"PriorityDate": "${priority_date}",
|
||||
<#else>
|
||||
<#if (despatched_ipg.ipg_best_before_date?length != 0) && (despatched_ipg.ipg_best_before_date?starts_with("00")== false)>
|
||||
<#assign priority_date = despatched_ipg.ipg_best_before_date?datetime(rfx_date_format_default)?iso_utc />
|
||||
"PriorityDate": "${priority_date}",
|
||||
<#else>
|
||||
<#if (despatched_ipg.ipg_sell_by_date?length != 0) && (despatched_ipg.ipg_sell_by_date?starts_with("00")== false)>
|
||||
<#assign priority_date = despatched_ipg.ipg_sell_by_date?datetime(rfx_date_format_default)?iso_utc />
|
||||
"PriorityDate": "${priority_date}",
|
||||
<#else>
|
||||
<#if (despatched_ipg.ipg_manufacture_date?length != 0) && (despatched_ipg.ipg_manufacture_date?starts_with("00") == false)>
|
||||
<#assign priority_date = despatched_ipg.ipg_manufacture_date?datetime(rfx_date_format_default)?iso_utc />
|
||||
"PriorityDate": "${priority_date}",
|
||||
<#else>
|
||||
<#if (despatched_ipg.ipg_receipt_date?length != 0) && (despatched_ipg.ipg_receipt_date?starts_with("00")== false)>
|
||||
<#assign priority_date = despatched_ipg.ipg_receipt_date?datetime(rfx_date_format_default)?iso_utc />
|
||||
"PriorityDate": "${priority_date}",
|
||||
<#else>
|
||||
<#if (preparationOrder.stock_despatch_at_preparation_datetime?length != 0) && (preparationOrder.stock_despatch_at_preparation_datetime?starts_with("00")== false)>
|
||||
<#assign priority_date = preparationOrder.stock_despatch_at_preparation_datetime?datetime(rfx_date_format_default)?iso_utc />
|
||||
"PriorityDate": "${priority_date}",
|
||||
<#else>
|
||||
"PriorityDate": "1970-01-01T00:00:00Z",
|
||||
</#if>
|
||||
</#if>
|
||||
</#if>
|
||||
</#if>
|
||||
</#if>
|
||||
</#if>
|
||||
|
||||
<#-- Segmentation Keys inclusion -->
|
||||
<#include "RFXtoRP_HsrPrepa_GoodsPrepared_SegmentationKeys.ftl">
|
||||
},
|
||||
<#if preparation_line.preparation_order_originator_reference?? && preparation_line.preparation_order_originator_reference!="">
|
||||
"OrderID": "${preparation_line.preparation_order_originator_reference?trim?json_string}",
|
||||
"ExecutionflowID": "${preparation_line.pro_physical_depot_code?trim?json_string}${preparationOrder.activity_code?trim?json_string}${preparation_line.pro_originator_code?trim?json_string}${preparation_line.preparation_order_originator_reference?trim?json_string}",
|
||||
<#else>
|
||||
"OrderID": "O${preparation_line.pro_physical_depot_code?trim?json_string}${preparationOrder.activity_code?trim?json_string}${preparation_line.pro_originator_code?trim?json_string}${preparation_line.pro_year}${preparation_line.pro_number}",
|
||||
"ExecutionflowID": "O${preparation_line.pro_physical_depot_code?trim?json_string}${preparationOrder.activity_code?trim?json_string}${preparation_line.pro_originator_code?trim?json_string}${preparation_line.pro_year}${preparation_line.pro_number}",
|
||||
</#if>
|
||||
|
||||
<#if (preparation_line.pro_originator_reference_line_number!0) != 0>
|
||||
"LineID": "${preparation_line.pro_originator_reference_line_number}",
|
||||
<#else>
|
||||
"LineID": "${preparation_line.pro_line_number!0}",
|
||||
</#if>
|
||||
"ActorID": "${RFXtoRPprefixDepot(preparationOrder.physical_depot_code?trim?json_string)}",
|
||||
"Quantity": {
|
||||
"LVID": "${quantity_in_base_lv_RP_Cst}",
|
||||
"Value": ${despatched_ipg.quantity_lvs}
|
||||
}
|
||||
|
||||
}
|
||||
]
|
||||
}
|
||||
}<#sep>,</#sep>
|
||||
</#list>
|
||||
<#sep>,</#sep>
|
||||
</#list>
|
||||
]
|
||||
@@ -1,53 +0,0 @@
|
||||
<#include "HfRpConfig.ftl">
|
||||
<#include "ReflexUtils.ftl">
|
||||
[
|
||||
{
|
||||
"Header": {
|
||||
"ProjectID": "${projectRP}"
|
||||
},
|
||||
"ID": {
|
||||
"RefDate": {
|
||||
"AuthorTimeZone": "${time_zone_rfx}",
|
||||
"DateTime": "${HUadded_packing_datetime}"
|
||||
},
|
||||
<#if preparation_line.despatched_hds_list?? && preparation_line.despatched_hds_list?size != 0>
|
||||
<#list preparation_line.despatched_hds_list?filter(l -> l?? && l.handling_device_number==despatched_ipg.hd_number) as HuCycle>
|
||||
"RefID": "${despatched_ipg.hd_number}-${HuCycle.hd_creation_datetime}"
|
||||
</#list>
|
||||
<#else>
|
||||
"RefID": "${despatched_ipg.hd_number}"
|
||||
</#if>
|
||||
},
|
||||
|
||||
"Payload": {
|
||||
"Reference": "${despatched_ipg.hd_number}",
|
||||
<#if preparation_line.despatched_cartons_list?? && preparation_line.despatched_cartons_list?size != 0>
|
||||
<#list preparation_line.despatched_cartons_list?filter(l -> l?? && l.carton_number==despatched_ipg.carton_number) as HuCartonCycle>
|
||||
"IncludedHandlingunitIDs": [ "${despatched_ipg.carton_number}-${HuCartonCycle.carton_creation_datetime}" ]
|
||||
</#list>
|
||||
<#else>
|
||||
"IncludedHandlingunitIDs": [ "${despatched_ipg.carton_number}" ]
|
||||
</#if>
|
||||
<#if preparation_line.despatched_hds_list?? && preparation_line.despatched_hds_list[0]??>
|
||||
,
|
||||
"Information": {
|
||||
"ContainerType": "${preparation_line.despatched_hds_list[0].hd_type_code}",
|
||||
"Length": {
|
||||
"Unit": "${length_unit_rfx}",
|
||||
"Value": ${preparation_line.despatched_hds_list[0].hd_type_depth}
|
||||
},
|
||||
"Weight": {
|
||||
"Unit": "${weight_unit_rfx}",
|
||||
"Value": ${preparation_line.despatched_hds_list[0].hd_gross_weight}
|
||||
},
|
||||
"Width": {
|
||||
"Unit": "${length_unit_rfx}",
|
||||
"Value": ${preparation_line.despatched_hds_list[0].hd_type_width}
|
||||
}
|
||||
}
|
||||
</#if>,
|
||||
<#-- HU Metadata inclusin inclusion -->
|
||||
<#include "RFXtoRP_HsrPrepa_HUsAdded_Metadata.ftl">
|
||||
}
|
||||
}
|
||||
]
|
||||
@@ -1,81 +0,0 @@
|
||||
<#include "HfRpConfig.ftl">
|
||||
<#include "ReflexUtils.ftl">
|
||||
<#include "ActorPrefix.ftl">
|
||||
<#include "RFX_PartnerAPP_Settings.ftl">
|
||||
[
|
||||
<#assign dispatched_datetime4 = RfxDateTimetoUTCWithTimezone(preparationOrder.stock_despatch_at_preparation_datetime,time_zone_rfx) />
|
||||
{
|
||||
"Header": {
|
||||
"ProjectID": "${projectRP}"
|
||||
},
|
||||
"ID": {
|
||||
<#switch trackingNumberSource>
|
||||
<#case 1>
|
||||
<#if despatched_ipg.consignment_unit_id!="">
|
||||
"RefID": "${despatched_ipg.consignment_unit_id?trim?json_string}",
|
||||
</#if>
|
||||
<#break>
|
||||
<#case 2>
|
||||
<#if despatched_ipg.carton_number != "000000000000000000">
|
||||
"RefID":"${despatched_ipg.carton_number}",
|
||||
<#else>
|
||||
"RefID":"${despatched_ipg.hd_number}",
|
||||
</#if>
|
||||
<#break>
|
||||
<#case 3>
|
||||
<#if despatched_ipg.consignment_unit_id!="">
|
||||
"RefID": "${despatched_ipg.consignment_unit_id?trim?json_string}",
|
||||
<#else>
|
||||
<#if despatched_ipg.carton_number != "000000000000000000">
|
||||
"RefID":"${despatched_ipg.carton_number}",
|
||||
<#else>
|
||||
"RefID":"${despatched_ipg.hd_number}",
|
||||
</#if>
|
||||
</#if>
|
||||
<#break>
|
||||
<#default>
|
||||
<#if despatched_ipg.consignment_unit_id!="">
|
||||
"RefID": "${despatched_ipg.consignment_unit_id?trim?json_string}",
|
||||
<#else>
|
||||
<#if despatched_ipg.carton_number != "000000000000000000">
|
||||
"RefID":"${despatched_ipg.carton_number}",
|
||||
<#else>
|
||||
"RefID":"${despatched_ipg.hd_number}",
|
||||
</#if>
|
||||
</#if>
|
||||
</#switch>
|
||||
|
||||
"RefDate": {
|
||||
"DateTime": "${dispatched_datetime4}",
|
||||
"AuthorTimeZone": "${time_zone_rfx}"
|
||||
}
|
||||
},
|
||||
"Payload": {
|
||||
<#if despatched_ipg.carton_number != "000000000000000000">
|
||||
<#if preparation_line.despatched_cartons_list?? && preparation_line.despatched_cartons_list?size != 0>
|
||||
<#list preparation_line.despatched_cartons_list?filter(l -> l?? && l.carton_number==despatched_ipg.carton_number) as HuCartonCycle>
|
||||
"HandlingunitID": "${despatched_ipg.carton_number}-${HuCartonCycle.carton_creation_datetime}"
|
||||
</#list>
|
||||
<#else>
|
||||
"HandlingunitID": "${despatched_ipg.carton_number}"
|
||||
</#if>
|
||||
<#assign hd_numberHmap += {despatched_ipg.carton_number,despatched_ipg.carton_number}>
|
||||
<#else>
|
||||
<#if preparation_line.despatched_hds_list?? && preparation_line.despatched_hds_list?size != 0>
|
||||
<#list preparation_line.despatched_hds_list?filter(l -> l?? && l.handling_device_number==despatched_ipg.hd_number) as HuCycle>
|
||||
"HandlingunitID": "${despatched_ipg.hd_number}-${HuCycle.hd_creation_datetime}"
|
||||
</#list>
|
||||
<#else>
|
||||
"HandlingunitID": "${despatched_ipg.hd_number}"
|
||||
</#if>
|
||||
<#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!="" >
|
||||
,
|
||||
"HUCarrier":{
|
||||
"ActorID": "${RFXtoRPprefixCarrier(preparationOrder.load_data.carrier_code?trim?json_string)}"
|
||||
}
|
||||
</#if>
|
||||
}
|
||||
}
|
||||
]
|
||||
@@ -52,10 +52,6 @@
|
||||
},
|
||||
<#-- Header Metadata inclusion -->
|
||||
<#include "RFXtoRP_HsrPro_ExecutionflowDetected_HeaderMetadata.ftl">,
|
||||
<#-- Add transport grade code
|
||||
<#if preparation_order.transport_grade_code!="">
|
||||
"CarrierService":"${preparation_order.transport_grade_code?trim?json_string}",
|
||||
</#if> -->
|
||||
"ShipFrom": {
|
||||
"ActorID": "${RFXtoRPprefixDepot(preparation_order.physical_depot_code?trim?json_string)}"
|
||||
},
|
||||
@@ -107,40 +103,6 @@
|
||||
<#else>
|
||||
"OrderID": "O${preparation_order.physical_depot_code?trim?json_string}${preparation_order.activity_code?trim?json_string}${preparation_order.originator_code?trim?json_string}${preparation_order.preparation_order_year}${preparation_order.preparation_order_number}",
|
||||
</#if>
|
||||
<#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>
|
||||
"RequestedMilestones" :
|
||||
{
|
||||
"RequestedDeliveryDateTime" :
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
<#-- use protobuf of class HsrPro to find HARDIS WMS fields names -->
|
||||
|
||||
<#-- Best practices:
|
||||
If the SK is of type:
|
||||
- string: add ?json_string (e.g. "${stock.batch_1?json_string}")
|
||||
- boolean: possible values: true and false
|
||||
- datetime: expected format: 2025-10-30T10:12:10.000Z
|
||||
- decimal number: the separator is a point (e.g. 10.5)-->
|
||||
|
||||
"MetaData": [ ]
|
||||
@@ -89,51 +89,6 @@
|
||||
"ActorID":"${RFXtoRPprefixCarrier(receipt.carrier_informations.carrier_code?trim?json_string)}"
|
||||
},
|
||||
</#if>
|
||||
|
||||
<#if receipt.line_list??>
|
||||
"Lines" : [
|
||||
<#list receipt.line_list as line>
|
||||
{
|
||||
<#if line.receipt_reference_line_no?? && line.receipt_reference_line_no!=0>
|
||||
"LineID": "${line.receipt_reference_line_no}",
|
||||
<#else>
|
||||
"LineID": "${line.receipt_line_number}",
|
||||
</#if>
|
||||
<#-- 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>
|
||||
|
||||
"RequestedMilestones" :
|
||||
{
|
||||
"RequestedDeliveryDateTime" :
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
<#-- use protobuf of class HsrReceiptList to find HARDIS WMS fields names -->
|
||||
|
||||
<#-- Best practices:
|
||||
If the SK is of type:
|
||||
- string: add ?json_string (e.g. "${stock.batch_1?json_string}")
|
||||
- boolean: possible values: true and false
|
||||
- datetime: expected format: 2025-10-30T10:12:10.000Z
|
||||
- decimal number: the separator is a point (e.g. 10.5)-->
|
||||
|
||||
"MetaData": [ ]
|
||||
@@ -90,44 +90,6 @@
|
||||
{
|
||||
"ActorID":"${RFXtoRPprefixCarrier(receipt.carrier_informations.carrier_code?trim?json_string)}"
|
||||
},
|
||||
</#if>
|
||||
<#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>
|
||||
"RequestedMilestones" :
|
||||
{
|
||||
@@ -224,44 +186,6 @@
|
||||
{
|
||||
"ActorID":"${RFXtoRPprefixCarrier(receipt.carrier_informations.carrier_code?trim?json_string)}"
|
||||
},
|
||||
</#if>
|
||||
<#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>
|
||||
"RequestedMilestones" :
|
||||
{
|
||||
@@ -347,44 +271,6 @@
|
||||
{
|
||||
"ActorID":"${RFXtoRPprefixCarrier(receipt.carrier_informations.carrier_code?trim?json_string)}"
|
||||
},
|
||||
</#if>
|
||||
<#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>
|
||||
"RequestedMilestones" :
|
||||
{
|
||||
@@ -400,5 +286,5 @@
|
||||
</#if>
|
||||
</#list>
|
||||
</#if>
|
||||
</#if>
|
||||
]
|
||||
</#if>
|
||||
]
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
[
|
||||
{
|
||||
"Header": {
|
||||
"ProjectID": "${projectRP}"
|
||||
},
|
||||
"ID": {
|
||||
"RefID": "${id.refid?json_string}"
|
||||
},
|
||||
|
||||
"Payload": {
|
||||
"ShipFromAcked": true
|
||||
}
|
||||
|
||||
}
|
||||
]
|
||||
@@ -32,177 +32,7 @@
|
||||
}
|
||||
]
|
||||
<#break>
|
||||
<#-- *********************************************** ApiRestID = preparation_orders_post ******************** -->
|
||||
<#case "preparation_orders_post">
|
||||
<#switch restResponsetMsg.status!no_status>
|
||||
<#case no_status>
|
||||
[
|
||||
{
|
||||
<#if restResponsetMsg.body?? >
|
||||
<#assign restResponseBody = JsonUtil.decodeBase64(restResponsetMsg.body) />
|
||||
<#else>
|
||||
<#assign restResponseBody = "${restResponsetMsg?trim?json_string}" />
|
||||
</#if>
|
||||
<#assign apiReflexPlatformID = ApiReflexPlatformID.PlatformLogCreate>
|
||||
"apiReflexPlatformID" : "${apiReflexPlatformID}",
|
||||
"datas" :
|
||||
<#assign event = "RP_EXECUTIONFLOW_EVENT" />
|
||||
<#include "RFXtoRP_PlatformLogCreate.ftl">
|
||||
},
|
||||
{
|
||||
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowAllocationError>
|
||||
"apiReflexPlatformID" : "${apiReflexPlatformID}",
|
||||
"datas" :
|
||||
<#include "RFXtoRP_RestResponseAllocationError.ftl">
|
||||
}
|
||||
]
|
||||
<#break>
|
||||
<#case 200>
|
||||
<#case 201>
|
||||
<#assign restResponseBody = JsonUtil.decodeBase64(restResponsetMsg.body) />
|
||||
<#assign preparationOrderPostResponse = JsonUtil.jsonToMap(restResponseBody)>
|
||||
<#if preparationOrderPostResponse.status?? && (preparationOrderPostResponse.status == "SUCCESS" || preparationOrderPostResponse.status == "WARN") >
|
||||
<#if DeleteEF_Creation>
|
||||
[
|
||||
{
|
||||
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowDeleted>
|
||||
"apiReflexPlatformID" : "${apiReflexPlatformID}",
|
||||
"datas" :
|
||||
<#include "RFXtoRP_ExecutionflowDeleted.ftl">
|
||||
}
|
||||
]
|
||||
<#else>
|
||||
[
|
||||
{
|
||||
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowShipFromAcked>
|
||||
"apiReflexPlatformID" : "${apiReflexPlatformID}",
|
||||
"datas" :
|
||||
<#include "RFXtoRP_PrepOrder_ShipFromAcked.ftl">
|
||||
}
|
||||
]
|
||||
</#if>
|
||||
<#else>
|
||||
[
|
||||
{
|
||||
<#assign restResponseBody = JsonUtil.decodeBase64(restResponsetMsg.body) />
|
||||
<#assign apiReflexPlatformID = ApiReflexPlatformID.PlatformLogCreate>
|
||||
"apiReflexPlatformID" : "${apiReflexPlatformID}",
|
||||
"datas" :
|
||||
<#assign event = "RP_EXECUTIONFLOW_EVENT">
|
||||
<#include "RFXtoRP_PlatformLogCreate.ftl">
|
||||
},
|
||||
{
|
||||
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowAllocationError>
|
||||
"apiReflexPlatformID" : "${apiReflexPlatformID}",
|
||||
"datas" :
|
||||
<#include "RFXtoRP_RestResponseAllocationError.ftl">
|
||||
}
|
||||
]
|
||||
</#if>
|
||||
<#break>
|
||||
<#default>
|
||||
[
|
||||
{
|
||||
<#if restResponsetMsg.body?? >
|
||||
<#assign restResponseBody = JsonUtil.decodeBase64(restResponsetMsg.body) />
|
||||
<#else>
|
||||
<#assign restResponseBody = "${restResponsetMsg?trim?json_string}" />
|
||||
</#if>
|
||||
<#assign apiReflexPlatformID = ApiReflexPlatformID.PlatformLogCreate>
|
||||
"apiReflexPlatformID" : "${apiReflexPlatformID}",
|
||||
"datas" :
|
||||
<#assign event = "RP_EXECUTIONFLOW_EVENT" />
|
||||
<#include "RFXtoRP_PlatformLogCreate.ftl">
|
||||
},
|
||||
{
|
||||
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowAllocationError>
|
||||
"apiReflexPlatformID" : "${apiReflexPlatformID}",
|
||||
"datas" :
|
||||
<#include "RFXtoRP_RestResponseAllocationError.ftl">
|
||||
}
|
||||
]
|
||||
</#switch>
|
||||
<#break>
|
||||
<#-- *********************************************** ApiRestID = receipts_post ******************** -->
|
||||
<#case "receipts_post">
|
||||
<#switch restResponsetMsg.status!no_status>
|
||||
<#case no_status>
|
||||
[
|
||||
{
|
||||
<#if restResponsetMsg.body?? >
|
||||
<#assign restResponseBody = JsonUtil.decodeBase64(restResponsetMsg.body) />
|
||||
<#else>
|
||||
<#assign restResponseBody = "${restResponsetMsg?trim?json_string}" />
|
||||
</#if>
|
||||
<#assign apiReflexPlatformID = ApiReflexPlatformID.PlatformLogCreate>
|
||||
"apiReflexPlatformID" : "${apiReflexPlatformID}",
|
||||
"datas" :
|
||||
<#assign event = "RP_EXECUTIONFLOW_EVENT" />
|
||||
<#include "RFXtoRP_PlatformLogCreate.ftl">
|
||||
},
|
||||
{
|
||||
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowAllocationError>
|
||||
"apiReflexPlatformID" : "${apiReflexPlatformID}",
|
||||
"datas" :
|
||||
<#include "RFXtoRP_RestResponseAllocationError.ftl">
|
||||
}
|
||||
]
|
||||
<#break>
|
||||
<#case 200>
|
||||
<#case 201>
|
||||
<#assign restResponseBody = JsonUtil.decodeBase64(restResponsetMsg.body) />
|
||||
<#assign preparationOrderPostResponse = JsonUtil.jsonToMap(restResponseBody)>
|
||||
<#if preparationOrderPostResponse.status?? && (preparationOrderPostResponse.status == "SUCCESS" || preparationOrderPostResponse.status == "WARN") >
|
||||
[
|
||||
{
|
||||
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowDeleted>
|
||||
"apiReflexPlatformID" : "${apiReflexPlatformID}",
|
||||
"datas" :
|
||||
<#include "RFXtoRP_ExecutionflowDeleted.ftl">
|
||||
}
|
||||
]
|
||||
<#else>
|
||||
[
|
||||
{
|
||||
<#assign restResponseBody = JsonUtil.decodeBase64(restResponsetMsg.body) />
|
||||
<#assign apiReflexPlatformID = ApiReflexPlatformID.PlatformLogCreate>
|
||||
"apiReflexPlatformID" : "${apiReflexPlatformID}",
|
||||
"datas" :
|
||||
<#assign event = "RP_EXECUTIONFLOW_EVENT" />
|
||||
<#include "RFXtoRP_PlatformLogCreate.ftl">
|
||||
},
|
||||
{
|
||||
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowAllocationError>
|
||||
"apiReflexPlatformID" : "${apiReflexPlatformID}",
|
||||
"datas" :
|
||||
<#include "RFXtoRP_RestResponseAllocationError.ftl">
|
||||
}
|
||||
]
|
||||
</#if>
|
||||
<#break>
|
||||
<#default>
|
||||
[
|
||||
{
|
||||
<#if restResponsetMsg.body?? >
|
||||
<#assign restResponseBody = JsonUtil.decodeBase64(restResponsetMsg.body) />
|
||||
<#else>
|
||||
<#assign restResponseBody = "${restResponsetMsg?trim?json_string}" />
|
||||
</#if>
|
||||
<#assign apiReflexPlatformID = ApiReflexPlatformID.PlatformLogCreate>
|
||||
"apiReflexPlatformID" : "${apiReflexPlatformID}",
|
||||
"datas" :
|
||||
<#assign event = "RP_EXECUTIONFLOW_EVENT" />
|
||||
<#include "RFXtoRP_PlatformLogCreate.ftl">
|
||||
},
|
||||
{
|
||||
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowAllocationError>
|
||||
"apiReflexPlatformID" : "${apiReflexPlatformID}",
|
||||
"datas" :
|
||||
<#include "RFXtoRP_RestResponseAllocationError.ftl">
|
||||
}
|
||||
]
|
||||
</#switch>
|
||||
<#break>
|
||||
|
||||
<#-- *********************************************** Appointment_post_create ******************** -->
|
||||
<#case "appointment_post_create">
|
||||
<#switch restResponsetMsg.status!no_status>
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
<#include "HfRpConfig.ftl">
|
||||
<#include "ReflexUtils.ftl">
|
||||
|
||||
[
|
||||
{
|
||||
"Header": {
|
||||
"ProjectID": "${projectRP}"
|
||||
},
|
||||
"ID": {
|
||||
"RefID": "${id.refid!"no RefID"?trim?json_string}",
|
||||
"RefDate": {
|
||||
"DateTime": "${aDateTime?iso_utc}",
|
||||
"AuthorTimeZone": "${time_zone_rfx}"
|
||||
}
|
||||
},
|
||||
|
||||
"Payload": {}
|
||||
|
||||
}
|
||||
]
|
||||
@@ -1,52 +0,0 @@
|
||||
<#-- **** input parameters ***** -->
|
||||
<#-- input : message HARDIS WMS -->
|
||||
<#-- project : projectId in HARDIS SC NETWORK -->
|
||||
<#-- organisation : organisationtId in HARDIS SC NETWORK -->
|
||||
<#include "HfRpConfig.ftl">
|
||||
<#include "ReflexUtils.ftl">
|
||||
|
||||
<#assign eventRP = JsonUtil.jsonToMap(input)>
|
||||
<#assign projectRP = project>
|
||||
<#assign organisationRP = organisation>
|
||||
|
||||
<#-- initialisation map for SegmentationKey and MetaData -->
|
||||
<#assign Header_MetaData_Map = {} />
|
||||
<#assign SegmentationKeys_Map = {} />
|
||||
<#assign Line_MetaData_Map = {} />
|
||||
|
||||
|
||||
<#switch eventRP.event>
|
||||
<#case "Created">
|
||||
<#case "Renotified">
|
||||
<#-- *********************************************** Action = CREATE or UPDATE ******************** -->
|
||||
<#assign executionflow = eventRP.data />
|
||||
|
||||
<#-- ******* Header MetaData to maps ******** -->
|
||||
<#if executionflow.MetaData??>
|
||||
<#assign Header_MetaData_Map = JsonUtil.sequenceToMap(executionflow.MetaData, "Key", "Value") />
|
||||
</#if>
|
||||
|
||||
[
|
||||
<#if eventRP.partnerAppRole == "ShipFrom" && executionflow.ShipFrom.ActorID != "" && executionflow.ShipFrom.Actor.IsShipFromConnected?? && executionflow.ShipFrom.Actor.IsShipFromConnected>
|
||||
{
|
||||
<#assign apiRestReflexID = ApiRestReflexID.preparation_orders_post>
|
||||
"apiRestReflexID" : "${apiRestReflexID}",
|
||||
"datas" :
|
||||
<#include "RPtoRFX_PrepOrder.ftl">
|
||||
}
|
||||
</#if>
|
||||
<#if eventRP.partnerAppRole == "ShipTo" && executionflow.ShipTo.ActorID != "" && executionflow.ShipTo.Actor.IsShipToConnected?? && executionflow.ShipTo.Actor.IsShipToConnected>
|
||||
{
|
||||
<#assign apiRestReflexID = ApiRestReflexID.receipts_post>
|
||||
"apiRestReflexID" : "${apiRestReflexID}",
|
||||
"datas" :
|
||||
<#include "RPtoRFX_Receipt.ftl">
|
||||
}
|
||||
</#if>
|
||||
|
||||
]
|
||||
<#break>
|
||||
<#default>
|
||||
<#stop >
|
||||
</#switch>
|
||||
|
||||
@@ -1,115 +0,0 @@
|
||||
<#include "RPtoRFX_PrepOrder_DefaultHeaderData.ftl">
|
||||
<#include "ActorPrefix.ftl">
|
||||
<#include "HfRpConfig.ftl">
|
||||
<#-- Valeurs par défaut Adresse -->
|
||||
<#-- Default values -->
|
||||
<#assign typecode ="010">
|
||||
<#assign titlecode ="1">
|
||||
<#assign contacttypecode ="010">
|
||||
<#assign adresstypecode ="010">
|
||||
<#-- 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 HARDIS WMS to use this feature -->
|
||||
<#assign defaultactor ="VIZ">
|
||||
<#if executionflow.ShipTo.ActorID?? && executionflow.ShipTo.ActorID!="">
|
||||
<#assign actorID = "${RPtoRFXprefixConsignee(executionflow.ShipTo.ActorID)}" >
|
||||
<#else>
|
||||
<#assign actorID = defaultactor >
|
||||
</#if>
|
||||
|
||||
{
|
||||
"id" : {"refid" : "${eventRP.refid?json_string}"},
|
||||
"route" : "rest/public/v1/activities/{activity_code}/physical_depots/{physical_depot_code}/originators/{originator_code}/preparation_orders",
|
||||
"method" : "POST",
|
||||
"uri_substitutions": {
|
||||
"activity_code": "${activity_code}",
|
||||
"physical_depot_code": "${RPtoRFXprefixDepot(executionflow.ShipFrom.ActorID)}",
|
||||
"originator_code": "${originator_code}"
|
||||
},
|
||||
"payload" :
|
||||
{
|
||||
<#include "RPtoRFX_PrepOrder_HeaderMetadata.ftl">
|
||||
"originator_reference": "${executionflow.OrderID?json_string}",
|
||||
"preparation_type_code": "${preparation_type_code}",
|
||||
"end_consignee_code": "${actorID}",
|
||||
<#if executionflow.RequestedMilestones?? && executionflow.RequestedMilestones.RequestedDeliveryDateTime??>
|
||||
"requested_delivery_start_datetime": "${DateTimeUTCtoRfxLocale(executionflow.RequestedMilestones.RequestedDeliveryDateTime.DateTime,time_zone_rfx)}",
|
||||
<#else>
|
||||
"requested_delivery_start_datetime": "${DateTimeUTCtoRfxLocale(.now?iso_utc?string,time_zone_rfx)}",
|
||||
</#if>
|
||||
"requested_delivery_date_type": "${requested_delivery_date_type}",
|
||||
"consolidated_delivery": "false",
|
||||
"pick_sequence_code": "${pick_sequence_code}",
|
||||
"intermediate_consignee": "false",
|
||||
"protected": "false",
|
||||
"automatic_generation": "true",
|
||||
"deactivate": "false",
|
||||
"optional_attributes": {
|
||||
<#include "RPtoRFX_PrepOrder_OptionalAttributes.ftl">
|
||||
"apt_with_end_consignee": "false",
|
||||
"apt_with_intermediate": "false",
|
||||
"load_grouping": "${load_grouping}"
|
||||
}
|
||||
<#if actorID == defaultactor >
|
||||
,
|
||||
"address": {
|
||||
"type_code": "${typecode}",
|
||||
"title_code" : "${titlecode}",
|
||||
"contact_type_code" : "${contacttypecode}",
|
||||
"address_type_code" : "${adresstypecode}",
|
||||
"first_name": "${(executionflow.ShipTo.Contact.FirstName!"")?json_string}",
|
||||
"last_name" :"${(executionflow.ShipTo.Contact.LastName!"")?json_string}",
|
||||
<#if executionflow.ShipTo.Actor.Address.Name?? && executionflow.ShipTo.Actor.Address.Name!="">
|
||||
"name_or_company_name" : "${(executionflow.ShipTo.Actor.Address.Name!"")?json_string}",
|
||||
<#else>
|
||||
"name_or_company_name" : "${(executionflow.ShipTo.Contact.FirstName!"")?json_string} ${(executionflow.ShipTo.Contact.LastName!"")?json_string}",
|
||||
</#if>
|
||||
<#if executionflow.ShipTo.Contact.Emails?? && executionflow.ShipTo.Contact.Emails[0]!="">
|
||||
"mail_address": "${executionflow.ShipTo.Contact.Emails[0]?json_string}",
|
||||
</#if>
|
||||
<#if executionflow.ShipTo.Contact.Phones?? && executionflow.ShipTo.Contact.Phones[0]!="">
|
||||
"mobile_phone_number": "${executionflow.ShipTo.Contact.Phones[0]?json_string}",
|
||||
</#if>
|
||||
"street_and_number_and_po_box": "${(executionflow.ShipTo.Actor.Address.StreetAddressOne!"")?json_string}",
|
||||
"additional_address_data_1": "${(executionflow.ShipTo.Actor.Address.StreetAddressTwo!"")?json_string}",
|
||||
"additional_address_data_2": "${(executionflow.ShipTo.Actor.Address.StreetAddressThree!"")?json_string}",
|
||||
"postal_code": "${(executionflow.ShipTo.Actor.Address.PostalCode!"")?json_string}",
|
||||
"post_code_area_name" : "${(executionflow.ShipTo.Actor.Address.City!"")?json_string}",
|
||||
"iso_country_code": "${(executionflow.ShipTo.Actor.Address.CountryCode!"")?json_string}"
|
||||
}
|
||||
</#if>
|
||||
<#if executionflow.Lines??>
|
||||
,
|
||||
"line_list": [
|
||||
<#list executionflow.Lines as line>
|
||||
<#-- ******* line MetaData and Segmentationkeys to maps ******** -->
|
||||
<#if line.MetaData??>
|
||||
<#assign Line_MetaData_Map = JsonUtil.sequenceToMap(line.MetaData, "Key", "Value") />
|
||||
<#else>
|
||||
<#assign Line_MetaData_Map = {} />
|
||||
</#if>
|
||||
<#if line.RequestedContent.Goods.SegmentationKeys??>
|
||||
<#assign SegmentationKeys_Map = JsonUtil.sequenceToMap(line.RequestedContent.Goods.SegmentationKeys, "Key", "Value") />
|
||||
<#else>
|
||||
<#assign SegmentationKeys_Map = {} />
|
||||
</#if>
|
||||
<#include "RPtoRFX_PrepOrder_DefaultLineData.ftl">
|
||||
{
|
||||
<#include "RPtoRFX_PrepOrder_LineMetadata.ftl">
|
||||
"originator_reference_line_number": ${line.LineID?number},
|
||||
"item_code": "${line.RequestedContent.Goods.ItemID?json_string!""}",
|
||||
"item_lv_code": "${line.RequestedContent.Goods.LVBranchID!""}",
|
||||
"base_lv_quantity_to_prepare": ${line.RequestedMetrics.QuantityInBaseLV.Value!0},
|
||||
"owner_code_to_prepare" :"${owner_code_to_prepare}",
|
||||
"grade_code_to_prepare" :"${grade_code_to_prepare}",
|
||||
"input_order_data": "false",
|
||||
"batch_1": "${batch_1?json_string}",
|
||||
"base_lv_quantity": "true",
|
||||
"any_lv": "false"
|
||||
}
|
||||
<#sep>,</#sep>
|
||||
</#list>
|
||||
]
|
||||
</#if>
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,43 +0,0 @@
|
||||
<#-- Note : you can use Order Header Metadata, using the define map : Header_MetaData_Map -->
|
||||
|
||||
<#-- How to use MD Header map
|
||||
Example :
|
||||
<#assign pick_sequence_code = Header_MetaData_Map["OrderType"].String!""/>
|
||||
|
||||
If your MD is :
|
||||
Boolean : .Bool
|
||||
Float : .Float
|
||||
Timestamp : .Timestamp.DateTime or .Timestamp.AuthorTimeZone
|
||||
Int : .Int
|
||||
String : .String
|
||||
-->
|
||||
|
||||
|
||||
|
||||
<#assign activity_code = ""/>
|
||||
<#assign originator_code = ""/>
|
||||
<#assign preparation_type_code = "010"/>
|
||||
<#assign requested_delivery_date_type = "010"/>
|
||||
<#assign pick_sequence_code = ""/>
|
||||
|
||||
<#-- A supprimer si utilisation de la table de correspondance-->
|
||||
<#--To be deleted if using the correspondence table-->
|
||||
<#assign load_grouping = "">
|
||||
|
||||
|
||||
<#-- Table de correspondance Transporteur/Code regroupement chargement,
|
||||
affectation à un chargement si paramétrage regroupement chargement+plan de base distribution-->
|
||||
<#--Carrier / Load Grouping Code Correspondence Table,
|
||||
Assigning to a load if you set up Load Grouping+Distribution Master Plan-->
|
||||
<#-- Example -->
|
||||
<#--<#if executionflow.Carrier.ActorID == "TEST" >
|
||||
<#assign load_grouping = "TEST">
|
||||
<#else>
|
||||
<#assign load_grouping = "default">
|
||||
</#if>-->
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
<#-- Note : you can use Order Line Metadata, using the define map : Line_MetaData_Map -->
|
||||
<#-- Note : you can use Order Line Segmentation keys, using the define map : SegmentationKeys_Map -->
|
||||
|
||||
<#-- How to use MD or SK map
|
||||
Example :
|
||||
<#assign owner_code_to_prepare = SegmentationKeys_Map["Owner"].String!""/>
|
||||
|
||||
If your SK is :
|
||||
Boolean : .Bool
|
||||
Float : .Float
|
||||
Timestamp : .Timestamp.DateTime or .Timestamp.AuthorTimeZone
|
||||
Int : .Int
|
||||
String : .String
|
||||
-->
|
||||
|
||||
<#assign owner_code_to_prepare = SegmentationKeys_Map["myOwner"]!""/>
|
||||
<#assign grade_code_to_prepare =""/>
|
||||
<#assign batch_1 =""/>
|
||||
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
<#-- Vous pouvez mapper les métadonnées avec des informations complémentaires, des commentaires... -->
|
||||
<#-- You can map metadata with additional information,comments... -->
|
||||
|
||||
<#--
|
||||
<#if Header_MetaData_Map["Color"]??>
|
||||
<#assign COLOR = Header_MetaData_Map["Color"].String/>
|
||||
<#if COLOR??>
|
||||
,
|
||||
"additional_data_value_list":
|
||||
[
|
||||
{
|
||||
"code": "Color",
|
||||
"value": "${COLOR}"
|
||||
}
|
||||
]
|
||||
</#if>,
|
||||
-->
|
||||
@@ -1,17 +0,0 @@
|
||||
<#-- Vous pouvez mapper les métadonnées avec des informations complémentaires, des commentaires... -->
|
||||
<#-- You can map metadata with additional information,comments... -->
|
||||
|
||||
<#--
|
||||
<#if Header_MetaData_Map["Color"]??>
|
||||
<#assign COLOR = Header_MetaData_Map["Color"].String/>
|
||||
<#if COLOR??>
|
||||
,
|
||||
"additional_data_value_list":
|
||||
[
|
||||
{
|
||||
"code": "Color",
|
||||
"value": "${COLOR}"
|
||||
}
|
||||
]
|
||||
</#if>,
|
||||
-->
|
||||
@@ -1,8 +0,0 @@
|
||||
<#-- Here are the fields that can be added
|
||||
"end_consignee_apt_start_datetime": "0000-00-00T00:00:00",
|
||||
"end_consignee_apt_end_datetime": "0000-00-00T00:00:00",
|
||||
"reason_code": "str",
|
||||
"planned_preparation_date": "0000-00-00",
|
||||
"despatch_grouping": "string",
|
||||
"reservation_end_datetime": "0000-00-00T00:00:00",
|
||||
-->
|
||||
@@ -1,67 +0,0 @@
|
||||
<#include "RPtoRFX_Receipt_DefaultHeaderData.ftl">
|
||||
<#include "ActorPrefix.ftl">
|
||||
<#include "HfRpConfig.ftl">
|
||||
|
||||
{
|
||||
"id" : {"refid" : "${eventRP.refid?json_string}"},
|
||||
"route" : "rest/public/v1/activities/{activity_code}/physical_depots/{physical_depot_code}/originators/{originator_code}/receipts",
|
||||
"method" : "POST",
|
||||
"uri_substitutions": {
|
||||
"activity_code": "${activity_code}",
|
||||
"physical_depot_code": "${RPtoRFXprefixDepot(executionflow.ShipTo.ActorID!"")}",
|
||||
"originator_code": "${originator_code}"
|
||||
},
|
||||
"payload" :
|
||||
{
|
||||
<#include "RPtoRFX_Receipt_HeaderMetadata.ftl">
|
||||
"receipt_reference": "${executionflow.OrderID?json_string}",
|
||||
"receipt_type": "${receipt_type}",
|
||||
"receipt_reason_code": "${receipt_reason_code}",
|
||||
"work_mode_code" : "${work_mode_code}",
|
||||
"original_code" : "${RPtoRFXprefixSupplier(executionflow.ShipFrom.ActorID)}",
|
||||
"carrier_code" : "${RPtoRFXprefixCarrier(executionflow.Carrier.ActorID!"")}",
|
||||
<#if executionflow.RequestedMilestones?? && executionflow.RequestedMilestones.RequestedDeliveryDateTime??>
|
||||
"receipt_datetime": "${DateTimeUTCtoRfxLocale(executionflow.RequestedMilestones.RequestedDeliveryDateTime.DateTime,time_zone_rfx)}",
|
||||
<#else>
|
||||
"receipt_datetime": "${DateTimeUTCtoRfxLocale(.now?iso_utc?string,time_zone_rfx)}",
|
||||
</#if>
|
||||
"carrier_appointment_made": "false",
|
||||
"receipt_in_cross_docking": "false",
|
||||
"dock_occupation_duration": 1
|
||||
|
||||
<#if executionflow.Lines??>
|
||||
,
|
||||
"line_list": [
|
||||
<#list executionflow.Lines as line>
|
||||
|
||||
<#-- ******* line MetaData and Segmentationkeys to maps ******** -->
|
||||
<#if line.MetaData??>
|
||||
<#assign Line_MetaData_Map = JsonUtil.sequenceToMap(line.MetaData, "Key", "Value") />
|
||||
<#else>
|
||||
<#assign Line_MetaData_Map = {} />
|
||||
</#if>
|
||||
<#if line.RequestedContent.Goods.SegmentationKeys??>
|
||||
<#assign SegmentationKeys_Map = JsonUtil.sequenceToMap(line.RequestedContent.Goods.SegmentationKeys, "Key", "Value") />
|
||||
<#else>
|
||||
<#assign SegmentationKeys_Map = {} />
|
||||
</#if>
|
||||
<#include "RPtoRFX_Receipt_DefaultLineData.ftl">
|
||||
{
|
||||
<#include "RPtoRFX_Receipt_LineMetadata.ftl">
|
||||
"receipt_reference_line_no": ${line.LineID?number},
|
||||
"item_code": "${line.RequestedContent.Goods.ItemID?json_string!""}",
|
||||
"item_lv_code": "${line.RequestedContent.Goods.LVBranchID!""}",
|
||||
"level_1_quantity": ${line.RequestedMetrics.QuantityInBaseLV.Value!0},
|
||||
"owner_code": "${owner_code}",
|
||||
"grade_code": "${grade_code}",
|
||||
"batch_1": "${batch_1?json_string!""}",
|
||||
"optional_attributes": {
|
||||
<#include "RPtoRFX_Receipt_OptionalAttributes.ftl">
|
||||
"hold_for_specific_code": "false"
|
||||
}
|
||||
}<#sep>,</#sep>
|
||||
</#list>
|
||||
]
|
||||
</#if>
|
||||
}
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
<#-- Note : you can use Order Header Metadata, using the define map : Header_MetaData_Map -->
|
||||
|
||||
<#-- How to use MD Header map
|
||||
Example :
|
||||
<#assign receipt_type = Header_MetaData_Map["OrderType"].String!""/>
|
||||
|
||||
If your MD is :
|
||||
Boolean : .Bool
|
||||
Float : .Float
|
||||
Timestamp : .Timestamp.DateTime or .Timestamp.AuthorTimeZone
|
||||
Int : .Int
|
||||
String : .String
|
||||
-->
|
||||
|
||||
<#assign activity_code = ""/>
|
||||
<#assign originator_code = ""/>
|
||||
<#assign receipt_type = ""/>
|
||||
<#assign receipt_reason_code = ""/>
|
||||
<#assign work_mode_code = ""/>
|
||||
@@ -1,19 +0,0 @@
|
||||
<#-- Note : you can use Order Line Metadata, using the define map : Line_MetaData_Map -->
|
||||
<#-- Note : you can use Order Line Segmentation keys, using the define map : SegmentationKeys_Map -->
|
||||
|
||||
<#-- How to use MD or SK map
|
||||
Example :
|
||||
<#assign owner_code = SegmentationKeys_Map["Owner"].String!""/>
|
||||
|
||||
If your SK is :
|
||||
Boolean : .Bool
|
||||
Float : .Float
|
||||
Timestamp : .Timestamp.DateTime or .Timestamp.AuthorTimeZone
|
||||
Int : .Int
|
||||
String : .String
|
||||
-->
|
||||
|
||||
|
||||
<#assign owner_code = ""/>
|
||||
<#assign grade_code = ""/>
|
||||
<#assign batch_1 = ""/>
|
||||
@@ -1,17 +0,0 @@
|
||||
<#-- Vous pouvez mapper les métadonnées avec des informations complémentaires, des commentaires... -->
|
||||
<#-- You can map metadata with additional information,comments... -->
|
||||
|
||||
<#--
|
||||
<#if Header_MetaData_Map["Color"]??>
|
||||
<#assign COLOR = Header_MetaData_Map["Color"].String/>
|
||||
<#if COLOR??>
|
||||
,
|
||||
"additional_data_value_list":
|
||||
[
|
||||
{
|
||||
"code": "Color",
|
||||
"value": "${COLOR}"
|
||||
}
|
||||
]
|
||||
</#if>,
|
||||
-->
|
||||
@@ -1,17 +0,0 @@
|
||||
<#-- Vous pouvez mapper les métadonnées avec des informations complémentaires, des commentaires... -->
|
||||
<#-- You can map metadata with additional information,comments... -->
|
||||
|
||||
<#--
|
||||
<#if Header_MetaData_Map["Color"]??>
|
||||
<#assign COLOR = Header_MetaData_Map["Color"].String/>
|
||||
<#if COLOR??>
|
||||
,
|
||||
"additional_data_value_list":
|
||||
[
|
||||
{
|
||||
"code": "Color",
|
||||
"value": "${COLOR}"
|
||||
}
|
||||
]
|
||||
</#if>,
|
||||
-->
|
||||
@@ -1,16 +0,0 @@
|
||||
<#-- 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"
|
||||
-->
|
||||
Reference in New Issue
Block a user