diff --git a/RFXtoRP_HfDtlStockLs.ftl b/RFXtoRP_HfDtlStockLs.ftl index 14595ff..1c514ab 100644 --- a/RFXtoRP_HfDtlStockLs.ftl +++ b/RFXtoRP_HfDtlStockLs.ftl @@ -6,7 +6,7 @@ <#include "HfRpConfig.ftl"> -<#assign cloudEventMsg = JsonUtil.jsonToMap(input)> +<#assign cloudEventMsg = JsonUtil.jsonToMap(input)> <#assign projectRP = project> <#assign organisationRP = organisation> @@ -16,44 +16,44 @@ <#-- *********************************************** 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??> + <#if cloudEventMsg.messageSet??> <#assign idSnapshot = cloudEventMsg.messageSet /> <#else> <#assign idSnapshot = cloudEventMsg.id /> - - + + <#list reflexStockPicturesInterface.detailled_stock_list as stock> <#if stock.stock_type_code != "200"> - <#stop "stock type different from 200"> - <#break> - - - [ - { + <#stop> + <#break> + + + [ + { <#if sum_elt??> - <#assign apiReflexPlatformID = ApiReflexPlatformID.ActorSnapshotCompleted> + <#assign apiReflexPlatformID = ApiReflexPlatformID.ActorSnapshotCompleted> "apiReflexPlatformID" : "${apiReflexPlatformID}", - "datas" : - <#include "RFXtoRP_HfDtlStockLs_ActorSnapshotCompleted.ftl"> + "datas" : + <#include "RFXtoRP_HfDtlStockLs_ActorSnapshotCompleted.ftl"> <#else> - <#assign apiReflexPlatformID = ApiReflexPlatformID.StockSnapshotted> + <#assign apiReflexPlatformID = ApiReflexPlatformID.StockSnapshotted> "apiReflexPlatformID" : "${apiReflexPlatformID}", - "datas" : + "datas" : <#include "RFXtoRP_HfDtlStockLs_StockSnapshotted.ftl"> - + } - ] + ] <#break> - + <#case "D"> <#-- *********************************************** Action = DELETE ******************** --> <#stop "event not supported"> <#break> - - + + <#default> <#stop "event not supported"> diff --git a/RFXtoRP_HfDtlStockLs_StockSnapshotted.ftl b/RFXtoRP_HfDtlStockLs_StockSnapshotted.ftl index 8ea6c58..9152df1 100644 --- a/RFXtoRP_HfDtlStockLs_StockSnapshotted.ftl +++ b/RFXtoRP_HfDtlStockLs_StockSnapshotted.ftl @@ -3,16 +3,16 @@ <#list reflexStockPicturesInterface.detailled_stock_list as stock> { "Header": { - "ProjectID": "${projectRP}" + "ProjectID": "${projectRP}" }, "Payload": { "ActorID": "${stock.physical_depot_code}", <#assign generation_date = RfxDateTimetoUTC(stock.generation_date,time_zone_offset_rfx) /> "Snapshot": { "DateTime": { - "DateTime": "${generation_date}", - "AuthorTimeZone": "${time_zone_rfx}" - }, + "DateTime": "${generation_date}", + "AuthorTimeZone": "${time_zone_rfx}" + }, "ID": "${stock.physical_depot_code}-${idSnapshot}", "Quantity": { @@ -20,21 +20,21 @@ "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 /> + <#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}", - + <#-- Segmentation keys inclusion --> <#include "RFXtoRP_HfDtlStockLs_StockSnapshotted_SegmentationKeys.ftl"> - } - + } + } }<#sep>, - + ] diff --git a/RFXtoRP_HfExpGrpList.ftl b/RFXtoRP_HfExpGrpList.ftl index 64cf79d..affae42 100644 --- a/RFXtoRP_HfExpGrpList.ftl +++ b/RFXtoRP_HfExpGrpList.ftl @@ -1,5 +1,5 @@ <#-- *********************************************** Parameter global ******************** --> -<#assign cloudEventMsg = JsonUtil.jsonToMap(input)> +<#assign cloudEventMsg = JsonUtil.jsonToMap(input)> <#assign projectRP = project> <#assign organisationRP = organisation> <#include "HfExpGrpList.ftl"> @@ -15,14 +15,14 @@ <#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) /> <#assign file = JsonUtil.jsonToMap(dataRfx)> - <#assign temp = ExpiryGroupList64> + <#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])> <#assign output = JsonUtil.print(temp)> -${output} +${output} <#break> - + <#default> <#stop > diff --git a/RFXtoRP_HfLvTypeList.ftl b/RFXtoRP_HfLvTypeList.ftl index e1e6399..584df9a 100644 --- a/RFXtoRP_HfLvTypeList.ftl +++ b/RFXtoRP_HfLvTypeList.ftl @@ -1,5 +1,5 @@ <#-- *********************************************** Parameter global ******************** --> -<#assign cloudEventMsg = JsonUtil.jsonToMap(input)> +<#assign cloudEventMsg = JsonUtil.jsonToMap(input)> <#assign projectRP = project> <#assign organisationRP = organisation> @@ -10,11 +10,11 @@ <#case "U"> <#case "D"> - <#stop "no generic FTL file available yet for LV types"> + <#stop "no generic FTL file available yet for LV types"> <#break> - - + + <#default> <#stop "event not supported"> diff --git a/RFXtoRP_HsaCarrier_ActorCreated.ftl b/RFXtoRP_HsaCarrier_ActorCreated.ftl index 6f7ba3e..8c35239 100644 --- a/RFXtoRP_HsaCarrier_ActorCreated.ftl +++ b/RFXtoRP_HsaCarrier_ActorCreated.ftl @@ -1,32 +1,32 @@ [ - { + { "Header": { - "ProjectID": "${projectRP}" + "ProjectID": "${projectRP}" }, "ID": { "RefID": "${carrier.carrier_code?trim?json_string}" }, - + "Payload": { "Name": "${carrier.carrier_designation?json_string}", "ManagedStock": false, "IsCarrier": true, <#-- ***Partner ID could be added here *** --> <#-- "PartnerID": "${}", --> - + <#-- <#include "RFXtoRP_HsaCarrier_ActorCreated_Metadata.ftl">, --> - + "Address": { <#-- if Reflex WMS address is structured --> - <#if carrier.carrier_structured_address?? > + <#if carrier.carrier_structured_address?? > "Name": "${carrier.carrier_structured_address.name_or_company?json_string}", "StreetAddressOne" : "${carrier.carrier_structured_address.street_and_PO?json_string}", - "StreetAddressTwo" : "${carrier.carrier_structured_address.additionnal_data?json_string}", + "StreetAddressTwo" : "${carrier.carrier_structured_address.additionnal_data?json_string}", "PostalCode" : "${carrier.carrier_structured_address.postal_code?json_string}", "City" : "${carrier.carrier_structured_address.post_code_area_name?json_string}", "CountryCode" : "${carrier.carrier_structured_address.country_code?json_string}", @@ -40,15 +40,15 @@ "StreetAddressOne" : "${carrier.address.address_1?json_string}", "StreetAddressTwo" : "${carrier.address.address_2?json_string}", "StreetAddressThree" : "${carrier.address.address_3?json_string}" - - + + }, <#if carrier.address??> - "Phones": ["${carrier.address.telephone?json_string}", + "Phones": ["${carrier.address.telephone?json_string}", "${carrier.address.other_number?json_string}" ], "Typology": "TYPOLOGY_CARRIER" } - } + } ] diff --git a/RFXtoRP_HsaCarrier_ActorDeleted.ftl b/RFXtoRP_HsaCarrier_ActorDeleted.ftl index b3aed7c..5e131c4 100644 --- a/RFXtoRP_HsaCarrier_ActorDeleted.ftl +++ b/RFXtoRP_HsaCarrier_ActorDeleted.ftl @@ -1,12 +1,12 @@ [ - { + { "Header": { - "ProjectID": "${projectRP}" + "ProjectID": "${projectRP}" }, "ID": { "RefID": "${carrier.carrier_code?trim?json_string}" }, - + "Payload": {} - } + } ] diff --git a/RFXtoRP_HsaCons_ActorCreated.ftl b/RFXtoRP_HsaCons_ActorCreated.ftl index 3b22fc6..97b21f8 100644 --- a/RFXtoRP_HsaCons_ActorCreated.ftl +++ b/RFXtoRP_HsaCons_ActorCreated.ftl @@ -17,7 +17,7 @@ <#-- <#include "RFXtoRP_HsaCons_ActorCreated_Metadata.ftl">, --> - + "Address": { @@ -26,7 +26,7 @@ "Name": "${actor.consignee_structured_address.name_or_company?json_string}", "StreetAddressOne" : "${actor.consignee_structured_address.street_and_PO?json_string}", - "StreetAddressTwo" : "${actor.consignee_structured_address.additionnal_data?json_string}", + "StreetAddressTwo" : "${actor.consignee_structured_address.additionnal_data?json_string}", "PostalCode" : "${actor.consignee_structured_address.postal_code?json_string}", "City" : "${actor.consignee_structured_address.post_code_area_name?json_string}", "CountryCode" : "${actor.consignee_structured_address.country_code?json_string}", @@ -34,20 +34,20 @@ "State": "${actor.consignee_structured_address.country_designation?json_string}" <#-- if Reflex WMS is not structured --> - <#else> + <#else> <#if actor.address?? > "Name": "${actor.address.company_name?json_string}", "StreetAddressOne" : "${actor.address.address_1?json_string}", "StreetAddressTwo" : "${actor.address.address_2?json_string}", - "StreetAddressThree" : "${actor.address.address_3?json_string}" - - - }, - <#if actor.address?? > - "Phones": ["${actor.address.telephone?json_string}", + "StreetAddressThree" : "${actor.address.address_3?json_string}" + + + }, + <#if actor.address?? > + "Phones": ["${actor.address.telephone?json_string}", "${actor.address.other_number?json_string}" - ], + ], "Typology": "TYPOLOGY_UNKNOWN" } diff --git a/RFXtoRP_HsaCons_ActorDeleted.ftl b/RFXtoRP_HsaCons_ActorDeleted.ftl index 1a3a3ff..6fbfb45 100644 --- a/RFXtoRP_HsaCons_ActorDeleted.ftl +++ b/RFXtoRP_HsaCons_ActorDeleted.ftl @@ -1,12 +1,12 @@ [ - { + { "Header": { - "ProjectID": "${projectRP}" + "ProjectID": "${projectRP}" }, "ID": { "RefID": "${actor.code?trim?json_string}" }, - + "Payload": {} } ] diff --git a/RFXtoRP_HsaIpgMove.ftl b/RFXtoRP_HsaIpgMove.ftl index 44fc2aa..be73034 100644 --- a/RFXtoRP_HsaIpgMove.ftl +++ b/RFXtoRP_HsaIpgMove.ftl @@ -1,4 +1,4 @@ -<#assign cloudEventMsg = JsonUtil.jsonToMap(input)> +<#assign cloudEventMsg = JsonUtil.jsonToMap(input)> <#assign projectRP = project> <#assign organisationRP = organisation> @@ -9,13 +9,13 @@ <#case "U"> <#-- *********************************************** Action = CREATE or UPDATE ******************** --> <#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) /> - <#assign reflexMvtStockInterface = JsonUtil.jsonToMap(dataRfx)> - + <#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" || + <#if reflexMvtStockInterface.ipg_move_type == "130" || reflexMvtStockInterface.ipg_move_type == "200" || reflexMvtStockInterface.ipg_move_type == "210" || reflexMvtStockInterface.ipg_move_type == "220" || @@ -25,49 +25,49 @@ reflexMvtStockInterface.ipg_move_type == "290" || reflexMvtStockInterface.ipg_move_type == "300" || reflexMvtStockInterface.ipg_move_type == "400" || - reflexMvtStockInterface.ipg_move_type == "410" || - reflexMvtStockInterface.ipg_move_type == "420" + reflexMvtStockInterface.ipg_move_type == "410" || + reflexMvtStockInterface.ipg_move_type == "420" > - [ + [ { - <#assign apiReflexPlatformID = ApiReflexPlatformID.StockMoved> + <#assign apiReflexPlatformID = ApiReflexPlatformID.StockMoved> "apiReflexPlatformID" : "${apiReflexPlatformID}", - "datas" : + "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> - <#-- Case of IPG move type volontarilly ignored--> + <#-- 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> + <#-- Case of IPG move type volontarilly ignored--> <#stop> - - - <#else> - <#-- cases of an IPG move with quantity = 0 (weight modification)--> - <#stop> + + <#else> + <#-- cases of an IPG move with quantity = 0 (weight modification)--> + <#stop> + <#break> - + <#case "D"> <#-- *********************************************** Action = DELETE ******************** --> <#stop "event not supported - Case D "> <#break> - - + + <#default> <#stop "event not supported"> diff --git a/RFXtoRP_HsaIpgMove_GoodsReceived.ftl b/RFXtoRP_HsaIpgMove_GoodsReceived.ftl index 5131883..4a65641 100644 --- a/RFXtoRP_HsaIpgMove_GoodsReceived.ftl +++ b/RFXtoRP_HsaIpgMove_GoodsReceived.ftl @@ -3,25 +3,25 @@ [ <#assign receipt_confirmation_datetime = RfxDateTimetoUTC(reflexMvtStockInterface.ipg_move_creation_datetime,time_zone_offset_rfx) /> <#assign priority_date = reflexMvtStockInterface.ipg_priority_date?datetime(rfx_date_format_default)?iso_utc /> - { + { "Header": { "ProjectID": "${projectRP}" }, "ID": { "RefID": "${reflexMvtStockInterface.hd_number?trim?json_string}" - }, + }, "Payload": { "ReceivedContents" :[ { "DateTime": { "DateTime": "${receipt_confirmation_datetime}", - "AuthorTimeZone": "${time_zone_rfx}" + "AuthorTimeZone": "${time_zone_rfx}" }, "Goods": { "ItemID": "${reflexMvtStockInterface.item_code?trim?json_string}", "LVBranchID": "${reflexMvtStockInterface.lv_code?json_string}", "PriorityDate": "${priority_date}", - + <#-- Goods received Segmentation Keys inclusion --> <#include "RFXtoRP_HsaIpgMove_GoodsReceived_SegmentationKeys.ftl"> }, @@ -30,15 +30,15 @@ <#else> "ExecutionflowID": "${reflexMvtStockInterface.physical_depot_code}${reflexMvtStockInterface.activity_code}${reflexMvtStockInterface.ipg_move_year_number}${reflexMvtStockInterface.extended_ipg_move_number}", - "LineID": "${reflexMvtStockInterface.receipt_line_number}", + "LineID": "${reflexMvtStockInterface.receipt_line_number}", "ActorID": "${reflexMvtStockInterface.physical_depot_code?trim?json_string}", - "Quantity": { + "Quantity": { "LVID": "${quantity_in_base_lv_RP_Cst}", - "Value": ${reflexMvtStockInterface.ipg_move_quantity_in_base_lvs} + "Value": ${reflexMvtStockInterface.ipg_move_quantity_in_base_lvs} } } ] - } + } } - + ] diff --git a/RFXtoRP_HsaIpgMove_StockMoved.ftl b/RFXtoRP_HsaIpgMove_StockMoved.ftl index 3b09764..86c7d55 100644 --- a/RFXtoRP_HsaIpgMove_StockMoved.ftl +++ b/RFXtoRP_HsaIpgMove_StockMoved.ftl @@ -12,29 +12,29 @@ "300":"STOCK_MOVEMENT_TYPE_REQUALIFICATION", "400":"STOCK_MOVEMENT_TYPE_FIX", "410":"STOCK_MOVEMENT_TYPE_FIX", - "420":"STOCK_MOVEMENT_TYPE_REQUALIFICATION"}> + "420":"STOCK_MOVEMENT_TYPE_REQUALIFICATION"}> <#assign generation_date = RfxDateTimetoUTC(reflexMvtStockInterface.ipg_move_creation_datetime,time_zone_offset_rfx) /> <#assign ipg_priority_datetime = reflexMvtStockInterface.ipg_priority_date?datetime(rfx_date_format_default)?iso_utc /> [ - { + { "Header": { - "ProjectID": "${projectRP}" + "ProjectID": "${projectRP}" }, "Payload": { "Goods": { "ItemID": "${reflexMvtStockInterface.item_code?trim?json_string}", "PriorityDate": "${ipg_priority_datetime}", - + <#-- Segmentation keys inclusions --> <#include "RFXtoRP_HsaIpgMove_StockMoved_SegmentationKeys.ftl">, - - + + "LVBranchID": "${reflexMvtStockInterface.lv_code?json_string}" }, "ActorID": "${reflexMvtStockInterface.physical_depot_code?trim?json_string}", "Movement": { - + "DateTime": { "DateTime": "${generation_date}", "AuthorTimeZone": "${time_zone_rfx}" @@ -46,8 +46,8 @@ "ExternalInfo" : "${reflexMvtStockInterface.stock_move_reference?json_string}", <#if reflexMvtStockInterface.ipg_move_operation_year_number!= 0> "OperationReference": "${reflexMvtStockInterface.ipg_move_operation_year_number} - ${reflexMvtStockInterface.ipg_move_operation_number}", - - + + "Quantity": { "LVID": "${quantity_in_base_lv_RP_Cst}", diff --git a/RFXtoRP_HsaItmLv_LogisticVariantRemoved.ftl b/RFXtoRP_HsaItmLv_LogisticVariantRemoved.ftl index 9ac6882..edc0760 100644 --- a/RFXtoRP_HsaItmLv_LogisticVariantRemoved.ftl +++ b/RFXtoRP_HsaItmLv_LogisticVariantRemoved.ftl @@ -1,14 +1,14 @@ <#include "HfRpConfig.ftl"> [ - { + { "Header": { - "ProjectID": "${projectRP}" + "ProjectID": "${projectRP}" }, "ID": { "RefID": "${lv.item_code?trim?json_string}" }, "Payload": { - "RemovedLogisticVariantIDs":["${lv.logistical_variant_code}"] - } + "RemovedLogisticVariantIDs":["${lv.logistical_variant_code}"] + } } ] diff --git a/RFXtoRP_HsaItmLv_LogisticVariantUpdated.ftl b/RFXtoRP_HsaItmLv_LogisticVariantUpdated.ftl index 5236207..81560f3 100644 --- a/RFXtoRP_HsaItmLv_LogisticVariantUpdated.ftl +++ b/RFXtoRP_HsaItmLv_LogisticVariantUpdated.ftl @@ -1,37 +1,37 @@ <#include "HfRpConfig.ftl"> [ - { + { "Header": { - "ProjectID": "${projectRP}" + "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??> + <#if lv.id_list??> "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>, - - ], - - - <#-- LV Metadata inclusion --> + + ], + + + <#-- 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}", - + "QuantityInRefLV": ${lv.quantity_in_subpackaging_lv}, "NetWeight": { @@ -39,35 +39,35 @@ "Unit": "${weight_unit_rfx}" }, "GrossWeight": { - "Value": ${lv.gross_weight}, + "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": [] - - - + + + } - ] + ] } } ] diff --git a/RFXtoRP_HsaItm_ItemCreated.ftl b/RFXtoRP_HsaItm_ItemCreated.ftl index cb1585e..6ef16c0 100644 --- a/RFXtoRP_HsaItm_ItemCreated.ftl +++ b/RFXtoRP_HsaItm_ItemCreated.ftl @@ -1,9 +1,9 @@ <#include "HfRpConfig.ftl"> <#include "HfExpGrpList.ftl"> [ - { + { "Header": { - "ProjectID": "${projectRP}" + "ProjectID": "${projectRP}" }, "ID": { "RefID": "${item.item_code?trim?json_string}" @@ -12,91 +12,93 @@ "DescriptionsByLanguage": [{ "ShortDescription": "${item.short_designation?json_string}", "LongDescription": "${item.designation?json_string}", - "TechnicalDetails": "${item.item_description?json_string}", + "TechnicalDetails": "${item.item_description?json_string}", "LanguageCodeISO6391": "${text_language_rfx}" - } - ], + } + ], "ExpiryConstraint": { - "Type": "${ExpiryGroupList[item.expiry_group_code]!"UNKNOWN_DATE"}" + "Type": "${ExpiryGroupList[item.expiry_group_code]!"UNKNOWN_DATE"}" }, - - <#-- Item metadata inclusion --> + + <#-- Item metadata inclusion --> <#include "RFXtoRP_HsaItm_ItemCreated_ItemMetadata.ftl">, - + <#-- Item Photo URI could be added here --> <#--"PhotoURI": " ", --> <#-- Loop for the Logistical Variants - LV --> - <#if item.logistical_variant_list??> + <#if item.logistical_variant_list??> "LogisticVariants": [ - - <#list item.logistical_variant_list as logistical_variant> - { + + <#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??> + + <#if logistical_variant.id_list??> "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>, - - ], - - + + ], + + <#-- LV Metadata inclusion --> - <#include "RFXtoRP_HsaItm_ItemCreated_LogisticVariantMetadata.ftl">, - - "IsBaseLogisticVariant": ${logistical_variant.base_lv}, - + <#include "RFXtoRP_HsaItm_ItemCreated_LogisticVariantMetadata.ftl">, + + <#if logistical_variant.base_lv?? && logistical_variant.base_lv!=""> + "IsBaseLogisticVariant": ${logistical_variant.base_lv}, + + <#if logistical_variant.base_lv != "true"> "RefLV": "${logistical_variant.subpackaging_lv_code?json_string}", - + "QuantityInRefLV": ${logistical_variant.quantity_in_subpackaging_lv}, - + "NetWeight": { "Value": ${logistical_variant.net_weight}, "Unit": "${weight_unit_rfx}" }, "GrossWeight": { - "Value": ${logistical_variant.gross_weight}, + "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": [] - - + + } - <#sep>, - - - ] + <#sep>, + + + ] <#-- End of LV loop --> - + } } ] diff --git a/RFXtoRP_HsaItm_ItemDeleted.ftl b/RFXtoRP_HsaItm_ItemDeleted.ftl index 485ace1..a9de0f1 100644 --- a/RFXtoRP_HsaItm_ItemDeleted.ftl +++ b/RFXtoRP_HsaItm_ItemDeleted.ftl @@ -1,12 +1,12 @@ <#include "HfRpConfig.ftl"> [ - { + { "Header": { - "ProjectID": "${projectRP}" + "ProjectID": "${projectRP}" }, "ID": { "RefID": "${item.item_code?trim?json_string}" }, - "Payload": {} + "Payload": {} } ] diff --git a/RFXtoRP_HsaProStatus.ftl b/RFXtoRP_HsaProStatus.ftl index 25fae1c..a1c4709 100644 --- a/RFXtoRP_HsaProStatus.ftl +++ b/RFXtoRP_HsaProStatus.ftl @@ -3,7 +3,7 @@ <#-- project : projectId in ReflexPlatform --> <#-- organisation : organisationtId in ReflexPlatform --> -<#assign cloudEventMsg = JsonUtil.jsonToMap(input)> +<#assign cloudEventMsg = JsonUtil.jsonToMap(input)> <#assign projectRP = project> <#assign organisationRP = organisation> @@ -14,62 +14,58 @@ <#case "U"> <#-- Action = CREATE or UPDATE --> <#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) /> - <#assign preparationStatusInterface = JsonUtil.jsonToMap(dataRfx) /> + <#assign preparationStatusInterface = JsonUtil.jsonToMap(dataRfx) /> [ <#--**Pick batch runned (200) **--> <#if preparationStatusInterface.preparation_status_type == "100" && preparationStatusInterface.preparation_status_code == "200" > { - <#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowPreparationExpected> + <#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowPreparationExpected> "apiReflexPlatformID" : "${apiReflexPlatformID}", - "datas" : - <#include "RFXtoRP_HsaProStatus_PreparationExpected.ftl"> + "datas" : + <#include "RFXtoRP_HsaProStatus_PreparationExpected.ftl"> } <#else> <#-- ** Collection started (300) and Preparation in progress (400)** --> <#if preparationStatusInterface.preparation_status_type == "100" && (preparationStatusInterface.preparation_status_code == "300" || preparationStatusInterface.preparation_status_code == "400") > { - <#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowPreparationStarted> + <#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowPreparationStarted> "apiReflexPlatformID" : "${apiReflexPlatformID}", - "datas" : - <#include "RFXtoRP_HsaProStatus_PreparationStarted.ftl"> + "datas" : + <#include "RFXtoRP_HsaProStatus_PreparationStarted.ftl"> } <#else> - <#-- **Preparation to package (500) and preparation completed (550)** --> - <#if preparationStatusInterface.preparation_status_type == "100" && (preparationStatusInterface.preparation_status_code == "500" || preparationStatusInterface.preparation_status_code == "550")> - { - <#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowPreparationCompleted> - "apiReflexPlatformID" : "${apiReflexPlatformID}", - "datas" : - <#include "RFXtoRP_HsaProStatus_PreparationCompleted.ftl"> - } - <#else> <#-- ****Preparation dispatched (600)** --> - <#if preparationStatusInterface.preparation_status_type == "100" && preparationStatusInterface.preparation_status_code == "600" > - { - <#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowTransportStarted> + <#if preparationStatusInterface.preparation_status_type == "100" && preparationStatusInterface.preparation_status_code == "600" > + { + <#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowPreparationCompleted> "apiReflexPlatformID" : "${apiReflexPlatformID}", - "datas" : - <#include "RFXtoRP_HsaProStatus_TransportStarted.ftl"> - } - <#else> - <#-- ****Preparation cancelled (650)**** --> - <#if preparationStatusInterface.preparation_status_type == "100" && preparationStatusInterface.preparation_status_code == "650" > - { - <#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowCancelled> + "datas" : + <#include "RFXtoRP_HsaProStatus_PreparationCompleted.ftl"> + }, + { + <#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowTransportStarted> "apiReflexPlatformID" : "${apiReflexPlatformID}", - "datas" : - <#include "RFXtoRP_HsaProStatus_ExecutionflowCancelled.ftl"> + "datas" : + <#include "RFXtoRP_HsaProStatus_TransportStarted.ftl"> + } + <#else> + <#-- ****Preparation cancelled (650)**** --> + <#if preparationStatusInterface.preparation_status_type == "100" && preparationStatusInterface.preparation_status_code == "650" > + { + <#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowCancelled> + "apiReflexPlatformID" : "${apiReflexPlatformID}", + "datas" : + <#include "RFXtoRP_HsaProStatus_ExecutionflowCancelled.ftl"> } - <#else> + <#else> <#stop> - - ] + ] <#break> - + <#case "D"> <#-- *********************************************** Action = DELETE ******************** --> <#stop "event not supported (case D)"> diff --git a/RFXtoRP_HsaProStatus_ExecutionflowCancelled.ftl b/RFXtoRP_HsaProStatus_ExecutionflowCancelled.ftl index 73eb34b..0a1b945 100644 --- a/RFXtoRP_HsaProStatus_ExecutionflowCancelled.ftl +++ b/RFXtoRP_HsaProStatus_ExecutionflowCancelled.ftl @@ -3,9 +3,9 @@ <#assign preparation_status_datetime = RfxDateTimetoUTC(preparationStatusInterface.preparation_status_datetime,time_zone_offset_rfx) /> [ - { + { "Header": { - "ProjectID": "${projectRP}" + "ProjectID": "${projectRP}" }, "ID": { "RefID": "${preparationStatusInterface.preparation_order_originator_reference?trim?json_string}", diff --git a/RFXtoRP_HsaProStatus_PreparationCompleted.ftl b/RFXtoRP_HsaProStatus_PreparationCompleted.ftl index 3ca47e2..7f9c79a 100644 --- a/RFXtoRP_HsaProStatus_PreparationCompleted.ftl +++ b/RFXtoRP_HsaProStatus_PreparationCompleted.ftl @@ -2,9 +2,9 @@ <#include "ReflexUtils.ftl"> <#assign preparation_status_datetime = RfxDateTimetoUTC(preparationStatusInterface.preparation_status_datetime,time_zone_offset_rfx) /> [ - { + { "Header": { - "ProjectID": "${projectRP}" + "ProjectID": "${projectRP}" }, "ID": { "RefID": "${preparationStatusInterface.preparation_order_originator_reference?trim?json_string}", @@ -13,8 +13,8 @@ "AuthorTimeZone": "${time_zone_rfx}" } }, - + "Payload": {} - + } ] diff --git a/RFXtoRP_HsaProStatus_PreparationExpected.ftl b/RFXtoRP_HsaProStatus_PreparationExpected.ftl index 3ca47e2..7f9c79a 100644 --- a/RFXtoRP_HsaProStatus_PreparationExpected.ftl +++ b/RFXtoRP_HsaProStatus_PreparationExpected.ftl @@ -2,9 +2,9 @@ <#include "ReflexUtils.ftl"> <#assign preparation_status_datetime = RfxDateTimetoUTC(preparationStatusInterface.preparation_status_datetime,time_zone_offset_rfx) /> [ - { + { "Header": { - "ProjectID": "${projectRP}" + "ProjectID": "${projectRP}" }, "ID": { "RefID": "${preparationStatusInterface.preparation_order_originator_reference?trim?json_string}", @@ -13,8 +13,8 @@ "AuthorTimeZone": "${time_zone_rfx}" } }, - + "Payload": {} - + } ] diff --git a/RFXtoRP_HsaProStatus_PreparationStarted.ftl b/RFXtoRP_HsaProStatus_PreparationStarted.ftl index 3ca47e2..7f9c79a 100644 --- a/RFXtoRP_HsaProStatus_PreparationStarted.ftl +++ b/RFXtoRP_HsaProStatus_PreparationStarted.ftl @@ -2,9 +2,9 @@ <#include "ReflexUtils.ftl"> <#assign preparation_status_datetime = RfxDateTimetoUTC(preparationStatusInterface.preparation_status_datetime,time_zone_offset_rfx) /> [ - { + { "Header": { - "ProjectID": "${projectRP}" + "ProjectID": "${projectRP}" }, "ID": { "RefID": "${preparationStatusInterface.preparation_order_originator_reference?trim?json_string}", @@ -13,8 +13,8 @@ "AuthorTimeZone": "${time_zone_rfx}" } }, - + "Payload": {} - + } ] diff --git a/RFXtoRP_HsaProStatus_TransportStarted.ftl b/RFXtoRP_HsaProStatus_TransportStarted.ftl index 3ca47e2..7f9c79a 100644 --- a/RFXtoRP_HsaProStatus_TransportStarted.ftl +++ b/RFXtoRP_HsaProStatus_TransportStarted.ftl @@ -2,9 +2,9 @@ <#include "ReflexUtils.ftl"> <#assign preparation_status_datetime = RfxDateTimetoUTC(preparationStatusInterface.preparation_status_datetime,time_zone_offset_rfx) /> [ - { + { "Header": { - "ProjectID": "${projectRP}" + "ProjectID": "${projectRP}" }, "ID": { "RefID": "${preparationStatusInterface.preparation_order_originator_reference?trim?json_string}", @@ -13,8 +13,8 @@ "AuthorTimeZone": "${time_zone_rfx}" } }, - + "Payload": {} - + } ] diff --git a/RFXtoRP_HsaSup_ActorCreated.ftl b/RFXtoRP_HsaSup_ActorCreated.ftl index bdb370f..fb804ac 100644 --- a/RFXtoRP_HsaSup_ActorCreated.ftl +++ b/RFXtoRP_HsaSup_ActorCreated.ftl @@ -1,37 +1,37 @@ [ - { + { "Header": { - "ProjectID": "${projectRP}" + "ProjectID": "${projectRP}" }, "ID": { "RefID": "${actor.code?trim?json_string}" }, - + "Payload": { "Name": "${actor.designation?json_string}", "ManagedStock": false, - "IsCarrier": false, + "IsCarrier": false, <#-- ***Partner ID could be added here *** --> <#-- "PartnerID": "${}", --> - + <#-- <#include "RFXtoRP_HsaSup_ActorCreated_Metadata.ftl">, --> - + "Address": { <#-- if Reflex WMS address is structured --> - <#if actor.supplier_structured_address?? > + <#if actor.supplier_structured_address?? > "Name": "${actor.supplier_structured_address.name_or_company?json_string}", "StreetAddressOne" : "${actor.supplier_structured_address.street_and_PO?json_string}", - "StreetAddressTwo" : "${actor.supplier_structured_address.additionnal_data?json_string}", + "StreetAddressTwo" : "${actor.supplier_structured_address.additionnal_data?json_string}", "PostalCode" : "${actor.supplier_structured_address.postal_code?json_string}", "City" : "${actor.supplier_structured_address.post_code_area_name?json_string}", "CountryCode" : "${actor.supplier_structured_address.country_code?json_string}", "ProvinceCode": "${actor.supplier_structured_address.territorial_div_code?json_string}", "State": "${actor.supplier_structured_address.country_designation?json_string}" - + <#-- if Reflex WMS address is not structured --> <#else> <#if actor.optional_attributes?? > @@ -41,14 +41,14 @@ "StreetAddressThree" : "${actor.optional_attributes.address_3?json_string}" - + }, <#if actor.optional_attributes?? > - "Phones": ["${actor.optional_attributes.telephone?json_string}", + "Phones": ["${actor.optional_attributes.telephone?json_string}", "${actor.optional_attributes.other_number?json_string}" ], "Typology": "TYPOLOGY_UNKNOWN" } - } + } ] diff --git a/RFXtoRP_HsaSup_ActorDeleted.ftl b/RFXtoRP_HsaSup_ActorDeleted.ftl index 93475b7..6fbfb45 100644 --- a/RFXtoRP_HsaSup_ActorDeleted.ftl +++ b/RFXtoRP_HsaSup_ActorDeleted.ftl @@ -1,12 +1,12 @@ [ - { + { "Header": { - "ProjectID": "${projectRP}" + "ProjectID": "${projectRP}" }, "ID": { "RefID": "${actor.code?trim?json_string}" }, - + "Payload": {} - } + } ] diff --git a/RFXtoRP_HsrDepot_ActorCreated.ftl b/RFXtoRP_HsrDepot_ActorCreated.ftl index 516cc1f..31774f9 100644 --- a/RFXtoRP_HsrDepot_ActorCreated.ftl +++ b/RFXtoRP_HsrDepot_ActorCreated.ftl @@ -1,37 +1,37 @@ [ - { + { "Header": { - "ProjectID": "${projectRP}" + "ProjectID": "${projectRP}" }, "ID": { "RefID": "${depot.physical_depot_code?trim?json_string}" }, - + "Payload": { "Name": "${depot.physical_depot_designation?json_string}", "ManagedStock": true, "IsCarrier": false, <#-- ***Partner ID could be added here *** --> <#-- "PartnerID": "${}", --> - + <#-- <#include "RFXtoRP_HsrDepot_ActorCreated_Metadata.ftl">, --> - + "Address": { <#-- if Reflex WMS address is structured --> - <#if depot.physical_depot_structured_address?? > + <#if depot.physical_depot_structured_address?? > "Name": "${depot.physical_depot_structured_address.name_or_company?json_string}", "StreetAddressOne" : "${depot.physical_depot_structured_address.street_and_PO?json_string}", - "StreetAddressTwo" : "${depot.physical_depot_structured_address.additionnal_data?json_string}", + "StreetAddressTwo" : "${depot.physical_depot_structured_address.additionnal_data?json_string}", "PostalCode" : "${depot.physical_depot_structured_address.postal_code?json_string}", "City" : "${depot.physical_depot_structured_address.post_code_area_name?json_string}", "CountryCode" : "${depot.physical_depot_structured_address.country_code?json_string}", "ProvinceCode": "${depot.physical_depot_structured_address.territorial_div_code?json_string}", "State": "${depot.physical_depot_structured_address.country_designation?json_string}" - + <#-- if Reflex WMS address is not structured --> <#else> "Name": "${depot.physical_depot_address.company_name?json_string}", @@ -39,12 +39,12 @@ "StreetAddressTwo" : "${depot.physical_depot_address.address_2?json_string}", "StreetAddressThree" : "${depot.physical_depot_address.address_3?json_string}" - + }, - "Phones": ["${depot.physical_depot_address.telephone?json_string}", + "Phones": ["${depot.physical_depot_address.telephone?json_string}", "${depot.physical_depot_address.other_number?json_string}" ], "Typology": "TYPOLOGY_UNKNOWN" } - } + } ] diff --git a/RFXtoRP_HsrDepot_ActorDeleted.ftl b/RFXtoRP_HsrDepot_ActorDeleted.ftl index 0fcdcf7..d4e070a 100644 --- a/RFXtoRP_HsrDepot_ActorDeleted.ftl +++ b/RFXtoRP_HsrDepot_ActorDeleted.ftl @@ -1,12 +1,12 @@ [ - { + { "Header": { - "ProjectID": "${projectRP}" + "ProjectID": "${projectRP}" }, "ID": { "RefID": "${depot.physical_depot_code?trim?json_string}" }, - + "Payload": {} - } + } ] diff --git a/RFXtoRP_HsrPrepa.ftl b/RFXtoRP_HsrPrepa.ftl index 598f8c6..712cfec 100644 --- a/RFXtoRP_HsrPrepa.ftl +++ b/RFXtoRP_HsrPrepa.ftl @@ -2,53 +2,89 @@ <#-- input : message RFX --> <#-- project : projectId in ReflexPlatform --> <#-- organisation : organisationtId in ReflexPlatform --> - -<#assign cloudEventMsg = JsonUtil.jsonToMap(input)> + +<#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 preparationOrder = JsonUtil.jsonToMap(dataRfx)> - -<#if preparationOrder.total_lv_validated !=0> - [ +<#assign preparationOrder = JsonUtil.jsonToMap(dataRfx)> + +<#if preparationOrder.total_lv_validated !=0> + [ { - <#assign apiReflexPlatformID = ApiReflexPlatformID.HandlingunitGoodsPrepared> + <#assign apiReflexPlatformID = ApiReflexPlatformID.HandlingunitGoodsPrepared> "apiReflexPlatformID" : "${apiReflexPlatformID}", - "datas" : - <#include "RFXtoRP_HsrPrepa_GoodsPrepared.ftl"> + "datas" : + <#include "RFXtoRP_HsrPrepa_HandlingunitGoodsPrepared.ftl"> }, { - <#assign apiReflexPlatformID = ApiReflexPlatformID.HandlingunitDispatched> + <#assign apiReflexPlatformID = ApiReflexPlatformID.HandlingunitDispatched> "apiReflexPlatformID" : "${apiReflexPlatformID}", - "datas" : - <#include "RFXtoRP_HsrPrepa_HandlingUnitDispatched.ftl"> + "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"> + }, + { + <#assign apiReflexPlatformID = ApiReflexPlatformID.OrderCarrierUpdated> + "apiReflexPlatformID" : "${apiReflexPlatformID}", + "datas" : + <#include "RFXtoRP_HsrPrepa_OrderCarrierUpdated.ftl"> + } + + <#list preparationOrder.preparation_line_lst?filter(l ->l.despatched_ipg_list??) as preparation_line> <#list preparation_line.despatched_ipg_list as despatched_ipg> - <#if despatched_ipg.consignment_unit_id != ""> - , - { - <#assign apiReflexPlatformID = ApiReflexPlatformID.TrackingHULabeled> - "apiReflexPlatformID" : "${apiReflexPlatformID}", - "datas" : - <#include "RFXtoRP_HsrPrepa_TrackingHuLabelled.ftl"> - } - - + <#if despatched_ipg.consignment_unit_id!=""> + , + { + <#assign apiReflexPlatformID = ApiReflexPlatformID.TrackingHULabeled> + "apiReflexPlatformID" : "${apiReflexPlatformID}", + "datas" : + <#include "RFXtoRP_HsrPrepa_TrackingHuLabelled.ftl"> + } + + <#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"> + } + + + <#-- <#sep>, --> + + ] + <#else> <#stop "no confirmed quantity for the preparation - preparation closed"> - + <#break> <#case "D"> <#-- *********************************************** Action = DELETE ******************** --> diff --git a/RFXtoRP_HsrPrepa_CarrierUpdated.ftl b/RFXtoRP_HsrPrepa_CarrierUpdated.ftl new file mode 100644 index 0000000..50d8214 --- /dev/null +++ b/RFXtoRP_HsrPrepa_CarrierUpdated.ftl @@ -0,0 +1,23 @@ +<#include "HfRpConfig.ftl"> +<#include "ReflexUtils.ftl"> +[ + + { + "Header": { + "ProjectID": "${projectRP}" + }, + "ID":{ + "RefID": "${preparationOrder.preparation_line_lst[0].preparation_order_originator_reference?trim?json_string}" + }, + "Payload":{ + "Carrier": { + "ActorID":"${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}" + --> + } + } +] \ No newline at end of file diff --git a/RFXtoRP_HsrPrepa_GoodsPrepared.ftl b/RFXtoRP_HsrPrepa_GoodsPrepared.ftl deleted file mode 100644 index a7e1bb8..0000000 --- a/RFXtoRP_HsrPrepa_GoodsPrepared.ftl +++ /dev/null @@ -1,89 +0,0 @@ -<#include "HfRpConfig.ftl"> - -[ - <#list preparationOrder.preparation_line_lst?filter(l ->l.despatched_ipg_list??) as preparation_line> - <#list preparation_line.despatched_ipg_list as despatched_ipg> - { - "Header": { - "ProjectID": "${projectRP}" - }, - "ID": { - <#if despatched_ipg.carton_number != "000000000000000000"> - "RefID": "${despatched_ipg.carton_number}" - <#else> - "RefID": "${despatched_ipg.hd_number}" - - }, - - "Payload": { - "Information" :{ - <#if despatched_ipg.carton_number != "000000000000000000"> - "ContainerType": "${despatched_ipg.carton_type_code}" - <#else> - "ContainerType": "${despatched_ipg.hd_type_code}" - - - }, - <#-- 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_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 (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_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 (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", - - - - - - - - <#-- Segmentation Keys inclusion --> - <#include "RFXtoRP_HsrPrepa_GoodsPrepared_SegmentationKeys.ftl"> - }, - "ExecutionflowID": "${preparation_line.preparation_order_originator_reference?trim?json_string}", - <#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}", - - "ActorID": "${preparationOrder.physical_depot_code?trim?json_string}", - "Quantity": { - "LVID": "${quantity_in_base_lv_RP_Cst}", - "Value": ${despatched_ipg.quantity_lvs} - } - } - ] - } - - }<#sep>, - - <#sep>, - -] diff --git a/RFXtoRP_HsrPrepa_HUsAdded_HandlingUnitDispatched.ftl b/RFXtoRP_HsrPrepa_HUsAdded_HandlingUnitDispatched.ftl new file mode 100644 index 0000000..3f469fd --- /dev/null +++ b/RFXtoRP_HsrPrepa_HUsAdded_HandlingUnitDispatched.ftl @@ -0,0 +1,23 @@ +<#include "HfRpConfig.ftl"> +<#include "ReflexUtils.ftl"> +[ +<#assign dispatched_datetime = RfxDateTimetoUTC(preparationOrder.stock_despatch_at_preparation_datetime,time_zone_offset_rfx) /> + <#list preparationOrder.preparation_line_lst?filter(l ->l.despatched_ipg_list??) as preparation_line> + <#list preparation_line.despatched_ipg_list as despatched_ipg> + { + "Header": { + "ProjectID": "${projectRP}" + }, + "ID": { + "RefID": "${despatched_ipg.carton_number}", + "RefDate": { + "DateTime": "${dispatched_datetime}", + "AuthorTimeZone": "${time_zone_rfx}" + } + }, + "Payload": { } + }<#sep>, + + <#sep>, + +] diff --git a/RFXtoRP_HsrPrepa_HandlingUnitDispatched.ftl b/RFXtoRP_HsrPrepa_HandlingUnitDispatched.ftl index 6105a16..d4c3d21 100644 --- a/RFXtoRP_HsrPrepa_HandlingUnitDispatched.ftl +++ b/RFXtoRP_HsrPrepa_HandlingUnitDispatched.ftl @@ -9,11 +9,7 @@ "ProjectID": "${projectRP}" }, "ID": { - <#if despatched_ipg.carton_number != "000000000000000000"> - "RefID": "${despatched_ipg.carton_number}", - <#else> "RefID": "${despatched_ipg.hd_number}", - "RefDate": { "DateTime": "${dispatched_datetime}", "AuthorTimeZone": "${time_zone_rfx}" diff --git a/RFXtoRP_HsrPrepa_HandlingunitGoodsPrepared.ftl b/RFXtoRP_HsrPrepa_HandlingunitGoodsPrepared.ftl new file mode 100644 index 0000000..ecd7bb4 --- /dev/null +++ b/RFXtoRP_HsrPrepa_HandlingunitGoodsPrepared.ftl @@ -0,0 +1,128 @@ +<#include "HfRpConfig.ftl"> + +[ + <#list preparationOrder.preparation_line_lst?filter(l ->l.despatched_ipg_list??) as preparation_line> + <#list preparation_line.despatched_ipg_list as despatched_ipg> + { + "Header": { + "ProjectID": "${projectRP}" + }, + "ID": { + <#if despatched_ipg.carton_number != "000000000000000000"> + "RefID": "${despatched_ipg.carton_number}" + <#else> + "RefID": "${despatched_ipg.hd_number}" + + }, + + "Payload": { + "Information" :{ + <#if despatched_ipg.carton_number != "000000000000000000"> + "ContainerType": "${despatched_ipg.carton_type_code}" + <#if preparation_line.despatched_cartons_list?? > + <#list preparation_line.despatched_cartons_list?filter(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}" + } + + + <#else> + "ContainerType": "${despatched_ipg.hd_type_code?json_string}" + <#if preparation_line.despatched_hds_list??> + <#list preparation_line.despatched_hds_list?filter(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}" + } + + + + }, + + <#-- 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_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 (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_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 (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", + + + + + + + + <#-- Segmentation Keys inclusion --> + <#include "RFXtoRP_HsrPrepa_GoodsPrepared_SegmentationKeys.ftl"> + }, + "ExecutionflowID": "${preparation_line.preparation_order_originator_reference?trim?json_string}", + <#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}", + + "ActorID": "${preparationOrder.physical_depot_code?trim?json_string}", + "Quantity": { + "LVID": "${quantity_in_base_lv_RP_Cst}", + "Value": ${despatched_ipg.quantity_lvs} + } + + } + ] + } + + }<#sep>, + + <#sep>, + +] diff --git a/RFXtoRP_HsrPrepa_OrderCarrierUpdated.ftl b/RFXtoRP_HsrPrepa_OrderCarrierUpdated.ftl new file mode 100644 index 0000000..51675ba --- /dev/null +++ b/RFXtoRP_HsrPrepa_OrderCarrierUpdated.ftl @@ -0,0 +1,18 @@ +<#include "HfRpConfig.ftl"> +<#include "ReflexUtils.ftl"> +[ + + { + "Header": { + "ProjectID": "${projectRP}" + }, + "ID":{ + "RefID": "${preparationOrder.preparation_line_lst[0].preparation_order_originator_reference?trim?json_string}" + }, + "Payload":{ + "Carrier": { + "ActorID":"${preparationOrder.load_data.carrier_code?trim?json_string}" + } + } + } +] \ No newline at end of file diff --git a/RFXtoRP_HsrPrepa_TrackingHuLabelled.ftl b/RFXtoRP_HsrPrepa_TrackingHuLabelled.ftl index d936618..107c511 100644 --- a/RFXtoRP_HsrPrepa_TrackingHuLabelled.ftl +++ b/RFXtoRP_HsrPrepa_TrackingHuLabelled.ftl @@ -1,20 +1,27 @@ <#include "HfRpConfig.ftl"> <#include "ReflexUtils.ftl"> [ - - { + + { "Header": { - "ProjectID": "${projectRP}" + "ProjectID": "${projectRP}" }, "ID": { "RefID": "${despatched_ipg.consignment_unit_id?trim?json_string}" }, "Payload": { - <#if despatched_ipg.carton_number != "000000000000000000"> + <#if despatched_ipg.carton_number != "000000000000000000"> "HandlingunitID": "${despatched_ipg.carton_number}" <#else> "HandlingunitID": "${despatched_ipg.hd_number}" + <#if preparationOrder.load_data?? && preparationOrder.load_data.carrier_code?? && preparationOrder.load_data.carrier_code!="" > + , + "HUCarrier":{ + "ActorID": "${preparationOrder.load_data.carrier_code?json_string}" + } + + } } -] +] \ No newline at end of file diff --git a/RFXtoRP_HsrPro.ftl b/RFXtoRP_HsrPro.ftl index 988c6e9..caa5990 100644 --- a/RFXtoRP_HsrPro.ftl +++ b/RFXtoRP_HsrPro.ftl @@ -3,7 +3,7 @@ <#-- project : projectId in ReflexPlatform --> <#-- organisation : organisationtId in ReflexPlatform --> -<#assign cloudEventMsg = JsonUtil.jsonToMap(input)> +<#assign cloudEventMsg = JsonUtil.jsonToMap(input)> <#assign projectRP = project> <#assign organisationRP = organisation> @@ -14,48 +14,48 @@ <#case "U"> <#-- *********************************************** Action = CREATE or UPDATE ******************** --> <#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) /> - <#assign preparation_order = JsonUtil.jsonToMap(dataRfx)> - [ + <#assign preparation_order = JsonUtil.jsonToMap(dataRfx)> + [ { <#if preparation_order.originator_reference?? && preparation_order.originator_reference!=""> - <#-- check preparation type code (internal order and reservation are ignored) --> + <#-- check preparation type code (internal order and reservation are ignored) --> <#if preparation_order.preparation_type_code == "010" || preparation_order.preparation_type_code == "030"> - <#-- Only if preparation order not confirmed --> - <#if preparation_order.preparation_order_confirmed == "false" > - <#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowDetected> - "apiReflexPlatformID" : "${apiReflexPlatformID}", - "datas" : - <#include "RFXtoRP_HsrPro_ExecutionflowDetected.ftl"> - <#else> - <#stop "preparation order already confirmed"> - + <#-- Only if preparation order not confirmed --> + <#if preparation_order.preparation_order_confirmed == "false" > + <#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowDetected> + "apiReflexPlatformID" : "${apiReflexPlatformID}", + "datas" : + <#include "RFXtoRP_HsrPro_ExecutionflowDetected.ftl"> + <#else> + <#stop "preparation order already confirmed"> + - <#else> - <#stop "preparation order type not supported"> - + <#else> + <#stop "preparation order type not supported"> + <#else> <#stop "PRO reference is empty"> } - - ] + + ] <#break> - + <#case "D"> <#-- *********************************************** Action = DELETE ******************** --> <#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) /> - <#assign preparation_order = JsonUtil.jsonToMap(dataRfx)> - [ + <#assign preparation_order = JsonUtil.jsonToMap(dataRfx)> + [ { - <#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowCancelled> + <#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowCancelled> "apiReflexPlatformID" : "${apiReflexPlatformID}", - "datas" : - <#include "RFXtoRP_HsrPro_ExecutionflowCancelled.ftl"> + "datas" : + <#include "RFXtoRP_HsrPro_ExecutionflowCancelled.ftl"> } - ] + ] <#break> - - + + <#default> <#stop "event not supported"> diff --git a/RFXtoRP_HsrPro_ExecutionflowCancelled.ftl b/RFXtoRP_HsrPro_ExecutionflowCancelled.ftl index 9f439cc..9cdd1b6 100644 --- a/RFXtoRP_HsrPro_ExecutionflowCancelled.ftl +++ b/RFXtoRP_HsrPro_ExecutionflowCancelled.ftl @@ -2,9 +2,9 @@ <#include "ReflexUtils.ftl"> <#assign preparation_status_datetime = RfxDateTimetoUTC(preparation_order.modification_datetime,time_zone_offset_rfx) /> [ - { + { "Header": { - "ProjectID": "${projectRP}" + "ProjectID": "${projectRP}" }, "ID": { "RefID": "${preparation_order.originator_reference?trim?json_string}", diff --git a/RFXtoRP_HsrPro_ExecutionflowDetected.ftl b/RFXtoRP_HsrPro_ExecutionflowDetected.ftl index dba5e0c..d1f4107 100644 --- a/RFXtoRP_HsrPro_ExecutionflowDetected.ftl +++ b/RFXtoRP_HsrPro_ExecutionflowDetected.ftl @@ -1,57 +1,57 @@ <#include "HfRpConfig.ftl"> <#include "ReflexUtils.ftl"> [ - { + { <#assign planned_final_delivery_start_datetime = RfxDateTimetoUTC(preparation_order.planned_final_delivery_start_datetime,time_zone_offset_rfx) /> <#assign pro_creation_datetime = RfxDateTimetoUTC(preparation_order.creation_datetime,time_zone_offset_rfx) /> "Header": { - "ProjectID": "${projectRP}" + "ProjectID": "${projectRP}" }, "ID": { "RefID": "${preparation_order.originator_reference?trim?json_string}", "RefDate": { "DateTime": "${pro_creation_datetime}", - "AuthorTimeZone": "${time_zone_rfx}" + "AuthorTimeZone": "${time_zone_rfx}" } }, "Payload": { "CreationDateTime": { "DateTime": "${pro_creation_datetime}", - "AuthorTimeZone": "${time_zone_rfx}" - }, + "AuthorTimeZone": "${time_zone_rfx}" + }, <#-- Header Metadata inclusion --> <#include "RFXtoRP_HsrPro_ExecutionflowDetected_HeaderMetadata.ftl">, - <#-- Add transport grade code + <#-- Add transport grade code <#if preparation_order.transport_grade_code!=""> "CarrierService":"${preparation_order.transport_grade_code?trim?json_string}", --> - "ShipFrom": { + "ShipFrom": { "ActorID": "${preparation_order.physical_depot_code?trim?json_string}" }, - "ShipFromAcked": true, + "ShipFromAcked": true, "ShipTo": { - <#if - <#-- preparation_order.address.type_code == "" && - preparation_order.address.title_code == "" && - preparation_order.address.first_name == "" && - preparation_order.address.last_name == "" && - preparation_order.address.mail_address == "" && - preparation_order.address.contact_type_code == "" && - preparation_order.address.mobile_phone_number == "" && - preparation_order.address.land_line_phone_number == "" && + <#if + <#-- preparation_order.address.type_code == "" && + preparation_order.address.title_code == "" && + preparation_order.address.first_name == "" && + preparation_order.address.last_name == "" && + preparation_order.address.mail_address == "" && + preparation_order.address.contact_type_code == "" && + preparation_order.address.mobile_phone_number == "" && + preparation_order.address.land_line_phone_number == "" && preparation_order.address.fax_number == "" && --> - preparation_order.address.address_type_code == "" && - preparation_order.address.name_or_company_name == "" && - preparation_order.address.additional_address_data_1 == "" && - preparation_order.address.additional_address_data_2 == "" && - preparation_order.address.post_code_area_name == "" && - preparation_order.address.territorial_division_code == "" && - preparation_order.address.postal_code == "" && - preparation_order.address.iso_country_code == ""> + preparation_order.address.address_type_code == "" && + preparation_order.address.name_or_company_name == "" && + preparation_order.address.additional_address_data_1 == "" && + preparation_order.address.additional_address_data_2 == "" && + preparation_order.address.post_code_area_name == "" && + preparation_order.address.territorial_division_code == "" && + preparation_order.address.postal_code == "" && + preparation_order.address.iso_country_code == ""> "ActorID": "${preparation_order.end_consignee_code}" - <#else> - "Actor": - { + <#else> + "Actor": + { "Name" : "${preparation_order.address.name_or_company_name?json_string!""}", "Address" : { @@ -63,62 +63,62 @@ "StreetAddressThree" : "${preparation_order.address.additional_address_data_2?json_string!""}" } }, - "Contact" : + "Contact" : { "FirstName" : "${preparation_order.address.first_name?json_string!""}", - "LastName" : "${preparation_order.address.last_name?json_string!""}", - "Emails" : ${splitEmailsIntoArray(preparation_order.address.mail_address!""?json_string)}, + "LastName" : "${preparation_order.address.last_name?json_string!""}", + "Emails" : ${splitEmailsIntoArray(preparation_order.address.mail_address!""?json_string)}, "Phones" : ["${preparation_order.address.mobile_phone_number?json_string!""}","${preparation_order.address.land_line_phone_number?json_string!""}", "${preparation_order.address.fax_number?json_string!""}" ] - } - + } + }, - - <#if preparation_order.line_list??> + + <#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> + { + <#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}", <#-- Line Metadata inclusion --> <#include "RFXtoRP_HsrPro_ExecutionflowDetected_LineMetadata.ftl">, - - "RequestedContent": - { - "Goods": + + "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}", + <#assign forced_priority_date = preparation_order_line.optional_attributes.forced_priority_date?datetime(rfx_date_format_default)?iso_utc /> + "PriorityDate": "${forced_priority_date}", - + <#-- Segmentation Keys inclusion --> <#include "RFXtoRP_HsrPro_ExecutionflowDetected_SegmentationKeys.ftl"> - + }, - "Quantity" : + "Quantity" : { "LVID": "${quantity_in_base_lv_RP_Cst}", - "Value": "${preparation_order_line.base_lv_quantity_to_prepare!0}" + "Value": "${preparation_order_line.base_lv_quantity_to_prepare!0}" } } }<#sep>, - + ], - + "RequestedMilestones" : { - "RequestedDeliveryDateTime" : + "RequestedDeliveryDateTime" : { - "DateTime": "${planned_final_delivery_start_datetime}", - "AuthorTimeZone": "${time_zone_rfx}" - } - } + "DateTime": "${planned_final_delivery_start_datetime}", + "AuthorTimeZone": "${time_zone_rfx}" + } + } } } ] diff --git a/RFXtoRP_HsrReceiptList.ftl b/RFXtoRP_HsrReceiptList.ftl index 0425c73..abcab30 100644 --- a/RFXtoRP_HsrReceiptList.ftl +++ b/RFXtoRP_HsrReceiptList.ftl @@ -3,7 +3,7 @@ <#-- project : projectId in ReflexPlatform --> <#-- organisation : organisationtId in ReflexPlatform --> -<#assign cloudEventMsg = JsonUtil.jsonToMap(input)> +<#assign cloudEventMsg = JsonUtil.jsonToMap(input)> <#assign projectRP = project> <#assign organisationRP = organisation> @@ -12,85 +12,85 @@ <#switch cloudEventMsg.action> <#case "C"> <#-- *********************************************** Action = CREATE ******************** --> - + <#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) /> - <#assign receipt = JsonUtil.jsonToMap(dataRfx)> + <#assign receipt = JsonUtil.jsonToMap(dataRfx)> <#if receipt.receipt_reference ?? && receipt.receipt_reference!=""> - <#if receipt.receipt_type = "030"> - <#stop "ignored message because receipt type = transfert"> - <#else> - [ - { - <#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowDetected> - "apiReflexPlatformID" : "${apiReflexPlatformID}", - "datas" : - <#include "RFXtoRP_HsrReceiptList_ExecutionflowDetected.ftl"> - - }, - { - <#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowReceiptExpected> - "apiReflexPlatformID" : "${apiReflexPlatformID}", - "datas" : - <#include "RFXtoRP_HsrReceiptList_ReceiptExpected.ftl"> - - } - ] - + <#if receipt.receipt_type = "030"> + <#stop "ignored message because receipt type = transfert"> <#else> - <#stop "Receipt reference is empty"> + [ + { + <#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowDetected> + "apiReflexPlatformID" : "${apiReflexPlatformID}", + "datas" : + <#include "RFXtoRP_HsrReceiptList_ExecutionflowDetected.ftl"> + + }, + { + <#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowReceiptExpected> + "apiReflexPlatformID" : "${apiReflexPlatformID}", + "datas" : + <#include "RFXtoRP_HsrReceiptList_ReceiptExpected.ftl"> + + } + ] + <#else> + <#stop "Receipt reference is empty"> + <#break> <#case "U"> <#-- *********************************************** Action = UPDATE ******************** --> <#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) /> - <#assign receipt = JsonUtil.jsonToMap(dataRfx)> - [ + <#assign receipt = JsonUtil.jsonToMap(dataRfx)> + [ <#if receipt.receipt_confirmed == "true" > { - <#assign apiReflexPlatformID = ApiReflexPlatformID.ReceiptCompleted> + <#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowReceiptCompleted> "apiReflexPlatformID" : "${apiReflexPlatformID}", - "datas" : - <#include "RFXtoRP_HsrReceiptList_ReceiptCompleted.ftl"> - } + "datas" : + <#include "RFXtoRP_HsrReceiptList_ExecutionflowReceiptCompleted.ftl"> + } <#else> <#if receipt.receipt_type = "030"> <#stop "ignored message because receipt type = transfert"> <#else> { - <#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowDetected> + <#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowDetected> "apiReflexPlatformID" : "${apiReflexPlatformID}", - "datas" : - <#include "RFXtoRP_HsrReceiptList_ExecutionflowDetected.ftl"> + "datas" : + <#include "RFXtoRP_HsrReceiptList_ExecutionflowDetected.ftl"> }, { - <#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowReceiptExpected> + <#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowReceiptExpected> "apiReflexPlatformID" : "${apiReflexPlatformID}", - "datas" : - <#include "RFXtoRP_HsrReceiptList_ReceiptExpected.ftl"> - + "datas" : + <#include "RFXtoRP_HsrReceiptList_ReceiptExpected.ftl"> + } - ] + ] <#break> - + <#case "D"> <#-- *********************************************** Action = DELETE ******************** --> <#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) /> - <#assign receipt = JsonUtil.jsonToMap(dataRfx)> - [ + <#assign receipt = JsonUtil.jsonToMap(dataRfx)> + [ { - <#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowCancelled> + <#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowCancelled> "apiReflexPlatformID" : "${apiReflexPlatformID}", - "datas" : - <#include "RFXtoRP_HsrReceiptList_ExecutionflowCancelled.ftl"> - + "datas" : + <#include "RFXtoRP_HsrReceiptList_ExecutionflowCancelled.ftl"> + } - ] + ] <#break> - - + + <#default> <#stop "event not supported"> diff --git a/RFXtoRP_HsrReceiptList_ExecutionflowCancelled.ftl b/RFXtoRP_HsrReceiptList_ExecutionflowCancelled.ftl index df69a85..46a8692 100644 --- a/RFXtoRP_HsrReceiptList_ExecutionflowCancelled.ftl +++ b/RFXtoRP_HsrReceiptList_ExecutionflowCancelled.ftl @@ -3,9 +3,9 @@ <#assign receipt_status_datetime = RfxDateTimetoUTC(receipt.modification_datetime,time_zone_offset_rfx) /> [ - { + { "Header": { - "ProjectID": "${projectRP}" + "ProjectID": "${projectRP}" }, "ID": { "RefID": "${receipt.receipt_reference?trim?json_string}", diff --git a/RFXtoRP_HsrReceiptList_ExecutionflowDetected.ftl b/RFXtoRP_HsrReceiptList_ExecutionflowDetected.ftl index 715d181..5919440 100644 --- a/RFXtoRP_HsrReceiptList_ExecutionflowDetected.ftl +++ b/RFXtoRP_HsrReceiptList_ExecutionflowDetected.ftl @@ -1,60 +1,60 @@ <#include "HfRpConfig.ftl"> <#include "ReflexUtils.ftl"> [ - { + { <#assign receipt_datetime = RfxDateTimetoUTC(receipt.receipt_datetime,time_zone_offset_rfx) /> <#assign receipt_creation_datetime = RfxDateTimetoUTC(receipt.creation_datetime,time_zone_offset_rfx) /> "Header": { - "ProjectID": "${projectRP}" + "ProjectID": "${projectRP}" }, "ID": { "RefID": "${receipt.receipt_reference?trim?json_string}", "RefDate": { "DateTime": "${receipt_creation_datetime}", - "AuthorTimeZone": "${time_zone_rfx}" + "AuthorTimeZone": "${time_zone_rfx}" } }, "Payload": { "CreationDateTime": { "DateTime": "${receipt_creation_datetime}", "AuthorTimeZone": "${time_zone_rfx}" - }, - + }, + <#-- Header Metadata inclusion --> <#include "RFXtoRP_HsrReceiptList_ExecutionflowDetected_HeaderMetadata.ftl">, - - "ShipFrom": + + "ShipFrom": { "ActorID": "${receipt.original_code?trim?json_string}" }, - "ShipTo" : + "ShipTo" : { "ActorID": "${receipt.physical_depot_code?trim?json_string}" }, - "ShipToAcked": true, - + "ShipToAcked": true, + <#if receipt.carrier_informations.carrier_code != ""> "Carrier" : {"ActorID": "${receipt.carrier_informations.carrier_code?trim?json_string}"}, - - - - <#if receipt.line_list??> + + + + <#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": + "RequestedContent": + { + "Goods": { "ItemID": "${line.item_code?trim?json_string!"0"}", "LVBranchID": "${line.item_lv_code?json_string!"0"}", - <#if line.line_without_detail??> + <#if line.line_without_detail??> <#if (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}", + <#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> <#stop > @@ -62,26 +62,26 @@ <#-- Segmentation Keys inclusion --> <#include "RFXtoRP_HsrReceiptList_ExecutionflowDetected_SegmentationKeys.ftl"> }, - "Quantity" : + "Quantity" : { "LVID": "${quantity_in_base_lv_RP_Cst}", - "Value": "${line.order_quantity_in_lv!0}" + "Value": "${line.order_quantity_in_lv!0}" } } - + } <#sep>, - + ], - + "RequestedMilestones" : { - "RequestedDeliveryDateTime" : + "RequestedDeliveryDateTime" : { - "DateTime": "${receipt_datetime}", - "AuthorTimeZone": "${time_zone_rfx}" - } + "DateTime": "${receipt_datetime}", + "AuthorTimeZone": "${time_zone_rfx}" + } } } } diff --git a/RFXtoRP_HsrReceiptList_ReceiptCompleted.ftl b/RFXtoRP_HsrReceiptList_ExecutionflowReceiptCompleted.ftl similarity index 90% rename from RFXtoRP_HsrReceiptList_ReceiptCompleted.ftl rename to RFXtoRP_HsrReceiptList_ExecutionflowReceiptCompleted.ftl index 1c87c12..485a5c5 100644 --- a/RFXtoRP_HsrReceiptList_ReceiptCompleted.ftl +++ b/RFXtoRP_HsrReceiptList_ExecutionflowReceiptCompleted.ftl @@ -2,9 +2,9 @@ <#include "ReflexUtils.ftl"> <#assign receipt_status_datetime = RfxDateTimetoUTC(receipt.confirmation_datetime,time_zone_offset_rfx) /> [ - { + { "Header": { - "ProjectID": "${projectRP}" + "ProjectID": "${projectRP}" }, "ID": { "RefID": "${receipt.receipt_reference?trim?json_string}", diff --git a/RFXtoRP_HsrReceiptList_ReceiptExpected.ftl b/RFXtoRP_HsrReceiptList_ReceiptExpected.ftl index 8588fa5..65f257c 100644 --- a/RFXtoRP_HsrReceiptList_ReceiptExpected.ftl +++ b/RFXtoRP_HsrReceiptList_ReceiptExpected.ftl @@ -3,9 +3,9 @@ <#assign receipt_status_datetime = RfxDateTimetoUTC(receipt.creation_datetime,time_zone_offset_rfx) /> [ - { + { "Header": { - "ProjectID": "${projectRP}" + "ProjectID": "${projectRP}" }, "ID": { "RefID": "${receipt.receipt_reference?trim?json_string}", @@ -14,8 +14,8 @@ "AuthorTimeZone": "${time_zone_rfx}" } }, - + "Payload": {} - + } ] diff --git a/RFXtoRP_PlatformLogCreate.ftl b/RFXtoRP_PlatformLogCreate.ftl index 7806150..9e657f1 100644 --- a/RFXtoRP_PlatformLogCreate.ftl +++ b/RFXtoRP_PlatformLogCreate.ftl @@ -2,9 +2,9 @@ [ <#assign UUID = UUID.randomUUID()> <#assign strJsonBody = JsonUtil.espaceQuoteInJsonString(restResponseBody)> - { + { "Header": { - "ProjectID": "${projectRP}" + "ProjectID": "${projectRP}" }, "ID": { "RefID": "${UUID}", @@ -12,7 +12,7 @@ "DateTime": "${aDateTime?iso_utc}", "AuthorTimeZone": "${time_zone_rfx}" } - }, + }, "Payload": { <#assign severity = SeverityLevel.ERROR> "Severity": "${severity}", @@ -35,7 +35,7 @@ "ContextPayload": "rfxresponse", "Type": "RP_EXECUTIONFLOW_EVENT", "Task": "${id.apiRestReflexID}", - "OriginalID": "${id.refid}", + "OriginalID": "${id.refid?trim?json_string}", "StackTrace": "" } } diff --git a/RFXtoRP_PrepOrder_ShipFromAcked.ftl b/RFXtoRP_PrepOrder_ShipFromAcked.ftl index 69d0247..6a4ab2c 100644 --- a/RFXtoRP_PrepOrder_ShipFromAcked.ftl +++ b/RFXtoRP_PrepOrder_ShipFromAcked.ftl @@ -1,15 +1,15 @@ [ - { + { "Header": { - "ProjectID": "${projectRP}" + "ProjectID": "${projectRP}" }, "ID": { "RefID": "${id.refid}" }, - + "Payload": { "ShipFromAcked": true } - + } ] diff --git a/RFXtoRP_RestResponse.ftl b/RFXtoRP_RestResponse.ftl index 2b62793..01a3c9b 100644 --- a/RFXtoRP_RestResponse.ftl +++ b/RFXtoRP_RestResponse.ftl @@ -3,8 +3,8 @@ <#-- project : projectId in ReflexPlatform --> <#-- organisation : organisationtId in ReflexPlatform --> -<#assign restResponsetMsg = JsonUtil.jsonToMap(input)> -<#assign id = JsonUtil.jsonToMap(restResponsetMsg.id)> +<#assign restResponsetMsg = JsonUtil.jsonToMap(input)> +<#assign id = JsonUtil.jsonToMap(restResponsetMsg.id)> <#assign projectRP = project> <#assign organisationRP = organisation> @@ -18,91 +18,115 @@ <#case 201> <#-- *********************************************** ApiRestID = preparation_orders_post ******************** --> <#assign restResponseBody = JsonUtil.decodeBase64(restResponsetMsg.body) /> - <#assign preparationOrderPostResponse = JsonUtil.jsonToMap(restResponseBody)> - <#if preparationOrderPostResponse.status?? && preparationOrderPostResponse.status == "SUCCESS" > - [ + <#assign preparationOrderPostResponse = JsonUtil.jsonToMap(restResponseBody)> + <#if preparationOrderPostResponse.status?? && preparationOrderPostResponse.status == "SUCCESS" > + [ { - <#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowShipFromAcked> + <#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowShipFromAcked> "apiReflexPlatformID" : "${apiReflexPlatformID}", - "datas" : - <#include "RFXtoRP_PrepOrder_ShipFromAcked.ftl"> + "datas" : + <#include "RFXtoRP_PrepOrder_ShipFromAcked.ftl"> } ] - <#else> - [ + <#else> + [ { <#assign restResponseBody = JsonUtil.decodeBase64(restResponsetMsg.body) /> - <#assign apiReflexPlatformID = ApiReflexPlatformID.PlatformLogCreate> + <#assign apiReflexPlatformID = ApiReflexPlatformID.PlatformLogCreate> "apiReflexPlatformID" : "${apiReflexPlatformID}", - "datas" : - <#include "RFXtoRP_PlatformLogCreate.ftl"> + "datas" : + <#include "RFXtoRP_PlatformLogCreate.ftl"> + }, + { + <#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowAllocationError> + "apiReflexPlatformID" : "${apiReflexPlatformID}", + "datas" : + <#include "RFXtoRP_RestResponseAllocationError.ftl"> } - ] + ] - <#break> + <#break> <#default> - [ + [ { <#if restResponsetMsg.body?? > <#assign restResponseBody = JsonUtil.decodeBase64(restResponsetMsg.body) /> <#else> <#assign restResponseBody = "{}" /> - <#assign apiReflexPlatformID = ApiReflexPlatformID.PlatformLogCreate> + <#assign apiReflexPlatformID = ApiReflexPlatformID.PlatformLogCreate> "apiReflexPlatformID" : "${apiReflexPlatformID}", - "datas" : - <#include "RFXtoRP_PlatformLogCreate.ftl"> + "datas" : + <#include "RFXtoRP_PlatformLogCreate.ftl"> + }, + { + <#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowAllocationError> + "apiReflexPlatformID" : "${apiReflexPlatformID}", + "datas" : + <#include "RFXtoRP_RestResponseAllocationError.ftl"> } - ] - + ] + <#break> - + <#case "receipts_post"> <#switch restResponsetMsg.status> <#case 200> <#case 201> <#-- *********************************************** ApiRestID = receipts_post ******************** --> <#assign restResponseBody = JsonUtil.decodeBase64(restResponsetMsg.body) /> - <#assign preparationOrderPostResponse = JsonUtil.jsonToMap(restResponseBody)> - <#if preparationOrderPostResponse.status?? && preparationOrderPostResponse.status == "SUCCESS" > - [ + <#assign preparationOrderPostResponse = JsonUtil.jsonToMap(restResponseBody)> + <#if preparationOrderPostResponse.status?? && preparationOrderPostResponse.status == "SUCCESS" > + [ { - <#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowShipToAcked> + <#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowShipToAcked> "apiReflexPlatformID" : "${apiReflexPlatformID}", - "datas" : - <#include "RFXtoRP_Receipt_ShipToAcked.ftl"> + "datas" : + <#include "RFXtoRP_Receipt_ShipToAcked.ftl"> } - ] - <#else> - [ + ] + <#else> + [ { <#assign restResponseBody = JsonUtil.decodeBase64(restResponsetMsg.body) /> - <#assign apiReflexPlatformID = ApiReflexPlatformID.PlatformLogCreate> + <#assign apiReflexPlatformID = ApiReflexPlatformID.PlatformLogCreate> "apiReflexPlatformID" : "${apiReflexPlatformID}", - "datas" : - <#include "RFXtoRP_PlatformLogCreate.ftl"> - } - ] - + "datas" : + <#include "RFXtoRP_PlatformLogCreate.ftl"> + }, + { + <#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowAllocationError> + "apiReflexPlatformID" : "${apiReflexPlatformID}", + "datas" : + <#include "RFXtoRP_RestResponseAllocationError.ftl"> + } + ] + <#break> <#default> - [ + [ { <#if restResponsetMsg.body?? > <#assign restResponseBody = JsonUtil.decodeBase64(restResponsetMsg.body) /> <#else> <#assign restResponseBody = "{}" /> - <#assign apiReflexPlatformID = ApiReflexPlatformID.PlatformLogCreate> + <#assign apiReflexPlatformID = ApiReflexPlatformID.PlatformLogCreate> "apiReflexPlatformID" : "${apiReflexPlatformID}", - "datas" : - <#include "RFXtoRP_PlatformLogCreate.ftl"> + "datas" : + <#include "RFXtoRP_PlatformLogCreate.ftl"> + }, + { + <#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowAllocationError> + "apiReflexPlatformID" : "${apiReflexPlatformID}", + "datas" : + <#include "RFXtoRP_RestResponseAllocationError.ftl"> } - ] - + ] + <#break> - + <#default> <#stop> diff --git a/RFXtoRP_RestResponseAllocationError.ftl b/RFXtoRP_RestResponseAllocationError.ftl new file mode 100644 index 0000000..56626f1 --- /dev/null +++ b/RFXtoRP_RestResponseAllocationError.ftl @@ -0,0 +1,20 @@ +<#include "HfRpConfig.ftl"> +<#include "ReflexUtils.ftl"> + +[ + { + "Header": { + "ProjectID": "${projectRP}" + }, + "ID": { + "RefID": "${id.refid?trim?json_string}", + "RefDate": { + "DateTime": "${aDateTime?iso_utc}", + "AuthorTimeZone": "${time_zone_rfx}" + } + }, + + "Payload": {} + + } +] diff --git a/ReflexUtils.ftl b/ReflexUtils.ftl index 24d10e7..d033bfb 100644 --- a/ReflexUtils.ftl +++ b/ReflexUtils.ftl @@ -2,8 +2,7 @@ <#-- Concat reflex timestamp with reflex time zone and format this date in ISO UTC format --> <#-- --------------------------------------------------------------------------------------- --> <#function RfxDateTimetoUTC rfxdatetime offset > - <#assign datetimeUTC = JsonUtil.createUTCDateTime(rfxdatetime,time_zone_rfx , "yyyy-MM-dd'T'HH:mm:ss") /> - <#return (datetimeUTC)> + <#return ((rfxdatetime + offset)?datetime.iso?iso_utc)> <#-- --------------------------------------------------------------------------------------- --> @@ -13,15 +12,15 @@ <#-- --------------------------------------------------------------------------------------- --> <#function splitEmailsIntoArray emails > <#local str = "["> -<#list emails?split(";|,| |à|/","r")?filter(l -> l != "") as email> -<#if email?matches("^[\\w-\\.]+@([\\w-]+\\.)+[\\w-]{2,4}$")> +<#list emails?split(";|,| |à|/","r")?filter(l -> l != "") as email> +<#if email?matches("^[\\w-\\.]+@([\\w-]+\\.)+[\\w-]{2,4}$")> <#if str != "["> <#local str += ","> <#local str += "\""> <#local str += email> <#local str += "\""> - + <#local str += "]"> <#return (str)>