Mapeo Estándar de Iconos
Si ha diseñado su flujo para utilizar las reglas de mensajes del estándar ISO de Icon, puede anular el ipf.csm.icon-standard-mapping propiedad y establezca el valor en true. El valor predeterminado de esta propiedad se establece en false.
Cuando el Mapeo de Estándar de Icon está activado, en un proyecto de implementación de csm-service, un desarrollador puede crear un actualizador de Salida/Entrada para cada tipo de mensaje ISO canónico, el cual actualizará el mensaje canónico antes de que sea mapeado al formato de esquema y validado. Estos actualizadores deben ser definidos como spring beans.
Ejemplo de OutboundCanonicalMessageUpdater para FITo FICustomer Credit Transfer V08:
package com.iconsolutions.instantpayments.rt1.adapter.updater;
import com.iconsolutions.instantpayments.csm. OutboundCanonicalMessageUpdater;
import com.iconsolutions.iso20022.message.components.payment.group_header93. GroupHeader93;
import com.iconsolutions.iso20022.message.definitions.payments_clearing_and_settlement.pacs008. FIToFICustomerCreditTransferV08;
public class OutboundCCTUpdater implements OutboundCanonicalMessageUpdater<FIToFICustomerCreditTransferV08> {
@Override
public FIToFICustomerCreditTransferV08 update(FIToFICustomerCreditTransferV08 message) {
return message.toBuilder()
.grpHdr(message.getGrpHdr().toBuilder()
.intrBkSttlmDt(message.getCdtTrfTxInf().get(0).getIntrBkSttlmDt())
.build()
)
.build();
}
@Override
public Class<FIToFICustomerCreditTransferV08> supportedType() {
return FIToFICustomerCreditTransferV08.class;
}
}
Ejemplo de InboundCanonicalMessageUpdater para FITo FICustomer Credit Transfer V08:
package com.iconsolutions.instantpayments.rt1.adapter.updater;
import com.iconsolutions.instantpayments.csm. InboundCanonicalMessageUpdater;
import com.iconsolutions.instantpayments.csm. UpdatedContentWithSupportingContext;
import com.iconsolutions.iso20022.message.components.payment.group_header93. GroupHeader93;
import com.iconsolutions.iso20022.message.definitions.payments_clearing_and_settlement.pacs008. FIToFICustomerCreditTransferV08;
public class InboundCCTUpdater implements InboundCanonicalMessageUpdater<FIToFICustomerCreditTransferV08> {
@Override
public UpdatedContentWithSupportingContext<FIToFICustomerCreditTransferV08> update(FIToFICustomerCreditTransferV08 message) {
FIToFICustomerCreditTransferV08 message = message.toBuilder()
.cdtTrfTxInf(message.getCdtTrfTxInf().stream()
.map(creditTransferTransaction39 -> creditTransferTransaction39.toBuilder()
.intrBkSttlmDt(message.getGrpHdr().getIntrBkSttlmDt())
.build()
).toList()
)
.build();
return new UpdatedContentWithSupportingContext<>(message);
}
@Override
public Class<FIToFICustomerCreditTransferV08> supportedType() {
return FIToFICustomerCreditTransferV08.class;
}
}