[Gelöst] CONFIRM-Fenster unterdrücken

15. Juli 2011 10:08

Hallo,

ich benutze NAV 2009 und möchte per C/AL Code automatisch einen Beleg "Einlagerung" in "Registrierte Einlagerung" umwandeln.
Dazu rufe ich die entsprechende Codeunit (7306) auf, die auch aufgerufen wird, wenn man die Einlagerung manuell registrieren würde (Formular 5770, Menü "Registrieren -> Einlagerung registrieren).
Nun erscheint allerdings eine Abfrage (per CONFIRM-Fenster) ob ich die Einlagerung registrieren möchte.
Diese Abfrage soll bei der automatisierten Umwandlung natürlich nicht erscheinen.

Wie kann ich verhindern, dass das Fenster erscheint und die Aktion fortgesetzt wird, als hätte man den Button "Ja" angeklickt?

Vielen Dank im voraus für jede Antwort.
Zuletzt geändert von Ralf2 am 15. Juli 2011 12:08, insgesamt 1-mal geändert.

Re: CONFIRM-Fenster unterdrücken

15. Juli 2011 10:27

mit

Code:
IF GUIALLOWED THEN
  confirm;

Re: CONFIRM-Fenster unterdrücken

15. Juli 2011 10:46

Ich möchte ja gerade nicht, dass ein Confirm-Fenster erscheint. Da der Code im Trigger eines Clients abläuft, wird der Befehl Confirm nach der IF-Abfrage GUIALLOWED auf jeden Fall ausgeführt.

Re: CONFIRM-Fenster unterdrücken

15. Juli 2011 10:59

Erstell eine neue Funktion in der Codeunit z.B. SetHideConfirm. Dafür legst du dann eine globale Variable an "HideConfirm" die du in der Funktion auf den übergebenen Parameter setzt.

An der Stelle wo das Confirm aufgerufen wird, schreibst du dann in etwa sowas:
Code:
IF NOT HideConfirm THEN
  CONFIRM;


Ggf. mit einem ELSE-Teil, wenn ohne Confirm nicht direkt abgebrochen wird.

Re: CONFIRM-Fenster unterdrücken

15. Juli 2011 11:02

Ralf2 hat geschrieben:Ich möchte ja gerade nicht, dass ein Confirm-Fenster erscheint. Da der Code im Trigger eines Clients abläuft, wird der Befehl Confirm nach der IF-Abfrage GUIALLOWED auf jeden Fall ausgeführt.


Code:
IF GUIALLOWED THEN
  Confirm;


Heißt: Wenn Du ein Client bist, dann zeig mir das Confirm. Wenn Du NAS bist, dann nicht.

Re: CONFIRM-Fenster unterdrücken

15. Juli 2011 11:17

meto89 hat geschrieben:Erstell eine neue Funktion in der Codeunit z.B. SetHideConfirm. Dafür legst du dann eine globale Variable an "HideConfirm" die du in der Funktion auf den übergebenen Parameter setzt.

An der Stelle wo das Confirm aufgerufen wird, schreibst du dann in etwa sowas:
Code:
IF NOT HideConfirm THEN
  CONFIRM;


Ggf. mit einem ELSE-Teil, wenn ohne Confirm nicht direkt abgebrochen wird.


Wo kann ich denn dann die globale Variable initialisieren, dass standardmäßig das Confirm-Fenster aufgerufen werden soll?

Re: CONFIRM-Fenster unterdrücken

15. Juli 2011 12:06

OK, ich habe nun gelernt, dass Boolesche Variablen automatisch mit FALSE voreingestellt sind. Vielen Dank für die Hilfe.