Compare commits

..

12 Commits

Author SHA1 Message Date
86d0974c2f Release 1.2.41+1 2025-06-20 17:56:35 +02:00
d6a7398af1 Release 1.2.40+1 2025-05-27 09:56:37 +02:00
7a77f373cc Merge branch 'SCPN1-8800-1.2' into 'release/1.2'
SCPN1-8800 into release 1.2

See merge request r-d-technique/tiers/reflex-wms-connector!110
2025-05-27 07:11:07 +00:00
6af5f05491 SCPN1-8800
(cherry picked from commit 5581b8cd29)
2025-05-26 16:58:18 +02:00
10def5ca60 Release 1.2.39+2 2025-05-13 14:43:31 +02:00
6db75e83e0 Merge branch 'SCPN1-8728-8696-1.2' into 'release/1.2'
SCPN1-8728-8696-1-2

See merge request r-d-technique/tiers/reflex-wms-connector!107
2025-05-13 12:40:03 +00:00
af9ff73850 SCPN1-8728-8696 2025-05-13 14:26:35 +02:00
b3cbfeb1a8 Release 1.2.39+1 2025-04-24 14:28:38 +02:00
29e4acfca4 Release 1.2.38+2 2025-04-15 18:32:12 +02:00
aa68eb52e9 Merge branch 'to-v10-connector1.2' into 'release/1.2'
update FTL

See merge request r-d-technique/tiers/reflex-wms-connector!100
2025-04-15 16:24:24 +00:00
320bd8988b update FTL 2025-04-15 18:15:06 +02:00
1905105118 Release 1.2.38+1 2025-04-11 10:38:27 +02:00
21 changed files with 189 additions and 71 deletions

View File

@@ -1,11 +1,10 @@
# Reflex Platform Core FTLs
These FTL core files aim to translate data flow from Reflex WMS into Reflex platform API.
You can find more info about those files in the Reflex platform documentation center : https://docs.viz.reflex-platform.com/connectivity/howto/reflex-wms-connector/
You can find more info about those files in the Reflex platform documentation center : https://docs.viz.reflex-platform.com/connectivity/partnerapp/reflex-wms-connector/

View File

@@ -16,13 +16,16 @@
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
<#assign dispute = JsonUtil.jsonToMap(dataRfx)>
[
<#if dispute.dispute_closed == true >
<#if dispute.dispute_closed == true >
<#if ((dispute.dispute_type_code=="030" || dispute.dispute_type_code=="070") && dispute.dispute_reception?? && dispute.dispute_reception.reception_reference!="") || (dispute.dispute_type_code=="050" && dispute.dispute_preparation.preparation_order_list?? && dispute.dispute_preparation.preparation_order_list[0].preparation_order_contractor_reference?trim?json_string!="")>
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.ClaimCreated>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsaDispute_Created.ftl">
},
}
<#if TableReasonCode[dispute.dispute_reason_code]??>
,
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.ClaimMessageSent>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
@@ -30,7 +33,11 @@
<#include "RFXtoRP_HsaDispute_MessageSent.ftl">
}
<#else>
<#stop>
<#stop>
</#if>
<#else>
<#stop "Reference is empty">
</#if>
</#if>
]
<#break>

View File

@@ -39,29 +39,28 @@
</#if>
"Value": "${dispute.dispute_amount}"
},
<#-- To configure -->
<#include "RFXtoRP_HsaDispute_TableReasonCodeToClaimTypeID.ftl">
<#if dispute.dispute_type_code=="050" >
<#if dispute.dispute_preparation.preparation_order_list?? && dispute.dispute_preparation.preparation_order_list?size != 0>
"EntityID":"${dispute.dispute_preparation.preparation_order_list[0].preparation_order_contractor_reference?trim?json_string}",
<#else>
<#stop "preparation order list is empty" >
</#if>
"EntityID":"${dispute.dispute_preparation.preparation_order_list[0].preparation_order_contractor_reference?trim?json_string}",
"DisplayID":"${dispute.dispute_preparation.preparation_order_list[0].preparation_order_contractor_reference?trim?json_string}",
<#else>
<#if dispute.dispute_type_code=="070" || dispute.dispute_type_code=="030" >
"EntityID":"${dispute.dispute_reception.reception_reference?trim?json_string}",
"EntityID":"${dispute.dispute_reception.reception_reference?trim?json_string}",
"DisplayID":"${dispute.dispute_reception.reception_reference?trim?json_string}",
<#else>
<#stop "Type not supported" >
<#stop "WMS type code not supported">
</#if>
</#if>
<#-- To configure -->
<#include "RFXtoRP_HsaDispute_TableReasonCodeToClaimTypeID.ftl">
<#if TableReasonCode[dispute.dispute_reason_code]??>
"ClaimTypeID":"${TableReasonCode[dispute.dispute_reason_code]}"
"ClaimTypeID":"CLAIMTYPE_${projectRP}_ORDER_${TableReasonCode[dispute.dispute_reason_code]}"
<#else>
<#stop "Claim reason code not supported" >
<#stop "Reason code not supported">
</#if>
}
}
]

