read_camt054_esr.p 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517
  1. &ANALYZE-SUSPEND _VERSION-NUMBER AB_v10r12
  2. /* Procedure Description
  3. "Structured Procedure File Template.
  4. Use this template to create a new Structured Procedure file to compile and run PROGRESS 4GL code. You edit structured procedure files using the AB's Section Editor."
  5. */
  6. &ANALYZE-RESUME
  7. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS Procedure
  8. /*------------------------------------------------------------------------
  9. File : ReadISOBESRDatei.p
  10. Purpose :
  11. Syntax :
  12. Description :
  13. Author(s) : walter.riechsteiner
  14. Created : Thu Mar 24 11:59:46 CET 2022
  15. Notes :
  16. ----------------------------------------------------------------------*/
  17. /*----------------------------------------------------------------------*/
  18. /* *************************** Definitions ************************** */
  19. DEF INPUT PARAMETER ipDateiName AS CHAR NO-UNDO.
  20. DEF INPUT-OUTPUT PARAMETER ophHeader AS HANDLE NO-UNDO.
  21. DEF INPUT-OUTPUT PARAMETER ophSubHeader AS HANDLE NO-UNDO.
  22. DEF INPUT-OUTPUT PARAMETER ophZahlung AS HANDLE NO-UNDO.
  23. /*DEFINE VARIABLE ipDateiName AS CHARACTER INIT 'N:\12_ESR\camt054_esr_ch3280808006672314278_20220307094125.xml'.*/
  24. DEFINE VARIABLE iId AS INTEGER NO-UNDO INIT 0.
  25. DEFINE VARIABLE iSeq AS INTEGER NO-UNDO INIT 0.
  26. DEFINE VARIABLE iZahlung AS INTEGER NO-UNDO INIT 0.
  27. { incl/ttcamt054_esr.i }
  28. DEFINE TEMP-TABLE ttZahlungen
  29. FIELD iId AS INTEGER
  30. FIELD cZahler AS CHARACTER
  31. FIELD cIBAN AS CHARACTER
  32. FIELD cFrw AS CHARACTER
  33. FIELD iAnzZahl AS INTEGER
  34. FIELD nTotalBetrag AS DECIMAL
  35. FIELD nTotalTaxen AS DECIMAL.
  36. DEFINE TEMP-TABLE ttBuchungen NO-UNDO
  37. FIELD iId AS INTEGER
  38. FIELD cFrw AS CHARACTER
  39. FIELD cTeilNr AS CHARACTER
  40. FIELD cZahlArt AS CHARACTER
  41. FIELD dBuchdat AS DATE
  42. FIELD dValuta AS DATE
  43. FIELD cReferenz AS CHARACTER
  44. FIELD nBetrag AS DECIMAL
  45. FIELD nTaxen AS DECIMAL
  46. .
  47. DEFINE TEMP-TABLE Document NO-UNDO
  48. FIELD foo AS LOGICAL XML-NODE-TYPE "HIDDEN"
  49. .
  50. DEFINE TEMP-TABLE BkToCstmrDbtCdtNtfctn NO-UNDO
  51. FIELD foo AS LOGICAL XML-NODE-TYPE "HIDDEN"
  52. FIELD Document_Id AS RECID XML-NODE-TYPE "HIDDEN"
  53. .
  54. DEFINE TEMP-TABLE GrpHdr NO-UNDO
  55. FIELD MsgId AS CHARACTER
  56. FIELD CreDtTm AS CHARACTER
  57. FIELD AddtlInf AS CHARACTER
  58. FIELD BkToCstmrDbtCdtNtfctn_Id AS RECID XML-NODE-TYPE "HIDDEN"
  59. .
  60. DEFINE TEMP-TABLE MsgRcpt NO-UNDO
  61. FIELD Nm AS CHARACTER
  62. FIELD GrpHdr_Id AS RECID XML-NODE-TYPE "HIDDEN"
  63. .
  64. DEFINE TEMP-TABLE MsgPgntn NO-UNDO
  65. FIELD PgNb AS INTEGER
  66. FIELD LastPgInd AS LOGICAL
  67. FIELD GrpHdr_Id AS RECID XML-NODE-TYPE "HIDDEN"
  68. .
  69. DEFINE TEMP-TABLE Ntfctn NO-UNDO
  70. FIELD Id AS CHARACTER
  71. FIELD ElctrncSeqNb AS INTEGER
  72. FIELD CreDtTm AS CHARACTER
  73. FIELD BkToCstmrDbtCdtNtfctn_Id AS RECID XML-NODE-TYPE "HIDDEN"
  74. .
  75. DEFINE TEMP-TABLE Acct NO-UNDO
  76. FIELD Ccy AS CHARACTER
  77. FIELD Ntfctn_id AS RECID XML-NODE-TYPE "HIDDEN"
  78. .
  79. DEFINE TEMP-TABLE Id NO-UNDO
  80. FIELD IBAN AS CHARACTER
  81. FIELD Acct_Id AS RECID XML-NODE-TYPE "HIDDEN"
  82. .
  83. DEFINE TEMP-TABLE Svcr NO-UNDO
  84. FIELD Acct_id AS RECID XML-NODE-TYPE "HIDDEN"
  85. .
  86. DEFINE TEMP-TABLE FinInstnId NO-UNDO
  87. FIELD Nm AS CHARACTER
  88. FIELD Svcr_id AS RECID XML-NODE-TYPE "HIDDEN"
  89. .
  90. DEFINE TEMP-TABLE TxsSummry NO-UNDO
  91. FIELD Ntfctn_id AS RECID XML-NODE-TYPE "HIDDEN"
  92. .
  93. DEFINE TEMP-TABLE TtlNtries NO-UNDO
  94. FIELD NbOfNtries AS INTEGER
  95. FIELD Sum AS DECIMAL
  96. FIELD TxsSummry_Id AS RECID XML-NODE-TYPE "HIDDEN"
  97. .
  98. DEFINE TEMP-TABLE Ntry NO-UNDO
  99. FIELD NtryRef AS CHARACTER
  100. FIELD CdtDbtInd AS CHARACTER
  101. FIELD RvslInd AS LOGICAL
  102. FIELD Sts AS CHARACTER
  103. FIELD AcctSvcrRef AS CHARACTER
  104. FIELD Ntfctn_id AS RECID XML-NODE-TYPE "HIDDEN"
  105. .
  106. DEFINE TEMP-TABLE Amt NO-UNDO
  107. FIELD CCy AS CHARACTER XML-NODE-TYPE "ATTRIBUTE"
  108. FIELD Amt AS DECIMAL
  109. XML-NODE-TYPE "TEXT"
  110. FIELD Ntry_Id AS RECID XML-NODE-TYPE "HIDDEN"
  111. FIELD TxDtls_Id AS RECID XML-NODE-TYPE "HIDDEN"
  112. .
  113. DEFINE TEMP-TABLE BookgDt NO-UNDO
  114. FIELD Dt AS CHARACTER
  115. FIELD Ntry_Id AS RECID XML-NODE-TYPE "HIDDEN"
  116. .
  117. DEFINE TEMP-TABLE ValDt NO-UNDO
  118. FIELD Dt AS CHARACTER
  119. FIELD Ntry_Id AS RECID XML-NODE-TYPE "HIDDEN"
  120. .
  121. DEFINE TEMP-TABLE NtryDtls NO-UNDO
  122. FIELD Ntry_Id AS RECID XML-NODE-TYPE "HIDDEN"
  123. .
  124. DEFINE TEMP-TABLE TxDtls NO-UNDO
  125. FIELD CdtDbtInd AS CHARACTER
  126. FIELD NtryDtls_Id AS RECID XML-NODE-TYPE "HIDDEN"
  127. .
  128. DEFINE TEMP-TABLE Chrgs NO-UNDO
  129. FIELD Ntry_Id AS RECID XML-NODE-TYPE "HIDDEN"
  130. FIELD TxDtls_Id AS RECID XML-NODE-TYPE "HIDDEN"
  131. .
  132. DEFINE TEMP-TABLE TtlChrgsAndTaxAmt NO-UNDO
  133. FIELD Ccy AS CHARACTER XML-NODE-TYPE "ATTRIBUTE"
  134. FIELD TtlChrgsAndTaxAmt AS DECIMAL XML-NODE-TYPE "TEXT"
  135. FIELD Chrgs_Id AS RECID XML-NODE-TYPE "HIDDEN"
  136. .
  137. DEFINE TEMP-TABLE RmtInf NO-UNDO
  138. FIELD TxDtls_Id AS RECID XML-NODE-TYPE "HIDDEN"
  139. .
  140. DEFINE TEMP-TABLE Strd NO-UNDO
  141. FIELD RmtInf_Id AS RECID XML-NODE-TYPE "HIDDEN"
  142. .
  143. DEFINE TEMP-TABLE CdtrRefInf NO-UNDO
  144. FIELD Ref AS CHARACTER
  145. FIELD Strd_Id AS RECID XML-NODE-TYPE "HIDDEN"
  146. .
  147. DEFINE TEMP-TABLE Tp NO-UNDO
  148. FIELD CdtrRefInf_Id AS RECID XML-NODE-TYPE "HIDDEN"
  149. .
  150. DEFINE TEMP-TABLE CdOrPrtry NO-UNDO
  151. FIELD Prtry AS CHARACTER
  152. FIELD Cd AS CHARACTER
  153. FIELD Tp_Id AS RECID XML-NODE-TYPE "HIDDEN"
  154. .
  155. DEFINE DATASET camt54 FOR Document, BkToCstmrDbtCdtNtfctn, GrpHdr, MsgRcpt, MsgPgntn, Ntfctn, Acct, Svcr, FinInstnId, Id, TxsSummry, TtlNtries,
  156. Ntry, Amt, BookgDt, ValDt, Chrgs, NtryDtls, TxDtls, TtlChrgsAndTaxAmt, RmtInf, Strd, CdtrRefInf, Tp, CdOrPrtry
  157. PARENT-ID-RELATION Relation001 FOR Document, BkToCstmrDbtCdtNtfctn
  158. PARENT-ID-FIELD Document_id
  159. PARENT-ID-RELATION Relation002 FOR BkToCstmrDbtCdtNtfctn, GrpHdr
  160. PARENT-ID-FIELD BkToCstmrDbtCdtNtfctn_Id
  161. PARENT-ID-RELATION Relation003 FOR GrpHdr, MsgRcpt
  162. PARENT-ID-FIELD GrpHdr_Id
  163. PARENT-ID-RELATION Relation004 FOR GrpHdr, MsgPgntn
  164. PARENT-ID-FIELD GrpHdr_Id
  165. PARENT-ID-RELATION Relation005 FOR BkToCstmrDbtCdtNtfctn, Ntfctn
  166. PARENT-ID-FIELD BkToCstmrDbtCdtNtfctn_Id
  167. PARENT-ID-RELATION Relation006 FOR Ntfctn, Acct
  168. PARENT-ID-FIELD Ntfctn_Id
  169. PARENT-FIELDS-BEFORE (Id, ElctrncSeqNb, CreDtTm)
  170. PARENT-ID-RELATION Relation007 FOR Acct, Id
  171. PARENT-ID-FIELD Acct_Id
  172. PARENT-FIELDS-AFTER (Ccy)
  173. PARENT-ID-RELATION Relation008 FOR Acct, Svcr
  174. PARENT-ID-FIELD Acct_Id
  175. PARENT-ID-RELATION Relation009 FOR Svcr, FinInstnId
  176. PARENT-ID-FIELD Svcr_Id
  177. PARENT-ID-RELATION Relation010 FOR Ntfctn, TxsSummry
  178. PARENT-ID-FIELD Ntfctn_Id
  179. PARENT-ID-RELATION Relation011 FOR TxsSummry, TtlNtries
  180. PARENT-ID-FIELD TxsSummry_Id
  181. PARENT-ID-RELATION Relation012 FOR Ntfctn, Ntry
  182. PARENT-ID-FIELD Ntfctn_Id
  183. PARENT-ID-RELATION Relation013 FOR Ntry, Amt
  184. PARENT-ID-FIELD Ntry_Id
  185. PARENT-FIELDS-BEFORE (NtryRef)
  186. PARENT-FIELDS-AFTER (CdtDbtInd, RvslInd, Sts, AcctSvcrRef)
  187. PARENT-ID-RELATION Relation014 FOR Ntry, BookgDt
  188. PARENT-ID-FIELD Ntry_Id
  189. PARENT-ID-RELATION Relation015 FOR Ntry, ValDt
  190. PARENT-ID-FIELD Ntry_Id
  191. PARENT-ID-RELATION Relation016 FOR Ntry, Chrgs
  192. PARENT-ID-FIELD Ntry_Id
  193. PARENT-ID-RELATION Relation017 FOR Ntry, NtryDtls
  194. PARENT-ID-FIELD Ntry_Id
  195. PARENT-ID-RELATION Relation018 FOR NtryDtls, TxDtls
  196. PARENT-ID-FIELD NtryDtls_Id
  197. PARENT-ID-RELATION Relation019 FOR TxDtls, Amt
  198. PARENT-ID-FIELD TxDtls_Id
  199. PARENT-ID-RELATION Relation020 FOR TxDtls, Chrgs
  200. PARENT-ID-FIELD TxDtls_Id
  201. PARENT-ID-RELATION Relation021 FOR Chrgs, TtlChrgsAndTaxAmt
  202. PARENT-ID-FIELD Chrgs_Id
  203. PARENT-ID-RELATION Relation022 FOR TxDtls, RmtInf
  204. PARENT-ID-FIELD TxDtls_Id
  205. PARENT-ID-RELATION Relation023 FOR RmtInf, Strd
  206. PARENT-ID-FIELD RmtInf_Id
  207. PARENT-ID-RELATION Relation024 FOR Strd, CdtrRefInf
  208. PARENT-ID-FIELD Strd_Id
  209. PARENT-ID-RELATION Relation025 FOR CdtrRefInf, TP
  210. PARENT-ID-FIELD CdtrRefInf_Id
  211. PARENT-FIELDS-AFTER (Ref)
  212. PARENT-ID-RELATION Relation026 FOR Tp, CdOrPrtry
  213. PARENT-ID-FIELD Tp_Id
  214. .
  215. /* _UIB-CODE-BLOCK-END */
  216. &ANALYZE-RESUME
  217. &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
  218. /* ******************** Preprocessor Definitions ******************** */
  219. /* _UIB-PREPROCESSOR-BLOCK-END */
  220. &ANALYZE-RESUME
  221. /* *********************** Procedure Settings ************************ */
  222. &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
  223. /* Settings for THIS-PROCEDURE
  224. Type: Procedure Template
  225. Allow:
  226. Frames: 0
  227. Add Fields to: Neither
  228. Other Settings: CODE-ONLY COMPILE
  229. */
  230. &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
  231. /* ************************* Create Window ************************** */
  232. &ANALYZE-SUSPEND _CREATE-WINDOW
  233. /* DESIGN Window definition (used by the UIB)
  234. CREATE WINDOW Procedure ASSIGN
  235. HEIGHT = 15
  236. WIDTH = 60.
  237. /* END WINDOW DEFINITION */
  238. */
  239. &ANALYZE-RESUME
  240. &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK Procedure
  241. /* *************************** Main Block *************************** */
  242. /*DATASET camt54:READ-XML("file", "C:\Entwicklung\TEMP\LaTorre\E010518757_20220322081701.xml", "empty", ?, FALSE, ?, "IGNORE") NO-ERROR.*/
  243. DATASET camt54:READ-XML("file", ipDateiname, "empty", ?, FALSE, ?, "IGNORE") NO-ERROR.
  244. IF ERROR-STATUS:ERROR THEN
  245. DO:
  246. MESSAGE 'XML-Datei kann nicht eingelesen werden'
  247. VIEW-AS ALERT-BOX.
  248. RETURN 'ERROR'.
  249. END.
  250. EMPTY TEMP-TABLE tHeader .
  251. EMPTY TEMP-TABLE tSubHeader.
  252. EMPTY TEMP-TABLE tZahlung .
  253. FOR EACH BkToCstmrDbtCdtNtfctn NO-LOCK,
  254. FIRST GrpHdr NO-LOCK WHERE GrpHdr.BkToCstmrDbtCdtNtfctn_Id = RECID(BkToCstmrDbtCdtNtfctn).
  255. FIND MsgRcpt NO-LOCK WHERE MsgRcpt.GrpHdr_Id = RECID(GrpHdr) NO-ERROR.
  256. FIND MsgPgntn NO-LOCK WHERE MsgPgntn.GrpHdr_Id = RECID(GrpHdr) NO-ERROR.
  257. FOR EACH Ntfctn NO-LOCK WHERE Ntfctn.BkToCstmrDbtCdtNtfctn_Id = RECID(BkToCstmrDbtCdtNtfctn):
  258. FIND Acct NO-LOCK WHERE Acct.Ntfctn_id = RECID(Ntfctn) NO-ERROR.
  259. FIND Id NO-LOCK WHERE Id.Acct_Id = RECID(Acct) NO-ERROR.
  260. FIND Svcr NO-LOCK WHERE Svcr.Acct_Id = RECID(Acct) NO-ERROR.
  261. IF AVAILABLE Svcr THEN
  262. DO:
  263. FIND FinInstnId NO-LOCK WHERE FinInstnId.Svcr_id = RECID(Svcr) NO-ERROR.
  264. END.
  265. FIND TxsSummry NO-LOCK WHERE TxsSummry.Ntfctn_id = RECID(Ntfctn) NO-ERROR.
  266. IF AVAILABLE TxsSummry THEN
  267. DO:
  268. FIND TtlNtries NO-LOCK WHERE TtlNtries.TxsSummry_Id = RECID(TxsSummry) NO-ERROR.
  269. END.
  270. iId = iId + 1.
  271. CREATE tHeader.
  272. ASSIGN
  273. tHeader.iInd = iId
  274. tHeader.Sabe = (IF AVAILABLE MsgRcpt THEN MsgRcpt.Nm ELSE '')
  275. tHeader.Prod = GrpHdr.AddtlInf
  276. tHeader.MsgId = GrpHdr.MsgId
  277. tHeader.Datum = GrpHdr.CreDtTm
  278. tHeader.BankSeqNr = STRING(Ntfctn.ElctrncSeqNb)
  279. tHeader.IBAN = (IF AVAILABLE Id THEN Id.IBAN ELSE '')
  280. tHeader.Bank = (IF AVAILABLE FinInstnId THEN FinInstnId.Nm ELSE '')
  281. tHeader.Frw = Acct.Ccy
  282. tHeader.Total = (IF AVAILABLE TtlNtries THEN TtlNtries.Sum ELSE 0.00)
  283. tHeader.Anzahl = (IF AVAILABLE TtlNtries THEN TtlNtries.NbOfNtries ELSE 0)
  284. .
  285. iSeq = 0.
  286. FOR EACH Ntry NO-LOCK WHERE Ntry.Ntfctn_id = RECID(Ntfctn):
  287. FIND BookgDt NO-LOCK WHERE BookgDt.Ntry_Id = RECID(Ntry) NO-ERROR.
  288. FIND ValDt NO-LOCK WHERE ValDt.Ntry_Id = RECID(Ntry) NO-ERROR.
  289. FIND Amt NO-LOCK WHERE Amt.Ntry_Id = RECID(Ntry) NO-ERROR.
  290. FIND Chrgs NO-LOCK WHERE Chrgs.Ntry_Id = RECID(Ntry) NO-ERROR.
  291. IF AVAILABLE Chrgs THEN
  292. DO:
  293. FIND TtlChrgsAndTaxAmt NO-LOCK WHERE TtlChrgsAndTaxAmt.Chrgs_Id = RECID(Chrgs) NO-ERROR.
  294. END.
  295. iSeq = iSeq + 1.
  296. CREATE tSubHeader.
  297. ASSIGN
  298. tSubHeader.iInd = tHeader.iInd
  299. tSubHeader.iSeq = iSeq
  300. tSubHeader.TeilnrNr = Ntry.NtryRef
  301. tSubHeader.Buchdat = BookgDt.Dt
  302. tSubHeader.Valuta = ValDt.Dt
  303. tSubHeader.Frw = Amt.CCy
  304. tSubHeader.Total = Amt.Amt
  305. tSubHeader.Taxen = (IF AVAILABLE TtlChrgsAndTaxAmt THEN TtlChrgsAndTaxAmt.TtlChrgsAndTaxAmt ELSE 0.00)
  306. tSubHeader.lStorno = (IF Ntry.CdtDbtInd = 'CRDT' THEN FALSE ELSE TRUE)
  307. .
  308. FIND NtryDtls NO-LOCK WHERE NtryDtls.Ntry_Id = RECID(Ntry) NO-ERROR.
  309. iZahlung = 0.
  310. FOR EACH TxDtls NO-LOCK WHERE TxDtls.NtryDtls_Id = RECID(NtryDtls):
  311. FIND Amt NO-LOCK WHERE Amt.TxDtls_Id = RECID(TxDtls) NO-ERROR.
  312. FIND RmtInf NO-LOCK WHERE RmtInf.TxDtls_Id = RECID(TxDtls) NO-ERROR.
  313. FIND Strd NO-LOCK WHERE Strd.RmtInf_Id = RECID(RmtInf) NO-ERROR.
  314. FIND CdtrRefInf NO-LOCK WHERE CdtrRefInf.Strd_Id = RECID(Strd) NO-ERROR.
  315. FIND Chrgs NO-LOCK WHERE Chrgs.TxDtls_Id = RECID(TxDtls) NO-ERROR.
  316. IF AVAILABLE Chrgs THEN
  317. DO:
  318. FIND TtlChrgsAndTaxAmt NO-LOCK WHERE TtlChrgsAndTaxAmt.Chrgs_Id = RECID(Chrgs) NO-ERROR.
  319. END.
  320. iZahlung = iZahlung + 1.
  321. CREATE tZahlung.
  322. ASSIGN
  323. tZahlung.iInd = tSubHeader.iInd
  324. tZahlung.iSeq = tSubHeader.iSeq
  325. tZahlung.iZahlung = iZahlung
  326. tZahlung.Betrag = Amt.Amt
  327. tZahlung.Frw = Amt.CCy
  328. tZahlung.lStorno = (IF TxDtls.CdtDbtInd = 'CRDT' THEN FALSE ELSE TRUE)
  329. tZahlung.Taxen = (IF AVAILABLE TtlChrgsAndTaxAmt THEN TtlChrgsAndTaxAmt.TtlChrgsAndTaxAmt ELSE 0.00)
  330. tZahlung.TaxFrw = (IF AVAILABLE TtlChrgsAndTaxAmt THEN TtlChrgsAndTaxAmt.Ccy ELSE '' )
  331. tZahlung.Referenz = CdtrRefInf.Ref
  332. tZahlung.lBetrag = TRUE.
  333. DO WHILE TRUE:
  334. FIND Tp NO-LOCK WHERE Tp.CdtrRefInf_Id = RECID(CdtrRefInf) NO-ERROR.
  335. IF NOT AVAILABLE Tp THEN LEAVE.
  336. FIND CdOrPrtry NO-LOCK WHERE CdOrPrtry.Tp_Id = RECID(Tp) NO-ERROR.
  337. IF NOT AVAILABLE CdOrPrtry THEN LEAVE.
  338. IF CdOrPrtry.Prtry <> '' THEN tZahlung.AufRef = CdOrPrtry.Prtry.
  339. IF CdOrPrtry.Cd <> '' THEN tZahlung.AufRef = CdOrPrtry.Cd .
  340. LEAVE.
  341. END.
  342. IF tZahlung.AufRef = '' THEN tZahlung.AufRef = 'BESR'.
  343. END.
  344. END.
  345. END.
  346. END.
  347. /*DATASET camt54:WRITE-XML("file", "C:\Entwicklung\TEMP\LaTorre\CAMT054.xml", TRUE, 'UTF-8', '', FALSE) NO-ERROR.*/
  348. FOR EACH tHeader WHERE tHeader.Anzahl = 0:
  349. FOR EACH tZahlung WHERE tZahlung.iInd = tHeader.iInd:
  350. ASSIGN
  351. tHeader.Anzahl = tHeader.Anzahl + 1
  352. tHeader.Total = tHeader.Total + tZahlung.Betrag
  353. tHeader.Taxen = tHeader.Taxen + tZahlung.Taxen.
  354. END.
  355. END.
  356. FOR EACH tSubHeader WHERE tSubHeader.Anzahl = 0:
  357. FOR EACH tZahlung
  358. WHERE tZahlung.iInd = tSubHeader.iInd
  359. AND tZahlung.iSeq = tSubHeader.iSeq:
  360. ASSIGN
  361. tSubHeader.Anzahl = tSubHeader.Anzahl + 1.
  362. END.
  363. END.
  364. FOR EACH tHeader:
  365. ophHeader:BUFFER-CREATE().
  366. ophHeader:BUFFER-COPY(htHeader).
  367. END.
  368. FOR EACH tSubHeader:
  369. ophSubHeader:BUFFER-CREATE().
  370. ophSubHeader:BUFFER-COPY(htSubHeader).
  371. END.
  372. FOR EACH tZahlung:
  373. ophZahlung:BUFFER-CREATE().
  374. ophZahlung:BUFFER-COPY(htZahlung).
  375. END.
  376. RETURN ''.
  377. /*OUTPUT TO 'C:\Entwicklung\TEMP\LaTorre\tHeader.csv' NO-MAP NO-CONVERT. */
  378. /*FOR EACH tHeader: */
  379. /* EXPORT DELIMITER ';' tHeader. */
  380. /*END. */
  381. /*OUTPUT CLOSE. */
  382. /* */
  383. /*OUTPUT TO 'C:\Entwicklung\TEMP\LaTorre\tSubHeader.csv' NO-MAP NO-CONVERT.*/
  384. /*FOR EACH tSUbHeader: */
  385. /* EXPORT DELIMITER ';' tSubHeader. */
  386. /*END. */
  387. /*OUTPUT CLOSE. */
  388. /* */
  389. /*OUTPUT TO 'C:\Entwicklung\TEMP\LaTorre\tZahlung.csv' NO-MAP NO-CONVERT. */
  390. /*FOR EACH tZahlung: */
  391. /* EXPORT DELIMITER ';' tZahlung. */
  392. /*END. */
  393. /*OUTPUT CLOSE. */
  394. /* _UIB-CODE-BLOCK-END */
  395. &ANALYZE-RESUME