Jump to content

Anzeige Bausteine über REST-API befüllen


Gregor

Recommended Posts

Guten Tag,

ich mache gerade meine ersten Erfahrungen mit der smapApp und der REST-API-Schnittstelle. Ich muss vorab sagen, dass ich zuvor keinerlei Erfahrung mit einer REST-API-Schnittstelle gemacht habe und ich möglicherweise simple Tatsachen übersehe. Insgesamt habe ich mich bereits ein paar Stunden damit auseinandergesetzt und konnte dank der FAQ, dem Forum und der Doku erfolgreich Aufträge per POST aus unserer ERP an die APP senden.

Es gibt einige Angaben wie Kundennummer, Auftragsnummer etc., welche von dem App Benutzer nicht manipuliert werden dürfen.

An dieser Stelle verstehe ich nicht, warum ich keine Bausteine von denen ich nicht möchte dass diese in der APP verändert werden dürfen, mittels REST-API nicht befüllen kann. Vom Gefühl her würde ich sagen, es sollte gundsätzlich möglich sein. Im konkreten Fall kann ich den Baustein "Text" und "Telefonanruf" per POST nicht befüllen. Mache ich etwas falsch, oder ist es schlicht nicht möglich?

Vielen Dank für die Unterstützung!

Link to comment
Share on other sites

Hi @Grzegorz Wiktorowicz

vorab willkommen in der Community.

Kurze Rückfrage zu deiner Thematik:

vor 43 Minuten schrieb Grzegorz Wiktorowicz:

Es gibt einige Angaben wie Kundennummer, Auftragsnummer etc., welche von dem App Benutzer nicht manipuliert werden dürfen.

An dieser Stelle verstehe ich nicht, warum ich keine Bausteine von denen ich nicht möchte dass diese in der APP verändert werden dürfen, mittels REST-API nicht befüllen kann.

Welche Baustein-Typen verwendest du für die o.g. Angaben? Textergebnisbausteine?

Link to comment
Share on other sites

Danke!

Naja, der "Text" Baustein befindet sich in der Kategorie "Anzeigen" und der "Telefonanruf" in "Media", wenn du das meinst. Das bekomme ich nicht hin.

 

Momentan übertrage ich es an "Texteingabe" Bausteine im Schema:

"Meine_Baustein-ID": "{meine_Variable},

Über "Textergebnis" Bausteine hatte ich vor ein paar Tagen versucht im Backend mittels einer Variable das Ergebnis aus den "Texteingabe" Bausteinen auszugeben. Das hatte funktioniert, bin aber daran gescheitert den ursprünglichen "Texteingabe" Baustein auszublenden.

 

 

Link to comment
Share on other sites

Das scheint tatsächlich tricky zu sein. Ich habe ein wenig probiert:

  • Ergebnisbausteine direkt befüllen geht nicht über die API.
  • Wenn ich Eingabefelder fülle geht das nur wenn die Felder nicht über eine Regel deaktiviert sind.
  • Reine Textfelder füllen geht auch nicht.
  • Im Youtube-Video von @Moritz  ( DDT #003 ) ist der Text mit der Defektmeldung auch ein Eingabefeld

Aber das muss doch irgendwie gehen?

  • Agree 1
Link to comment
Share on other sites

Am 7.11.2023 um 18:26 schrieb Gregor:

Im konkreten Fall kann ich den Baustein "Text" und "Telefonanruf" per POST nicht befüllen.

Diese beiden Bausteine sind vom Konzept her keine Bausteine, die pro smap individuell sein sollen (Datensatz-Daten) sondern Bausteine, die übergreifend für alle Datensätze gleich sein sollen, weil es eher um statische Daten geht.

Man könnte diese Werte über die API anpassen, indem man die Definition der API, also den strukturellen Aufbau der smap anpasst. Das entspricht dem Anpassen der smap über den Designer, nur dass man direkt in der JSON-Definition rumfummelt und die neue Definition dann wieder an die API zurückspielt. Allerdings ist das wahrscheinlich nicht sinnvoll, für jeden Datensatz die Definition anzupassen, um dann für den einen Datensatz die Werte unveränderlich einzutragen. Zumal diese statischen Definitionsdaten dann ja auch nicht Inhalt des späteren Datensatzes wären.

In sofern kann ich nur @Philip Alvermanns Hinweis unterstützen, sich laut in dem verlinkten Beitrag "Nicht editierbare Eingabefelder" im Wünsche-Forum bemerkbar zu machen 😉

  • Sad 1
  • Agree 1
Link to comment
Share on other sites

Am 8.11.2023 um 19:25 schrieb Gregor:

Gibt es eventuell einen Workaround?

Es besteht die Möglichkeit, per POST eine Aufgabe anzulegen, in der die nicht zu bearbeitenden Daten als ausgewählter DSAB-Eintrag übergeben werden. Hierzu muss vorher der DSAB in der smap angelegt sein mit der entsprechenden Tabellenstruktur, wie die Felder benötigt werden. Die Daten, die per POST in die Aufgabe übergeben werden, müssen indes nicht als Zeile im DSAB enthalten sein. Man könnte zu diesem Zweck also einen leeren DSAB (aber mit entsprechender Tabellenstruktur) anlegen und die Werte dann als Aufgabendaten da reinbefüllen. Problem bei diesem Workaround wäre dann aber: Wenn der User den ausgewählten DSAB-Eintrag aber in der Aufgabe entfernt, sind die Daten wech (höchstwahrscheinlich; habe ich noch nicht getestet).

  • Sad 1
Link to comment
Share on other sites

Danke für deine Ausführungen.

Habe, wie du beschrieben hast, die Definition der API angepasst und es funktioniert - kann Typ und Inhalt der Bausteine ändern. Scheitert letztendlich aber an den von dir genannten; "diese statischen Definitionsdaten dann ja auch nicht Inhalt des späteren Datensatzes wären." Zudem giert die API nach ständig neuen Revisionsangaben...

Die Idee zu dem Workaround ist gut, aber nicht zweckmäßig. Ich habe es nach deiner Beschreibung getestet, die Daten verschwinden wie vermutet nach Manipulation der DSAB.

Interessant wäre es zu wissen, wie andere smap Nutzer die Konsistenz zwischen ERP/WAWI und smapOne gewährleisten können, wenn man davon ausgeht, dass die Daten mittels API verschoben werden und die Grobmotoriker mit ihren Wurstfingern Daten in smapOne pflegen🤔 Ich bleib dran.

  • Agree 1
Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...