Optimizer - InnerEvent = true or InnerEvent = false
Hallo Community,
gibt es eine Möglichkeit eine Coresuite Regel sowohl bei Innerevent = true und Innerevent = False auszulösen?
Ansonsten muss ich die gleiche Regel zweimal anlegen, das finde ich nicht so schön.
Mfg
Marco
-
Hi Marco, hast du mal mehr infos?
Was ist dein Ziel/Problem?
regards Lothar
0 -
Hintergund ist: Wenn man im Artikelstamm etwas ändert und auf Aktualisieren drückt, dann soll ein Feld “Stammdaten geprüft” auf “Nein” geändert werden. Mit dem nächsten Alarm bekommen einige User die Aufgabe die Korrektheit des Artikels zu prüfen.
Wenn man den Button “Aktualisieren” mit der Maus anklickt, dann funktioniert es, weil der Event “et_Item_pressed” (Innerevent = false)
Wenn man die Taste “Enter” auf der Tastatur drückt, um zu aktualisieren, dann ist der Innterevent = true und die Regel wird nicht ausgelöst.
MfG
Marco
0 -
Versuch mal im Optimizer
FormTyp 150
ItemUID:1 (OK-Button)
EventTyp:ItemPressed
BevorEvent: Check
InnerEvent: UnChecked(ggf. doch mal testen)
FormModus:All
Im Script fragst du dann den FromMode ab
string FormMode = oForm.Mode.ToString();
Und kannst dann mit
if (FormMode != "fm_ADD_MODE") / if (FormMode != "fm_UPDATE_MODE")
weiter machen.LG Lothar
0 -
Die Regel läuft schon… sie wird aber nur bei einem Mausklick auf den Button “Aktualisieren” ausgelöst. Wenn man “Enter” auf der Tastatur zum Aktualisieren drückt, dann wird sie nicht ausgelöst. Es liegt am InnerEvent, weil es bei der Maus auf false und bei der Taste auf true steht. Ich möchte nun das der Innerevent beim Auslöser ignoriert wird.
MfG
Marco
0 -
Moin Marco,
du könntest den EventType auf FormDataModify setzen, das ist eine Kombination aus et_FORM_DATA_UPDATE und et_FORM_DATA_ADD, damit könntest du auch neu angelegte Artikel erfassen.
Alternativ einfach nur FormDataAdd. Form Modus auf ALL und Before Event auf True.Dann kannst du vor dem Speichern dazwischengehen und per DI API dein Feld befüllen.
Damit musst du gar nicht prüfen ob du einen Button klickst, sondern ob Daten aktualisiert werden.
0 -
Moin,
das was Jannik meint, habe ich auch so gedacht.
Wenn du noch einzelne Felder Prüfen willst, kannst du die Werte aus dem Fenster auslesen und mit den Werten der OCRD (bei Update) vergleichen. Zu dem Zeitpunkt sind die Daten ja noch nicht geschrieben und man muss nicht in der ACRD “rumwühlen”Gruß Lothar
0 -
Kommt ganz drauf an wie du die entsprechenden User beauftragen willst, aber wenn es eh mit einem Flag als UDF im Artikelstamm sein soll, kannst du auch mit der TransactNotification Stored Procedure direkt im MSSQL Server arbeiten. Denke mal bei HANA gibt’s die SP auch, nur keine Ahnung ob das da so heißt, ich arbeite mit einer MSSQL Umgebung.
Denke mal dein Feld “Stammdaten geprüft” ist eine checkbox als UDF. Musst bloß in beiden Fällen, egal ob SP oder Coresuite on FormDataAdd beim Daten speichern unterscheiden ob es das Speichern/Update durch den späteren User ist, der dein Feld “Stammdaten geprüft” wieder auf ja setzt oder ob es eine Änderung eines Users ist, dessen Änderung du später validieren lassen willst.
0
Please sign in to leave a comment.
Comments
7 comments