View File

@@ -26,15 +26,15 @@
<#else>
"PriorityDate": "1970-01-01T00:00:00Z",
</#if>
<#-- Goods received Segmentation Keys inclusion -->
<#include "RFXtoRP_HsaIpgMove_GoodsReceived_SegmentationKeys.ftl">
},
<#if reflexMvtStockInterface.receipt_reference!="">
"ExecutionflowID": "${reflexMvtStockInterface.receipt_reference?trim?json_string}",
"OrderID": "${reflexMvtStockInterface.receipt_reference?trim?json_string}",
<#else>
"ExecutionflowID": "${reflexMvtStockInterface.physical_depot_code}${reflexMvtStockInterface.activity_code}${reflexMvtStockInterface.ipg_move_year_number}${reflexMvtStockInterface.extended_ipg_move_number}",
"OrderID": "${reflexMvtStockInterface.physical_depot_code}${reflexMvtStockInterface.activity_code}${reflexMvtStockInterface.ipg_move_year_number}${reflexMvtStockInterface.extended_ipg_move_number}",
</#if>
"LineID": "${reflexMvtStockInterface.receipt_line_number}",
"ActorID": "${RFXtoRPprefixDepot(reflexMvtStockInterface.physical_depot_code?trim?json_string)}",
@@ -47,4 +47,4 @@
}
}
]
]

View File

@@ -54,7 +54,7 @@
"ExternalMoveRef" : "${reflexMvtStockInterface.ipg_move_year_number} - ${reflexMvtStockInterface.ipg_move_number}",
"Type": "${MoveType_KV[reflexMvtStockInterface.ipg_move_type]!reflexMvtStockInterface.ipg_move_type}",
<#if reflexMvtStockInterface.ipg_move_type == "520" >
"Reason": " Transfert ${RFXtoRPprefixDepot(reflexMvtStockInterface.physical_depot_code?trim?json_string)} to ${RFXtoRPprefixDepot(reflexMvtStockInterface.transfer_consignee_physical_depot_code?trim?json_string)}",
"Reason": " Direct Transfert ${RFXtoRPprefixDepot(reflexMvtStockInterface.physical_depot_code?trim?json_string)} to ${RFXtoRPprefixDepot(reflexMvtStockInterface.transfer_consignee_physical_depot_code?trim?json_string)}",
<#else>
"Reason": "${reflexMvtStockInterface.miscellaneous_receipts_despatches_code?json_string}",
</#if>

View File

@@ -18,7 +18,7 @@
<#assign item = JsonUtil.jsonToMap(dataRfx)>
[
{
<#if item.logistical_variant_list?? >
<#if item.logistical_variant_list?? && (item.logistical_variant_list?size == item.logistical_variant_list?filter(l ->l??)?size)>
<#assign apiReflexPlatformID = ApiReflexPlatformID.ItemCreated>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :

View File

@@ -55,7 +55,7 @@
"${depot.physical_depot_address.other_number?json_string}"
],
</#if>
"Typology": "TYPOLOGY_UNKNOWN"
"Typology": "TYPOLOGY_WAREHOUSE"
}
}
]

View File

