Commit a06587a5 by zhanghou

完成n92,n96的报文,基本完成942报文

parent c45d9c2a
......@@ -39,6 +39,8 @@ public class Mx2MtConstants {
public static final String MT_TYPE_296 = "296";
public static final String MT_TYPE_942 = "942";
public static final String OUT_PUT_FILE_PATH = "outPutFilePath";
public static final String MX_OBJECT = "mxObj";
......
......@@ -8,6 +8,7 @@ import com.brilliance.swift.mx2mt.mt196296.Mx2Mtn96Creator;
import com.brilliance.swift.mx2mt.mt202cov202.Mx2Mt202Creator;
import com.brilliance.swift.mx2mt.mt900910.Mx2Mt900910Creator;
import com.brilliance.swift.mx2mt.mt940950.Mx2Mt940950Creator;
import com.brilliance.swift.mx2mt.mt942.Mx2Mt942Creator;
import com.brilliance.swift.util.StringUtil;
import com.prowidesoftware.swift.model.mx.AbstractMX;
import org.dom4j.Document;
......@@ -76,8 +77,9 @@ public class Mx2MtCreatorManager {
return new Mx2Mtn92Creator();
} else if("camt.029.001".equals(messageType)){
return new Mx2Mtn96Creator();
}
else {
}else if("camt.052.001".equals(messageType)){
return new Mx2Mt942Creator();
} else {
throw new SwiftException("Invalid message type");
}
}
......
......@@ -14,6 +14,7 @@ import com.brilliance.swift.util.XmlUtil;
import com.prowidesoftware.swift.model.SwiftBlock3;
import com.prowidesoftware.swift.model.SwiftMessage;
import com.prowidesoftware.swift.model.Tag;
import com.prowidesoftware.swift.model.field.Field121;
import org.dom4j.Document;
import java.util.ArrayList;
......@@ -40,7 +41,8 @@ public class Mx2Mtn92Creator extends AbstractMx2MtCreator {
String bodyParentPath = (String)context.get(Mx2MtContextIdentifier.BODY_PARENT_ELEMENT_NAME, true);
String uetr = getXmlNodeValue(bodyParentPath, document, "FIToFIPmtCxlReq.Undrlyg.TxInf.OrgnlUETR");
if (StringUtil.isNotEmpty(uetr)) {
block3.getTags().add(new Tag("121", uetr));
Field121 field121 = new Field121(uetr);
block3.builder().setField121(field121);
}
}
......
package com.brilliance.swift.mx2mt.mt192292.impl;
import com.brilliance.swift.constants.Mx2MtConstants;
import com.brilliance.swift.exception.SwiftException;
import com.brilliance.swift.mx2mt.AbstractMx2MtTagsGenerate;
import com.brilliance.swift.util.StringUtil;
......@@ -21,7 +22,14 @@ public class Field20Generate extends AbstractMx2MtTagsGenerate {
List<Tag> tags = swiftMessage.getBlock4().getTags();
String messageId = getXmlNodeValue(bodyHdrParentElementName, document, "FIToFIPmtCxlReq.Undrlyg.TxInf.Case.Id");
if (StringUtil.isNotEmpty(messageId)) {
tags.add(new Tag(name, messageId));
if (messageId.length() > 16) {
messageId = messageId.substring(0, 15) + "+";
}
String value = messageId;
if (value.startsWith("/") || value.endsWith("/") || value.contains("//")) {
value = Mx2MtConstants.MX_TO_MT_DEFAULT_VALUE;
}
tags.add(new Tag(name, value));
}
}
}
package com.brilliance.swift.mx2mt.mt192292.impl;
import com.brilliance.swift.constants.Mx2MtConstants;
import com.brilliance.swift.exception.SwiftException;
import com.brilliance.swift.mx2mt.AbstractMx2MtTagsGenerate;
import com.brilliance.swift.util.StringUtil;
......@@ -21,7 +22,14 @@ public class Field21Generate extends AbstractMx2MtTagsGenerate {
List<Tag> tags = swiftMessage.getBlock4().getTags();
String orgnlInstrId = getXmlNodeValue(bodyHdrParentElementName, document, "FIToFIPmtCxlReq.Undrlyg.TxInf.OrgnlInstrId");
if (StringUtil.isNotEmpty(orgnlInstrId)) {
tags.add(new Tag(name, orgnlInstrId));
if (orgnlInstrId.length() > 16) {
orgnlInstrId = orgnlInstrId.substring(0, 15) + "+";
}
String value = orgnlInstrId;
if (value.startsWith("/") || value.endsWith("/") || value.contains("//")) {
value = Mx2MtConstants.MX_TO_MT_DEFAULT_VALUE;
}
tags.add(new Tag(name, value));
}
}
}
......@@ -14,6 +14,7 @@ import com.brilliance.swift.util.XmlUtil;
import com.prowidesoftware.swift.model.SwiftBlock3;
import com.prowidesoftware.swift.model.SwiftMessage;
import com.prowidesoftware.swift.model.Tag;
import com.prowidesoftware.swift.model.field.Field121;
import org.dom4j.Document;
import java.util.ArrayList;
......@@ -40,7 +41,8 @@ public class Mx2Mtn96Creator extends AbstractMx2MtCreator {
String bodyParentPath = (String)context.get(Mx2MtContextIdentifier.BODY_PARENT_ELEMENT_NAME, true);
String uetr = getXmlNodeValue(bodyParentPath, document, "RsltnOfInvstgtn.CxlDtls.TxInfAndSts.OrgnlUETR");
if (StringUtil.isNotEmpty(uetr)) {
block3.getTags().add(new Tag("121", uetr));
Field121 field121 = new Field121(uetr);
block3.builder().setField121(field121);
}
}
......
package com.brilliance.swift.mx2mt.mt196296.impl;
import com.brilliance.swift.constants.Mx2MtConstants;
import com.brilliance.swift.exception.SwiftException;
import com.brilliance.swift.mx2mt.AbstractMx2MtTagsGenerate;
import com.brilliance.swift.util.StringUtil;
......@@ -21,7 +22,14 @@ public class Field20Generate extends AbstractMx2MtTagsGenerate {
List<Tag> tags = swiftMessage.getBlock4().getTags();
String messageId = getXmlNodeValue(bodyHdrParentElementName, document, "RsltnOfInvstgtn.CxlDtls.TxInfAndSts.CxlStsId");
if (StringUtil.isNotEmpty(messageId)) {
tags.add(new Tag(name, messageId));
if (messageId.length() > 16) {
messageId = messageId.substring(0, 15) + "+";
}
String value = messageId;
if (value.startsWith("/") || value.endsWith("/") || value.contains("//")) {
value = Mx2MtConstants.MX_TO_MT_DEFAULT_VALUE;
}
tags.add(new Tag(name, value));
}
}
}
package com.brilliance.swift.mx2mt.mt196296.impl;
import com.brilliance.swift.constants.Mx2MtConstants;
import com.brilliance.swift.exception.SwiftException;
import com.brilliance.swift.mx2mt.AbstractMx2MtTagsGenerate;
import com.brilliance.swift.util.StringUtil;
......@@ -21,7 +22,14 @@ public class Field21Generate extends AbstractMx2MtTagsGenerate {
List<Tag> tags = swiftMessage.getBlock4().getTags();
String orgnlInstrId = getXmlNodeValue(bodyHdrParentElementName, document, "RsltnOfInvstgtn.CxlDtls.TxInfAndSts.RslvdCase.Id");
if (StringUtil.isNotEmpty(orgnlInstrId)) {
tags.add(new Tag(name, orgnlInstrId));
if (orgnlInstrId.length() > 16) {
orgnlInstrId = orgnlInstrId.substring(0, 15) + "+";
}
String value = orgnlInstrId;
if (value.startsWith("/") || value.endsWith("/") || value.contains("//")) {
value = Mx2MtConstants.MX_TO_MT_DEFAULT_VALUE;
}
tags.add(new Tag(name, value));
}
}
}
package com.brilliance.swift.mx2mt.mt942;
import com.brilliance.swift.constants.Mx2MtConstants;
import com.brilliance.swift.mx2mt.AbstractMx2MtCreator;
import com.brilliance.swift.mx2mt.Mx2MtContextIdentifier;
import com.brilliance.swift.mx2mt.Mx2MtTagsGenerate;
import com.brilliance.swift.mx2mt.mt942.impl.*;
import com.brilliance.swift.util.XmlUtil;
import org.dom4j.Document;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
public class Mx2Mt942Creator extends AbstractMx2MtCreator {
@Override
public void preProcess() {
super.preProcess();
Document document = (Document)context.get(Mx2MtContextIdentifier.MX_XMl_DOCUMENT, true);
Map<String, String> parentElementMaps = XmlUtil.getParentElementMaps(document);
context.set(Mx2MtContextIdentifier.APPHDR_PARENT_ELEMENT_NAME, parentElementMaps.get("AppHdr"));
context.set(Mx2MtContextIdentifier.GRPHDR_PARENT_ELEMENT_NAME, parentElementMaps.get("GrpHdr"));
context.set(Mx2MtContextIdentifier.BODY_PARENT_ELEMENT_NAME, parentElementMaps.get("BkToCstmrAcctRpt"));
}
@Override
public List<Mx2MtTagsGenerate> getGenerateTagList() {
List<Mx2MtTagsGenerate> fieldsGenerateList = new ArrayList<>();
fieldsGenerateList.add(new Field20Generate());
fieldsGenerateList.add(new Field21Generate());
fieldsGenerateList.add(new Field25Generate());
fieldsGenerateList.add(new Field28CGenerate());
fieldsGenerateList.add(new Field34FGenerate());
fieldsGenerateList.add(new Field13DGenerate());
fieldsGenerateList.add(new Field61Generate());
fieldsGenerateList.add(new Field90DGenerate());
fieldsGenerateList.add(new Field90CGenerate());
return fieldsGenerateList;
}
@Override
protected String getMtType() {
return Mx2MtConstants.MT_TYPE_942;
}
}
package com.brilliance.swift.mx2mt.mt942.impl;
import com.brilliance.swift.exception.SwiftException;
import com.brilliance.swift.mx2mt.AbstractMx2MtTagsGenerate;
import com.brilliance.swift.util.StringUtil;
import com.prowidesoftware.swift.model.SwiftMessage;
import com.prowidesoftware.swift.model.Tag;
import java.util.List;
/**
*/
public class Field13DGenerate extends AbstractMx2MtTagsGenerate {
private static String name = "13D";
@Override
public void tagGenerate() throws SwiftException {
SwiftMessage swiftMessage = context.get(SwiftMessage.class);
List<Tag> tags = swiftMessage.getBlock4().getTags();
String CreationDateTime = getXmlNodeValue(bodyHdrParentElementName, document, "BkToCstmrAcctRpt.Rpt.CreDtTm");
String dateStr = "";
if(StringUtil.isNotEmpty(CreationDateTime)){
dateStr = CreationDateTime;
}else {
dateStr = getXmlNodeValue(bodyHdrParentElementName, document, "BkToCstmrAcctRpt.GrpHdr.CreDtTm");
}
String mxTimeOffset = dateStr.substring(11);
String mtDate = mXToMTDate(dateStr.substring(0,10));
String[] split = mxTimeOffset.split(":");
String mtTimeOffset = "";
if(split.length==4){
if(split[0].length()==1){
split[0] = "0"+split[0];
}
mtTimeOffset = split[0] + split[1] + split[2].substring(3) + split[3];
}
tags.add(new Tag(name, mtDate+mtTimeOffset));
}
}
package com.brilliance.swift.mx2mt.mt942.impl;
import com.brilliance.swift.exception.SwiftException;
import com.brilliance.swift.mx2mt.AbstractMx2MtTagsGenerate;
import com.brilliance.swift.util.StringUtil;
import com.prowidesoftware.swift.model.SwiftMessage;
import com.prowidesoftware.swift.model.Tag;
import java.util.List;
/**
*/
public class Field20Generate extends AbstractMx2MtTagsGenerate {
private static String name = "20";
@Override
public void tagGenerate() throws SwiftException {
SwiftMessage swiftMessage = context.get(SwiftMessage.class);
List<Tag> tags = swiftMessage.getBlock4().getTags();
String messageId = getXmlNodeValue(bodyHdrParentElementName, document, "BkToCstmrAcctRpt.Rpt.Id");
if (StringUtil.isNotEmpty(messageId)) {
tags.add(new Tag(name, messageId));
}
}
}
package com.brilliance.swift.mx2mt.mt942.impl;
import com.brilliance.swift.exception.SwiftException;
import com.brilliance.swift.mx2mt.AbstractMx2MtTagsGenerate;
import com.brilliance.swift.util.StringUtil;
import com.prowidesoftware.swift.model.SwiftMessage;
import com.prowidesoftware.swift.model.Tag;
import java.util.List;
/**
*/
public class Field21Generate extends AbstractMx2MtTagsGenerate {
private static String name = "21";
@Override
public void tagGenerate() throws SwiftException {
}
}
package com.brilliance.swift.mx2mt.mt942.impl;
import com.brilliance.swift.constants.Mx2MtConstants;
import com.brilliance.swift.exception.SwiftException;
import com.brilliance.swift.mx2mt.AbstractMx2MtTagsGenerate;
import com.brilliance.swift.util.StringUtil;
import com.prowidesoftware.swift.model.SwiftMessage;
import com.prowidesoftware.swift.model.Tag;
import java.util.List;
/**
*/
public class Field25Generate extends AbstractMx2MtTagsGenerate {
private static String name_25 = "25";
private static String name_25P = "25P";
@Override
public void tagGenerate() throws SwiftException {
SwiftMessage swiftMessage = context.get(SwiftMessage.class);
List<Tag> tags = swiftMessage.getBlock4().getTags();
String iban = getXmlNodeValue(bodyHdrParentElementName, document, "BkToCstmrAcctRpt.Rpt.Acct.Id.IBAN");
String accountId = "";
if(StringUtil.isNotEmpty(iban)){
accountId = iban;
}else {
accountId = getXmlNodeValue(bodyHdrParentElementName, document, "BkToCstmrAcctRpt.Rpt.Acct.Id.Othr.Id");
}
String anyBic = getXmlNodeValue(bodyHdrParentElementName, document, "BkToCstmrAcctRpt.Rpt.Acct.Ownr.Id.OrgId.AnyBIC");
if(StringUtil.isNotEmpty(anyBic)){
tags.add(new Tag(name_25P,accountId+ Mx2MtConstants.NEW_LINE+anyBic));
}else {
tags.add(new Tag(name_25,accountId));
}
}
}
package com.brilliance.swift.mx2mt.mt942.impl;
import com.brilliance.swift.exception.SwiftException;
import com.brilliance.swift.mx2mt.AbstractMx2MtTagsGenerate;
import com.brilliance.swift.util.StringUtil;
import com.prowidesoftware.swift.model.SwiftMessage;
import com.prowidesoftware.swift.model.Tag;
import java.util.List;
/**
*/
public class Field28CGenerate extends AbstractMx2MtTagsGenerate {
private static String name = "28C";
@Override
public void tagGenerate() throws SwiftException {
SwiftMessage swiftMessage = context.get(SwiftMessage.class);
List<Tag> tags = swiftMessage.getBlock4().getTags();
String leSeNum = getXmlNodeValue(bodyHdrParentElementName, document, "BkToCstmrAcctRpt.Rpt.LglSeqNb");
String mt = "";
if(StringUtil.isEmpty(leSeNum)||leSeNum.length()>5){
mt = getXmlNodeValue(bodyHdrParentElementName, document, "BkToCstmrAcctRpt.Rpt.ElctrncSeqNb");
}else {
String pageNum = getXmlNodeValue(bodyHdrParentElementName, document, "BkToCstmrAcctRpt.Rpt.RptPgntn.PgNb");
mt = leSeNum + "/" + pageNum;
}
tags.add(new Tag(name,mt));
}
}
package com.brilliance.swift.mx2mt.mt942.impl;
import com.brilliance.swift.exception.SwiftException;
import com.brilliance.swift.mx2mt.AbstractMx2MtTagsGenerate;
import com.brilliance.swift.util.StringUtil;
import com.prowidesoftware.swift.model.SwiftMessage;
import com.prowidesoftware.swift.model.Tag;
import java.util.List;
/**
*/
public class Field34FGenerate extends AbstractMx2MtTagsGenerate {
private static String name = "34F";
@Override
public void tagGenerate() throws SwiftException {
SwiftMessage swiftMessage = context.get(SwiftMessage.class);
List<Tag> tags = swiftMessage.getBlock4().getTags();
String currency = getXmlNodeValue(bodyHdrParentElementName, document, "BkToCstmrAcctRpt.Rpt.Acct.Ccy");
tags.add(new Tag(name,currency+"D"+"0,"));
tags.add(new Tag(name,currency+"C"+"0,"));
}
}
package com.brilliance.swift.mx2mt.mt942.impl;
import com.brilliance.swift.constants.Mx2MtConstants;
import com.brilliance.swift.exception.SwiftException;
import com.brilliance.swift.mx2mt.AbstractMx2MtTagsGenerate;
import com.brilliance.swift.util.DateUtil;
import com.brilliance.swift.util.NumberUtil;
import com.brilliance.swift.util.StringUtil;
import com.brilliance.swift.vo.common.CdtDbtCode;
import com.prowidesoftware.swift.model.SwiftMessage;
import com.prowidesoftware.swift.model.Tag;
import javax.xml.datatype.DatatypeConfigurationException;
import javax.xml.datatype.DatatypeFactory;
import javax.xml.datatype.XMLGregorianCalendar;
import java.math.BigDecimal;
import java.util.List;
/**
*/
public class Field61Generate extends AbstractMx2MtTagsGenerate {
private static String name = "61";
@Override
public void tagGenerate() throws SwiftException {
try {
SwiftMessage swiftMessage = context.get(SwiftMessage.class);
List<Tag> tags = swiftMessage.getBlock4().getTags();
int entryCount = getXmlNodeCounts(bodyHdrParentElementName, document, "BkToCstmrAcctRpt.Rpt.Ntry");
if (entryCount > 0) {
for (int i = 0; i < entryCount; i++) {
String value = "";
String valueDateStr = getXmlNodeValue(bodyHdrParentElementName, document, "BkToCstmrAcctRpt.Rpt.Ntry(" + i + ").ValDt.Dt");
if (StringUtil.isNotEmpty(valueDateStr)) {
XMLGregorianCalendar valueDate = DatatypeFactory.newInstance().newXMLGregorianCalendar(valueDateStr);
value += DateUtil.format(valueDate, "yyMMdd");
}
String bookDateStr = getXmlNodeValue(bodyHdrParentElementName, document, "BkToCstmrAcctRpt.Rpt.Ntry(" + i + ").BookgDt.Dt");
if (StringUtil.isNotEmpty(bookDateStr)) {
XMLGregorianCalendar bookDate = DatatypeFactory.newInstance().newXMLGregorianCalendar(bookDateStr);
value += DateUtil.format(bookDate, "MMdd");
}
String code = getXmlNodeValue(bodyHdrParentElementName, document, "BkToCstmrAcctRpt.Rpt.Ntry(" + i + ").Sts.Cd");
String reversalIndicator = getXmlNodeValue(bodyHdrParentElementName, document, "BkToCstmrAcctRpt.Rpt.Ntry(" + i + ").RvslInd");
String creditDebitIndicator = getXmlNodeValue(bodyHdrParentElementName, document, "BkToCstmrAcctRpt.Rpt.Ntry(" + i + ").CdtDbtInd");
if("BOOK".equals(code)){
if (StringUtil.isNotEmpty(reversalIndicator) && Boolean.valueOf(reversalIndicator)) {
if (CdtDbtCode.DBIT.value().equals(creditDebitIndicator)) {
value += "RC";
} else {
value += "RD";
}
} else {
if (CdtDbtCode.DBIT.value().equals(creditDebitIndicator)) {
value += "D";
} else {
value += "C";
}
}
}else if("FUTR".equals(code)||"PDNG".equals(code)||"INFO".equals(code)){
if (CdtDbtCode.DBIT.value().equals(creditDebitIndicator)) {
value += "ED";
} else {
value += "EC";
}
}
String amt = getXmlNodeValue(bodyHdrParentElementName, document, "BkToCstmrAcctRpt.Rpt.Ntry(" + i + ").Amt");
String ccy = getXmlNodeValue(bodyHdrParentElementName, document, "BkToCstmrAcctRpt.Rpt.Ntry(" + i + ").Amt@Ccy");
if (StringUtil.isNotEmpty(amt) && StringUtil.isNotEmpty(ccy)) {
value += NumberUtil.formatAmt(new BigDecimal(amt), ccy);
}
value += "NTRF";
String endToEndId = getXmlNodeValue(bodyHdrParentElementName, document, "BkToCstmrAcctRpt.Rpt.Ntry(" + i + ").NtryDtls.TxDtls.Refs.EndToEndId");
if (StringUtil.isNotEmpty(endToEndId)) {
if (endToEndId.length() > 16) {
endToEndId = endToEndId.substring(0, 15) + "+";
}
value += endToEndId;
} else {
value += Mx2MtConstants.MT_21_DEFAULT_VALUE;
}
tags.add(new Tag(name, value));
}
}
} catch (DatatypeConfigurationException e) {
throw new SwiftException("ERROR", e.getMessage());
}
}
}
package com.brilliance.swift.mx2mt.mt942.impl;
import com.brilliance.swift.exception.SwiftException;
import com.brilliance.swift.mx2mt.AbstractMx2MtTagsGenerate;
import com.brilliance.swift.util.NumberUtil;
import com.brilliance.swift.util.StringUtil;
import com.prowidesoftware.swift.model.SwiftMessage;
import com.prowidesoftware.swift.model.Tag;
import java.math.BigDecimal;
import java.util.List;
/**
*/
public class Field90CGenerate extends AbstractMx2MtTagsGenerate {
private static String name = "90C";
@Override
public void tagGenerate() throws SwiftException {
SwiftMessage swiftMessage = context.get(SwiftMessage.class);
List<Tag> tags = swiftMessage.getBlock4().getTags();
String sum = getXmlNodeValue(bodyHdrParentElementName, document, "BkToCstmrAcctRpt.Rpt.TxsSummry.TtlCdtNtries.Sum");
String nbOfNtries = getXmlNodeValue(bodyHdrParentElementName, document, "BkToCstmrAcctRpt.Rpt.TxsSummry.TtlCdtNtries.NbOfNtries");
if(StringUtil.isNotEmpty(sum)&&StringUtil.isNotEmpty(nbOfNtries)) {
String currency = getXmlNodeValue(bodyHdrParentElementName, document, "BkToCstmrAcctRpt.Rpt.Acct.Ccy");
String amt = NumberUtil.formatAmt(new BigDecimal(sum), currency);
if(amt.length()>15||nbOfNtries.length()>5){
} else {
tags.add(new Tag(name,nbOfNtries+currency+amt));
}
}
}
}
package com.brilliance.swift.mx2mt.mt942.impl;
import com.brilliance.swift.exception.SwiftException;
import com.brilliance.swift.mx2mt.AbstractMx2MtTagsGenerate;
import com.brilliance.swift.util.NumberUtil;
import com.brilliance.swift.util.StringUtil;
import com.prowidesoftware.swift.model.SwiftMessage;
import com.prowidesoftware.swift.model.Tag;
import java.math.BigDecimal;
import java.util.List;
/**
*/
public class Field90DGenerate extends AbstractMx2MtTagsGenerate {
private static String name = "90D";
@Override
public void tagGenerate() throws SwiftException {
SwiftMessage swiftMessage = context.get(SwiftMessage.class);
List<Tag> tags = swiftMessage.getBlock4().getTags();
String sum = getXmlNodeValue(bodyHdrParentElementName, document, "BkToCstmrAcctRpt.Rpt.TxsSummry.TtlDbtNtries.Sum");
String nbOfNtries = getXmlNodeValue(bodyHdrParentElementName, document, "BkToCstmrAcctRpt.Rpt.TxsSummry.TtlDbtNtries.NbOfNtries");
if(StringUtil.isNotEmpty(sum)&&StringUtil.isNotEmpty(nbOfNtries)) {
String currency = getXmlNodeValue(bodyHdrParentElementName, document, "BkToCstmrAcctRpt.Rpt.Acct.Ccy");
String amt = NumberUtil.formatAmt(new BigDecimal(sum), currency);
if(amt.length()>15||nbOfNtries.length()>5){
} else {
tags.add(new Tag(name,nbOfNtries+currency+amt));
}
}
}
}
<?xml version="1.0" encoding="UTF-8"?>
<!--
THE MESSAGE WILL WORK “AS IS” IN THE READINESS PORTAL. IT IS ESSENTIAL THAT USERS REMOVE THE ENVELOPE AND REPLACE IT WITH THEIR OWN TRANSPORT HEADER (FOR EXAMPLE FOR ALLIANCE ACCESS YOU WOULD USE THE XML V2 HEADERS).
=========================================================================================================================================================================================
Legal Disclaimer:
=================
SWIFT © 2020. All rights reserved.
This publication contains SWIFT or third-party confidential information. Do not disclose this publication outside your organisation without SWIFT’s prior written consent.
The use of this document is governed by the legal notices appearing at the end of this document. By using this document, you will be deemed to have accepted those legal notices.
=================================================================================================================================================================================
Use Case C.52.1.c Creditor Agent Banca Mediolanum as the Account Servicer produces and sends an intra transaction and balance report to the Account Owner Veneto Banca.
========================================================================================================================
Change Log
2021-06-30 - Original version
=============================
-->
<Envelope xmlns="urn:swift:xsd:envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:swift:xsd:envelope ../../../../March21Schemas/Translator_envelope.xsd">
<AppHdr xmlns="urn:iso:std:iso:20022:tech:xsd:head.001.001.02">
<Fr>
<FIId>
<FinInstnId>
<BICFI>MEDBITMM</BICFI>
</FinInstnId>
</FIId>
</Fr>
<To>
<FIId>
<FinInstnId>
<BICFI>VEBHIT2M</BICFI>
</FinInstnId>
</FIId>
</To>
<BizMsgIdr>cmt052bizmsgidr-001</BizMsgIdr>
<MsgDefIdr>camt.052.001.08</MsgDefIdr>
<BizSvc>swift.cbprplus.02</BizSvc>
<CreDt>2020-12-15T11:00:00+00:00</CreDt>
</AppHdr>
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:camt.052.001.08">
<BkToCstmrAcctRpt>
<GrpHdr>
<MsgId>cmt052bizmsgidr-001</MsgId>
<CreDtTm>2020-12-15T11:00:00+00:00</CreDtTm>
</GrpHdr>
<Rpt>
<TxsSummry>
<TtlCdtNtries>
<Sum Ccy="EUR">385700</Sum>
<NbOfNtries>87</NbOfNtries>
</TtlCdtNtries>
<TtlDbtNtries>
<Sum Ccy="EUR">210000</Sum>
<NbOfNtries>9</NbOfNtries>
</TtlDbtNtries>
</TxsSummry>
<Id>100-01</Id>
<RptPgntn>
<PgNb>1</PgNb>
<LastPgInd>true</LastPgInd>
</RptPgntn>
<LglSeqNb>50010</LglSeqNb>
<Acct>
<Id>
<Othr>
<Id>48751258</Id>
</Othr>
</Id>
<Ccy>EUR</Ccy>
</Acct>
<Bal>
<Tp>
<CdOrPrtry>
<Cd>OPBD</Cd>
</CdOrPrtry>
</Tp>
<Amt Ccy="EUR">236258.24</Amt>
<CdtDbtInd>DBIT</CdtDbtInd>
<Dt>
<Dt>2020-12-15</Dt>
</Dt>
</Bal>
<Bal>
<Tp>
<CdOrPrtry>
<Cd>CLAV</Cd>
</CdOrPrtry>
</Tp>
<Amt Ccy="EUR">763741.76</Amt>
<CdtDbtInd>CRDT</CdtDbtInd>
<Dt>
<Dt>2020-12-15</Dt>
</Dt>
</Bal>
<Ntry>
<Amt Ccy="EUR">1000000</Amt>
<CdtDbtInd>CRDT</CdtDbtInd>
<Sts>
<Cd>BOOK</Cd>
</Sts>
<ValDt>
<Dt>2020-12-15</Dt>
</ValDt>
<AcctSvcrRef>ABKREF-125646</AcctSvcrRef>
<BkTxCd>
<Domn>
<Cd>PMNT</Cd>
<Fmly>
<Cd>RCDT</Cd>
<SubFmlyCd>XBCT</SubFmlyCd>
</Fmly>
</Domn>
</BkTxCd>
<NtryDtls>
<TxDtls>
<Refs>
<AcctSvcrRef>ABKREF-125646</AcctSvcrRef>
<InstrId>pacs8bizmsgidr01</InstrId>
<EndToEndId>pacs008EndToEndId-001</EndToEndId>
<UETR>8a562c67-ca16-48ba-b074-65581be6f001</UETR>
</Refs>
<Amt Ccy="EUR">1000000</Amt>
<CdtDbtInd>CRDT</CdtDbtInd>
</TxDtls>
</NtryDtls>
</Ntry>
</Rpt>
</BkToCstmrAcctRpt>
</Document>
</Envelope>
package com.brilliance.mx2mt.mt942;
import com.brilliance.swift.mx2mt.Mx2MtCreatorManager;
import org.apache.commons.io.FileUtils;
import java.io.File;
public class TestMx2MtFor942 {
public static void main(String[] args) throws Exception {
File file = new File(System.getProperty("user.dir")+"\\swiftCore\\src\\main\\resources\\swiftXml\\MXcamt05200108.xml");
String xmlStr = FileUtils.readFileToString(file);
String mt942 = new Mx2MtCreatorManager().mx2Mt(xmlStr, null, null);
System.out.println(mt942);
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment