Hoi,
het nieuwe Report 11000012 SEPA ISO20022 Pain 01.01.03 functioneert niet naar behoren. Omdat het al erg lang geduurd heeft voor MS met een update kwam voor pain.001.001.03 zet ik hieronder de fixes neer die iedereen met Report Designer in zijn licentie kan aanbrengen om wel een werkende versie te krijgen en live te kunnen met SEPA. Veel succes ermee.
Wij zijn tegen de volgende bugs aangelopen:
1. Als je een betaalrun wil exporteren met meer dan één regel gaat er iets mis. Er wordt telkens maar één regel in het exportbestand opgenomen, namelijk de eerste met status Nieuw.
Oplossing: maak een Global aan:
Name DataType Subtype Length
PaymentHistoryLine2 Record Payment History Line
Wijzig in de functie ExportPaymentInformation als volgt de code:
//PaymentHistoryLine.WillBeSent;
PaymentHistoryLine2 := PaymentHistoryLine;
PaymentHistoryLine2.WillBeSent;
2. De SEPA exportbestanden worden geweigerd door de bank omdat er niet toegestane tekens gebruikt worden. In ons geval en & en een @. Er zit wel een CONVERTSTR in functie AddElement maar die dekt bij lange na niet de lading.
De toegestande karakters in een SEPA bericht tussen de tags < en > zijn:
a b c d e f g h i j k l m n o p q r s t u v w x y z
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
0 1 2 3 4 5 6 7 8 9
/ - ? : ( ) . , ‘ +
Space
Onderstaande oplossing converteert alle ASCII waarden van 32 tot en met 255 naar de juiste ASCII waarde.
Maak eerst twee Globals aan:
Name DataType Subtype Length
TxtCharactersPossible Text 224
TxtCharactersAllowed Text 224
Maak twee Functions aan:
Name
BuildStringCharactersPossible
BuildStringCharactersAllowed
Plaats de volgende code in de trigger Report - OnPreReport()
BuildStringCharactersPossible;
BuildStringCharactersAllowed;
Pas de code in de functie AddElement als volgt aan:
IF NodeText <> '' THEN BEGIN
//NewChildNode.text := CONVERTSTR(NodeText,
// 'ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜøØáíóúñÁÀ¢¥ãÃðÐÊËÈiÍÎÏËÈÌÓßÔÒõÕµÚÛÙýÝ',
// 'CueaaaaceeeiiiAAEaAooouuyOUoOaiounAAAcyaAoDEEEiIIIEEIOBOOoOuUUUyY');
NewChildNode.text := CONVERTSTR(NodeText,TxtCharactersPossible,TxtCharactersAllowed);
END;
De twee toegevoegde functies:
BuildStringCharactersPossible()
FOR LIntASCIINo := 32 TO 255 DO BEGIN
LTxtCharacterPossible := LIntASCIINo;
TxtCharactersPossible += FORMAT(LTxtCharacterPossible);
END;
Locals:
Name DataType Subtype Length
LTxtCharacterPossible Char
LIntASCIINo Integer
BuildStringCharactersAllowed()
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 39;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 40;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 41;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 43;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 44;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 45;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 46;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 47;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 48;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 49;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 50;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 51;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 52;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 53;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 54;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 55;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 56;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 57;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 58;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 31;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 63;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 65;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 66;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 67;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 68;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 69;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 70;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 71;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 72;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 73;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 74;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 75;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 76;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 77;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 78;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 79;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 80;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 81;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 82;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 83;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 84;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 85;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 86;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 87;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 88;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 89;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 90;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 40;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 92;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 41;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 97;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 98;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 99;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 100;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 101;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 102;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 103;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 104;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 105;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 106;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 107;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 108;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 109;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 110;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 111;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 112;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 113;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 114;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 115;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 116;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 117;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 118;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 119;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 120;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 121;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 122;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 40;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 41;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 69;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 102;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 83;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 90;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 115;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 122;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 89;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 105;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 99;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 65;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 65;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 65;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 65;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 65;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 65;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 67;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 69;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 69;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 69;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 69;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 73;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 73;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 73;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 73;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 78;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 79;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 79;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 79;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 79;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 79;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 79;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 85;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 85;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 85;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 85;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 89;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 97;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 97;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 97;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 97;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 97;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 97;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 99;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 101;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 101;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 101;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 101;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 105;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 105;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 105;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 105;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 111;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 110;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 111;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 111;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 111;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 111;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 111;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 111;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 117;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 117;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 117;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 117;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 121;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 32;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
LTxtCharacterAllowed := 121;
TxtCharactersAllowed += FORMAT(LTxtCharacterAllowed);
Local:
Name DataType Subtype Length
LTxtCharacterAllowed Char
0
Comments
Never stop learning
Van Vugt's dynamiXs
Dutch Dynamics Community
Verder heb ik de aanpassing ook doorgezet naar Report 11000011 "Export SEPA ISO20022"
welke in een eerdere oplevering van MS is aangeboden, ook daar een bug uitgehaald en even afwachten of deze dan goed gaat bij de ABN-AMRO.
Indien deze goed is gegaan plaats ik de fix even.
Bedankt alvast. we wachten af.
Never stop learning
Van Vugt's dynamiXs
Dutch Dynamics Community
De BNG accepteert ons bestand niet omdat meerdere regels onder 1 PmtInf moeten komen onder de tag CdtTrfTxInf.
Nu maakt NAV er met 8 regels bijv. 8 rijtjes PmtInf aan. zie plaatje BNG voorbeeld links en ons bestand uit NAV.
BNG heeft 12 regels gexporteerd en daar heb ik 12 rijtjes CdtTrfTxInf.
het lijkt wel of de IF PaymentHistoryLine.FIND('-') THEN REPEAT verderop moet komen te staan.
Of heb ik al weer een oude versie van report 11000012 ?
Het irritante is dat de ABN niks verkeerds vindt in ons bestand en de BNG het Trial en Error principe toepast door bij elke eerstvolgende fout direct terug te butsen zonder enige uitleg naar onze klant ipv een goede analyse te geven.
De sectie CtgyPurp moest ook weg, maar daar doet NAV niks mee.
Heb nu eindelijk een voorbeeldbestand maar schept meer vragen dan duidelijkheid.
Hebben jullie ook die ervaring met (andere) banken?
En is er nu inmiddels een verbeterde versie van het rapport wat WEL uniform is voor alle banken? Of moeten we het toch zelf gaan maken?
Of heb ik het helemaal mis en zit ik fout ?
Mijn gedachte gaat daarom ook uit naar het verplaatsen van de 'IF PaymentHistoryLine.FIND('-') THEN...' constructie. Dus niet meer bovenin de functie ExportPaymentInformation, maar een stuk lager (bij de tekst HIER):
Als ik daar de repeat neerzet, krijg ik echter een keiharde automation foutmelding ('Er is geen instance van de Automation-variabele gemaakt. U kunt een instance maken door de variabele te maken of toe te kennen'). Ik ben niet zo thuis in XMLDom, dus ik weet even niet hoe ik dit zo moet structureren dat ik én geen foutmelding meer krijg én een output waarbij elke Payment History Line voor een eigen <CdtTrfTxInf> sectie zorgt. Iemand enig idee?
Groet,
Gerwin
Bestand bij mij is nu zover dat mijn klant weer een poging gaat wagen. (BIC code tag moest ook weg. wat dat ding daar doet is mij ook niet duidelijk maar als het niks doet zou je er geen last van moeten hebben.)
Erg efficient meewerken is er niet bij. Het rapport zit inmiddels in de maatwerkrange en ik denk dat er meerdere gaan volgen. Gelukkig heb je standaard 100 reports!
Ik heb nu dit resultaat: voor functie Export GroupHeader en ExportPaymentInformation. LET OP alleen BNG!
Een hoop uitgeslashed, maar misschien kan je er iets mee. De indentation is veranderd maar zo het er nu uitziet moet het toch wel een keer geaccepteerd worden.
Echter hun IT afdeling heeft een iets andere werkwijze dan in het normale bedrijfsleven. Trial en error, maar bij de 1e gelijk terugbouncen.
Ander probleem maar nu ABN AMRO, die overigens wel duidelijk is
Bij incasso via SEPA rolt 11000012 er een negatief bedrag uit.
Dat wordt ook niet geaccepteerd.
Heeft iemand ervaring met dit?
Incasso is Report 11000013 (zojuist vernomen 22-11-2013)
Groeten en lang leve de standaardisering die wederom om SEPA wordt geholpen.
:P
BNG heeft mijn opzet in bovenstaande post goedgekeurd. \:D/
Feel free to use.
Er kwam nog wel een vraag om hashtotalen bij te leveren (?????) ](*,)
Volgens mij doe je dat met CLIEOP en niet met XML.
Totalen en regeltotalen zijn opgenomen in de XML. ](*,)
Dit was trouwens een andere ambtenaar die dat aan mijn klant vroeg.
Is er nog iemand dan behalve greys die tegen deze muur oploopt?
Ik begin onderhand te begrijpen waarom ICT projecten bij de overheid vaak gedoemd zijn om te mislukken.
Succes iedereen.
Inmiddels de PAIN 008 gemerged, ben benieuwd hoe dat gaat lopen bij klanten. :roll:
Groeten.
Hans D.
Bedankt voor je updates. Ga het volgende week ook proberen. Met pain 008 bedoel je codeunit 11000011 ?
Volgens mij is dit Incasso, ik ben nog niet volledig gebriefd door mijn financiele collega.
Ben nog niet helemaal klaar met BNG, want ze willen een geleidestaat erbij conform SHA-01.
Zegt mij niets maar komt er waarschijnlijk op neer dat er een controleberekening losgaat die een code genereert denk ik.
Moet dat nog uitzoeken.
We komen er wel hoop ik.
Mvg,
Hans D.
Goed bezig Hans! Sommige banken vallen overigens ook nog over het feit dat € 35,20 als 35,2 in de xml terecht komt... Dus ik heb ook nog maar een aanpassing in het report gemaakt dat bedragen altijd met 2 decimalen worden uitgespuugd.
Greys
Heb je toevallig ook al iets geprobeerd met 'BtchBookg'? Staat nu op 'false'. Zou het niet voldoende zijn om deze op 'true' te zetten?
Tino Ruijs
Microsoft Dynamics NAV specialist
Ik ben momenteel bezig met de SEPA export vanuit Navision 3.7. Heb dat inmiddels werkend voor RABO Telebankieren.
Ben daarbij tegen dezelde problemen aangelopen als hierboven is geschetst. O.a. het decimalenprobleem bij ronde bedragen, het niet correct werken van de "WillBeSent" functie en het probleem van de meerdere batches.
Dat laatste probleem dacht ik te kunnen oplossen via de BtchBooking tag, echter dat hielp niet. Behalve als deze optie expliciet op false staat, ligt het probleem in de layout van het bestand.
Er dient maar 1 PmtInf tag in het XML bestand te staan, met per transactie een CdtTrfTxInf tag.
Zie bijgaande afbeelding.
Groeten,
rpj
Ik dacht ergens gelezen te hebben dat de bank deze altijd zelf opzoekt
Dat met die aparte batch heb ik ook gehad maar dat dacht ik te hebben opgelost door al de CdtTrfTxInf tags onder 1 PmtInf te zetten. (Zie ook vorige comment van rpj) Die boolean helpt niet.
misschien ergens een parentnode terug/bij vergeten?
Zie screenshot xml editor.
Bij de incasso variant R11000013 is dit een instelling in de nieuwe tabel 1230. Een incasso krijgt een kenmerk FRST/RCUR en LST mee. en hij gaat dan een batch per kenmerk maken.
Klopt maar sommige banken willen deze nog steeds hebben, hoezo eenheid ](*,) ?. ERGER: bij het maken van het voorstel vraagt NAV er zelfs nog steeds om.
Bij sommige banken is een NA (Not applicable) code prima. Die moet je dan wel inladen in de bankrekeningnummers klant/lev. Of de check SEPA aanpassen.
In R110000013 zit de BIC code ook nog steeds.
En bij de RABO inderdaad, 2 decimalen benodigd voor bedrag. Dit was ook een leuke een klant met 5.0SP1RU2. Maatwerkrapport van gemaakt vanuit 6.1 fob.
En ik heb weer een nieuwe: Klant meldt zojuist dat een bank het bestand niet kan inlezen vanwege extensie ".xml" het wordt steeds doller.
Heeft iemand een emailadres van een europarlementarier?
Wordt een mooi topic zo met tips.
Misschien wordt het wel tijd voor een universeel rapport met instellingsmogelijkheden per bank op de bankrekening kaart.
Eens kijken of ik daarvoor wat vrije tijd kan spenderen.
Groeten,
Hans D.
Ik lees met belangstelling alle topics over SEPA, heerlijk die Europese 'standaard' waar alle NL banken vervolgens vrolijk van afwijken... ](*,)
Nu loop ik bij een klant met ING Inside Business er tegenaan dat het incasso bestand (Core) niet ingelezen kan worden omdat er geen rekening gehouden wordt met de 5 dagen aanlevertermijn.
Ik heb een factuur met vervaldatum vandaag, die dus vandaag in mijn TB voorstel opgehaald wordt, maar vervolgens ook transactiedatum vandaag meekrijgt, en niet vandaag + 5 dagen.
Bij een andere klant die met de ABN bankiert gingen de incasso's wel gewoon goed, maar eigenlijk lijkt me dit toch fout?
Heeft iemand de SEPA incasso's al draaiende bij een klant (op NAV2013)?
En toevallig ook met ING Inside Business?
Nicole
ik heb er ook nog één: probleem met de WillBeSent functie was nog niet helemaal opgelost. Er moest altijd twee keer een bestand gegenereerd worden vanuit NAV omdat het eerste bestand niet geaccepteerd werd door de bank en het tweede vreemd genoeg wel. Analyse leerde dat er verschillen zaten in de bestanden. Onderstaande oplossing is wel OK. WillBeSent moet als allerlaatste aangeroepen worden:
Deze regel moet uit:
//PaymentHistoryLine.WillBeSent;
En vervolgens na de
UNTIL PaymentHistoryLine.NEXT = 0;
gewoon nog eens er doorheen loopen. Niet efficient maar omdat de WillBeSent een Key Field wijzigt onvermijdelijk:
PaymentHistoryLine.RESET;
PaymentHistoryLine.SETCURRENTKEY("Our Bank","Run No.","Line No.");
PaymentHistoryLine.SETRANGE("Our Bank","Payment History"."Our Bank");
PaymentHistoryLine.SETRANGE("Run No.","Payment History"."Run No.");
IF PaymentHistoryLine.FINDSET THEN REPEAT
PaymentHistoryLine.WillBeSent;
UNTIL PaymentHistoryLine.NEXT = 0;
Gr. Max
We hebben het bij ons al als ZEEPAARD en ZEEPE(E)RD gedoopt.
De ABN incasso is er bijna doorheen.
Ware het niet dat daar de BIC code weer voor de nodige frustraties zorgt.
De klant zegt "haal maar weg".
Komt dus terug: "nee er moet staan NOTPROVIDED"
Gedaan bestand weg, komt tot overmaat van ramp de financieel directeur met een addendum van de ABN aanzetten: "Hebben jullie deze al gezien?" ](*,)
In plaats van de BIC tag moet er staan Id :roll:
Dus even opletten in Report 11000013 De BIC komt 2x voor.
en in de regels:
Om jullie te vermaken van het leed aan onze kant nog even een leuk verhaal:
Omdat de BIC niet nodig was, zei de bank tegen onze klant [-X , en we het bestand de deur uit moesten hebben dachten de klant en ik: vul gewoon overal als dummy de BIC van ABN in.
NIET DOEN: Ze verwerken dan hun eigen bankrekeningnummers en de anderen worden geweigerd. Want ABN checkt toch de BIC code!!!
Het is een heel gedoe om dan de rest weer opnieuw aan te leveren. Want welke goedgekeurd waren konden ze niet vertellen.
Ok, dat was echt stom gepruts van mijn kant. :oops:
De ING daarentegen keurde Standaard NAV SEPA volgens mij 11000012 goed. =D> =D> =D>
De vraag van het hashtotaalbestand kwam weer ter sprake bij onze klant en de BNG.
Nog steeds niemand die die vraag heeft gekregen en evt. een oplossing daarvoor heeft? (zie eerder in dit topic door mij aangekaart)
Het was laatst ook op het nieuws: Nederlandse bedrijven zijn nog niet klaar voor SEPA.
Ik denk dat we het laatste nog niet gezien hebben.
Het is in ons geval erg lastig als ontwikkelaar aan het eind van de keten te zitten en je afhankelijk bent van je klant ook wat betreft testen.
Wel weer een hoop te lachen straks tijdens de kerstborrel.
Groeten
Hans D.
Q.
'BtchBookg'? Staat nu op 'false'
A.
Heb ik weggehaald
Q.
hashtotalen
A.
is optioneel, dus is niet benodigd
Q.
De eerste keer aanleveren.
A.
Alle SEPA incasso's zijn voor de bank nieuwe contracten (al heb je eerder via CLIEOP03 geincasseerd) dus zet de batch met notepad op FRST.
Na installatie NAV 2013R2 moet je eerst deze fobs inlezen:
- URObjects.NL.35701.fob
(van rollup)
- CU1Objects.NL.fob
(van CumulativeUpdate1NAV2013R2NL)
IF PaymentHistoryLine.FIND('-') THEN begin
AddElement(XMLNodeCurr,'ReqdExctnDt',FORMAT(PaymentHistoryLine.Date,0,9),'', Date",0,9),'', XMLNewChild);
end;
Heb met veel interesse jullie verhalen gelezen. Veel ervan herkenbaar, en zelf eind vorig jaar ook tegenaan gelopen. Had ik toen maar van dit topic geweten
Even een update van mijn kant vanwege een grap die Rabobank uithaalt in de laatste release van Rabo Cash Management (Mei 2014).
Voorheen konden de (aangepaste) xml's probleemloos door RCM worden verwerkt, maar nu loopt de import fout op de CtgyPurp. Vanuit Navision wordt hiervoor de code 'SUPP' gestuurd, maar deze blijkt door RCM niet (meer) ondersteund. Volgens Rabo mag het iedere willekeurige andere code zijn.
Heb het opgelost door in R1100012 de code aan te passen naar 'CASH'.
Hartelijke groet,
Michiel Hageman
Michiel
Dat is bij de ABN ook zo, maar verder is de laatste rollup update best goed, veel bugs die je hier leest zijn uiteindelijk opgelost.
Soms is wachten zo gek nog niet.
8)