Setzen von Bezeichnung, Bezeichnung2, Dimensionstext, Langtext und Zubehörtext über die apiBelegerfassung.Sage.API möglich?

Hirnfolter

Neues Mitglied
Hallo zusammen,

wir testen aktuell die Erstellung von Verkaufsbelegen über die apiBelegerfassung.Sage.API (Endpunkt eptVKBeleg.Sage.API, POST). Die Erstellung von Belegen mit den Kernfeldern (A0Konto, Kennzeichen, Belegdatum, Referenznummer sowie Artikelnummer, Menge, Einzelpreis und Rabatt in den Positionen) funktioniert bereits einwandfrei.

Laut der offiziellen OpenAPI/Swagger-Dokumentation für eptVKBelegPosition.Sage.API enthält das Schema für eine Position ausschließlich folgende Felder:
artikelnummer, einzelpreis, gesamtpreis, handle, menge, auspraegungsHandle, rabatt

Unsere Frage betrifft folgende Felder, die im Sage 100 Warenwirtschaft UI auf der Positionsebene vorhanden sind, aber nicht im API-Schema auftauchen:
  • Bezeichnung
  • Bezeichnung2
  • Dimensionstext
  • Langtext
  • Zubehörtext
Konkrete Fragen:
  1. Ist es über die apiBelegerfassung.Sage.API in der aktuellen Version (1.0.0) möglich, Inhalte in eines oder mehrere dieser Felder zu schreiben? Falls ja, wie lautet die korrekte Bezeichnung des Feldes im JSON-Payload?
  2. Falls diese Felder nicht direkt unterstützt werden: Gibt es einen alternativen Endpunkt, eine andere API-Version oder einen anderen Mechanismus, über den sich zusätzliche Textinformationen auf Positionsebene (über die Standardfelder hinaus) bei der Belegerfassung setzen lassen?
  3. Allgemein: Welche Möglichkeiten gibt es laut Ihrer Erfahrung, zusätzliche, frei definierbare Informationen in einen über die API erstellten Beleg bzw. eine Position einzubringen, falls die Standardfelder dafür nicht ausreichen? Wir haben bereits gesehen, dass benutzerdefinierte Felder (CustomFields) grundsätzlich funktionieren, sofern sie vorher im System angelegt wurden — sind uns aber unsicher, ob dies der einzige Weg ist oder ob es weitere Ansätze gibt, die wir noch nicht in Betracht gezogen haben.
  4. Konkret zu CustomFields: Wäre es z.B. über den Anwendungsdesigner möglich, ein Event/Hook einzurichten, der beim Speichern einer Position den Inhalt eines benutzerdefinierten Feldes automatisch in eines der oben genannten Standardfelder (z.B. Langtext) kopiert? Hat hier jemand bereits Erfahrung mit einem ähnlichen Ansatz und kann grob einschätzen, wie aufwändig eine solche Konfiguration ist?

    Vielen Dank im Voraus für jede Rückmeldung und Erfahrungsaustausch!

    Viele Grüße
 
Zuletzt bearbeitet:
Hallo Hirnfolter,

dein Name passt zum Wetter ;)

1. Nein, mit der apiBelegerfassung.Sage.API ist das nicht möglich. Die Felder existieren technisch in Sage/DB/Belegposition, aber nicht im Standard-API-Endpunkt eptVKBelegPosition.Sage.API.
2. Nein, gibt es im Standard auch nicht.
3. Benutzerdefinierte Felder sind der einzige funktionierende Weg für zusätzliche Informationen mit den Standard-API-Endpunkten. Alternativ wäre eine Entwicklung (eigene Endpunkte) nötig, dazu müsste man aber auch die Erstellung der Belege entsprechend implementieren.
4. Ja, das geht. Mit der DCM VKBelegProxyBeforeSave geht das, aber sie muss als eigene .NET-DCM sauber implementiert und registriert werden. Für Texte müssen ggf. auch RTF/Plaintext-Felder passend gesetzt werden, z.B. Langtext + LangtextRtf, Dimensionstext + DimensionstextRtf, VKZubehoertext + VKZubehoertextRtf.

Bei Fragen melde dich gerne!

Beste Grüße
Marcel
 
Zurück
Oben