RequestAction im Modul benutzen

Irgendwie stell ich mich mal wieder zu blöd an.

Ich schreibe gerade mal wieder ein Modul. Meine Bisherigen haben immer nur Daten gelesen. Jetzt muss ich aber auch Daten an die übergeordnete Instanz zurück senden. Wie das prinzipiell geht ist mr klar. Mein Problem is anderer Natur.
Ich erzeuge im Modul variablen in die ich die Daten der Übergeordneten instanz schreibe. Klappt super. Nun will ich aber, dass manche dieser Variablen im Webfront änderbar sind un diese Änderungen auch im Modul dann an die übrgeordnete Instanz zurück gespielt werden. Ich habe im Modul nun eine public Function RequestAction integriert, die das ja eigentlich machen sollte. allerdings sind die Variablen im Webfront gar nicht editierbar. Was muss ich also bei der Erstellung der Variablen machen, damit diese im Webfront eine aktion erhalten und diese dann an meine interne Modulfunktion RequestAction weitergeleitet werden?

Für die gewünschten Variablen müssen die Aktionen aktiviert werden:

Michael

1 „Gefällt mir“

Das klappt erst mal. Allerdings ist der Ident der Variable mittels Translate auf Deutsch übersetzt Beim Anlegen. Im Variablenarray allerdins sind die Natürlich auf Englisdh drin. Gibt es für Translate auch eine Umkehrfunktion, die mir aus dem übersetzten Ident auch den Namen macht, der bei mir im Modul für diese Variable gehalten wird?

Hi,

Wie wär es wenn du den ident nicht übersetzt? Der ist „intern“ für dich.

Viele Grüsse

Das passiert nicht automatisch, da hast du irgendwas falsch gemacht.
Michael

Also vielleicht zur Erklärung. Ich habe ein Array in dem alle anzulegenden Variablen, sowie die Modbus Adressen und diverse andere Infos im Modul hinterlegt sind. Da stehen die Namen der VAriablen, so wie es in den guidelines gefordert wird, auf Englisch drin. Wenn ich die Variablen anlege, dann überstze ich das selbstverständlich in die Anzeigesprache des Systems, also Deutsch. So wird aus „Capacyity1“ dann im Variablennamen „Kapazität1“. Die Funktion RequestAction liefert mir nun als Ident den Wert „Kapazität1“ zurück und ich muss damit in meinem Array suchen, damit ich dort auslesen kann auf welches Modbus Register der Wert zurück geschrieben werden muss. Dort findet sich aber kein „Kapazität1“ sondern nur „Capacity1“ weshalb er einfach leer durchläuft.

OK, vergesst den letzten Post. Ich kann natpürlich auch meinen internen Variablennamen vor dem vergleich übersetzen. Dann passt es zum Ident aus der Funktion. Ich glaub ich brauch mal ne Pause. :see_no_evil: Zu lange Programmieren macht kirre im Kopf.

Namen sind Schall und Rauch und darf der User ändern.
Da gibst du einmal beim anlegen was vor.
Der Name ist aber völlig unabhängig vom ident.
Vielleicht solltest du das array um ein Feld erweitern :wink:
Michael

IPS gibt mir aber in der RequestAction in $Ident den Namen der Variable an und nicht die ID.

Nein… Er gibt dir den IDENT.
Das ist nicht die ObjektID und auch nicht der Name.
Michael

1 „Gefällt mir“