pixiCreateSupplier
Legt einen neuen Lieferanten samt Hauptkontakt an und liefert eine Statuszeile mit ReturnCode und Message.
Legt einen neuen Lieferanten in Suppliers und einen Hauptkontakt in pixi.Contact an. Beide sind über ContactId verknüpft.
Ablauf:
- Jeder als Leerstring übergebene String-Parameter wird als
NULLbehandelt.SupplCtrywird vorher getrimmt. - Ohne
CurrencyIdwird die Datenbankwährung verwendet. Das ist die Währung aus der EinstellungHomeCurrency, ermittelt überpixi.GetDatabaseCurrency. CanDoDirectFulfillmentwird in ein Bit umgewandelt:Yergibt 1.Nund jeder andere Wert ergeben 0.- Die Prüfungen laufen in dieser Reihenfolge und brechen beim ersten Fehler ab:
SupplNrmuss angegeben sein.SupplNamemuss angegeben sein.CanDoDirectFulfillmentdarf nichtNULLsein.- Es darf noch kein Lieferant mit derselben
SupplNrexistieren.
- Sind alle Prüfungen erfolgreich, wird zuerst ein Kontakt angelegt. Nicht übergebene Kontaktfelder werden als Leerstring gespeichert. Danach wird der Lieferant angelegt mit:
ContactId= Identity des neuen KontaktsCreateDate= aktuelle ZeitCreateEmp=APIMailBox=eMailSupplComment=SupplierComment
Der Aufruf liefert immer genau eine Statuszeile. ReturnCode ist OK bei Erfolg und Error bei einem Validierungsfehler oder einem unerwarteten SQL-Fehler.
Hinweise
- Alles läuft in der benannten Transaktion
CreateSupplier. Bei einem SQL-Fehler wird die Transaktion zurückgerollt, undErrorMessageenthält den SQL-Fehlertext. Validierungsfehler sind keine SQL-Fehler: Die Transaktion wird committet, es wurde aber nichts geschrieben. - Die Dublettenprüfung auf
SupplNrverwendetNOLOCK. Zwei parallele Aufrufe mit derselben Nummer können die Prüfung daher beide bestehen. Ein eventuell vorhandener Unique-Constraint der Tabelle würde dann den generischen Fehler auslösen. RowsAffectedwird nie aktualisiert und ist immer0.DefaultDeliveryDayswird mit einem Leerstring verglichen. Alsintwird der Wert0dadurch alsNULLgespeichert.- Ein Leerstring für
CanDoDirectFulfillmentbesteht die Pflichtprüfung und wird als 0 gespeichert. SupplGroup,SupplCtryundCurrencyIdwerden nicht gegen Stammdaten geprüft.- Kann keine Datenbankwährung ermittelt werden, bleibt
CurrencyIdNULL. - Ein Kontaktdatensatz wird immer angelegt, auch wenn kein
MainContact_*-Parameter übergeben wird. - Werte, die länger als die deklarierte Parameterlänge sind (z. B.
SupplNrmit mehr als 4 Zeichen), werden unter Umständen stillschweigend abgeschnitten.
Parameter
| Parameter | Typ | Standardwert | Beschreibung |
|---|---|---|---|
SupplNr
|
varchar(4) string |
NULL |
Lieferantennummer (Schlüssel). Fachlich Pflicht; darf noch nicht existieren. Beispiel: |
SupplName
|
varchar(60) string |
NULL |
Name des Lieferanten. Fachlich Pflicht. Beispiel: |
SupplNameExt
|
varchar(50) string |
NULL |
Namenszusatz. Beispiel: |
SupplGroup
|
varchar(4) string |
NULL |
Code der Lieferantengruppe (wird nicht geprüft). Beispiel: |
DefaultDeliveryDays
|
int | NULL |
Standard-Lieferzeit in Tagen. Der Wert 0 wird als NULL gespeichert. Beispiel: |
SupplFaxNR
|
varchar(100) string |
NULL |
Faxnummer des Lieferanten. Beispiel: |
CustNR
|
varchar(20) string |
NULL |
Eigene Kundennummer beim Lieferanten. Beispiel: |
eMail
|
varchar(60) string |
NULL |
Allgemeine E-Mail-Adresse; wird in der Spalte Beispiel: |
SupAnrede
|
varchar(20) string |
NULL |
Anrede der Lieferantenadresse. Beispiel: |
SupName2
|
varchar(60) string |
NULL |
Zweite Namenszeile der Adresse. Beispiel: |
SupAddress
|
varchar(50) string |
NULL |
Straße und Hausnummer. Beispiel: |
SupZip
|
varchar(20) string |
NULL |
Postleitzahl. Beispiel: |
SupPhone1
|
varchar(50) string |
NULL |
Erste Telefonnummer. Beispiel: |
CanDoDirectFulfillment
|
varchar(1) string |
NULL |
Gibt an, ob der Lieferant Direktversand (Streckengeschäft) durchführen kann. Fachlich Pflicht (darf nicht NULL sein). Erlaubte Werte
Beispiel: |
SupCity
|
varchar(50) string |
NULL |
Ort. Beispiel: |
SupPhone2
|
varchar(50) string |
NULL |
Zweite Telefonnummer. Beispiel: |
SupplCtry
|
varchar(3) string |
NULL |
Ländercode; wird getrimmt, nicht geprüft. Beispiel: |
CurrencyId
|
smallint int |
NULL |
Währungs-ID des Lieferanten. Ohne Angabe wird die Datenbankwährung (Einstellung Beispiel: |
eMailSupplOrder
|
varchar(255) string |
NULL |
E-Mail-Adresse für Lieferantenbestellungen. Beispiel: |
HomePageUrl
|
nvarchar(2000) string |
NULL |
Webseite des Lieferanten. Beispiel: |
MainContact_Title
|
nvarchar(100) string |
NULL |
Titel/Anrede des Hauptkontakts. Beispiel: |
MainContact_FirstName
|
nvarchar(20) string |
NULL |
Vorname des Hauptkontakts. Beispiel: |
MainContact_LastName
|
nvarchar(200) string |
NULL |
Nachname des Hauptkontakts. Beispiel: |
MainContact_JobTitle
|
nvarchar(200) string |
NULL |
Berufsbezeichnung des Hauptkontakts. Beispiel: |
MainContact_JobFunction
|
nvarchar(200) string |
NULL |
Funktion des Hauptkontakts. Beispiel: |
MainContact_Phone
|
varchar(200) string |
NULL |
Telefonnummer des Hauptkontakts. Beispiel: |
MainContact_MobilePhone
|
varchar(200) string |
NULL |
Mobilnummer des Hauptkontakts. Beispiel: |
MainContact_Fax
|
nvarchar(200) string |
NULL |
Faxnummer des Hauptkontakts. Beispiel: |
MainContact_Email
|
nvarchar(200) string |
NULL |
E-Mail-Adresse des Hauptkontakts. Beispiel: |
SupplierComment
|
varchar(8000) string |
NULL |
Kommentar zum Lieferanten; wird in Beispiel: |
Antwort
Result-Set 1 · Immer (genau eine Zeile: Erfolg, Validierungsfehler oder SQL-Fehler)
Statuszeile des Aufrufs.
| Spalte | Typ | Beschreibung |
|---|---|---|
RowsAffected
|
int |
Immer 0 (wird nie aktualisiert). |
ReturnCode
Kann leer sein |
varchar(100) string |
|
Message
Kann leer sein |
varchar(4000) string |
Erfolgs- oder Fehlermeldung. |
ErrorMessage
Kann leer sein |
nvarchar(4000) string |
SQL-Fehlertext bei einem unerwarteten Fehler, sonst Leerstring. |
Beispielantwort
<SqlRowSet1>
<row>
<RowsAffected>0</RowsAffected>
<ReturnCode>OK</ReturnCode>
<Message>Supplier with SupplNr: "L042" successfully created.</Message>
<ErrorMessage/>
</row>
</SqlRowSet1>
Fehlermeldungen
| Status | Meldung | Ursache |
|---|---|---|
| Error | SupplNr is a mandatory parameter that needs to be provided. | `SupplNr` wurde nicht oder leer übergeben. |
| Error | SupplName is a mandatory parameter that needs to be provided. | `SupplName` wurde nicht oder leer übergeben. |
| Error | CanDoDirectFulfillment is a mandatory parameter that needs to be provided. | `CanDoDirectFulfillment` wurde nicht übergeben (NULL). `Y` oder `N` übergeben. |
| Error | Supplier with SupplNr: "{SupplNr}" already exists. | Ein Lieferant mit dieser Nummer existiert bereits in `Suppliers`. Eine andere Nummer verwenden. |
| Error | Something went wrong. Please conntact pixi* support. | Beim Einfügen ist ein unerwarteter SQL-Fehler aufgetreten (z. B. Constraint-Verletzung). Die Transaktion wird zurückgerollt; Details stehen in `ErrorMessage`. |
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:pixiCreateSupplier>
<!-- <SupplNr>L042</SupplNr> -->
<!-- <SupplName>Muster Handels GmbH</SupplName> -->
<!-- <SupplNameExt>Großhandel</SupplNameExt> -->
<!-- <SupplGroup>STD</SupplGroup> -->
<!-- <DefaultDeliveryDays>3</DefaultDeliveryDays> -->
<!-- <SupplFaxNR>+49 89 1234567-99</SupplFaxNR> -->
<!-- <CustNR>K-778812</CustNR> -->
<!-- <eMail>info@muster-handel.de</eMail> -->
<!-- <SupAnrede>Firma</SupAnrede> -->
<!-- <SupName2>Abteilung Einkauf</SupName2> -->
<!-- <SupAddress>Industriestraße 12</SupAddress> -->
<!-- <SupZip>80331</SupZip> -->
<!-- <SupPhone1>+49 89 1234567-0</SupPhone1> -->
<!-- <CanDoDirectFulfillment>N</CanDoDirectFulfillment> -->
<!-- <SupCity>München</SupCity> -->
<!-- <SupPhone2>+49 89 1234567-10</SupPhone2> -->
<!-- <SupplCtry>DE</SupplCtry> -->
<!-- <CurrencyId>1</CurrencyId> -->
<!-- <eMailSupplOrder>bestellung@muster-handel.de</eMailSupplOrder> -->
<!-- <HomePageUrl>https://www.muster-handel.de</HomePageUrl> -->
<!-- <MainContact_Title>Herr</MainContact_Title> -->
<!-- <MainContact_FirstName>Thomas</MainContact_FirstName> -->
<!-- <MainContact_LastName>Becker</MainContact_LastName> -->
<!-- <MainContact_JobTitle>Vertriebsleiter</MainContact_JobTitle> -->
<!-- <MainContact_JobFunction>Key Account</MainContact_JobFunction> -->
<!-- <MainContact_Phone>+49 89 1234567-21</MainContact_Phone> -->
<!-- <MainContact_MobilePhone>+49 171 2345678</MainContact_MobilePhone> -->
<!-- <MainContact_Fax>+49 89 1234567-99</MainContact_Fax> -->
<!-- <MainContact_Email>t.becker@muster-handel.de</MainContact_Email> -->
<!-- <SupplierComment>Mindestbestellwert 250 EUR</SupplierComment> -->
</ns1:pixiCreateSupplier>
</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:pixiCreateSupplier>
<!-- <SupplNr>L042</SupplNr> -->
<!-- <SupplName>Muster Handels GmbH</SupplName> -->
<!-- <SupplNameExt>Großhandel</SupplNameExt> -->
<!-- <SupplGroup>STD</SupplGroup> -->
<!-- <DefaultDeliveryDays>3</DefaultDeliveryDays> -->
<!-- <SupplFaxNR>+49 89 1234567-99</SupplFaxNR> -->
<!-- <CustNR>K-778812</CustNR> -->
<!-- <eMail>info@muster-handel.de</eMail> -->
<!-- <SupAnrede>Firma</SupAnrede> -->
<!-- <SupName2>Abteilung Einkauf</SupName2> -->
<!-- <SupAddress>Industriestraße 12</SupAddress> -->
<!-- <SupZip>80331</SupZip> -->
<!-- <SupPhone1>+49 89 1234567-0</SupPhone1> -->
<!-- <CanDoDirectFulfillment>N</CanDoDirectFulfillment> -->
<!-- <SupCity>München</SupCity> -->
<!-- <SupPhone2>+49 89 1234567-10</SupPhone2> -->
<!-- <SupplCtry>DE</SupplCtry> -->
<!-- <CurrencyId>1</CurrencyId> -->
<!-- <eMailSupplOrder>bestellung@muster-handel.de</eMailSupplOrder> -->
<!-- <HomePageUrl>https://www.muster-handel.de</HomePageUrl> -->
<!-- <MainContact_Title>Herr</MainContact_Title> -->
<!-- <MainContact_FirstName>Thomas</MainContact_FirstName> -->
<!-- <MainContact_LastName>Becker</MainContact_LastName> -->
<!-- <MainContact_JobTitle>Vertriebsleiter</MainContact_JobTitle> -->
<!-- <MainContact_JobFunction>Key Account</MainContact_JobFunction> -->
<!-- <MainContact_Phone>+49 89 1234567-21</MainContact_Phone> -->
<!-- <MainContact_MobilePhone>+49 171 2345678</MainContact_MobilePhone> -->
<!-- <MainContact_Fax>+49 89 1234567-99</MainContact_Fax> -->
<!-- <MainContact_Email>t.becker@muster-handel.de</MainContact_Email> -->
<!-- <SupplierComment>Mindestbestellwert 250 EUR</SupplierComment> -->
</ns1:pixiCreateSupplier>
</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 = [
// 'SupplNr' => 'L042',
// 'SupplName' => 'Muster Handels GmbH',
// 'SupplNameExt' => 'Großhandel',
// 'SupplGroup' => 'STD',
// 'DefaultDeliveryDays' => '3',
// 'SupplFaxNR' => '+49 89 1234567-99',
// 'CustNR' => 'K-778812',
// 'eMail' => 'info@muster-handel.de',
// 'SupAnrede' => 'Firma',
// 'SupName2' => 'Abteilung Einkauf',
// 'SupAddress' => 'Industriestraße 12',
// 'SupZip' => '80331',
// 'SupPhone1' => '+49 89 1234567-0',
// 'CanDoDirectFulfillment' => 'N',
// 'SupCity' => 'München',
// 'SupPhone2' => '+49 89 1234567-10',
// 'SupplCtry' => 'DE',
// 'CurrencyId' => '1',
// 'eMailSupplOrder' => 'bestellung@muster-handel.de',
// 'HomePageUrl' => 'https://www.muster-handel.de',
// 'MainContact_Title' => 'Herr',
// 'MainContact_FirstName' => 'Thomas',
// 'MainContact_LastName' => 'Becker',
// 'MainContact_JobTitle' => 'Vertriebsleiter',
// 'MainContact_JobFunction' => 'Key Account',
// 'MainContact_Phone' => '+49 89 1234567-21',
// 'MainContact_MobilePhone' => '+49 171 2345678',
// 'MainContact_Fax' => '+49 89 1234567-99',
// 'MainContact_Email' => 't.becker@muster-handel.de',
// 'SupplierComment' => 'Mindestbestellwert 250 EUR',
];
$soapArguments = [];
foreach ($arguments as $name => $value) {
$soapArguments[] = new SoapVar($value, XSD_STRING, '', '', $name);
}
$response = $soapClient->__soapCall('pixiCreateSupplier', $soapArguments);
Verwendete Tabellen
- SQL-Objekt:
- dbo.pipiCreateSupplier