pixiAddressesDisplayDuplicates
Liefert Paare möglicherweise doppelter Kundenadressen aus der Dublettenprüfung mit Adress-, Auftrags-, Rechnungs- und Kundendaten beider Seiten.
Liest die Ergebnisse einer vorher ausgeführten Dublettenprüfung aus Addresses_Duplicates. Jeder Datensatz dort verknüpft zwei Adressen (AddrRef1/AddrRef2) und zwei Kunden (CustRef1/CustRef2) mit einer Übereinstimmungsstufe und einem Übereinstimmungstext.
Für jedes Paar liefert der Aufruf:
- Übereinstimmungsstufe und -text,
- Name, Firma (
CareOf), Straße, Hausnummer, Ort, PLZ und Land beider Adressen, - Anzahl der Rechnungen und Datum der letzten Rechnung (
LastDelivery1/2) je Kunde, - externe Kundennummer und DATEV-Kontonummer beider Kunden,
- Auftragsnummer und Auftragsstatus der Aufträge, die die jeweilige Adresse verwenden,
NrOfRecords, die Gesamtzahl der nicht verwendeten Dublettendatensätze.
Filter:
- Es werden nur Datensätze mit
CustRef1größer alsStartCustRefgeliefert.NULLwird als0behandelt. - Mit
ShowUsed=0werden nur Datensätze geliefert, derenUsedFlag0oderNULList. MitShowUsed=1werden alle Datensätze geliefert, auch bereits bearbeitete. RowCountbegrenzt die Anzahl der gelieferten Zeilen überSET ROWCOUNT.
Die Zeilen sind aufsteigend nach CustRef1 sortiert. Zum Blättern wird der höchste gelieferte CustRef1 als StartCustRef des nächsten Aufrufs übergeben.
Hinweise
- Alle Tabellen werden mit
NOLOCKgelesen, daher können nicht festgeschriebene Daten erscheinen. - Die Adressen werden per Inner Join mit
OrderHeaderverknüpft. Ein Paar wird nur geliefert, wenn beide Adressen von mindestens einem Auftrag verwendet werden. Ein Paar erzeugt eine Zeile je Kombination aus Aufträgen der Adresse 1 und Aufträgen der Adresse 2. Die Zeilen sind daher nicht eindeutig je Dublettendatensatz. - Da ein
CustRef1mehrere Zeilen erzeugen kann, kann eine durchRowCountbegrenzte Seite mitten in einemCustRef1enden. Wird mit diesemCustRef1alsStartCustReffortgesetzt, werden dessen restliche Zeilen übersprungen. RowCount=0hebt die Begrenzung auf (SET ROWCOUNT 0).NrOfRecordsist in jeder Zeile gleich. Gezählt werden alle nicht verwendeten Datensätze, deren beide Kunden existieren.StartCustRef,ShowUsedund die Verknüpfung mit Aufträgen werden dabei nicht berücksichtigt, daher kann der Wert von der Anzahl tatsächlich abrufbarer Zeilen abweichen.CustKeyMatchedToistNULL, wennShowUsed=0ist. Andernfalls entspricht der Wert immer dem Schlüssel von Kunde 1 (CustRef1), da Kunde 1 per Inner Join verknüpft ist.- Der Aufruf zeigt nur Daten an. Er führt keine Kunden zusammen und setzt kein
UsedFlag. WieAddresses_Duplicatesbefüllt wird, ist aus diesem Code nicht ersichtlich.
Parameter
| Parameter | Typ | Standardwert | Beschreibung |
|---|---|---|---|
StartCustRef
|
int | 0 |
Es werden nur Datensätze mit Beispiel: |
ShowUsed
|
bit boolean |
0 |
Legt fest, ob bereits als verwendet markierte Dublettendatensätze enthalten sind. Erlaubte Werte
Beispiel: |
RowCount
|
int | 100 |
Maximale Anzahl gelieferter Zeilen (über Beispiel: |
Antwort
Result-Set 1 · Immer; kann leer sein, wenn keine passenden Dublettendatensätze existieren.
Eine Zeile je Dublettenpaar und Kombination der Aufträge beider Adressen, sortiert nach CustRef1.
| Spalte | Typ | Beschreibung |
|---|---|---|
matchlevel
Kann leer sein |
string |
Übereinstimmungsstufe der Dublettenprüfung ( |
matchtext
Kann leer sein |
string |
Text zur Beschreibung der Übereinstimmung ( |
CustRef1
|
int |
Schlüssel des ersten Kunden. |
AddrKey1
|
int |
Schlüssel der ersten Adresse. |
FirstName1
Kann leer sein |
string |
Vorname der Adresse 1. |
LastName1
Kann leer sein |
string |
Nachname der Adresse 1. |
Company1
Kann leer sein |
string |
Firma / c/o der Adresse 1 ( |
Street1
Kann leer sein |
string |
Straße der Adresse 1. |
HouseNr1
Kann leer sein |
string |
Hausnummer der Adresse 1. |
City1
Kann leer sein |
string |
Ort der Adresse 1. |
ZIP1
Kann leer sein |
string |
PLZ der Adresse 1. |
Country1
Kann leer sein |
string |
Land der Adresse 1. |
CustRef2
|
int |
Schlüssel des zweiten Kunden. |
AddrKey2
|
int |
Schlüssel der zweiten Adresse. |
FirstName2
Kann leer sein |
string |
Vorname der Adresse 2. |
LastName2
Kann leer sein |
string |
Nachname der Adresse 2. |
Company2
Kann leer sein |
string |
Firma / c/o der Adresse 2 ( |
Street2
Kann leer sein |
string |
Straße der Adresse 2. |
HouseNr2
Kann leer sein |
string |
Hausnummer der Adresse 2. |
City2
Kann leer sein |
string |
Ort der Adresse 2. |
ZIP2
Kann leer sein |
string |
PLZ der Adresse 2. |
Country2
Kann leer sein |
string |
Land der Adresse 2. |
NrOfInvoices1
|
int |
Anzahl der Rechnungen von Kunde 1. |
NrOfInvoices2
|
int |
Anzahl der Rechnungen von Kunde 2. |
LastDelivery1
Kann leer sein |
dateTime |
Letztes Rechnungsdatum ( |
LastDelivery2
Kann leer sein |
dateTime |
Letztes Rechnungsdatum ( |
CustomerNrExternal1
Kann leer sein |
string |
Externe Kundennummer von Kunde 1. |
CustomerNrExternal2
Kann leer sein |
string |
Externe Kundennummer von Kunde 2. |
NrOfRecords
|
int |
Gesamtzahl der nicht verwendeten Dublettendatensätze mit existierenden Kunden; in jeder Zeile gleich. |
CustKeyMatchedTo
Kann leer sein |
int |
NULL bei |
OrderNr1
Kann leer sein |
int |
Auftragsnummer eines Auftrags, der Adresse 1 verwendet. |
OrderStatus1
Kann leer sein |
string |
Status dieses Auftrags. |
OrderNr2
Kann leer sein |
int |
Auftragsnummer eines Auftrags, der Adresse 2 verwendet. |
OrderStatus2
Kann leer sein |
string |
Status dieses Auftrags. |
DatevUserAccount1
Kann leer sein |
varchar(10) string |
DATEV-Kontonummer von Kunde 1 ( |
DatevUserAccount2
Kann leer sein |
varchar(10) string |
DATEV-Kontonummer von Kunde 2 ( |
Beispielantwort
<SqlRowSet1>
<row>
<matchlevel>1</matchlevel>
<matchtext>Name, Street, ZIP</matchtext>
<CustRef1>1024</CustRef1>
<AddrKey1>5511</AddrKey1>
<FirstName1>Anna</FirstName1>
<LastName1>Müller</LastName1>
<Company1/>
<Street1>Hauptstraße</Street1>
<HouseNr1>12</HouseNr1>
<City1>Berlin</City1>
<ZIP1>10115</ZIP1>
<Country1>DE</Country1>
<CustRef2>2048</CustRef2>
<AddrKey2>8830</AddrKey2>
<FirstName2>Anna</FirstName2>
<LastName2>Mueller</LastName2>
<Company2/>
<Street2>Hauptstr.</Street2>
<HouseNr2>12</HouseNr2>
<City2>Berlin</City2>
<ZIP2>10115</ZIP2>
<Country2>DE</Country2>
<NrOfInvoices1>3</NrOfInvoices1>
<NrOfInvoices2>1</NrOfInvoices2>
<LastDelivery1>2024-03-11T10:15:00</LastDelivery1>
<LastDelivery2>2024-05-02T08:40:00</LastDelivery2>
<CustomerNrExternal1>SHOP-1024</CustomerNrExternal1>
<CustomerNrExternal2>SHOP-2048</CustomerNrExternal2>
<NrOfRecords>57</NrOfRecords>
<OrderNr1>300112</OrderNr1>
<OrderStatus1>AU</OrderStatus1>
<OrderNr2>300987</OrderNr2>
<OrderStatus2>AU</OrderStatus2>
<DatevUserAccount1>10024</DatevUserAccount1>
<DatevUserAccount2>10048</DatevUserAccount2>
</row>
</SqlRowSet1>
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:pixiAddressesDisplayDuplicates>
<!-- <StartCustRef>0</StartCustRef> -->
<!-- <ShowUsed>0</ShowUsed> -->
<!-- <RowCount>100</RowCount> -->
</ns1:pixiAddressesDisplayDuplicates>
</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:pixiAddressesDisplayDuplicates>
<!-- <StartCustRef>0</StartCustRef> -->
<!-- <ShowUsed>0</ShowUsed> -->
<!-- <RowCount>100</RowCount> -->
</ns1:pixiAddressesDisplayDuplicates>
</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 = [
// 'StartCustRef' => '0',
// 'ShowUsed' => '0',
// 'RowCount' => '100',
];
$soapArguments = [];
foreach ($arguments as $name => $value) {
$soapArguments[] = new SoapVar($value, XSD_STRING, '', '', $name);
}
$response = $soapClient->__soapCall('pixiAddressesDisplayDuplicates', $soapArguments);
Verwendete Tabellen
- SQL-Objekt:
- dbo.pipiAddressesDisplayDuplicates