You've already forked reflex-wms-connector
Compare commits
116 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 892812e85e | |||
| a512e4c23a | |||
| 884ad540fe | |||
| 3a9620e3ee | |||
| d5573b6dba | |||
| 162b73e75f | |||
| bb4315bba1 | |||
| c4910785e0 | |||
| 5688244be2 | |||
| de5e94be3c | |||
| 646256d879 | |||
| 60355d1ba5 | |||
| 737763dc7f | |||
| 098b2d4e1d | |||
| 7b55a4bcd0 | |||
| b369dd8adf | |||
| fd1cfcc2c5 | |||
| fc8290648f | |||
| 378c1ba75f | |||
| d94a74d399 | |||
| 61753efabe | |||
| c6a91f1980 | |||
| 39ab7c4ce7 | |||
| e808925e0a | |||
| c103fc7f5a | |||
| 1a9454cd2f | |||
| aaf8fc5bb6 | |||
| 7acf529870 | |||
| 47326a6b0c | |||
| cb0385a64f | |||
| a882ac4b86 | |||
| d2d9443fc7 | |||
| a5fa0dbfd9 | |||
| ca2dfe3fb2 | |||
| 980a44c1be | |||
| 6faa6bb4fc | |||
| 8b4103e50d | |||
| bff543d852 | |||
| 0b71455e6f | |||
| 18f1bb3749 | |||
| 8211fcebf0 | |||
| fcfb9206c0 | |||
| 59afa9fd65 | |||
| 07188a5c20 | |||
| 137982fcc0 | |||
| 64c35417b3 | |||
| b6bf4d2be8 | |||
| 86a4180718 | |||
| 108e30d129 | |||
| dd1d4980a8 | |||
| 8f212cf7c9 | |||
| c2e0cb7a15 | |||
| 7505c15a4a | |||
| 705ad9be63 | |||
| 7e2c22b4c9 | |||
| 27f2e18f0f | |||
| 783d7efd04 | |||
| e319d273bb | |||
| cb1793bf22 | |||
| eac8ddc598 | |||
| ba43f65277 | |||
| b3cfa5c66d | |||
| 882709f01b | |||
| 38ef2bd3df | |||
| cd75521f81 | |||
| 943a02d5f3 | |||
| 68e6840512 | |||
| 26facb3d6a | |||
| 7a3223a1ac | |||
| 7d32478c1b | |||
| 88307561d2 | |||
| 2bdc02a1d4 | |||
| e709d7d78a | |||
| 03f53c0fd0 | |||
| ac731180db | |||
| 97d08b554c | |||
| 4636ca6c42 | |||
| 8f066d7f62 | |||
| dfdfd8c60e | |||
| 41447dbc35 | |||
| ae338b00d1 | |||
| 14243be12f | |||
| c5c5f2bef7 | |||
| edc5142c3f | |||
| c79ab16480 | |||
| 97474cf5e4 | |||
| 0115159507 | |||
| 5222b56cc3 | |||
| c27aec2730 | |||
| b286711d56 | |||
| ba7ce14568 | |||
| 02eb8cbe4e | |||
| dbde25f5d3 | |||
| fbba0ede34 | |||
| adaedeec31 | |||
| fe66e643c0 | |||
| 43553eb1e4 | |||
| 1ed9617af7 | |||
| 1de8a56410 | |||
| 30ae93b9e7 | |||
| 64e03640d1 | |||
| 270f90a9b3 | |||
| b5c85220b5 | |||
| 2409cf3a01 | |||
| 957df51487 | |||
| d09fa33577 | |||
| 3bcdec1d5d | |||
| b4ea1e7798 | |||
| 80aecb3aa7 | |||
| e02218f7b1 | |||
| 9bb625bade | |||
| e093ea7c07 | |||
| 3d9ec5b813 | |||
| 6b4f7e2ccc | |||
| 0485a637af | |||
| 293a4fb65c |
@@ -25,7 +25,9 @@
|
||||
"ItemID": "${stock.item_code}",
|
||||
"LVBranchID": "${stock.item_logistical_variant_code}",
|
||||
<#assign priority_date = stock.priority_date?datetime(rfx_date_format_default)?iso_utc />
|
||||
"PriorityDate" : "${priority_date}",
|
||||
<#if (stock.priority_date!="") && (stock.priority_date?starts_with("00")== false) >
|
||||
"PriorityDate" : "${priority_date}",
|
||||
</#if>
|
||||
|
||||
<#-- Segmentation keys inclusion -->
|
||||
<#include "RFXtoRP_HfDtlStockLs_StockSnapshotted_SegmentationKeys.ftl">
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
"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}",
|
||||
@@ -35,16 +35,19 @@
|
||||
|
||||
<#-- if Reflex WMS address is not structured -->
|
||||
<#else>
|
||||
"Name": "${carrier.address.company_name?json_string}",
|
||||
"StreetAddressOne" : "${carrier.address.address_1?json_string}",
|
||||
"StreetAddressTwo" : "${carrier.address.address_2?json_string}",
|
||||
"StreetAddressThree" : "${carrier.address.address_3?json_string}"
|
||||
<#if carrier.address??>
|
||||
"Name": "${carrier.address.company_name?json_string}",
|
||||
"StreetAddressOne" : "${carrier.address.address_1?json_string}",
|
||||
"StreetAddressTwo" : "${carrier.address.address_2?json_string}",
|
||||
"StreetAddressThree" : "${carrier.address.address_3?json_string}"
|
||||
</#if>
|
||||
</#if>
|
||||
},
|
||||
|
||||
"Phones": ["${carrier.address.telephone?json_string}",
|
||||
<#if carrier.address??>
|
||||
"Phones": ["${carrier.address.telephone?json_string}",
|
||||
"${carrier.address.other_number?json_string}"
|
||||
],
|
||||
</#if>
|
||||
"Typology": "TYPOLOGY_CARRIER"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -35,18 +35,20 @@
|
||||
|
||||
<#-- if Reflex WMS is not structured -->
|
||||
<#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}"
|
||||
|
||||
"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>
|
||||
</#if>
|
||||
},
|
||||
|
||||
"Phones": ["${actor.address.telephone?json_string}",
|
||||
<#if actor.address?? >
|
||||
"Phones": ["${actor.address.telephone?json_string}",
|
||||
"${actor.address.other_number?json_string}"
|
||||
],
|
||||
],
|
||||
</#if>
|
||||
"Typology": "TYPOLOGY_UNKNOWN"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
>
|
||||
[
|
||||
{
|
||||
<#assign apiReflexPlatformID = ApiReflexPlatformID.GoodsReceived>
|
||||
<#assign apiReflexPlatformID = ApiReflexPlatformID.HandlingunitGoodsReceived>
|
||||
"apiReflexPlatformID" : "${apiReflexPlatformID}",
|
||||
"datas" :
|
||||
<#include "RFXtoRP_HsaIpgMove_GoodsReceived.ftl">
|
||||
@@ -58,7 +58,7 @@
|
||||
</#if>
|
||||
</#if>
|
||||
<#else>
|
||||
<#-- cases of an IPG move with quantity = 0 (weight modification))-->
|
||||
<#-- cases of an IPG move with quantity = 0 (weight modification)-->
|
||||
<#stop "move ignored quantity = 0">
|
||||
</#if>
|
||||
<#break>
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
"ExternalMoveRef" : "${reflexMvtStockInterface.ipg_move_year_number} - ${reflexMvtStockInterface.ipg_move_number}",
|
||||
"Type": "${MoveType_KV[reflexMvtStockInterface.ipg_move_type]!reflexMvtStockInterface.ipg_move_type}",
|
||||
"Reason": "${reflexMvtStockInterface.miscellaneous_receipts_despatches_code}",
|
||||
"ExternalInfo" : "${reflexMvtStockInterface.stock_move_reference}",
|
||||
"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}",
|
||||
</#if>
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
|
||||
<#assign preparationStatusInterface = JsonUtil.jsonToMap(dataRfx) />
|
||||
[
|
||||
<#--**Pick batch runned (100) **-->
|
||||
<#--**Pick batch runned (200) **-->
|
||||
<#if preparationStatusInterface.preparation_status_type == "100" && preparationStatusInterface.preparation_status_code == "200" >
|
||||
{
|
||||
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowPreparationExpected>
|
||||
|
||||
@@ -34,16 +34,20 @@
|
||||
|
||||
<#-- if Reflex WMS address is not structured -->
|
||||
<#else>
|
||||
"Name": "${actor.optional_attributes.company_name?json_string}",
|
||||
"StreetAddressOne" : "${actor.optional_attributes.address_1?json_string}",
|
||||
"StreetAddressTwo" : "${actor.optional_attributes.address_2?json_string}",
|
||||
"StreetAddressThree" : "${actor.optional_attributes.address_3?json_string}"
|
||||
<#if actor.optional_attributes?? >
|
||||
"Name": "${actor.optional_attributes.company_name?json_string}",
|
||||
"StreetAddressOne" : "${actor.optional_attributes.address_1?json_string}",
|
||||
"StreetAddressTwo" : "${actor.optional_attributes.address_2?json_string}",
|
||||
"StreetAddressThree" : "${actor.optional_attributes.address_3?json_string}"
|
||||
</#if>
|
||||
</#if>
|
||||
|
||||
},
|
||||
"Phones": ["${actor.optional_attributes.telephone?json_string}",
|
||||
"${actor.optional_attributes.other_number?json_string}"
|
||||
],
|
||||
<#if actor.optional_attributes?? >
|
||||
"Phones": ["${actor.optional_attributes.telephone?json_string}",
|
||||
"${actor.optional_attributes.other_number?json_string}"
|
||||
],
|
||||
</#if>
|
||||
"Typology": "TYPOLOGY_UNKNOWN"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,57 +2,59 @@
|
||||
<#-- input : message RFX -->
|
||||
<#-- project : projectId in ReflexPlatform -->
|
||||
<#-- organisation : organisationtId in ReflexPlatform -->
|
||||
|
||||
|
||||
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
|
||||
<#assign projectRP = project>
|
||||
<#assign organisationRP = organisation>
|
||||
|
||||
|
||||
<#assign aDateTime = .now>
|
||||
|
||||
|
||||
<#switch cloudEventMsg.action>
|
||||
<#case "C">
|
||||
<#--<#case "U">
|
||||
<#-- *********************************************** Action = CREATE or UPDATE ******************** -->
|
||||
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
|
||||
<#assign preparationOrder = JsonUtil.jsonToMap(dataRfx)>
|
||||
[
|
||||
<#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 apiReflexPlatformID = ApiReflexPlatformID.GoodsPrepared>
|
||||
<#assign apiReflexPlatformID = ApiReflexPlatformID.GoodsPrepared>
|
||||
"apiReflexPlatformID" : "${apiReflexPlatformID}",
|
||||
"datas" :
|
||||
<#include "RFXtoRP_HsrPrepa_GoodsPrepared.ftl">
|
||||
},
|
||||
{
|
||||
<#assign apiReflexPlatformID = ApiReflexPlatformID.HandlingunitDispatched>
|
||||
<#assign apiReflexPlatformID = ApiReflexPlatformID.HandlingunitDispatched>
|
||||
"apiReflexPlatformID" : "${apiReflexPlatformID}",
|
||||
"datas" :
|
||||
<#include "RFXtoRP_HsrPrepa_HandlingUnitDispatched.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>
|
||||
|
||||
<#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>
|
||||
|
||||
</#list>
|
||||
</#list>
|
||||
]
|
||||
<#break>
|
||||
|
||||
<#case "D">
|
||||
<#-- *********************************************** Action = DELETE ******************** -->
|
||||
<#stop "event not supported (Case D)">
|
||||
<#break>
|
||||
|
||||
|
||||
<#default>
|
||||
<#stop "event not supported">
|
||||
</#switch>
|
||||
]
|
||||
<#else>
|
||||
<#stop "no confirmed quantity for the preparation - preparation closed">
|
||||
</#if>
|
||||
|
||||
<#break>
|
||||
<#case "D">
|
||||
<#-- *********************************************** Action = DELETE ******************** -->
|
||||
<#stop "event not supported (Case D)">
|
||||
<#break>
|
||||
|
||||
<#default>
|
||||
<#stop "event not supported">
|
||||
</#switch>
|
||||
@@ -33,42 +33,46 @@
|
||||
"ItemID": "${preparation_line.item_code}",
|
||||
"LVBranchID": "${preparation_line.item_lv_code}",
|
||||
<#if (despatched_ipg.ipg_manufacture_date?length != 0) && (despatched_ipg.ipg_manufacture_date?starts_with("00") == false)>
|
||||
<#-- <#assign priority_date = JsonUtil.createUTCDateTime(despatched_ipg.ipg_manufacture_date) /> -->
|
||||
<#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 = JsonUtil.createUTCDateTime(despatched_ipg.ipg_receipt_date) /> -->
|
||||
<#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 = JsonUtil.createUTCDateTime(despatched_ipg.ipg_best_before_date) /> -->
|
||||
<#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 = JsonUtil.createUTCDateTime(despatched_ipg.ipg_sell_by_date) /> -->
|
||||
<#assign priority_date = despatched_ipg.ipg_sell_by_date?datetime(rfx_date_format_default)?iso_utc />
|
||||
<#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 = JsonUtil.createUTCDateTime(despatched_ipg.ipg_use_by_date) /> -->
|
||||
<#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": "error_date",
|
||||
</#if>
|
||||
</#if>
|
||||
</#if>
|
||||
</#if>
|
||||
</#if>
|
||||
</#if>
|
||||
</#if>
|
||||
|
||||
<#-- Segmentation Keys inclusion -->
|
||||
<#include "RFXtoRP_HsrPrepa_GoodsPrepared_SegmentationKeys.ftl">
|
||||
},
|
||||
"ExecutionflowID": "${preparation_line.preparation_order_originator_reference}",
|
||||
"LineID": "${preparation_line.pro_line_number}",
|
||||
<#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": "${preparationOrder.physical_depot_code}",
|
||||
"Quantity": {
|
||||
"LVID": "${quantity_in_base_lv_RP_Cst}",
|
||||
|
||||
@@ -14,14 +14,14 @@
|
||||
<#case "U">
|
||||
<#-- *********************************************** Action = CREATE or UPDATE ******************** -->
|
||||
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
|
||||
<#assign order = JsonUtil.jsonToMap(dataRfx)>
|
||||
<#assign preparation_order = JsonUtil.jsonToMap(dataRfx)>
|
||||
[
|
||||
{
|
||||
<#-- check preparation type code (internal order and reservation are ignored) -->
|
||||
<#if order.preparation_type_code == "010" || order.preparation_type_code == "030">
|
||||
<#if preparation_order.preparation_type_code == "010" || order.preparation_type_code == "030">
|
||||
|
||||
<#-- Only if preparation order not confirmed -->
|
||||
<#if order.preparation_order_confirmed == "false" >
|
||||
<#if preparation_order.preparation_order_confirmed == "false" >
|
||||
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowDetected>
|
||||
"apiReflexPlatformID" : "${apiReflexPlatformID}",
|
||||
"datas" :
|
||||
@@ -41,7 +41,7 @@
|
||||
<#case "D">
|
||||
<#-- *********************************************** Action = DELETE ******************** -->
|
||||
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
|
||||
<#assign order = JsonUtil.jsonToMap(dataRfx)>
|
||||
<#assign preparation_order = JsonUtil.jsonToMap(dataRfx)>
|
||||
[
|
||||
{
|
||||
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowCancelled>
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
<#include "HfRpConfig.ftl">
|
||||
<#include "ReflexUtils.ftl">
|
||||
<#assign preparation_status_datetime = RfxDateTimetoUTC(order.modification_datetime,time_zone_offset_rfx) />
|
||||
<#assign preparation_status_datetime = RfxDateTimetoUTC(preparation_order.modification_datetime,time_zone_offset_rfx) />
|
||||
[
|
||||
{
|
||||
"Header": {
|
||||
"ProjectID": "${projectRP}"
|
||||
},
|
||||
"ID": {
|
||||
"RefID": "${order.originator_reference}",
|
||||
"RefID": "${preparation_order.originator_reference}",
|
||||
"RefDate": {
|
||||
"DateTime": "${preparation_status_datetime}",
|
||||
"AuthorTimeZone": "${time_zone_rfx}"
|
||||
|
||||
@@ -2,13 +2,13 @@
|
||||
<#include "ReflexUtils.ftl">
|
||||
[
|
||||
{
|
||||
<#assign planned_final_delivery_start_datetime = RfxDateTimetoUTC(order.planned_final_delivery_start_datetime,time_zone_offset_rfx) />
|
||||
<#assign pro_creation_datetime = RfxDateTimetoUTC(order.creation_datetime,time_zone_offset_rfx) />
|
||||
<#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}"
|
||||
},
|
||||
"ID": {
|
||||
"RefID": "${order.originator_reference}",
|
||||
"RefID": "${preparation_order.originator_reference}",
|
||||
"RefDate": {
|
||||
"DateTime": "${pro_creation_datetime}",
|
||||
"AuthorTimeZone": "${time_zone_rfx}"
|
||||
@@ -21,47 +21,66 @@
|
||||
},
|
||||
<#-- 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}",
|
||||
</#if> -->
|
||||
"ShipFrom": {
|
||||
"ActorID": "${order.physical_depot_code}"
|
||||
"ActorID": "${preparation_order.physical_depot_code}"
|
||||
},
|
||||
"ShipFromAcked": true,
|
||||
"ShipTo": {
|
||||
<#if order.address.type_code == "" && order.address.title_code == "" && order.address.first_name == "" && order.address.last_name == "" && order.address.mail_address == "" && order.address.contact_type_code == "" && order.address.mobile_phone_number == "" && order.address.land_line_phone_number == "" && order.address.fax_number == "" && order.address.address_type_code == "" && order.address.name_or_company_name == "" && order.address.additional_address_data_1 == "" && order.address.additional_address_data_2 == "" && order.address.post_code_area_name == "" && order.address.territorial_division_code == "" && order.address.postal_code == "" && order.address.iso_country_code == "">
|
||||
"ActorID": "${order.end_consignee_code}"
|
||||
<#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 == "">
|
||||
"ActorID": "${preparation_order.end_consignee_code}"
|
||||
<#else>
|
||||
"Actor":
|
||||
{
|
||||
"Name" : "${order.address.name_or_company_name!""}",
|
||||
"Name" : "${preparation_order.address.name_or_company_name?json_string!""}",
|
||||
"Address" :
|
||||
{
|
||||
"City" : "${order.address.post_code_area_name!""}",
|
||||
"CountryCode" : "${order.address.iso_country_code!""}",
|
||||
"PostalCode" : "${order.address.postal_code!""}",
|
||||
"StreetAddressOne" : "${order.address.street_and_number_and_po_box!""}",
|
||||
"StreetAddressTwo" : "${order.address.additional_address_data_1!""}",
|
||||
"StreetAddressThree" : "${order.address.additional_address_data_2!""}"
|
||||
"City" : "${preparation_order.address.post_code_area_name?json_string!""}",
|
||||
"CountryCode" : "${preparation_order.address.iso_country_code!""}",
|
||||
"PostalCode" : "${preparation_order.address.postal_code!""}",
|
||||
"StreetAddressOne" : "${preparation_order.address.street_and_number_and_po_box?json_string!""}",
|
||||
"StreetAddressTwo" : "${preparation_order.address.additional_address_data_1?json_string!""}",
|
||||
"StreetAddressThree" : "${preparation_order.address.additional_address_data_2?json_string!""}"
|
||||
}
|
||||
},
|
||||
"Contact" :
|
||||
"Contact" :
|
||||
{
|
||||
"FirstName" : "${order.address.first_name!""}",
|
||||
"LastName" : "${order.address.last_name!""}",
|
||||
"Emails" : ["${order.address.mail_address!""}"],
|
||||
"Phones" : ["${order.address.mobile_phone_number!""}","${order.address.land_line_phone_number!""}", "${order.address.fax_number!""}" ]
|
||||
}
|
||||
|
||||
"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)},
|
||||
"Phones" : ["${preparation_order.address.mobile_phone_number!""}","${preparation_order.address.land_line_phone_number!""}", "${preparation_order.address.fax_number!""}" ]
|
||||
}
|
||||
</#if>
|
||||
},
|
||||
|
||||
<#if order.line_list??>
|
||||
<#if preparation_order.line_list??>
|
||||
"Lines" : [
|
||||
<#list order.line_list as line>
|
||||
<#list preparation_order.line_list as preparation_order_line >
|
||||
{
|
||||
<#if (line.originator_reference_line_number!0) != 0>
|
||||
"LineID": "${line.originator_reference_line_number}",
|
||||
<#if (preparation_order_line.originator_reference_line_number!0) != 0>
|
||||
"LineID": "${preparation_order_line.originator_reference_line_number}",
|
||||
<#else>
|
||||
"LineID": "${line.preparation_order_line_number!0}",
|
||||
"LineID": "${preparation_order_line.preparation_order_line_number!0}",
|
||||
</#if>
|
||||
<#-- Line Metadata inclusion -->
|
||||
<#include "RFXtoRP_HsrPro_ExecutionflowDetected_LineMetadata.ftl">,
|
||||
@@ -70,10 +89,10 @@
|
||||
{
|
||||
"Goods":
|
||||
{
|
||||
"ItemID": "${line.item_code!"0"}",
|
||||
"LVBranchID": "${line.item_lv_code!"0"}",
|
||||
<#if (line.optional_attributes.forced_priority_date?length != 0) && (line.optional_attributes.forced_priority_date?starts_with("00") == false)>
|
||||
<#assign forced_priority_date = line.optional_attributes.forced_priority_date?datetime(rfx_date_format_default)?iso_utc />
|
||||
"ItemID": "${preparation_order_line.item_code!"0"}",
|
||||
"LVBranchID": "${preparation_order_line.item_lv_code!"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>
|
||||
|
||||
@@ -84,7 +103,7 @@
|
||||
"Quantity" :
|
||||
{
|
||||
"LVID": "${quantity_in_base_lv_RP_Cst}",
|
||||
"Value": "${line.base_lv_quantity_to_prepare!0}"
|
||||
"Value": "${preparation_order_line.base_lv_quantity_to_prepare!0}"
|
||||
}
|
||||
}
|
||||
}<#sep>,</#sep>
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
"MetaData": [
|
||||
{
|
||||
"Key": "OrderType",
|
||||
"Value": { "String" : "${order.optional_attributes.reason_code}"}
|
||||
"Value": { "String" : "${preparation_order.optional_attributes.reason_code}"}
|
||||
}
|
||||
],
|
||||
-->
|
||||
|
||||
@@ -4,18 +4,18 @@
|
||||
"SegmentationKeys": [
|
||||
{
|
||||
"Key": "Grade",
|
||||
"Value": { "String" : "${line.grade_code_to_prepare}"}
|
||||
"Value": { "String" : "${preparation_order_line.grade_code_to_prepare}"}
|
||||
},
|
||||
{
|
||||
"Key": "Owner",
|
||||
"Value": { "String" : "${line.owner_code_to_prepare}"}
|
||||
"Value": { "String" : "${preparation_order_line.owner_code_to_prepare}"}
|
||||
},
|
||||
{
|
||||
"Key": "BatchNumber",
|
||||
<#if reflexMvtStockInterface.batch_1 == "">
|
||||
"Value": { "String" : "no batch"}
|
||||
<#else>
|
||||
"Value": { "String" : "${line.batch_1}"}
|
||||
"Value": { "String" : "${preparation_order_line.batch_1}"}
|
||||
</#if>
|
||||
}
|
||||
]
|
||||
|
||||
@@ -43,7 +43,11 @@
|
||||
<#default>
|
||||
[
|
||||
{
|
||||
<#assign restResponseBody = JsonUtil.decodeBase64(restResponsetMsg.body) />
|
||||
<#if restResponsetMsg.body?? >
|
||||
<#assign restResponseBody = JsonUtil.decodeBase64(restResponsetMsg.body) />
|
||||
<#else>
|
||||
<#assign restResponseBody = "{}" />
|
||||
</#if>
|
||||
<#assign apiReflexPlatformID = ApiReflexPlatformID.PlatformLogCreate>
|
||||
"apiReflexPlatformID" : "${apiReflexPlatformID}",
|
||||
"datas" :
|
||||
@@ -57,7 +61,7 @@
|
||||
<#switch restResponsetMsg.status>
|
||||
<#case 200>
|
||||
<#case 201>
|
||||
<#-- *********************************************** ApiRestID = preparation_orders_post ******************** -->
|
||||
<#-- *********************************************** ApiRestID = receipts_post ******************** -->
|
||||
<#assign restResponseBody = JsonUtil.decodeBase64(restResponsetMsg.body) />
|
||||
<#assign preparationOrderPostResponse = JsonUtil.jsonToMap(restResponseBody)>
|
||||
<#if preparationOrderPostResponse.status?? && preparationOrderPostResponse.status == "SUCCESS" >
|
||||
@@ -85,7 +89,11 @@
|
||||
<#default>
|
||||
[
|
||||
{
|
||||
<#assign restResponseBody = JsonUtil.decodeBase64(restResponsetMsg.body) />
|
||||
<#if restResponsetMsg.body?? >
|
||||
<#assign restResponseBody = JsonUtil.decodeBase64(restResponsetMsg.body) />
|
||||
<#else>
|
||||
<#assign restResponseBody = "{}" />
|
||||
</#if>
|
||||
<#assign apiReflexPlatformID = ApiReflexPlatformID.PlatformLogCreate>
|
||||
"apiReflexPlatformID" : "${apiReflexPlatformID}",
|
||||
"datas" :
|
||||
|
||||
@@ -28,6 +28,7 @@
|
||||
"intermediate_consignee": "false",
|
||||
"protected": "${protected_flag}",
|
||||
"automatic_generation": "${automatic_generation_flag}",
|
||||
"deactivate": "false",
|
||||
"optional_attributes": {
|
||||
"apt_with_end_consignee": "${apt_with_end_consignee_flag}",
|
||||
"apt_with_intermediate": "false",
|
||||
@@ -35,13 +36,13 @@
|
||||
},
|
||||
<#if executionflow.ShipTo.ActorID == "">
|
||||
"address": {
|
||||
"first_name": "${executionflow.ShipTo.Contact.FirstName!""}",
|
||||
"last_name" :"${executionflow.ShipTo.Contact.Lastname!""}",
|
||||
"first_name": "${executionflow.ShipTo.Contact.FirstName!""?json_string}",
|
||||
"last_name" :"${executionflow.ShipTo.Contact.Lastname!""?json_string}",
|
||||
"mail_address": "${executionflow.ShipTo.Actor.Emails[0]!""}",
|
||||
"mobile_phone_number": "${executionflow.ShipTo.Actor.Phones[0]!""}",
|
||||
"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!""}",
|
||||
"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!""}",
|
||||
"iso_country_code": "${executionflow.ShipTo.Actor.Address.CountryCode!""}"
|
||||
},
|
||||
@@ -66,13 +67,13 @@
|
||||
"grade_code_to_prepare" :"${grade_code_to_prepare}",
|
||||
"input_order_data": "false",
|
||||
"batch_1": "${batch_1}",
|
||||
"base_lv_quantity": "true",
|
||||
"any_lv": "false"
|
||||
<#--
|
||||
"stock_reservation": "false",
|
||||
"forced_priority_date_min_lead_time": "false",
|
||||
"temp_substitution_possible": "false",
|
||||
"substitution_possible": "false",
|
||||
"base_lv_quantity": "true",
|
||||
"substitution_possible": "false"
|
||||
-->
|
||||
|
||||
}<#sep>,</#sep>
|
||||
|
||||
@@ -2,14 +2,22 @@
|
||||
|
||||
<#-- How to use MD Header map
|
||||
Example :
|
||||
<#assign pick_sequence_code = Header_MetaData_Map["OrderType"]!""/>
|
||||
<#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 = "PEN"/>
|
||||
<#assign originator_code = "50000189"/>
|
||||
<#assign preparation_type_code = "010"/>
|
||||
<#assign requested_delivery_date_type = "010"/>
|
||||
|
||||
<#assign activity_code = ""/>
|
||||
<#assign originator_code = ""/>
|
||||
<#assign preparation_type_code = ""/>
|
||||
<#assign requested_delivery_date_type = ""/>
|
||||
<#assign consolidated_delivery_flag ="false"/>
|
||||
<#assign pick_sequence_code = ""/>
|
||||
<#assign protected_flag ="false"/>
|
||||
|
||||
@@ -3,7 +3,14 @@
|
||||
|
||||
<#-- How to use MD or SK map
|
||||
Example :
|
||||
<#assign owner_code_to_prepare = SegmentationKeys_Map["Owner"]!""/>
|
||||
<#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"]!""/>
|
||||
|
||||
@@ -19,30 +19,26 @@
|
||||
"carrier_code" : "${executionflow.Carrier.ActorID!""}",
|
||||
|
||||
<#if executionflow.RequestedMilestones?? && executionflow.RequestedMilestones.RequestedDeliveryDateTime??>
|
||||
"receipt_datetime": "${executionflow.RequestedMilestones.RequestedDeliveryDateTime.DateTime}",
|
||||
"receipt_datetime": "${executionflow.RequestedMilestones.RequestedDeliveryDateTime.DateTime}",
|
||||
<#else>
|
||||
"receipt_datetime": "${aDateTime?iso_utc}",
|
||||
"receipt_datetime": "${aDateTime?iso_utc}",
|
||||
</#if>
|
||||
|
||||
<#--
|
||||
"carrier_appointment_made": "false",
|
||||
"receipt_in_cross_docking": "false",
|
||||
"dock_occupation_duration": 10,
|
||||
-->
|
||||
"carrier_appointment_made": "false",
|
||||
"receipt_in_cross_docking": "false",
|
||||
"dock_occupation_duration": 1,
|
||||
|
||||
<#if executionflow.Lines??>
|
||||
"line_list": [
|
||||
<#list executionflow.Lines as line>
|
||||
"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") />
|
||||
</#if>
|
||||
<#if line.RequestedContent.Goods.SegmentationKeys??>
|
||||
<#assign SegmentationKeys_Map = JsonUtil.sequenceToMap(line.RequestedContent.Goods.SegmentationKeys, "Key", "Value") />
|
||||
</#if>
|
||||
<#if line.MetaData??>
|
||||
<#assign Line_MetaData_Map = JsonUtil.sequenceToMap(line.MetaData, "Key", "Value") />
|
||||
</#if>
|
||||
<#if line.RequestedContent.Goods.SegmentationKeys??>
|
||||
<#assign SegmentationKeys_Map = JsonUtil.sequenceToMap(line.RequestedContent.Goods.SegmentationKeys, "Key", "Value") />
|
||||
</#if>
|
||||
<#include "RPtoRFX_Receipt_DefaultLineData.ftl">
|
||||
|
||||
{
|
||||
"receipt_reference_line_no": ${line.LineID?number},
|
||||
"item_code": "${line.RequestedContent.Goods.ItemID!""}",
|
||||
@@ -50,20 +46,17 @@
|
||||
"level_1_quantity": ${line.RequestedMetrics.QuantityInBaseLV.Value!0},
|
||||
"owner_code": "${owner_code}",
|
||||
"grade_code": "${grade_code}",
|
||||
"batch_1": "${batch_1!""}",
|
||||
|
||||
<#--
|
||||
"batch_1": "${batch_1!""}",
|
||||
"optional_attributes": {
|
||||
"held_for_check": "false",
|
||||
<#--"held_for_check": "false",
|
||||
"held _for_repacking": "false",
|
||||
"hold_for_specific_code": "false",
|
||||
"hold_code": "false"
|
||||
},
|
||||
-->
|
||||
"quality_control_attributes": {
|
||||
<#--"qcf_to_create_for_receipt_line": "false",-->
|
||||
"hold_code": "false", -->
|
||||
"hold_for_specific_code": "false"
|
||||
}
|
||||
<#--"quality_control_attributes": {
|
||||
"qcf_to_create_for_receipt_line": "false",
|
||||
"exclude_item_from_inspection": "false"
|
||||
}
|
||||
} -->
|
||||
|
||||
}<#sep>,</#sep>
|
||||
</#list>
|
||||
|
||||
@@ -2,11 +2,18 @@
|
||||
|
||||
<#-- How to use MD Header map
|
||||
Example :
|
||||
<#assign receipt_type = Header_MetaData_Map["OrderType"]!""/>
|
||||
<#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 = "PEN"/>
|
||||
<#assign originator_code = "STANDARD"/>
|
||||
<#assign receipt_type = "010"/>
|
||||
<#assign receipt_reason_code = "REC"/>
|
||||
<#assign work_mode_code = "LPA"/>
|
||||
<#assign activity_code = ""/>
|
||||
<#assign originator_code = ""/>
|
||||
<#assign receipt_type = ""/>
|
||||
<#assign receipt_reason_code = ""/>
|
||||
<#assign work_mode_code = ""/>
|
||||
|
||||
@@ -3,10 +3,17 @@
|
||||
|
||||
<#-- How to use MD or SK map
|
||||
Example :
|
||||
<#assign owner_code = SegmentationKeys_Map["Owner"]!""/>
|
||||
<#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 = "PEN"/>
|
||||
<#assign grade_code = "STD"/>
|
||||
<#assign batch_1 = "STD"/>
|
||||
<#assign owner_code = ""/>
|
||||
<#assign grade_code = ""/>
|
||||
<#assign batch_1 = ""/>
|
||||
@@ -6,4 +6,24 @@
|
||||
<#return (datetimeUTC)>
|
||||
</#function>
|
||||
|
||||
|
||||
<#-- --------------------------------------------------------------------------------------- -->
|
||||
<#-- Split email reflex into json array string -->
|
||||
<#-- Example : splitemail "john.doe@hardis-group.com,; name@hardis-group.com" -->
|
||||
<#-- return "["john.doe@hardis-group.com","name@hardis-group.com"]" -->
|
||||
<#-- ${splitEmailsIntoArray(emailReflex)} -->
|
||||
<#-- --------------------------------------------------------------------------------------- -->
|
||||
<#function splitEmailsIntoArray emails >
|
||||
<#local str = "[">
|
||||
<#list emails?split(';|,| ',"r")?filter(l -> l != "") as email>
|
||||
<#if email?matches("^[\\w-\\.]+@([\\w-]+\\.)+[\\w-]{2,4}$")>
|
||||
<#if str != "[">
|
||||
<#local str += ",">
|
||||
</#if>
|
||||
<#local str += "\"">
|
||||
<#local str += email>
|
||||
<#local str += "\"">
|
||||
</#if>
|
||||
</#list>
|
||||
<#local str += "]">
|
||||
<#return (str)>
|
||||
</#function>
|
||||
Reference in New Issue
Block a user