Partner über SOAP anlegen - Wie mit dem Nummernkreis umgehen

Die Partner.Nummer ist beim Import ein Pflichtfeld. Muss also vorher irgendwie bekannt sein.

Alles rund ums Framework "Software-Entwicklung"
Antworten
matthias.steines
Beiträge:82
Registriert:Fr Feb 01, 2019 10:09 am
Hat sich bedankt: 12 Mal
Danksagung erhalten: 4 Mal
Partner über SOAP anlegen - Wie mit dem Nummernkreis umgehen

Beitrag von matthias.steines » Fr Nov 27, 2020 8:27 am

Wir möchten Ansprech-Partner automatisiert per SOAP-Client anlegen. Dies sind neue Kontakte aus unserem Shopsystem.
Das funktioniert alles gut bis auf ein entscheidendes Detail:
Die Partner-Nummer muss angegeben werden.

Beim manuellen Anlegen in der Anwendung wird eine freie Nummer vom System mittels Nummernkreis ermittelt.

Aber für das Anlegen mittels SOAP-Client haben wir keine Lösung gefunden.
Wir haben versucht, mittels OQL-Anfrage eine freie Partnernummer zu ermitteln aus dem Nummernkreis, was zwar funktioniert, aber das Problem dabei ist, dass der vom Nummernkreis vor berechnete Cache dabei nicht geupdatet wird und es somit beim nächsten manuellen Anlegen in der Anwendung zu einem Fehler kommt, weil die nächste Nummernkreisnummer bereits vom SOAP-Client genutzt wurde...

Als hässlichen Workaround haben wir in der externen Anwendung, welche die per SOAP die Partner anlegt, eine eigene Logik und Aufbau der Partnernummer definiert. D.h. wir haben bei in CEE manuell angelegten Ansprech-Partnern eine fünfstellige Nummer, bei per SOAP eine sechsstellig. So dass sich die beiden Bereich auf absehbare Zeit nicht überschneiden können.
Vor dem Import eines neuen Ansprechpartners bestimmen wir mit MAX(partner:number) die höchste vorhandene Partnernummer und wählen dann MAX+1 als nächste freie Partnernummer.

Hat jemand hier Erfahrung mit dem automatisierten Anlegen von Stammdaten aus anderen System?
Wie geht ihr mit dem Thema Nummernkreis um?
vonSWK_TF »Fr Dez 04, 2020 12:49 pm
Hallo Mathias,

ich hoffe, ich verstehe Deine Frage richtig.
Ich habe mal irgendwo gelesen (und nutze es beim Import), dass man statt folgendem Eintrag in der XML:
<number>4711</number>
einfach folgende Zeichenkette eingibst:
<sscc></sscc>

Dann wird eine neue Nummer gemäß Nummernkreis erzeugt.
Ich habe das beim Partner gerade noch einmal ausprobiert und es funktioniert.

Ich hoffe, die Antwort hilft Dir weiter.

Viele Grüße
Tobias
Go to full post

SWK_TF
Beiträge:28
Registriert:Di Sep 17, 2019 8:16 am
Answers:1
Hat sich bedankt: 1 Mal
Danksagung erhalten: 4 Mal

Re: Partner über SOAP anlegen - Wie mit dem Nummernkreis umgehen

Beitrag von SWK_TF » Fr Dez 04, 2020 12:49 pm

Hallo Mathias,

ich hoffe, ich verstehe Deine Frage richtig.
Ich habe mal irgendwo gelesen (und nutze es beim Import), dass man statt folgendem Eintrag in der XML:
<number>4711</number>
einfach folgende Zeichenkette eingibst:
<sscc></sscc>

Dann wird eine neue Nummer gemäß Nummernkreis erzeugt.
Ich habe das beim Partner gerade noch einmal ausprobiert und es funktioniert.

Ich hoffe, die Antwort hilft Dir weiter.

Viele Grüße
Tobias

matthias.steines
Beiträge:82
Registriert:Fr Feb 01, 2019 10:09 am
Hat sich bedankt: 12 Mal
Danksagung erhalten: 4 Mal

Re: Partner über SOAP anlegen - Wie mit dem Nummernkreis umgehen

Beitrag von matthias.steines » Mi Dez 09, 2020 8:21 am

Danke für die Info, das hilft mir.
Werde das mal ausprobieren und schauen, wie wir das per SOAP machen können.

Matthias

black_devil
Beiträge:163
Registriert:Mi Jun 12, 2019 4:40 pm
Answers:1
Hat sich bedankt: 9 Mal
Danksagung erhalten: 2 Mal

Re: Partner über SOAP anlegen - Wie mit dem Nummernkreis umgehen

Beitrag von black_devil » Mi Dez 09, 2020 11:19 am

Hi Tobias,

