Dialog NAs

26. Februar 2009 14:12

Hallo,

folgendes Problem.

Wir haben bei einer Firma NAS laufen der eine Codeunit aufruft. Das Problem dabei ist, dass dieser Dialoge beinhaltet.
Im Code sieht es so aus:

Code:

  gfiResultLog.CREATE(gtWorkFileLog);
  gfiResultLog.OPEN(gtWorkFileLog);
  gfiResultLog.TEXTMODE(TRUE);



Gibt es eine Möglichkeit, das Open und Close anders aufzurufen, bzw. wenn ich diese Codunit über eine andere ausführe, kann es dann funktionieren.
Wenn ich z.B. sage

Code:
OnRun(VAR Rec : Record "Job Queue Entry")
CODEUNIT.RUN(50005);


wäre so das Problem mit den Dialogen umgangen?

Danke schon mal im Vorraus.

LG

Re: Dialog NAs

26. Februar 2009 14:35

welcher Variablen Typ ist gfiResultLog?

Re: Dialog NAs

26. Februar 2009 14:40

global File!

Re: Dialog NAs

26. Februar 2009 14:58

Hallo rom,

ich kann in deinem Beispielcode keinen Dialog entdecken :?: :?: . Wenn du Formulare o.ä. vom NAS aufrufst musst du das mit GUIALLOWED abfangen. Das betrifft nicht nur die Codeunit die der NAS aufruft, sondern alle Objekte, die durch den Aufruf des NAS betroffen sind.

Gruß, Fiddi

Re: Dialog NAs

26. Februar 2009 14:59

Hallo,

ist denn das gfiResultLog.Open kein Dialog?

Re: Dialog NAs

26. Februar 2009 15:02

Hallo rom,

NEIN.

Gruß, Fiddi

Re: Dialog NAs

26. Februar 2009 15:08

OK,

Super Danke schon mal für die rasche antwort. Gibt es eine Möglichkeit den Dialog im Quellcode zu identifizieren.?

Re: Dialog NAs

26. Februar 2009 15:18

kannst ja nach CONFIRMs suchen und nach alle Dialog-Variablennamen, die im Objekt deklariert sind.

Re: Dialog NAs

26. Februar 2009 15:21

ich habe werder Confirms, noch message oder andere Variablen vom Typ DIALOG im Quellcode. Wenn ich den CU so aufrufe, kommt allerdings ein statusfenster, welches wahrscheinlich den Fehler verursacht. Nur kann ich diese Fenster in der CU nicht identifizieren.

Re: Dialog NAs

26. Februar 2009 15:28

Hallo rom,

da hilft nur der Debugger :!:. Der Dialog muss nicht unbedingt in der vom NAS aufgerufenen CU sein. Es kann auch sein, das die der Dialog in einem Objekt befindet, das von deiner CU aufgerufen wird (im Zweifelsfall durch ein Validate).

Gruß, Fiddi

Re: Dialog NAs

1. März 2009 00:00

fiddi hat geschrieben:da hilft nur der Debugger :!:. Der Dialog muss nicht unbedingt in der vom NAS aufgerufenen CU sein. Es kann auch sein, das die der Dialog in einem Objekt befindet, das von deiner CU aufgerufen wird

Hallo rom,

wie fiddi schon sagte, solltest du mit dem Debugger die Stelle im Quellcode lokalisieren. Nach meiner Erfahrung solltest du durch die gesetzten Breakpoints den ausführbaren Quellcode zuerst auf die größeren und dann immer auf die kleineren Blöcke aufteilen. Die Ursache kann so tief liegen, dass diese sich durch das einfachen Debuggen sehr schwer zu lokalisieren lässt bzw. der Überblick im Quellcode schnell verloren geht.

Gruß, Michael

Re: Dialog NAs

2. März 2009 09:25

Hallo rom,

wird der NAS neu gestartet, wenn der Dialog angezeigt wird? (Du siehst das u.U. in der Ereignisanzeige) Falls ja reicht es vielleicht nur den Debugger einzuschalten (ohne Break on Triggers). Der Debugger hat nämlich die angenehme Eigenschaft bei einem Fehler - meistens :wink: - an die Stelle im Code zu springen, die den Fehler verursacht hat, wenn er aktiviert ist. Das heißt wenn der NAS mit debug gestartet wurde, nach dem Start des Debuggers 'Break on Triggers' ausschalten, und mit F5 das Programm weiterlaufen zu lassen.

Gruß, Fiddi

Re: Dialog NAs

2. März 2009 09:32

rom hat geschrieben:ich habe werder Confirms, noch message oder andere Variablen vom Typ DIALOG im Quellcode. Wenn ich den CU so aufrufe, kommt allerdings ein statusfenster, welches wahrscheinlich den Fehler verursacht. Nur kann ich diese Fenster in der CU nicht identifizieren.


Ich würde statt des Debuggers zunächst mit Code Coverage mitloggen, welche Objekte insgesamt betroffen sind und dann in den Codezeilen nach Dialogen suchen. CONFIRMs und MESSAGEs brauchst du nicht suchen, wenn es ein Statusdialog ist. Und wenn du nichts findest, dann ist es wahrscheinlich ein NAV-Statusdialog, denn der Client selbständig anzeigt, weil die Transaktion zu lange dauert. Ein solcher Dialog sollte auch den NAS nicht stören.

Wenn es so ist, dann solltest du im Ereignisprotokoll nach der entsprechenden Fehlermeldung suchen.

Beste Grüße
Falk