pixiGetDatevExportWires
Liefert die DATEV-Exportzeilen für Zahlungen (Bankbuchungen und Kundenkonto-Ereignisse) in einem Zeitraum, optional gefiltert nach Shop, Land, Bankkonto, Betragsbereich und Kostenstelle.
Erzeugt den Inhalt der DATEV-Exportdatei "Payment" (Zahlungen).
- Die Einstellung
BookExportDatevActivewird geprüft. Ist sie nicht1, wird nur eine Statuszeile mitStatus=ERRORgeliefert. - Andernfalls wird die interne Prozedur
Pixi_DatevExportWiresmit den übergebenen Parametern undSetStartAndEndOfDay = 0ausgeführt, d. h.DateFromundDateTowerden genau wie übergeben verwendet, ohne Erweiterung auf Tagesanfang/-ende.
Das Ergebnis kombiniert zwei Quellen (UNION ALL):
Bankbuchungen (BankLines)
- Bankbuchungen mit
BankDatezwischenDateFromundDateTo(inklusive). Ist die EinstellungBookExportWiresWithBookDate= 1, wird das Datum aus dem Buchungsdatum der Bankbuchung (MMTT plus Jahr, mit Korrektur beim Jahreswechsel) abgeleitet; dafür wird ein Fenster von zwei Wochen vor/nach dem Zeitraum gelesen. - Bankbuchungen aus Bankköpfen mit Quelltyp
APYwerden immer ausgeschlossen;CCPnur bei gesetzter EinstellungBookExportCcpTransactions;UPDund Geschäftsvorfall020nur bei gesetzter EinstellungBookExportUpdTransactions. - Kunde, Shop und Rechnung werden über die endgültige (kein Prematch) Bankzuordnung ermittelt: Rechnung, Auftrag, Lastschrift (
DTAUS) oder Kundenkontoeintrag, in dieser Reihenfolge. CustomerNrist dieDatevAccNrdes Kunden bzw. die EinstellungBookDefaultCustomerNr, wenn kein Kunde gefunden wird.InvoiceNrist die externe Auftragsnummer, wenn die Zahlungsart in der EinstellungBookExportDatevUseOrderNrExternalaufgeführt ist; sonst die Rechnungsnummer (bei Lastschriften die zugeordnete Rechnung). Ersatzwert istBookDefaultInvoiceNr; der Wert wird auf 12 Zeichen gekürzt.BankAccountNrist das Buchhaltungs-Bankkonto der Bankbuchung (bei gesetzter EinstellungBookExportQueryAndUseAccountingBankAccount), das PayPal-KontoBookDefaultBankAccountNrPayPalbei QuelltypPPL/PLL, sonstBookDefaultBankAccountNr.WireTextsetzt sich aus externer Auftragsnummer, Banktexten 1–3 und bei KreditkartenzahlungenKreditkarteplus Zahlungs-ID zusammen; max. 60 Zeichen, doppelte Anführungszeichen werden entfernt.
Kundenkonto-Ereignisse (CustomerAccount, Ereignisse RPP, RCC, BTC)
- Ereignisse mit
EventDate>=DateFromund <DateTo. - Enthalten, wenn eine manuelle Buchung verknüpft ist oder wenn die Einstellung
BookExportDatevExportAutomaticCAEventsaktiv und der Ereignistyp als manuell markiert ist; zusätzlich lastschriftbezogene Einträge mit zugeordneter Rechnung, wennBookExportManualDtausToDatevgesetzt ist. BankAccountNrist das Buchungskonto des Ereignistyps;BTCerhält das Plus-Zeichen, die übrigen das Minus-Zeichen.
Filter (beide Teile): ShopId (Shop des Kunden), CostCenter (Kostenstelle des Shops), Country (Land der Rechnungs-/Auftragsadresse bzw. Kundenadresse), AmoutFrom/AmoutTo (auf den Absolutbetrag) und BankAccountNr (auf das ermittelte Bankkonto).
Das Vorzeichen ist s/h, wenn die Einstellung BookExportDatevPro aktiv ist, sonst +/-. Sortierung nach BankAccountNr, BankDate, Amount.
Hinweise
- Nur lesend; alle Tabellen werden
WITH (NOLOCK)gelesen, daher können nicht festgeschriebene Daten erscheinen. - Wegen
SetStartAndEndOfDay = 0bedeutet einDateTovon2024-01-31Mitternacht zu Beginn dieses Tages: Bankbuchungen dieses Tages nach 00:00 und Kundenkonto-Ereignisse dieses Tages sind nicht enthalten. Für den ganzen Tag z. B.2024-01-31T23:59:59übergeben. - Bankbuchungen verwenden eine inklusive Obergrenze (
BETWEEN), Kundenkonto-Ereignisse eine exklusive (<). - Trotz des Kommentars "Betragsbereich in €" werden
AmoutFrom/AmoutTomit dem Absolutbetrag in der Währung der Bankbuchung bzw. des Ereignisses verglichen, ohne Umrechnung. ShopIdist alsvarchar(3)deklariert; die interne Suche über das Shop-Kürzel (Werte länger als 3 Zeichen) kann über diesen Aufruf daher nicht greifen. Eine leereShopIdwird nicht als NULL behandelt und liefert keine Zeilen, leere Werte fürBankAccountNrundCostCenterdagegen schon.- Kundenkonto-Ereignisse werden nur geliefert, wenn ihr Wechselkurs in der intern reduzierten Kursmenge enthalten ist (Kurse der Datenbankwährungsquelle innerhalb von ±2 Wochen für Währungen, die in den ausgewählten Bankbuchungen vorkommen).
- Bankbuchungen ohne Bankkopf werden durch die Quelltyp-Filter ausgeschlossen.
- Das Verhalten hängt von zahlreichen zur Laufzeit gelesenen Einstellungen ab (siehe Beschreibung);
dbo.SettingGetundpixi.GetDatabaseCurrencyliegen nicht vor, ihre genaue Semantik ist daher hier nicht dokumentiert.
Parameter
| Parameter | Typ | Standardwert | Beschreibung |
|---|---|---|---|
DateFrom
Pflicht
|
datetime dateTime |
– |
Beginn des Zeitraums (wird genau wie übergeben verwendet). Beispiel: |
DateTo
Pflicht
|
datetime dateTime |
– |
Ende des Zeitraums (wird genau wie übergeben verwendet; inklusive für Bankbuchungen, exklusive für Kundenkonto-Ereignisse). Beispiel: |
ShopId
|
varchar(3) string |
NULL |
Optionale Shop-ID; nur Zahlungen von Kunden dieses Shops werden geliefert. Beispiel: |
Country
|
varchar(3) string |
NULL |
Optionaler Ländercode der Rechnungs-/Auftragsadresse (Bankbuchungen) bzw. Kundenadresse (Kundenkonto-Ereignisse). Beispiel: |
BankAccountNr
|
varchar(10) string |
NULL |
Optionales Buchungs-Bankkonto; wird mit der ermittelten Spalte Beispiel: |
AmoutFrom
|
money decimal |
NULL |
Optionaler Mindest-Absolutbetrag. Beispiel: |
AmoutTo
|
money decimal |
NULL |
Optionaler Höchst-Absolutbetrag. Beispiel: |
CostCenter
|
varchar(8) string |
NULL |
Optionale Kostenstelle des Shops. Leerstring wird als NULL behandelt. Beispiel: |
Antwort
Result-Set 1 · Wenn Einstellung BookExportDatevActive = 1
DATEV-Zahlungsexportzeilen aus Bankbuchungen und Kundenkonto-Ereignissen, sortiert nach BankAccountNr, BankDate, Amount.
| Spalte | Typ | Beschreibung |
|---|---|---|
Currency
Kann leer sein |
string |
Währungscode ( |
Sign
|
char(1) string |
Soll/Haben-Kennzeichen: |
Amount
Kann leer sein |
decimal |
Absolutbetrag der Bankbuchung bzw. des Kundenkonto-Ereignisses. |
Empty1
|
varchar(1) string |
Leere Platzhalterspalte. |
CustomerNr
Kann leer sein |
varchar(20) string |
DATEV-Kontonummer des Kunden bzw. |
InvoiceNr
Kann leer sein |
varchar string |
Rechnungsnummer oder externe Auftragsnummer (Bankbuchungen: max. 12 Zeichen, Ersatzwert |
Empty2
|
varchar(1) string |
Leere Platzhalterspalte. |
BankDate
Kann leer sein |
datetime dateTime |
Bankdatum (bzw. abgeleitetes Buchungsdatum) der Bankbuchung oder Ereignisdatum des Kundenkonto-Ereignisses. |
BankAccountNr
Kann leer sein |
varchar(20) string |
Buchungs-Bankkonto (Buchhaltungs-Bankkonto, PayPal-Standardkonto, Standard-Bankkonto oder Buchungskonto des Ereignistyps). |
Empty3
|
varchar(1) string |
Leere Platzhalterspalte. |
Empty4
|
varchar(1) string |
Leere Platzhalterspalte. |
Empty5
|
varchar(1) string |
Leere Platzhalterspalte. |
Empty6
|
varchar(1) string |
Leere Platzhalterspalte. |
WireText
Kann leer sein |
varchar(60) string |
Buchungstext (externe Auftragsnummer, Banktexte, Kreditkarten-Zahlungs-ID bzw. Referenz der manuellen Buchung und Ereignis-ID), max. 60 Zeichen, ohne doppelte Anführungszeichen. |
ExchRate
Kann leer sein |
decimal(19,9) decimal |
Wechselkurs zur Datenbankwährung, auf 6 Nachkommastellen gerundet. |
CostCenter
Kann leer sein |
string |
Kostenstelle des Shops des Kunden. |
OrderNrExternal
|
varchar string |
Externe Auftragsnummer, leer wenn nicht vorhanden. |
Result-Set 2 · Wenn Einstellung BookExportDatevActive nicht 1 ist
Einzelne Fehler-Statuszeile.
| Spalte | Typ | Beschreibung |
|---|---|---|
Status
|
varchar(5) string |
Immer |
StatusMessage
|
varchar(66) string |
Fehlertext. |
Beispielantwort
<SqlRowSet1>
<row>
<Currency>EUR</Currency>
<Sign>+</Sign>
<Amount>119.0000</Amount>
<Empty1/>
<CustomerNr>10045</CustomerNr>
<InvoiceNr>RE2024001234</InvoiceNr>
<Empty2/>
<BankDate>2024-01-15T00:00:00</BankDate>
<BankAccountNr>1200</BankAccountNr>
<Empty3/>
<Empty4/>
<Empty5/>
<Empty6/>
<WireText>WEB-50012 Zahlung Rechnung RE2024001234</WireText>
<ExchRate>1.000000</ExchRate>
<CostCenter>100</CostCenter>
<OrderNrExternal>WEB-50012</OrderNrExternal>
</row>
</SqlRowSet1>
Fehlermeldungen
| Status | Meldung | Ursache |
|---|---|---|
| ERROR | Setting "DATEV API Calls" (BookExportDatevActive) is not enabled. | Die Einstellung `BookExportDatevActive` fehlt oder ist nicht `1`. Die Einstellung "DATEV API Calls" in Pixi aktivieren. |
Beispiele
POST https://apigateway.descartes.com/tms/pixi/
Content-Type: text/xml; charset=utf-8
Authorization: Basic BASE64(USERNAME:PASSWORD)
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="https://apigateway.descartes.com/tms/pixi/">
<SOAP-ENV:Body>
<ns1:pixiGetDatevExportWires>
<DateFrom>2024-01-01T00:00:00</DateFrom>
<DateTo>2024-01-31T23:59:59</DateTo>
<!-- <ShopId>001</ShopId> -->
<!-- <Country>DE</Country> -->
<!-- <BankAccountNr>1200</BankAccountNr> -->
<!-- <AmoutFrom>10.00</AmoutFrom> -->
<!-- <AmoutTo>5000.00</AmoutTo> -->
<!-- <CostCenter>100</CostCenter> -->
</ns1:pixiGetDatevExportWires>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
curl -X POST 'https://apigateway.descartes.com/tms/pixi/' \
--user 'USERNAME:PASSWORD' \
--header 'Content-Type: text/xml; charset=utf-8' \
--data-binary @- <<'XML'
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="https://apigateway.descartes.com/tms/pixi/">
<SOAP-ENV:Body>
<ns1:pixiGetDatevExportWires>
<DateFrom>2024-01-01T00:00:00</DateFrom>
<DateTo>2024-01-31T23:59:59</DateTo>
<!-- <ShopId>001</ShopId> -->
<!-- <Country>DE</Country> -->
<!-- <BankAccountNr>1200</BankAccountNr> -->
<!-- <AmoutFrom>10.00</AmoutFrom> -->
<!-- <AmoutTo>5000.00</AmoutTo> -->
<!-- <CostCenter>100</CostCenter> -->
</ns1:pixiGetDatevExportWires>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
XML
<?php
$soapClient = new SoapClient(null, [
'login' => 'USERNAME',
'password' => 'PASSWORD',
'location' => 'https://apigateway.descartes.com/tms/pixi/',
'uri' => 'https://apigateway.descartes.com/tms/pixi/',
]);
$arguments = [
'DateFrom' => '2024-01-01T00:00:00',
'DateTo' => '2024-01-31T23:59:59',
// 'ShopId' => '001',
// 'Country' => 'DE',
// 'BankAccountNr' => '1200',
// 'AmoutFrom' => '10.00',
// 'AmoutTo' => '5000.00',
// 'CostCenter' => '100',
];
$soapArguments = [];
foreach ($arguments as $name => $value) {
$soapArguments[] = new SoapVar($value, XSD_STRING, '', '', $name);
}
$response = $soapClient->__soapCall('pixiGetDatevExportWires', $soapArguments);
Verwendete Tabellen
- SQL-Objekt:
- dbo.pipiGetDatevExportWires