das sind ja ganz neue Informationen. :mrgreen:
Habe das gleich jetzt mit einem Artikel probiert und funktioniert - zu mir hat es immer geheißen das gibt es nicht...

Danke für den Input.
Problematisch ist nur noch wenn du den Import von 2 verschiedenen BO's machen willst (z.B. Artikel und danach Lieferantendaten), dann funktioniert das nicht.
Viele Grüße,
black_devil

christian.m
Beiträge:53
Registriert:Mi Jun 05, 2019 9:40 am
Answers:1
Hat sich bedankt: 15 Mal
Danksagung erhalten: 3 Mal

Re: Partner über SOAP anlegen - Wie mit dem Nummernkreis umgehen

Beitrag von christian.m » Fr Jan 08, 2021 12:11 pm

Hallo zusammen,

dieses Problem haben wir auch an einigen Stellen. Folgeimporte auf die durch Comarch vergebene Nummer (z.B. der Import von Partnerbeziehungen), sind so nur umständlich realisierbar.

Wenn man eine Objekt per Soap neu anlegt und die Nummer wie von Tobias beschrieben durch Comarch vergeben lässt, wäre es meines Erachtens nach Ideal, wenn der Webservice eine Rückmeldung mit der vergebenen Nummer zurückgeben könnte, die dann im Quellsystem direkt weiterverarbeitet und für weitere Importe verwendet werden kann. Könnte euch so etwas auch weiterhelfen?

Gruß
Christian

Benutzeravatar
Bambam
Beiträge:299
Registriert:Do Mär 21, 2019 8:34 am
Answers:2
Hat sich bedankt: 1 Mal
Danksagung erhalten: 38 Mal

Re: Partner über SOAP anlegen - Wie mit dem Nummernkreis umgehen

Beitrag von Bambam » Sa Jan 09, 2021 1:54 am

Hallo Christian,

dieses Problem verfolgt mich schon seit Zalando. Bei jedem Import über Webservice sollte der Business-Key des importieren Objekts zurück geliefert werden. Das würde in vielen Projekten helfen.
Viele Grüße
Bambam

SWK_TF
Beiträge:28
Registriert:Di Sep 17, 2019 8:16 am
Answers:1
Hat sich bedankt: 1 Mal
Danksagung erhalten: 4 Mal

Re: Partner über SOAP anlegen - Wie mit dem Nummernkreis umgehen

Beitrag von SWK_TF » Mi Jan 27, 2021 8:35 am

Hallo Zusammen,

also ich musste auch mal einige Kunden anlegen und brauchte dafür Kundennummern.

Wenn man das erzeugen direkt aus einer Aktivitätsdefinition macht, kann man mit der Funktion nextNumberRangeNumber die nächste Nummer eines Nummernkreises holen.

Ich hatte mir 2015 eine Funktion geschrieben, die mir X Partner-Nummern aus dem Nummernkreis in eine Datei speichert. Dann konnte ich diese Nummern auch extern verwenden.

Ich hoffe, das hilft Euch weiter.

Viele Grüße
Tobias

black_devil
Beiträge:163
Registriert:Mi Jun 12, 2019 4:40 pm
Answers:1
Hat sich bedankt: 9 Mal
Danksagung erhalten: 2 Mal

Re: Partner über SOAP anlegen - Wie mit dem Nummernkreis umgehen

Beitrag von black_devil » Di Feb 02, 2021 2:23 pm

Hallo Tobias,

kannst du diese Funktion vielleicht hier posten? Wäre vermutlich für einige hilfreich.

Danke
Viele Grüße,
black_devil

SWK_TF
Beiträge:28
Registriert:Di Sep 17, 2019 8:16 am
Answers:1
Hat sich bedankt: 1 Mal
Danksagung erhalten: 4 Mal

Re: Partner über SOAP anlegen - Wie mit dem Nummernkreis umgehen

Beitrag von SWK_TF » Mi Feb 17, 2021 2:00 pm

Hallo black_devil,

ich versuche es mal. Habe es so angepasst, dass es eigentlich auf jedem System laufen sollte :-)
Aber Vorsicht. Ich bin ja kein waschechter Programmierer ;-)

var USER_NAME as String;
var NRCOUNT as Number;
var SYSTEM:=databaseName(event.database);
var NRMAX := 100;
var FILENAME as String;
var INHALT as String;

USER_NAME:=userName(parameters["userGuid"]);
FILENAME:="kstore://"+SYSTEM+"/Export/"+USER_NAME+"/Kundennummern";
NRCOUNT:=0;

while (NRCOUNT<NRMAX)
{
NRCOUNT:=NRCOUNT+1;
INHALT:=INHALT+nextNumberRangeNumber("808")+"\n";
}

writeFile(FILENAME+".csv",INHALT,"ISO-8859-1");


Der Nummernkreis muss natürlich angepasst werden. "808" ist bei uns für Partner allgemein.

Viele Grüße
Tobias

Antworten