Estándar de Iconos Mapping

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 Estándar de Icono Mapping está encendido, en un csm- En un proyecto de implementación de servicio, un desarrollador puede crear un actualizador de Salida/Entrada para cada ISO canónica.message type, que actualizará el mensaje canónico antes de que se mapee al formato de esquema y se valide. Estos actualizadores deben definirse 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;
    }
}