selectline-software / selectline-api

Apache License 2.0
26 stars 5 forks source link

Belegstatus manuell erledigt setzen #398

Open ThorstenPoppe opened 5 months ago

ThorstenPoppe commented 5 months ago

Hallo zusammen,

wir haben in der API der Version 23.2.2 einen Fehler entdeckt. Wir arbeiten hier in einem Beleg mit dem Bearbeitungsstatus und möchten über die API den Beleg auf "manuell erledigt" setzen. Das machen wir über die Route /Documents/{documentKey}/Status mit dem Body {"Value":"3","Name":"CompletedManually"} Die API antwortet mit dem "erfolgreichen" 204 Status, aber in der Wawi ist der Beleg immer noch auf "in Bearbeitung" mit dem Status 5. Wir können den Status auf "Bearbeitung abgeschlossen" setzen, in dem wir als Body {"Value":"0","Name":"EditingCompleted"} schicken, dann kommt ebenfalls ein 204 als Response und in der WaWi ist das auch ersichtlich.

Wir können in der WaWi den Status auf "manuell erledigt" setzen, nur leider über die API nicht.

Ist der Fehler bekannt, gibt es hier evtl. einen Workaround?

MatthiasGuse commented 5 months ago

Hallo Her Poppe,

ich vermute, dass der API der Bearbeitungsstatus des Beleges nicht bekannt ist. Das kann daran liegen, dass man den Status am Beleg aktiviert, ohne sich vorher an der API korrekt abzumelden. Das Bckend läuft dann im Hintergrund weiter und bekommt das nicht mit. Mehrere Möglichkeiten um das zu korrigieren:

Viele Grüße

ThorstenPoppe commented 5 months ago

Guten Morgen Herr Guse,

leider hat das nicht den gewünschten Effekt gehabt. Wir haben uns sowohl an der API abgemeldet, als auch den Backend Manager neu gestartet. Der folgende Befehl wurde dann abgeschickt: PUT https://vds-ew01.viebrock.local:8443/slmobileApi/Documents/4RE24000012/Status mit dem Body {"Value":"3","Name":"CompletedManually"} Als Response kam der Status 204, aber in der WaWi steht der Beleg weiter auf "in Bearbeitung"

Viele Grüße

MatthiasGuse commented 5 months ago

Hallo Herr Poppe,

ich habe mir die Doku nochmal angesehen. Komme grad leider nicht dazu das nachzustellen. Versuchen Sie doch bitte mal nur "Value" ohne "Name" abzuschicken.

Viele Grüße

ThorstenPoppe commented 5 months ago

Hallo Herr Guse,

auch das hat nicht geholfen, ich habe versucht den PUT nur mit {"Value": "3"} versucht. Das Setzen auf "Bearbeitung abgeschlossen" mit {"Value": "0"} funktioniert allerdings. Es scheint nur die manuelle Erledigung nicht zu funktionieren, obwohl ein erfolgreicher Response kommt.

MatthiasGuse commented 4 months ago

Hallo Herr Poppe,

korrekt ist der Wert ohne Anführungszeichen: {"Value": 3}

Viele Grüße

ThorstenPoppe commented 4 months ago

Hallo Herr Guse,

da ist die API tatsächlich Fehlertolerant und akzeptiert auch den Wert mit Anführungszeichen. Sprich: auch das hat nicht funktioniert. Ich kann den Belegstatus auf 0 und 5 setzen (Bearbeitung abgeschlossen oder in Bearbeitung), aber nicht auf 3 = manuell erledigt. Haben Sie das selbst einmal ausprobiert?

Viele Grüße

MatthiasGuse commented 4 months ago

Hallo Herr Poppe,

wir haben festgestellt, dass es nur nicht funktioniert, wenn die Belegoption "Übernahme anzeigen" deaktiviert ist. grafik In dem Fall taucht auch der Übernahmestatus in dieser Box nicht auf: grafik

Kurzfristig lässt sich das also durch das Aktivieren der oben gezeigten Option umgehen.

Wir werden das bei uns als Fehler aufnehmen. Dabei ist aber erstmal zu bewerten, ob es überhaupt sinnvoll ist ohne Übernahme das manuelle Erledigen zu erlauben. Daher sollten Sie also mit der gesetzten Option eher auf der sicheren Seite sein.

Viele Grüße

ThorstenPoppe commented 4 months ago

Hallo Herr Guse,

danke für den Hinweis, das funktioniert so auch bei uns. Wir können damit dann einen Beleg "in Bearbeitung" auf "manuell erledigt" setzen. Allerdings kann der Beleg über die API dann nicht wieder auf "in Bearbeitung" gesetzt werden. Das dann am besten auch mit in das Fehler Ticket für die Entwicklung schreiben.

Viele Grüße zurück!

MatthiasGuse commented 4 months ago

Hallo Herr Poppe,

das konnte ich nun auch nachvollziehen. Könnten Sie für mein Verständnis evtl. noch kurz den Anwendungsfall schildern, der dahintersteckt?

Danke

ThorstenPoppe commented 4 months ago

Guten Morgen Herr Guse,

der Anwendungsfall des Kunden ist die Retouren Verwaltung. Wir haben zwischen Rechnung und Gutschrift einen Retoureneingangsbeleg, der Ware bereits wieder ins Lager bucht. Die Gutschrift erzeugt dann ein Mitarbeiter, in dem er die Positionen aus dem Retourenbeleg übernimmt.

Viele Grüße