Triggercode wird nicht ausgeführt bei Aufruf mit Shortcut

17. März 2016 15:33

Hallo an alle,

ich bin zwar schon bei Fragen meinerseits seit einigen Jahren hier im Forum unterwegs, habe mich aber noch nie angemeldet. Nun brauch ich doch mal eure Hilfe zu einem Thema.

Ist-Zustand: In einer Page rufe ich über die Actions Items eine weitere Page auf (Sales Prices). Bevor die Verkaufspreise angezeigt werden, soll mit einer Funktion überprüft werden ob die Preise anhand vom Start- und Enddatum sowie Verkaufpreis überhaupt genutzt werden dürfen (Boolean Feld "Inaktive").

Im Aufrufer für die Page Sales Prices (OnAction) sowie alternative im OnOpenPage der Page Sales Prices rufe ich eine Funktion über die Tabelle Sales Price auf und starte somit die Prüfung und setze (sofern der Preis nicht mehr aktiv sein soll) das Feld "Inaktiv" und modifiziere den Datensatz.

Das alles funktioniert einwandfrei. Doch den Aufrufer der Page Sales Prices kann ich entweder über das Menüband oder mit einem Shortcut aufrufen. Sofern ich die Aktion mit dem Shortcut aufrufe, wird meine Prüffunktion nicht aufgerufen. Selbst im Debugger und gesetztem Breakpoint wird die Funktion nicht durchlaufen. Erst bei Aufruf der Page über das Menüband (Mausklick) wird die Funktion ordnungsgemäß aufgerufen.

Ich bezweifele das es hier an einer Einstellung liegt sondern eher an einem Bug. Wisst ihr zufällig ob es hierfür einen Hotfix von Microsoft gibt und oder ob das Problem überhaupt bekannt ist?


Auf Antworten von euch würde ich mich sehr freuen.

MFG

Daniel Bleisteiner

Re: Triggercode wird nicht ausgeführt bei Aufruf mit Shortcu

17. März 2016 15:49

Hallo,

hast du dir schon mal die Funktion "Preis abrufen.." im Menü "Funktionen" der Verkaufsauftragszeilen angeschaut?


Gruß Fiddi

Re: Triggercode wird nicht ausgeführt bei Aufruf mit Shortcu

17. März 2016 15:56

Hallo Fiddi,

erstmal vielen Dank für deine Antwort. Die Funktion war mir bisher nicht bekannt. Habe sie mir gerade angesehen. Doch der Aufrufer aus der SubPage ruft zwar eine lokale Funktion auf die wiederum eine Funktion in einer Management Codeunit aufruft aber der Aufrufer selber in der Subform besitzt keinen Shortcut.

MFG
Daniel Bleisteiner

Re: Triggercode wird nicht ausgeführt bei Aufruf mit Shortcu

17. März 2016 16:10

der Aufrufer selber in der Subform besitzt keinen Shortcut.


das kannst du über den Development-Client in de PageActions der Subform nachholen, sofern du es denn darfst.

Ansonsten würde ich die Finger von irgendwelchen Flags für Inaktiv in den SalesPrices lassen, das bringt nur das Systen durcheinander. Man kann das auch durch zwei einfache Filter auf der Page bewerkstelligen. "Startdatum = ..Prüfdatum" und "Enddatum = <=Prüfdatum|''" Wobei das Prüfdatum bei einem Auftrag das Auftragsdatum ist.

Gruß Fiddi

Re: Triggercode wird nicht ausgeführt bei Aufruf mit Shortcu

17. März 2016 16:25

Hallo Fiddi,

ich glaub ich habe mich in meinem ersten Post ein bisschen unkonkret ausgedrückt.

Wir haben für einen Kunden in der Tabelle Sales Price ein Boolean "Inaktive" eingebaut. Dieses Feld wurde im "Sekundären"-Schlüssel berücksichtigt. Somit stehen alle Datensätze mit dem Flag Inaktive FALSE ganz unten (Sortierung). Der Kunde wollte einfach die erlauben oder noch gültigen Preise als erstes sehen. Die Funktionalität ansich funktioniert einwandfrei.

Der Fehler liegt nur beim Aufrufer. Bevor die Page aufgerufen wird, wird nämlich geprüft ob aktuelle Preise durch das Datum ungültig geworden sind. Sofern das der Fall ist, setzen wir das Flag und der Kunde hat eine aktualisierte Ansicht der Preise. Das Flag wird sogar in der Tabelle gespeichert und modifiziert. Das Problem ist jetzt das, dass die Prüffunktion, die als erstes im OnAction Triggercode der Action Items stand und nun im OnOpenPage der Preisepage, nicht ordnungsgemäß aufgerufen wird, wenn das ActionItem mit dem hinterlegten Shortcut aufgerufen wird. Bei dem Aufruf direkt über das Menüband (daher mit der Maus) wird die Funktion richtig durchlaufen.

