OData WebService - POST JSON Body mit Root [NAV 2017]

Bild Microsoft Dynamics NAV 2017

OData WebService - POST JSON Body mit Root [NAV 2017]

Beitragvon Udo » 25. Juni 2020 08:53

Hallo Community,

ich habe aktuell eine Herausforderung in NAV 2017 - Genutzt wird ein NAV 2017 und eine externe Applikation, die Daten synchron ĂĽber eine RESTful Schnittstelle ĂĽbermitteln soll.
Ich habe also eine einfache Table und dazugehörige Page erstellt und diese als Web Service veröffentlicht. Die Page benötige ich, da ich in NAV 2017 nur Pages mittels ODATA veröffentlichen kann.

Wenn ich ĂĽber Postman einen versuche starte, ein POST abzusetzen funktioniert auch alles wenn der JSON Body folgend aussieht und nur 1 Datensatz inbegriffen ist:
Code: Alles auswählen
{
  "Feld1":"Wertxyz",
  "Feld2":"Wert...",
  "Feld3":"Wert..."
}


Die externe Applikation, die auf den NAV Web Service zugreift, strukturiert den JSON Body allerdings noch mit einem Root Element um auch mehrere Datensätze in einem POST übertragen zu können, was dann wie folgt aussieht:
Code: Alles auswählen
{
"Root":
  [
    {
      "Feld1":"Datensatz 1",
      "Feld2":"Wert...",
      "Feld3":"Wert..."
    }
    {
      "Feld1":"Datensatz 2",
      "Feld2":"Wert...",
      "Feld3":"Wert..."   
    }
  ]
}


Hierbei stoße ich auf Probleme. Ich weiß nicht wie ich dieses Root Element verarbeiten kann. Leider habe ich keine Möglichkeit über die Page Funktionen zu veröffentlichen, wie in späteren NAV Versionen. Weiterhin fällt mir keine Möglichkeit ein, wie ich den JSON Body vorher in eine Variable schreiben kann, um ihn dann selbstständig weiter zu verarbeiten.
Ich bin fĂĽr jede Hilfe oder Idee dankbar.

Beste GrĂĽĂźe,
Udo
"Wer aufhört besser sein zu wollen, fängt an schlechter zu werden."
Benutzeravatar
Udo
Microsoft Partner
Microsoft Partner
 
Beiträge: 58
Registriert: 13. März 2013 18:34
Realer Name: Udo Zadow
Arbeitsort: Berlin
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV

Re: OData WebService - POST JSON Body mit Root [NAV 2017]

Beitragvon fiddi » 25. Juni 2020 09:04

Hallo,

eine erste Idee wäre die Implementierung einer Codeunit, die per .Net einen Odata- Webservice- Listener bereitstellt (wenn das möglich ist!!??). Diese Codeunit lässt du dann in einem NAS laufen.
Je nachdem, ob das Tool Multi-Session- fähig sein muss, musst du dann noch ein bisschen mit STARTSESSION herumspielen.

GruĂź Fiddi
Wer aufhört besser zu werden, hat aufgehört gut zu sein. (frei nach Philip Rosenthal)
Frage beantwortet? Schreibe bitte [Gelöst] vor den Titel des ersten Beitrags.
Bitte erst suchen, dann fragen. Bitte beachte den kleinen Community-Knigge.
Kein Support per PN, Mail, IM oder Telefon! DafĂĽr ist dieses Forum da.
fiddi
Moderator
Moderator
 
Beiträge: 7091
Registriert: 9. Juni 2008 10:13
Realer Name: Hans Heinrich Fiddelke
Arbeitsort: Bremen
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: NAV2.6-aktuell

Re: OData WebService - POST JSON Body mit Root [NAV 2017]

Beitragvon Udo » 25. Juni 2020 09:20

Hallo fiddi,

sofern ich dich richtig verstanden habe, brauche ich dafür aber dann eine CodeUnit die ich als Web Service veröffentlichen kann, damit die externe Applikation darauf zugreifen kann. Über .Net könnte ich zwar den JSON Body ohne Probleme verarbeiten aber die Bereitstellung des URI für den Service nur über eine .NET Implementierung in einer Codeunit - Wüsste ich leider nicht, wie das gehen soll.
In NAV 2017 kann ich allerdings nur Page Objekttypen als ODATA veröffentlichen. (Ab NAV 2018 wäre das alles einfacher)

Danke und GrĂĽĂźe.
"Wer aufhört besser sein zu wollen, fängt an schlechter zu werden."
Benutzeravatar
Udo
Microsoft Partner
Microsoft Partner
 
Beiträge: 58
Registriert: 13. März 2013 18:34
Realer Name: Udo Zadow
Arbeitsort: Berlin
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV

Re: OData WebService - POST JSON Body mit Root [NAV 2017]

Beitragvon fiddi » 25. Juni 2020 09:34

Hallo,

das ist dann OData "handmade". Du wĂĽrdest versuchen, das was man in Visual Studio programmieren wĂĽrde, in NAV mit .Net- Variablen zu programmieren.

Das hat mit NAV selbst dann nicht mehr viel zu tun.

GruĂź Fiddi
Wer aufhört besser zu werden, hat aufgehört gut zu sein. (frei nach Philip Rosenthal)
Frage beantwortet? Schreibe bitte [Gelöst] vor den Titel des ersten Beitrags.
Bitte erst suchen, dann fragen. Bitte beachte den kleinen Community-Knigge.
Kein Support per PN, Mail, IM oder Telefon! DafĂĽr ist dieses Forum da.
fiddi
Moderator
Moderator
 
Beiträge: 7091
Registriert: 9. Juni 2008 10:13
Realer Name: Hans Heinrich Fiddelke
Arbeitsort: Bremen
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: NAV2.6-aktuell

Re: OData WebService - POST JSON Body mit Root [NAV 2017]

Beitragvon Udo » 25. Juni 2020 09:42

Hallo fiddi,

okay, dann hab ich das richtig verstanden. Danke schon mal für den Input. Wäre jetzt quasi mein Notfallplan, da mein Erfahrungsschatz dabei sehr begrenzt ist.
Vielleicht hat noch jemand einen Hinweis, wie ich das eventuell mit NAV Board Mitteln lösen könnte.

GrĂĽĂźe,
Udo.
"Wer aufhört besser sein zu wollen, fängt an schlechter zu werden."
Benutzeravatar
Udo
Microsoft Partner
Microsoft Partner
 
Beiträge: 58
Registriert: 13. März 2013 18:34
Realer Name: Udo Zadow
Arbeitsort: Berlin
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV

Re: OData WebService - POST JSON Body mit Root [NAV 2017]

Beitragvon SilverX » 25. Juni 2020 14:51

Kann man in 2017 bereits parts in einer OData-Page verwenden? Wäre dann eine leere Haupt-Seite mit einem part/SubPage "Root".
Cheers
Carsten


This post is my own opinion and does not necessarily reflect the opinion or view of my employer.
SilverX
Microsoft Partner
Microsoft Partner
 
Beiträge: 1252
Registriert: 16. September 2006 14:07
Realer Name: Carsten Scholling
Arbeitsort: GĂĽtersloh
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2013+


ZurĂĽck zu NAV 2017

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast