Webservice Verkaufsauftrag

17. Juni 2017 13:44

Über den Webservice Verkaufsauftrag möchte ich mit meinem C# Programm einen Auftrag anlegen und die Verkaufszeilen hinzufügen.

Code:
  NeuerAuftrag.SalesLines = new  Sales_Order_Line[1];
  Sales_Order_Line Z = new Sales_Order_Line();
  NeuerAuftrag.SalesLines[0] = Z;
  Z.Type = NAV_Verkaufsauftrag.Type.Item; // im deutschen Nav: "Artikel"
  Z.No = "existierende_Artikelnummer";
  Z.Quantity = 1;


Da kommt dann folgende Fehlermeldung, entweder beim Create, wenn ich die Daten erst einmal komplett befülle, oder beim Update wenn ich zuerst den Auftrag anlege und dann die Zeile mit Update speichere. Im letzten Fall haben wir im NAV einen neuen Auftrag ohne Positionen, im ersten Fall nichts.

Code:
The feld No. of table Sales_Line contains a value (existierende_Artikelnummer) that cannot be found in the related table (Standard Text).


Was mache ich falsch?
Danke - Günther

Re: Webservice Verkaufsauftrag

19. Juni 2017 11:47

Hallo,

laut Fehlermeldung wurde wohl der Typ "Artikel" nicht erkannt. NAV sucht deine "existierende_Artikelnummer" in der StandardText Tabelle. Also wurde entweder Typ = " " (Text) übergeben, oder die Reihenfolge der Validierung stimmt nicht. So meine Vermutung

Re: Webservice Verkaufsauftrag

19. Juni 2017 18:38

Reihenfolge der Validierung? Was soll das sein?

Die übergebene Artikelnummer ist korrekt und im System vorhanden.

Re: Webservice Verkaufsauftrag

20. Juni 2017 08:37

Guten Morgen,

meiner Meinung nach ist die Zuweisung vom Feld Typ = Artikel in der Verkaufszeile falsch.
Somit wird, wie vandyke schon geschrieben hat, LEER übergeben und NAV sucht die Artikelnummer in der Tabelle "Standardtextcode"
statt in der Tabelle "Artikel"

Daher sollte doch ein Doppelpunkt statt einem einfachen Punkt in der Zuweisung stehen
Code:
Z.Type = NAV_Verkaufsauftrag.Type:Item; // im deutschen Nav: "Artikel"


Viele Grüße
Christian

Re: Webservice Verkaufsauftrag

20. Juni 2017 09:41

Nutzt du die Standard Page oder hast du die Page selbst erstellt?
Bei WebServices werden die Felder in der Reihenfolge Validiert wie sie auf der Page stehen.
Wenn also auf der Page "No." vor dem "Type" kommt, kann es zum Beispiel zu dem Fehler da kommen.

Re: Webservice Verkaufsauftrag

20. Juni 2017 10:36

NAV_Verkaufsauftrag.Type ist ein Enum. Der Wert wird nicht mit einem Doppelpunkt sondern mit einem Punkt angehängt.
Und es gibt folgende Möglichkeiten, was man da angeben kann:
Code:
    public enum Type {
        _blank_,
        G_L_Account,
        Item,
        Resource,
        Fixed_Asset,
        Charge_Item,
    }

Aber egal was ich angebe, die Fehlermeldung bleibt die selbe. Deshalb habe ich den Verdacht, daß es sich hier nicht um die Variable handelt die man beim Anlegen einer Verkaufszeile im NAV mit "Artikel" belegen muß.

Wir benutzen die Standard-Page, die meines Wissens nach original ist und nicht vom Dienstleister angepasst wurde.

Die Reihenfolge in der ich im C# Code meine Variablen zuweise ist total unwichtig. Wichtig ist, in welcher Reihenfolge beim Create oder Update die Variablen vom NAV verarbeitet werden. Und darauf habe ich keinen Einfluß.

Re: Webservice Verkaufsauftrag

20. Juni 2017 12:30

Eine globale Suche hat mir im Forum NAV2009 die Lösung gebracht:
viewtopic.php?f=40&t=13962&p=69905&hilit=sales_order_line#p69905

Nur, dass der Fragesteller dort sich den Webservice selbst erstellen konnte.
Ich muß den nehmen, den der Dienstleister mir zur Verfügung stellt.
Ich habe den Webservice lediglich in Visual Studio aktualisiert.
Also hat man da wohl etwas geändert ohne es mir mitzuteilen.