| Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung |
| edi-schnittstelle:kundenbestellungen_einlesen [2026/02/24 08:44] – [Einleseoptionen] Isabel Pinder | edi-schnittstelle:kundenbestellungen_einlesen [2026/10/19 10:52] (aktuell) – Kopfrabatt Thi Thu Nguyen |
|---|
| * **_AnschriftenUeberKostenstelle**: bei >0 werden die Anschriften über die Kostenstelle ermittelt, sofern der Kunde vorhanden und eine Kostenstelle angegeben ist | * **_AnschriftenUeberKostenstelle**: bei >0 werden die Anschriften über die Kostenstelle ermittelt, sofern der Kunde vorhanden und eine Kostenstelle angegeben ist |
| * **_APBestellungInBestellnummer**: bei >0 wird der AP für die Bestellung (gegebenenfalls nach der Bestellnummer und dem Bestelldatum) in das Bestellnummern-Feld von CO eingetragen | * **_APBestellungInBestellnummer**: bei >0 wird der AP für die Bestellung (gegebenenfalls nach der Bestellnummer und dem Bestelldatum) in das Bestellnummern-Feld von CO eingetragen |
| | * **_ApiArchivVerzeichnis**: Verzeichnis, in dem Kundenbestellungen abgelegt werden, die über die Webservice-API importiert wurden und zu einem Vorgang geführt haben. Es ist ein vollständiger Pfad anzugeben; ohne Angabe erfolgt keine Archivierung. Gilt nicht für das Einlesen aus einem Verzeichnis. Siehe Abschnitt „Kundenbestellungen über die Webservice-API einlesen“. |
| | * **_ApiFehlerArchivVerzeichnis**: wie _ApiArchivVerzeichnis, jedoch für übermittelte Bestellungen, aus denen kein Vorgang angelegt werden konnte. |
| * **_ArtikelErstausstattungHinzufuegen**: bei>0 werden zugeordnete Erstausstattungsartikel automatisch hinzugefügt | * **_ArtikelErstausstattungHinzufuegen**: bei>0 werden zugeordnete Erstausstattungsartikel automatisch hinzugefügt |
| * **_APLieferungInLieferadresse**: bei >0 wird der Ansprechpartner für die Lieferung (gegebenenfalls nach dem Liefername und der Abteilung) in die Lieferanschrift (Feld //Liefername//) eingetragen. | * **_APLieferungInLieferadresse**: bei >0 wird der Ansprechpartner für die Lieferung (gegebenenfalls nach dem Liefername und der Abteilung) in die Lieferanschrift (Feld //Liefername//) eingetragen. |
| * **_BeiFolgeArtikelWarnen**: bei =0 wird nur die Info im Protokoll hinterlegt, dass ein Artikel durch einen Folgeartikel ersetzt wurde, bei =1 wird der Vorgang in so einem Fall auf 'Erfasst' gesetzt. Der Standwert ist wie bisher =1 | * **_BeiFolgeArtikelWarnen**: bei =0 wird nur die Info im Protokoll hinterlegt, dass ein Artikel durch einen Folgeartikel ersetzt wurde, bei =1 wird der Vorgang in so einem Fall auf 'Erfasst' gesetzt. Der Standwert ist wie bisher =1 |
| * **_BeiLieferungsBemerkungAuftragAufErfasst**: falls eine Bemerkung für die Lieferung vorhanden ist (Kopf wie Position), wird der Auftrag auf 'erfasst' gesetzt. | * **_BeiLieferungsBemerkungAuftragAufErfasst**: falls eine Bemerkung für die Lieferung vorhanden ist (Kopf wie Position), wird der Auftrag auf 'erfasst' gesetzt. |
| * **_BeiVertragLeistungAuftragAufErfasst**: speichert den Vorgang im Status 'erfasst', falls eine Vertragsleistung gewährt wurde. Voraussetzung ist, dass Konfiguration 236 aktiviert wurde. | * **_BeiVertragLeistungAuftragAufErfasst**: speichert den Vorgang im Status 'erfasst', falls eine Vertragsleistung gewährt wurde. Voraussetzung ist, dass Konfiguration 236 (Zuordnung von Vertragsleistungen automatisch vornehmen) aktiviert wurde. |
| * **_BemerkungAlsArtikelPosition (zB. REMARKS aus ORDER_HEADER bei openTRANS)**: | * **_BemerkungAlsArtikelPosition (zB. REMARKS aus ORDER_HEADER bei openTRANS)**: |
| * 0 - keine Bemerkung als erste Artikelposition | * 0 - keine Bemerkung als erste Artikelposition |
| * **_KeinePlausibilitaetsPruefung**: Wird dieser Schalter aktiviert, dann werden die Positionswertprüfungen (Extern <> Intern, _PositionsWertOberGrenze und _PositionsWertUnterGrenze) nicht mehr durchgeführt. | * **_KeinePlausibilitaetsPruefung**: Wird dieser Schalter aktiviert, dann werden die Positionswertprüfungen (Extern <> Intern, _PositionsWertOberGrenze und _PositionsWertUnterGrenze) nicht mehr durchgeführt. |
| * **_KomplettAuftraegeBestellenFuerEinLieferant**: Im Kundebestellungsschema kann jetzt der neue Schalter „_KomplettAuftraegeBestellenFuerEinLieferant=#1“ gesetzt werden, der die automatische Bestellungserzeugung zulässt, wenn ein Auftrag komplett (bestätigt) ist und alle Positionen einem einzigen Lieferanten zugeordnet sind. Diese Funktion ist unabhängig von der Mandantenkonfiguration 393 (automatische Bestellungen) | * **_KomplettAuftraegeBestellenFuerEinLieferant**: Im Kundebestellungsschema kann jetzt der neue Schalter „_KomplettAuftraegeBestellenFuerEinLieferant=#1“ gesetzt werden, der die automatische Bestellungserzeugung zulässt, wenn ein Auftrag komplett (bestätigt) ist und alle Positionen einem einzigen Lieferanten zugeordnet sind. Diese Funktion ist unabhängig von der Mandantenkonfiguration 393 (automatische Bestellungen) |
| * **_KopfRabattArtikel**: Sofern Kopfrabattangaben beim entsprechenden Dokument verarbeitet werden, kann hier der Artikel angegeben werden, über den diese am Vorgang hinterlegt werden. | |
| * **_KostenstelleAusPosAmKopfEintragen**: (nur Kundenidentifikationsart 0 oder 2) bei =1 wird die Kostenstelle aus der letzten Positionen des Auftrages an den Kopf übernommen (nur sinnvoll, wenn alle Positionen zur selben Kostenstelle gehören). Funktioniert nur, wenn _KostenstelleAusStammdaten=#0, da diese Einstellung die Option _KostenstelleAusPosAmKopfEintragen übersteuert. | * **_KostenstelleAusPosAmKopfEintragen**: (nur Kundenidentifikationsart 0 oder 2) bei =1 wird die Kostenstelle aus der letzten Positionen des Auftrages an den Kopf übernommen (nur sinnvoll, wenn alle Positionen zur selben Kostenstelle gehören). Funktioniert nur, wenn _KostenstelleAusStammdaten=#0, da diese Einstellung die Option _KostenstelleAusPosAmKopfEintragen übersteuert. |
| * **_KostenStelleAusLieferAnschriftName2**: wird die Kostenstelle im Feld Lieferanschrift.Name (zB. OpenTrans <NAME2>) übermittelt, dann kann sie über diesen Schalter als Kostenstelle verwendet werden. | * **_KostenStelleAusLieferAnschriftName2**: wird die Kostenstelle im Feld Lieferanschrift.Name (zB. OpenTrans <NAME2>) übermittelt, dann kann sie über diesen Schalter als Kostenstelle verwendet werden. |
| * #1 - Kundenanlage erlaubt | * #1 - Kundenanlage erlaubt |
| * #> 1 Verwendet die angegebene Nummer als Kontaktnummer des Auftrages, wenn der Kunde aus der Datei nicht gefunden werden kann. | * #> 1 Verwendet die angegebene Nummer als Kontaktnummer des Auftrages, wenn der Kunde aus der Datei nicht gefunden werden kann. |
| | * ** _KundenBemerkungInVorgang**: sorgt dafür, dass "Remarks" anstatt in die "Bemerkung aus Kunde" in die "Bemerkung aus Vorgang" geschrieben werden. Dieser Schalter übersteuert "_BemerkungInternVorBemerkungExtern", falls beide aktiv sind. |
| * **_KundenBestellNrEindeutigkeitPruefen**: | * **_KundenBestellNrEindeutigkeitPruefen**: |
| * 0 - keine Prüfung | * 0 - keine Prüfung |
| |
| * **_KundenDuplikatePruefen**: bei >0 wird (nach der Neuanlage eines Kunden während der Bestellung) geprüft, ob es nun Duplikate des Kunden gibt - standardmäßig deaktiviert | * **_KundenDuplikatePruefen**: bei >0 wird (nach der Neuanlage eines Kunden während der Bestellung) geprüft, ob es nun Duplikate des Kunden gibt - standardmäßig deaktiviert |
| * **_KundenIdentifikationsart**: Bestimmt die Art wie ein Kunde Identifiziert werden kann. | * **_KundenIdentifikationsart**: Bestimmt die Art wie ein Kunde Identifiziert werden kann. //Ohne Anpassungen bezieht sich dies immer auf die Kundennummer des Käufers/Auftragsgebers aus der importierten Datei. (openTRANS 1.0 BUYER_PARTY/PARTY/PARTY_ID, openTRANS 2.1 PARTY/PARTY_ID der PARTY mit PARTY_ROLE = buyer)// |
| * 0 - CO-Kundennummer (Kunde wird ermittelt aus BUYER_PARTY/PARTY/PARTY_ID und diese Daten kommen in die Angebots- und Auftragsbestätigungsanschrift) | * 0 - CO-Kundennummer |
| * 1 - CO-Anschriftsnummer, | * 1 - CO-Anschriftsnummer |
| * 2 - CO-Kundennummer mit durch //-// angefügte Kostenstelle (z.B. //17482-001//), | * 2 - CO-Kundennummer mit durch //-// angefügte Kostenstelle (z.B. //17482-001//), |
| * 3 - ILN des Kunden. | * 3 - ILN des Kunden. |
| * 1 die Lieferanschrift wird zwangsweise aus den Stammdaten ermittelt. (Kunde muss vorhanden sein) | * 1 die Lieferanschrift wird zwangsweise aus den Stammdaten ermittelt. (Kunde muss vorhanden sein) |
| * 2 die externe Lieferanschriftsnummer wird als ILN interpretiert, über die dann aus den Stammdaten die korrekte Lieferanschrift ermittelt wird. | * 2 die externe Lieferanschriftsnummer wird als ILN interpretiert, über die dann aus den Stammdaten die korrekte Lieferanschrift ermittelt wird. |
| * 3 die Angabe in <PARTY_ID type="supplier_specific">34212</PARTY_ID> wird als CO-Anschriftsnummer interpretiert | * 3 die Angabe in <PARTY_ID type="supplier_specific">34212</PARTY_ID> wird als CO-Anschriftsnummer interpretiert und die Daten von dort übernommen. |
| * **_LieferantenArtikelNrBeiArtikelSucheNichtVerwenden**: Wird dieser Schalter aktiviert, dann werden die übermittelten Bestellnummern nicht mehr mit den Lieferantenartikelbestellnummern verglichen, um hier falsche Zuordnungen auszuschließen. | * **_LieferantenArtikelNrBeiArtikelSucheNichtVerwenden**: Wird dieser Schalter aktiviert, dann werden die übermittelten Bestellnummern nicht mehr mit den Lieferantenartikelbestellnummern verglichen, um hier falsche Zuordnungen auszuschließen. |
| * **_LieferantenNummerVorgabe**: Hier kann eine Lieferantennummer gesetzt werden, so dass die Bestellung nicht beim Hauptlieferanten erfolgt. | * **_LieferantenNummerVorgabe**: Hier kann eine Lieferantennummer gesetzt werden, so dass die Bestellung nicht beim Hauptlieferanten erfolgt. |
| * **_TextPositionTBS**: fügt einen Textbaustein vor der Positionsliste ein. zB _TextPositionTBS=#bwNews fügt den Textbaustein mit dem Schlüssel 'bwNews' ein. | * **_TextPositionTBS**: fügt einen Textbaustein vor der Positionsliste ein. zB _TextPositionTBS=#bwNews fügt den Textbaustein mit dem Schlüssel 'bwNews' ein. |
| * **_TextPositionTBSAmEnde**: fügt einen Textbaustein am Ende der Positionsliste ein. zB _TextPositionTBS=#bwNews fügt den Textbaustein mit dem Schlüssel 'bwNews' ein. | * **_TextPositionTBSAmEnde**: fügt einen Textbaustein am Ende der Positionsliste ein. zB _TextPositionTBS=#bwNews fügt den Textbaustein mit dem Schlüssel 'bwNews' ein. |
| | * **_TourErmittlungsRechercheNummer=<nnnn>**: Es besteht die Möglichkeit beim Kundenbestellungsimport, als Rückfallvariante die Tour über eine Recherche bei Auftragsimport ermitteln zu lassen. |
| | * **UeberGeordneterGeschaeftsbereich**=#XX. Der Kundenbestellungsimport ermittelt den Geschäftsbereich über die Filiale aus dem Kunden. Der Schalter UeberGeordneterGeschaeftsbereich=#BOE guckt, welche Lieferanschrift mit der Bestellung kommt, und prüft die Filiale anhand dieser Anschrift sowie welche Geschäftsbereich für diese Filiale festgelegten ist. |
| * **_UebernahmeKundenbestellpositionsnummer**: bei >0 wird die Positionsnummer der Kundenbestellung übernommen. Standardmäßig erfolgt eine Übernahme der Kundenbestellpositionsnummer. | * **_UebernahmeKundenbestellpositionsnummer**: bei >0 wird die Positionsnummer der Kundenbestellung übernommen. Standardmäßig erfolgt eine Übernahme der Kundenbestellpositionsnummer. |
| * **_UnsereKundennummer**: Dient als Schalter für Import von Textbestellungen bei Waser. Über diesen Schalter werden die Zeilen selektiert, welche der angebenen Kundennummer entsprechen. Kann nur verwendet werden, wenn in der Bestellung die Kundennummer des Händlers beim Lieferanten angegeben ist. | * **_UnsereKundennummer**: Dient als Schalter für Import von Textbestellungen bei Waser. Über diesen Schalter werden die Zeilen selektiert, welche der angebenen Kundennummer entsprechen. Kann nur verwendet werden, wenn in der Bestellung die Kundennummer des Händlers beim Lieferanten angegeben ist. |
| * **_WunschLieferTerminIgnorieren**: bei =1 wird der elektronisch übermittelte Wunschliefertermin ignoriert, so dass die Auslieferung abhängig von der Tour zeitnah erfolgen kann. | * **_WunschLieferTerminIgnorieren**: bei =1 wird der elektronisch übermittelte Wunschliefertermin ignoriert, so dass die Auslieferung abhängig von der Tour zeitnah erfolgen kann. |
| * **_WunschLieferTerminVersatz**: Mit Hilfe des Schalters '_WunschLieferTerminVersatz' kann beim Import von mehreren Dateien dafür gesorgt werden, dass der Wunschliefertermin ab einer bestimmten Anzahl verschoben wird._WunschLieferTerminVersatz=#50:1;100:2 bedeutet, ab der 51. Bestellung Wunschliefertermin oder Heute +1, ab der der 101. Bestellung +2. Die Anzahl wird pro Kundennummer gezählt. Es kann auch zusätzlich ein Delay zum Versatz angegeben werden. _WunschLieferTerminVersatz=#2:4:1 bedeutet damit, das aller zwei Vorgänge ein Versatz von 4 Arbeitstagen statt findet und ab dem ersten Vorgang ein zusätzlicher Versatz von einem Tag. | * **_WunschLieferTerminVersatz**: Mit Hilfe des Schalters '_WunschLieferTerminVersatz' kann beim Import von mehreren Dateien dafür gesorgt werden, dass der Wunschliefertermin ab einer bestimmten Anzahl verschoben wird._WunschLieferTerminVersatz=#50:1;100:2 bedeutet, ab der 51. Bestellung Wunschliefertermin oder Heute +1, ab der der 101. Bestellung +2. Die Anzahl wird pro Kundennummer gezählt. Es kann auch zusätzlich ein Delay zum Versatz angegeben werden. _WunschLieferTerminVersatz=#2:4:1 bedeutet damit, das aller zwei Vorgänge ein Versatz von 4 Arbeitstagen statt findet und ab dem ersten Vorgang ein zusätzlicher Versatz von einem Tag. |
| | * ** _ZahlungsbedingungAusStammdaten** : bei 1 werden die Zahlungsbedingungen immer aus den Stammdaten ermittelt, anstatt das versucht wird eine entsprechend der Datei aus CO zu ermitteln. |
| * **_ZuIgnorierendeKostenstellen**: Es können mit Komma getrennte Kostenstellen angegeben werden, die beim Auftragsimport nicht in den Vorgang übernommen werden sollen. | * **_ZuIgnorierendeKostenstellen**: Es können mit Komma getrennte Kostenstellen angegeben werden, die beim Auftragsimport nicht in den Vorgang übernommen werden sollen. |
| * **_ZulieferndeMengeSetzen**: bei >0 wird die zuliefernde Menge auf die bestellte Menge gesetzt. Ist der Eintrag nicht vorhanden wird die zuliefernde Menge nicht gesetzt. | * **_ZulieferndeMengeSetzen**: bei >0 wird die zuliefernde Menge auf die bestellte Menge gesetzt. Ist der Eintrag nicht vorhanden wird die zuliefernde Menge nicht gesetzt. |
| * **SammelRechnung**=#1 ;0 - nein, 1 - ja | * **SammelRechnung**=#1 ;0 - nein, 1 - ja |
| * **SbMitarbeiterNr** =# kein Eintrag oder Wert=0 - es wird der lt. CO zuständige Sachbearbeiter ermittelt, Wert > 0 - der vorgegebene Wert wird als Sachbearbeiternummer verwendet, Wert=-1 - der aktuell angemeldete Mitarbeiter wird verwendet | * **SbMitarbeiterNr** =# kein Eintrag oder Wert=0 - es wird der lt. CO zuständige Sachbearbeiter ermittelt, Wert > 0 - der vorgegebene Wert wird als Sachbearbeiternummer verwendet, Wert=-1 - der aktuell angemeldete Mitarbeiter wird verwendet |
| | |
| | |
| ===== Filteroptionen ===== | ===== Filteroptionen ===== |
| |
| |
| {{tag>Edi-Schnittstelle OEXXML Kundenbestellungen}} | {{tag>Edi-Schnittstelle OEXXML Kundenbestellungen}} |
| | |
| | |
| | ===== Kundenbestellungen über die Webservice-API einlesen ===== |
| | |
| | Neben dem Einlesen aus einem Verzeichnis können Kundenbestellungen auch direkt über den [[allgemein:webservice|Concept Office Webservice]] übergeben werden. Das anbindende System übermittelt die Bestellung als Datenstrom und erhält unmittelbar zurück, ob ein Vorgang angelegt wurde und unter welcher Auftragsnummer. Eine Dateiablage ist dafür nicht erforderlich. |
| | |
| | Unterschiede zum Einlesen aus einem Verzeichnis: |
| | |
| | * Es wird ausschließlich das Format **OpenTrans** unterstützt. |
| | * Pro Aufruf wird genau eine Bestellung verarbeitet. |
| | * Das zu verwendende Übernahmeschema (die Sektion aus der //Kundenbestellung_einlesen.ini//) wird beim Aufruf mitgegeben. |
| | * Die Rückmeldung erfolgt sofort in der Antwort des Aufrufs. |
| | |
| | Die Pfade gelten unterhalb des hinterlegten Endpunktes für den Service Host, also z.B. unterhalb von %%http://<server>:<port>/Office/CoServiceRestApi/%% |
| | |
| | * **office/auftraege/importOpenTrans?section=<Sektion>&token=<Token>** (POST): Import. Der Dateiinhalt wird als Bytestream im Body übergeben. Als **section** sind nur Sektionen zulässig, die in der //Kundenbestellung_einlesen.ini// angelegt sind. |
| | |
| | <html> |
| | <table width="100%" style="border:0px;"> |
| | <tr> |
| | <td style="border:3px solid #228b22; padding:5px; background-color:#d9fdd9;"> |
| | <table width="100%" style="border:0px; margin:0px"> |
| | <tr> |
| | <td width="100px" style="border:0px; text-align:center; padding:5px;" > |
| | <img src="./scpictures/beispiel.png"> |
| | </td> |
| | <td style="border:0px; padding:10px; "> |
| | <p><b>Beispiel:</b>Übergabe einer Bestellung</p> |
| | <p><code>curl -X POST "http://localhost:8080/Office/CoServiceRestApi/office/auftraege/importOpenTrans?section=xmlOEXOrderImport&token=base64:<Token>" -H "Content-Type: application/xml" --data-binary "@bestellung.xml"</code></p> |
| | </td> |
| | </tr> |
| | </table></td></tr></table> |
| | </html> |
| | |
| | Die Antwort enthält: |
| | |
| | * **AuftragsNummer**: Nummer des angelegten Vorgangs, **0** wenn kein Vorgang angelegt werden konnte |
| | * **Erfolgreich** bzw. **HatFehler**: Ergebnis des Imports |
| | * **Message**: Meldungstext |
| | |
| | |
| | <html> |
| | <table width="100%" style="border:0px;"> |
| | <tr> |
| | <td style="border:3px solid #87220a; padding:5px; background-color:#ffebcd;"> |
| | <table width="100%" style="border:0px; margin:0px"> |
| | <tr> |
| | <td width="100px" style="border:0px; text-align:center; padding:5px;" > |
| | <img src="./scpictures/rechte.png"> |
| | </td> |
| | <td style="border:0px; padding:10px;"> |
| | <p><a href="http://www.software-concept.de/wiki/doku.php?id=administration:rechteverwaltung" style="color:#56B04F;"></a>Voraussetzung ist das Recht zum Anlegen von Vorgängen</p> |
| | <p></p> |
| | <ul style="color: #333333;"> |
| | </ul> |
| | |
| | </td> |
| | </tr> |
| | </table></td></tr></table> |
| | </html> |
| | |
| | |
| | Archivierung der Bestellung: |
| | |
| | * **_ApiArchivVerzeichnis** |
| | * **_ApiFehlerArchivVerzeichnis** |
| | |
| | <html> |
| | <table width="100%" style="border:0px;"> |
| | <tr> |
| | <td style="border:3px solid #228b22; padding:5px; background-color:#d9fdd9;"> |
| | <table width="100%" style="border:0px; margin:0px"> |
| | <tr> |
| | <td width="100px" style="border:0px; text-align:center; padding:5px;" > |
| | <img src="./scpictures/beispiel.png"> |
| | </td> |
| | <td style="border:0px; padding:10px; "> |
| | <p><b>Beispiel:</b></p> |
| | <p><code>_ApiArchivVerzeichnis=#\\fileserver\co\edi\api\archiv</code> |
| | <br><code>_ApiFehlerArchivVerzeichnis=#\\fileserver\co\edi\api\fehler</code></p> |
| | <p>Ergibt z.B. die Datei <code>API_xmlOEXOrderImport_20260818_142212_230000627.xml</code></p> |
| | </td> |
| | </tr> |
| | </table></td></tr></table> |
| | </html> |
| | |
| | <note important> |
| | Ist kein Verzeichnis angegeben, wird nicht archiviert. Diese Verzeichnisse gelten ausschließlich für den Import über die API. |
| | </note> |
| | |
| | Die Dateien werden nach dem Muster **API_<Sektion>_<YYYYMMDD>_<HHMMSS>_<Auftragsnummer>.xml** abgelegt. |
| | Konnte kein Vorgang angelegt werden, entfällt die Auftragsnummer im Dateinamen. |
| | |
| | Die Protokollierung erfolgt nach derselben Logik wie beim EDI-Import. |