[gelöst] Automation Rückgabewert NULL

18. Januar 2010 16:20

Hallo zusammen,

ich habe aktuell das Problem, mit dem Rückgabewert NULL. Der Rückgabewert dieser Automation ist wieder eine andere Automation oder NULL. Es kann also vorkommen (und dieser Fall kommt regelmäßig vor), dass die Funktion den Wert NULL zurückgibt.

Im Programmcode arbeite ich nun weiter mit der Automation, die von der Funktion zurückgegeben wird. Allerdings geht dies nicht, wenn der Rückgabewert NULL ist.

Navision erzeugt dann eine Fehlermeldung, die besagt, dass für die Automation keine Instanz erstellt wurde.
Die Abfrage mit
Code:
ISCLEAR(DETAILAUTOMATION)

liefert aber false zurück, egal ob Inhalt zurückgegeben wurde oder nicht.

Hier noch der Programmcode, wie es momentan umgesetzt ist:

Code:
Create(AUTOMATION);
...
DETAILAUTOMATION := AUTOMATION.Details;         // Hier kann der Rückgabe Wert NULL vorkommen
if not ISCLEAR(DETAILAUTOMATION) then
  Text := DETAILAUTOMATION.AsString;            // Werden Details gefunden ist alles wunderbar; Fehler aber bei Rückgabe NULL
...
Zuletzt geändert von NAVguru am 19. Januar 2010 11:14, insgesamt 1-mal geändert.

Re: Automation Rückgabewert NULL

18. Januar 2010 17:29

mmhh ich waere mir nich sicher ob das "false" immer richtig ist,
versuche doch mal folgendes:

Code:
Create(AUTOMATION);
...
DETAILAUTOMATION := AUTOMATION.Details;         // Hier kann der Rückgabe Wert NULL vorkommen
if not ISCLEAR(DETAILAUTOMATION) then
  Text := DETAILAUTOMATION.AsString            // Werden Details gefunden ist alles wunderbar; Fehler aber bei Rückgabe NULL
ELSE
  CREATE(DETAILAUTOMATION);

...


wenn der Wert dann nicht ordentlich gesetzt ist, sollte man das doch umgehen können oder?

Re: Automation Rückgabewert NULL

19. Januar 2010 10:59

Ich habs jetzt auf die Schnelle nicht getestet, aber vielleicht ist in dem Zusammenhang auch eine Änderung deiner Methode sinnvoll:

Code:
CREATE(AUTOMATION);
...
IF NOT AUTOMATION.GetDetails(DETAILAUTOMATION) THEN
  ERROR('Fehler!');
...


Der Parameter an GetDetails() wäre hier vom Typ ByRef/ref/VAR.

Re: Automation Rückgabewert NULL

19. Januar 2010 11:14

Hallo,

Sorry, der Fehler lag wo anders.

Wenn die Methode "NULL" liefert, dann ist
Code:
ISCLEAR(DETAILAUTOMATION)
TRUE.

Trotzdem vielen Dank für Eure Hilfe.

Viele Grüße
Volker