Hilfe
abbrechen
Suchergebnisse werden angezeigt für 
Stattdessen suchen nach 
Meintest du: 

RestAPI / 4.2.3 AccountTransaction / remittanceInfo in Buchungstext aufspalten

Christof.K
Autor ★
8 Beiträge

Hallo,

 

Bei der Abfrage der Konotumsätze (Schritt 4.2.3 AccountTransaction ) erhalte ich als Antwort ein Array für die einzelnen Buchungen und in den Array den Wert "remittanceInfo". Hierbei handelt es sich um einen String, der sich wiederum aus unterschiedlichen Werten zusammensetzt, nämlich Buchungstext, End-to-End-Ref.:, CORE / Mandatsref.:, , Gläubiger-ID: wobei nicht alle Werte immer vorhanden sein müssen (vorallem die Letztgenannten).

 

Gibt es eine (einfache) Logik, um den String in die einzelnen Werte umzuwandeln?

Die einzelnen Zeilen sind ja 35 Zeichen lang, und mit haben zwei Zahlen vorangestellt 01, 02, 03...

Allerdings kann es auch kürzer als 35 Zeichen sein, beispielsweise wenn der buchungstext kürzer ist.

Irgendwie komme ich da auf keinen grünen Zweig. Vielleicht hat ja jemand eine gute Idee.

 

Schön wäre es natürlich, wenn man die einzelnen Werte bereits einzeln codiert bekommen würde (vielleicht für die Zukunft).

 

Danke vorab

Christof

 

3 ANTWORTEN

SMT_Erik
ehemaliger Mitarbeiter
5.305 Beiträge

Hallo @Christof.K,

 

leider hat es etwas gedauert, bis ich eine qualifizierte Antwort gefunden habe und deshalb danke ich dir für deine Geduld. 😉

 

Im Fall eines offenen Umsatzes (NOTBOOKED) liegt ein einfacher String vor. Bei einem gebuchten Umsatz (BOOKED) sind die Zeilen mit zwei Ziffern durchnummeriert und es folgen immer 35 Zeichen. Du solltest dann also eine Reihe von Zeilen ermitteln können.


Für die nächste Version werden wir prüfen, ob sich das Feld remittanceInfo auch als String-Array der einzelnen Zeilen ausgeben lässt.

 

Gruß

Erik

Christof.K
Autor ★
8 Beiträge

Hallo @SMT_Erik ,

vielen Dank für die Antwort.

 

Ich habe es jetzt so umsgesetzt, dass ich immer nach der Zeichenfolge "End-to-End-Ref.:" suche. Wenn sie vorhanden ist, dann schneide ich den Strinng hinten einfach ab. (Bei einigen Buchungsarten, auch wenn diese Gebucht sind, ist der hintere Teil ja nicht vorhanden, z.B. Zahlungen ins Ausland, Kreditkartenabbuchungen usw.) Die Felder "End-to-End-Ref", "CORE / Mandatsref", "Gläubiger-ID" werden ja als einzelne Werte bereitgestellt (wenn vorhanden) und müssen nicht aus dem  String extrahiert werden.

 

Den vorderen Teil, d.h. alles vor End-to-End-Ref zerschneide ich in einzele Teile mit 37 Zeichen, entferne die ersten zwei Zahlen und füge es zu einem neuen String zusammen.

 

Hier mein php-Code falls es jemand nachmachen möchte:

$pos = strpos($value->remittanceInfo, 'End-to-End-Ref.:');
          if ($pos !== false) {
              $cut = substr($value->remittanceInfo, 0, $pos);
            }
          else {$cut = $value->remittanceInfo;}

          $arr = str_split($cut, 37);

          foreach ($arr as &$value2) {
            $value2 = substr($value2, 2, 37);
            }
          $subject = implode ('', $arr);

Ist natürlich etwas umständig, aber so erhalte ich das Ergebnis, dass ich benötige, nämlich den reinen Buchungstext. Wünschenswert wäre es natürlich, wie von Ihnen erwähnt, den reinen Buchungstext direkt zu erhalten.

 

Hier würde ich es bevorzugen, wenn dieser als einfacher String des gesamten Buchungstextes bereitgestellt wird. Ich kann mir kein Szenario vorstellen, bei dem  man die einzelnen Zeilen benötigen sollte. In meinem Fall,  möchte ich den Buchungstext nach Rechnungsnummern durchsuchen. Es kommt gelegentlich vor, dass diese umgebrochen werden und somit ein Teil der Rechnungsnummer in einer Zeile und ein zweiter Teil in der nächsten Zeile ist.
Allerding wäre ein Array schon mal eine Verbesserung.

 

Vielen Dank und beste Grüße

Christof

SMT_Erik
ehemaliger Mitarbeiter
5.305 Beiträge

Hallo Christof,  

 

vielen Dank für Ihr Feedback. Ich werde Ihre Anregung gerne weiterleiten, kann aber nicht einschätzen, ob oder wann eine Umsetzung erfolgen wird.  

 

Gruß

Erik