Wie kann ich einen Arbeitsbericht entweder anlegen/updaten?

24. Mai 2023 09:46

Hallo,

ich soll einen Termin aus Microsoft Outlook Kalender nach BC (v 21.2) per Webrequest übertragen. Das funktioniert soweit ganz gut,
nur die Tabellen jobNo und JobTaskNo weigern sich beschrieben zu werden. Wenn ich das Json ohne diese properties versende, dann funktioniert es,
wenn ich sie setze, dann funktioniert es nicht. Wenn ich nur jobTaskNo setzte, dann bekomme ich die Meldung "Projektaufgabe nicht gefunden oder sie ist am 05/16/23 nicht gültig!".
Deshalb haben wir uns gedacht, dass wir zuerst den Arbeitsbericht anlegen und dann in einer zweiten Request updaten. Allerdings weiß ich nicht genau
wie ich eine PUT/PATCH request zu programmieren habe. Ich bekomme dann Fehlermeldungen wie
""„PATCH“-Anforderungen für „XYZ“ mit EdmType „Collection“ sind innerhalb von Microsoft Dynamics 365 Business Central-OData-Webdiensten nicht zulässig.""
Schreib und Änderungsrechte sollten aber alle gesetzt sein. Habt ihr eine Idee?

Re: Wie kann ich einen Arbeitsbericht entweder anlegen/updat

24. Mai 2023 12:50

Hat jemand vllt ein Beispielcode, wie eine PUT request in C# aussehen könnte? ChatGPT hab ich schon gefragt und nachgemacht, ohne Erfolg.

Re: Wie kann ich einen Arbeitsbericht entweder anlegen/updat

24. Mai 2023 15:38

Gibt es die Projektaufgabe die du reinschreiben willst denn tatsächlich? Wenn die Fehlermeldung besagt dass es sie nicht gibt dann wäre das mal die erste Frage.

Re: Wie kann ich einen Arbeitsbericht entweder anlegen/updat

25. Mai 2023 08:51

Ja, die gibt es. Ich requeste mir vorher alle aktiven Projektaufgaben und Projekttaskaufgaben. Wir hatten die Vermutung, dass es auf die Reihenfolge der "Befüllung" des Datensatzes ankommt, weil
der gleiche Fehler passiert, wenn wir in NAV zuerst die taskNo und dann jobNo setzen. Anscheinend hängen beide irgendwie zusammen, und jobNo ist ein Vorgänger von jobTaskNo und dieses bezieht sich auf jenes. Deshalb wollten wir versuchen zuerst einen Datensatz mit jobNo anzulegen, und dann die jobTaskNo mit PUT zu aktualisieren.