I am trying to generate an XML file in Progress 12 using temp tables and a WRITE-XML statement. I am almost there. The format should be
<CdtrAgt>
<FinInstrnId>
<ClrSysMmbId>
<MmbId>xxx</MmbId>
</ClrSysMmbId>
<Nm>yyy</Nm>
<PstlAdr>
<Ctry>US</Ctry>
</PstlAdr>
<Othr>
<Id>zzz</Id>
</Othr>
</FinInstrnId>
</CdtrAgt>
I figured out how to move the Nm segment before the PstlAdr using the code:
PARENT-ID-RELATION FinCR1 FOR FinInstnId-CR, ClrSysMmbId-CR
PARENT-ID-FIELD FinInstn-Id
PARENT-FIELDS-AFTER (Nm)
PARENT-ID-RELATION FinCR2 FOR FinInstnId-CR, PstlAdr-CR
PARENT-ID-FIELD FinInstn-Id2
but I'm not able to move the Othr segment after PstlAdr. Here is my code:
/* Temp tables */
DEFINE TEMP-TABLE CstmrCdtTrfInitn NO-UNDO
FIELD MsgId AS CHAR XML-NODE-TYPE "HIDDEN"
INDEX TEMP-ACH-HDR-IDX IS PRIMARY MsgId ASC.
DEFINE TEMP-TABLE PmtInf NO-UNDO
FIELD MsgId AS CHAR XML-NODE-TYPE "HIDDEN"
FIELD PmtInfId AS CHAR
FIELD PmtMtd AS CHAR
FIELD NbOfTxs AS INT
FIELD CtrlSum AS DEC DECIMALS 2
INDEX TEMP-ACH-HDR-IDX IS PRIMARY MsgId ASC PmtInfId ASC.
DEFINE TEMP-TABLE PmtTpInf NO-UNDO
FIELD MsgId AS CHAR XML-NODE-TYPE "HIDDEN"
FIELD PmtInfId AS CHAR XML-NODE-TYPE "HIDDEN"
FIELD LclInstrm AS CHAR XML-NODE-TYPE "HIDDEN"
INDEX TEMP-ACH-HDR-IDX IS PRIMARY MsgId ASC PmtInfId ASC.
DEFINE TEMP-TABLE CdtTrfTxInf NO-UNDO
FIELD MsgId AS CHAR XML-NODE-TYPE "HIDDEN"
FIELD PmtInfId AS CHAR XML-NODE-TYPE "HIDDEN"
FIELD SeqNum AS INT XML-NODE-TYPE "HIDDEN"
INDEX TEMP-ACH-CRED-IDX IS PRIMARY MsgId ASC PmtInfId ASC SeqNum ASC.
DEFINE TEMP-TABLE PmtId NO-UNDO
FIELD MsgId AS CHAR XML-NODE-TYPE "HIDDEN"
FIELD PmtInfId AS CHAR XML-NODE-TYPE "HIDDEN"
FIELD SeqNum AS INT XML-NODE-TYPE "HIDDEN"
FIELD EndToEndId AS CHAR /* Receiver Id Number */
INDEX TEMP-ACH-CRED-IDX IS PRIMARY MsgId ASC PmtInfId ASC SeqNum ASC.
DEFINE TEMP-TABLE Amt NO-UNDO
FIELD MsgId AS CHAR XML-NODE-TYPE "HIDDEN"
FIELD PmtInfId AS CHAR XML-NODE-TYPE "HIDDEN"
FIELD SeqNum AS INT XML-NODE-TYPE "HIDDEN"
INDEX TEMP-ACH-CRED-IDX IS PRIMARY MsgId ASC PmtInfId ASC SeqNum ASC.
DEFINE TEMP-TABLE CdtrAgt NO-UNDO
FIELD MsgId AS CHAR XML-NODE-TYPE "HIDDEN"
FIELD PmtInfId AS CHAR XML-NODE-TYPE "HIDDEN"
FIELD SeqNum AS INT XML-NODE-TYPE "HIDDEN"
INDEX TEMP-ACH-CRED-IDX IS PRIMARY MsgId ASC PmtInfId ASC SeqNum ASC.
DEFINE TEMP-TABLE FinInstnId-CR NO-UNDO XML-NODE-NAME "FinInstnId"
FIELD MsgId AS CHAR XML-NODE-TYPE "HIDDEN"
FIELD PmtInfId AS CHAR XML-NODE-TYPE "HIDDEN"
FIELD SeqNum AS INT XML-NODE-TYPE "HIDDEN"
FIELD Nm AS CHAR
INDEX TEMP-ACH-CRED-IDX IS PRIMARY MsgId ASC PmtInfId ASC SeqNum ASC.
DEFINE TEMP-TABLE ClrSysMmbId-CR NO-UNDO XML-NODE-NAME "ClrSysMmbId"
FIELD MsgId AS CHAR XML-NODE-TYPE "HIDDEN"
FIELD PmtInfId AS CHAR XML-NODE-TYPE "HIDDEN"
FIELD SeqNum AS INT XML-NODE-TYPE "HIDDEN"
FIELD FinInstn-Id AS RECID XML-NODE-TYPE "HIDDEN"
FIELD MmbId AS CHAR
INDEX TEMP-ACH-HDR-IDX IS PRIMARY MsgId ASC PmtInfId ASC SeqNum ASC.
DEFINE TEMP-TABLE PstlAdr-CR NO-UNDO XML-NODE-NAME "PstlAdr"
FIELD MsgId AS CHAR XML-NODE-TYPE "HIDDEN"
FIELD PmtInfId AS CHAR XML-NODE-TYPE "HIDDEN"
FIELD SeqNum AS INT XML-NODE-TYPE "HIDDEN"
FIELD FinInstn-Id2 AS RECID XML-NODE-TYPE "HIDDEN"
FIELD Ctry AS CHAR /* Remit To Postal Country */
INDEX TEMP-ACH-HDR-IDX IS PRIMARY MsgId ASC PmtInfId ASC SeqNum ASC.
DEFINE TEMP-TABLE Othr-CI NO-UNDO XML-NODE-NAME "Othr"
FIELD MsgId AS CHAR XML-NODE-TYPE "HIDDEN"
FIELD PmtInfId AS CHAR XML-NODE-TYPE "HIDDEN"
FIELD SeqNum AS INT XML-NODE-TYPE "HIDDEN"
FIELD FinInstn-Id3 AS RECID XML-NODE-TYPE "HIDDEN"
FIELD Id AS CHAR /* DFI Account Number */
FIELD IBAN AS CHAR /* Remit To N1 ID Code ID - if populated */
INDEX TEMP-ACH-CRED-IDX IS PRIMARY MsgId ASC PmtInfId ASC SeqNum ASC.
/* *************************** Define Pro Dataset for XML Reading *************************** */
/* NAMESPACE-URI is used to set the dataset attribute - will appear as follows:
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.001.03" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> */
DEFINE DATASET Document NAMESPACE-URI "urn:iso:std:iso:20022:tech:xsd:pain.001.001.03" FOR CstmrCdtTrfInitn, CdtTrfTxInf, PmtInf, PmtTpInf,
CdtrAgt, FinInstnId-CR, ClrSysMmbId-CR, PstlAdr-CR, Othr-CI
DATA-RELATION Pymt-1 FOR CstmrCdtTrfInitn, PmtInf
RELATION-FIELDS(MsgId, MsgId)
NESTED
DATA-RELATION Cred-1 FOR PmtInf, CdtTrfTxInf
RELATION-FIELDS(MsgId, MsgId,
PmtInfId, PmtInfId)
NESTED
DATA-RELATION Cred-5 FOR CdtTrfTxInf, CdtrAgt
RELATION-FIELDS(MsgId, MsgId,
PmtInfId, PmtInfId,
SeqNum, SeqNum)
NESTED
DATA-RELATION Cred-6 FOR CdtrAgt, FinInstnId-CR
RELATION-FIELDS(MsgId, MsgId,
PmtInfId, PmtInfId,
SeqNum, SeqNum)
NESTED
DATA-RELATION Cred-10 FOR FinInstnId-CR, Othr-CI
RELATION-FIELDS(MsgId, MsgId,
PmtInfId, PmtInfId,
SeqNum, SeqNum)
NESTED
PARENT-ID-RELATION FinCR1 FOR FinInstnId-CR, ClrSysMmbId-CR
PARENT-ID-FIELD FinInstn-Id
PARENT-FIELDS-AFTER (Nm)
PARENT-ID-RELATION FinCR2 FOR FinInstnId-CR, PstlAdr-CR
PARENT-ID-FIELD FinInstn-Id2.
Any assistance would be appreciated.
Julie