@@ -6,6 +6,7 @@
<#assign cloudEventMsg = JsonUtil.jsonToMap(input)>
<#assign projectRP = project>
<#assign organisationRP = organisation>
<#include "RFX_PartnerAPP_Settings.ftl">
<#assign aDateTime = .now>
@@ -54,7 +55,7 @@
<#list preparationOrder.preparation_line_lst?filter(l ->l.despatched_ipg_list?? && l.preparation_order_originator_reference!="") as preparation_line>
<#list preparation_line.despatched_ipg_list as despatched_ipg>
<#assign HUadded_packing_datetime = RfxDateTimetoUTCWithTimezone(preparation_line.confirmation_datetime,time_zone_rfx) />
<#if !hd_numberHmap[despatched_ipg.hd_number]?? >
<#if !hd_numberHmap[despatched_ipg.hd_number]?? && (trackingNumberSource==2 || trackingNumberSource==3 || (despatched_ipg.consignment_unit_id!="" && trackingNumberSource==1))>
<#assign hd_numberHmap += {despatched_ipg.hd_number,despatched_ipg.hd_number}>
,
{
@@ -78,16 +79,16 @@
"datas" :
<#include "RFXtoRP_HsrPrepa_HUsAdded_HandlingUnitDispatched.ftl">
}
<#if !hd_numberHmapHUadded[despatched_ipg.hd_number]??>
<#assign hd_numberHmapHUadded += {despatched_ipg.hd_number,despatched_ipg.hd_number}>
,
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.TrackingHULabeled>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrPrepa_HUsAdded_TrackingHuLabelled.ftl">
}
</#if>
<#if !hd_numberHmapHUadded[despatched_ipg.hd_number]?? && (trackingNumberSource==2 || trackingNumberSource==3 )>
<#assign hd_numberHmapHUadded += {despatched_ipg.hd_number,despatched_ipg.hd_number}>
,
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.TrackingHULabeled>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrPrepa_HUsAdded_TrackingHuLabelled.ftl">
}
</#if>
</#if>
</#list>

View File