In meinen Augen ist das ein Bug im Navision Build des Clients. Den egal ob der Aufrufer mit dem hinterlegten Shortcut oder direkt per Mausklick aufgerufen wird, sollte der OnClick Triggercode des Action Item bzw. der OnOpenPage Trigger der Page aufgerufen werden. Das passiert aber nicht über den Shortcut.

Ich hoffe ich konnte es dir nochmal genauer erklären.

Vielen Dank im Vorraus.

MFG

Daniel Bleisteiner

Re: Triggercode wird nicht ausgeführt bei Aufruf mit Shortcu

17. März 2016 16:32

Hallo Daniel,

kann es sein, das es sich dabei um eine konvertierte Form aus dem CC handelt, und vergessen wurde die Action vom Kopf in die Zeilen zu verschieben?
Oder ist es passiert, und der Shortcut ist doppelt und ruft eine andere Action auf, als die, die du mit der Maus anklickst? :wink:

Gruß Fiddi

Re: Triggercode wird nicht ausgeführt bei Aufruf mit Shortcu

17. März 2016 17:01

Hallo,

also es geht hierbei um 2 Pages (1. Page = Standard Navision Page 7002 Sales Prices | 2. Page = Firmeninterne Page die Einkaufs sowie Verkaufspreise jeweils als Subform enthält). Die Prüffunktion wurde somit in eine Standard Page sowie in eine selbst erstellte bzw. aus CC konvertierte Page (Form zu Page) eingefügt.

Die Prüffunktion steht nun im OnOpenForm der 2 Pages weil diese von verschiedenen Stellen aufgerufen werden können:
* Artikelliste
* Artikelkarte
* sowie weitere Pages die wir selbst für den Kunden programmiert haben.


Ich habe gerade alle Pages die den Aufrufer haben als .txt exportiert und überprüft ob der Shortcut mehrmals verwendet wird. Das ist nicht der Fall.

In der Artikelliste sowie Artikelkarte ist der Aufrufer als Action Item im Menüband definiert.
In den anderen Pages auch, da es sich hierbei um temporäre Records handelt. Jeder temporäre Datensatz in diesen Pages bezieht sich auf einen bestimmten Artikel. Daher steht hier der Aufrufer auch als Action Item im Menüband. Es ist kein Zeilenaufrufer (Subform) vorgesehen.


Also wie du merkst ist es sehr verwirrend warum mit Shortcut die Trigger nicht ausgeführt werden.

MFG

Daniel

Re: Triggercode wird nicht ausgeführt bei Aufruf mit Shortcu

17. März 2016 20:05

Du hast nicht geschrieben welche Version von NAV du nutzt. Habe mal in NAV 2013 R2 (Build 38455) getestet. Beim Aufruf von Page Actions über Mausklick oder Shortcut Tastenkombination wird jeweils der OnAction Trigger korrekt durchlaufen. Es ist kein genereller Bug. Wenn du aber einen alten Stand von NAV 2013 oder NAV 2013 R2 nutzt dann könnte das natürlich damals ein Bug gewesen sein.

Re: Triggercode wird nicht ausgeführt bei Aufruf mit Shortcu

18. März 2016 10:35

enh hat geschrieben:Du hast nicht geschrieben welche Version von NAV du nutzt. Habe mal in NAV 2013 R2 (Build 38455) getestet. Beim Aufruf von Page Actions über Mausklick oder Shortcut Tastenkombination wird jeweils der OnAction Trigger korrekt durchlaufen. Es ist kein genereller Bug. Wenn du aber einen alten Stand von NAV 2013 oder NAV 2013 R2 nutzt dann könnte das natürlich damals ein Bug gewesen sein.


Hallo enh,

da hast du recht. Bei unserem Kunden nutzen wir aktuell noch die Version NAV 2013 mit dem Build 7.0.34688.0 (nicht R2).

Im Internet oder bei MSDN direkt finde ich leider nichts zu meinem Problem was ein Hotfix oder Rollup beheben könnte.

Vielleicht hat noch jemand anderes eine Idee. Bis dahin werde ich trotzdem versuchen das Problem zu lösen.

Vielen Dank bisher.

MFG

Daniel