@@ -3,7 +3,7 @@
[
<#assign dispatched3_datetime = RfxDateTimetoUTCWithTimezone(preparationOrder.stock_despatch_at_preparation_datetime,time_zone_rfx) />
<#list preparationOrder.preparation_line_lst?filter(l ->l.despatched_ipg_list??) as preparation_line3>
<#list preparationOrder.preparation_line_lst?filter(l ->l.despatched_ipg_list?? && l.despatched_ipg_list?size != 0) as preparation_line3>
<#list preparation_line3.despatched_ipg_list?filter(j ->j.carton_number!="000000000000000000") as despatched_ipg3>
<#if !refIDHmap[despatched_ipg3.carton_number]?? >
<#if refIDHmap?size != 0 >

View File

@@ -3,7 +3,7 @@
[
<#assign dispatched_datetime = RfxDateTimetoUTCWithTimezone(preparationOrder.stock_despatch_at_preparation_datetime,time_zone_rfx) />
<#assign refIDHmap_local ={}>
<#list preparationOrder.preparation_line_lst?filter(l ->l.despatched_ipg_list?? && l.preparation_order_originator_reference!="") as preparation_line>
<#list preparationOrder.preparation_line_lst?filter(l ->l.despatched_ipg_list?? && l.despatched_ipg_list?size != 0 && l.preparation_order_originator_reference!="") as preparation_line>
<#list preparation_line.despatched_ipg_list as despatched_ipg>
<#if !refIDHmap_local[despatched_ipg.hd_number]?? >
<#if refIDHmap_local?size != 0 >

View File

@@ -2,7 +2,7 @@
<#include "HfRpConfig.ftl">
<#include "ActorPrefix.ftl">
[
<#list preparationOrder.preparation_line_lst?filter(l ->l.despatched_ipg_list?? && l.preparation_order_originator_reference!="") as preparation_line>
<#list preparationOrder.preparation_line_lst?filter(l ->l.despatched_ipg_list?? && l.despatched_ipg_list?size != 0 && l.preparation_order_originator_reference!="") as preparation_line>
<#list preparation_line.despatched_ipg_list as despatched_ipg>
<#assign packing_datetime = RfxDateTimetoUTCWithTimezone(preparation_line.confirmation_datetime,time_zone_rfx) />
{
@@ -112,6 +112,7 @@
<#-- Segmentation Keys inclusion -->
<#include "RFXtoRP_HsrPrepa_GoodsPrepared_SegmentationKeys.ftl">
},
"OrderID": "${preparation_line.preparation_order_originator_reference?trim?json_string}",
"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}",

View File

@@ -1,6 +1,7 @@
<#include "HfRpConfig.ftl">
<#include "ReflexUtils.ftl">
<#include "ActorPrefix.ftl">
<#include "RFX_PartnerAPP_Settings.ftl">
[
<#assign dispatched_datetime4 = RfxDateTimetoUTCWithTimezone(preparationOrder.stock_despatch_at_preparation_datetime,time_zone_rfx) />
{
@@ -8,15 +9,41 @@
"ProjectID": "${projectRP}"
},
"ID": {
<#if despatched_ipg.consignment_unit_id!="">
"RefID": "${despatched_ipg.consignment_unit_id?trim?json_string}",
<#else>
<#if despatched_ipg.carton_number != "000000000000000000">
"RefID":"${despatched_ipg.carton_number}",
<#else>
"RefID":"${despatched_ipg.hd_number}",
</#if>
</#if>
<#switch trackingNumberSource>
<#case 1>
<#if despatched_ipg.consignment_unit_id!="">
"RefID": "${despatched_ipg.consignment_unit_id?trim?json_string}",
</#if>
<#break>
<#case 2>
<#if despatched_ipg.carton_number != "000000000000000000">
"RefID":"${despatched_ipg.carton_number}",
<#else>
"RefID":"${despatched_ipg.hd_number}",
</#if>
<#break>
<#case 3>
<#if despatched_ipg.consignment_unit_id!="">
"RefID": "${despatched_ipg.consignment_unit_id?trim?json_string}",
<#else>
<#if despatched_ipg.carton_number != "000000000000000000">
"RefID":"${despatched_ipg.carton_number}",
<#else>
"RefID":"${despatched_ipg.hd_number}",
</#if>
</#if>
<#break>
<#default>
<#if despatched_ipg.consignment_unit_id!="">
"RefID": "${despatched_ipg.consignment_unit_id?trim?json_string}",
<#else>
<#if despatched_ipg.carton_number != "000000000000000000">
"RefID":"${despatched_ipg.carton_number}",
<#else>
"RefID":"${despatched_ipg.hd_number}",
</#if>
</#if>
</#switch>
"RefDate": {
"DateTime": "${dispatched_datetime4}",

View File

@@ -16,7 +16,7 @@
<#assign dataRfx = JsonUtil.decodeBase64(cloudEventMsg.data) />
<#assign receipt = JsonUtil.jsonToMap(dataRfx)>
<#if receipt.receipt_reference ?? && receipt.receipt_reference!="">
<#if receipt.receipt_type = "030">
<#if receipt.receipt_type == "030">
<#stop "ignored message because receipt type = transfert">
<#else>
[
@@ -46,29 +46,38 @@
<#assign receipt = JsonUtil.jsonToMap(dataRfx)>
[
<#if receipt.receipt_reference?? && receipt.receipt_reference!="">
<#if receipt.receipt_confirmed == "true" >
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowReceiptCompleted>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrReceiptList_ExecutionflowReceiptCompleted.ftl">
}
<#if receipt.receipt_confirmed == "true" && receipt.confirmation_total_level_1==0 && receipt.confirmation_total_level_2==0 && receipt.confirmation_total_level_3==0>
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowCancelled>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrReceiptList_ExecutionflowCancelled.ftl">
}
<#else>
<#if receipt.receipt_type = "030">
<#stop "ignored message because receipt type = transfert">
<#else>
<#if receipt.receipt_confirmed == "true" >
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowDetected>
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowReceiptCompleted>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrReceiptList_ExecutionflowDetected.ftl">
},
{
<#assign apiReflexPlatformID = ApiReflexPlatformID.ExecutionflowReceiptExpected>
"apiReflexPlatformID" : "${apiReflexPlatformID}",
"datas" :
<#include "RFXtoRP_HsrReceiptList_ReceiptExpected.ftl">
}
<#include "RFXtoRP_HsrReceiptList_ExecutionflowReceiptCompleted.ftl">
}
<#else>
<#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>
</#if>
</#if>
<#else>

View File

@@ -26,7 +26,11 @@
"ShipFrom":
{
<#if receipt.receipt_type == '020'>
"ActorID": "${RFXtoRPprefixConsignee(receipt.original_code?trim?json_string)}"
<#else>
"ActorID": "${RFXtoRPprefixSupplier(receipt.original_code?trim?json_string)}"
</#if>
},
"ShipTo" :
{

View File

@@ -27,6 +27,7 @@
},
"payload" :
{
<#include "RPtoRFX_PrepOrder_HeaderMetadata.ftl">
"originator_reference": "${executionflow.OrderID?json_string}",
"preparation_type_code": "${preparation_type_code}",
"end_consignee_code": "${actorID}",
@@ -88,6 +89,7 @@
</#if>
<#include "RPtoRFX_PrepOrder_DefaultLineData.ftl">
{
<#include "RPtoRFX_PrepOrder_LineMetadata.ftl">
"originator_reference_line_number": ${line.LineID?number},
"item_code": "${line.RequestedContent.Goods.ItemID!""}",
"item_lv_code": "${line.RequestedContent.Goods.LVBranchID!""}",

View File

@@ -0,0 +1,17 @@
<#-- Il est possible de mapper les métadonnées avec des informations complémentaires, des commentaires... -->
<#-- It is possible to map metadata with additional information,comments... -->
<#--
<#if Header_MetaData_Map["Color"]??>
<#assign COLOR = Header_MetaData_Map["Color"].String/>
<#if COLOR??>
,
"additional_data_value_list":
[
{
"code": "Color",
"value": "${COLOR}"
}
]
</#if>,
-->

View File

@@ -0,0 +1,17 @@
<#-- Il est possible de mapper les métadonnées avec des informations complémentaires, des commentaires... -->
<#-- It is possible to map metadata with additional information,comments... -->
<#--
<#if Header_MetaData_Map["Color"]??>
<#assign COLOR = Header_MetaData_Map["Color"].String/>
<#if COLOR??>
,
"additional_data_value_list":
[
{
"code": "Color",
"value": "${COLOR}"
}
]
</#if>,
-->

View File

@@ -13,6 +13,7 @@
},
"payload" :
{
<#include "RPtoRFX_Receipt_HeaderMetadata.ftl">
"receipt_reference": "${executionflow.OrderID?json_string}",
"receipt_type": "${receipt_type}",
"receipt_reason_code": "${receipt_reason_code}",
@@ -43,6 +44,7 @@
</#if>
<#include "RPtoRFX_Receipt_DefaultLineData.ftl">
{
<#include "RPtoRFX_Receipt_LineMetadata.ftl">
"receipt_reference_line_no": ${line.LineID?number},
"item_code": "${line.RequestedContent.Goods.ItemID!""}",
"item_lv_code": "${line.RequestedContent.Goods.LVBranchID!""}",
@@ -52,7 +54,6 @@
"batch_1": "${batch_1?json_string!""}",
"optional_attributes": {
<#--"held_for_check": "false",
"held _for_repacking": "false",
"hold_code": "false", -->
"hold_for_specific_code": "false"
}

View File

@@ -0,0 +1,17 @@
<#-- Il est possible de mapper les métadonnées avec des informations complémentaires, des commentaires... -->
<#-- It is possible to map metadata with additional information,comments... -->
<#--
<#if Header_MetaData_Map["Color"]??>
<#assign COLOR = Header_MetaData_Map["Color"].String/>
<#if COLOR??>
,
"additional_data_value_list":
[
{
"code": "Color",
"value": "${COLOR}"
}
]
</#if>,
-->

View File

@@ -0,0 +1,17 @@
<#-- Il est possible de mapper les métadonnées avec des informations complémentaires, des commentaires... -->
<#-- It is possible to map metadata with additional information,comments... -->
<#--
<#if Header_MetaData_Map["Color"]??>
<#assign COLOR = Header_MetaData_Map["Color"].String/>
<#if COLOR??>
,
"additional_data_value_list":
[
{
"code": "Color",
"value": "${COLOR}"
}
]
</#if>,
-->

View File

@@ -1 +1 @@
1.2.37+2
1.2.41+1