[gelöst] RTC ENVIRON-Methode ist veraltet

2. April 2009 14:38

Hallo Leute,
bis gestern war die Welt noch in Ordnung. Aber seit heute bekomme ich beim Starten des RTC die Meldung,
das meine ENVIRON()-Methode veraltet sei.
Ich kann mich nicht erinner, irgendetwas am System verändert zu haben. (Patches, KB's) usw.
Hat irgenendwer eine Idee???????


Danke
LG Micha
Zuletzt geändert von Fido am 2. April 2009 15:19, insgesamt 1-mal geändert.

Re: RTC ENVIRON-Methode ist veraltet

2. April 2009 15:14

Schon mal in die Onlinehilfe geschaut?
ENVIRON ist ein Befehl im Quelltext, der im RTC nicht unterstützt wird.

ENVIRON wird allerdings bei euch in der DB - sei es durch einen Standardfehler oder eine Anpassung - aufgerufen.
Dass der Fehler ohne dein Zutun erstmalig auftritt, wird an einer bestimmten Datenkonstellation liegen - wenn garantiert niemand außer in dieser DB aktiv ist.

Man müsste sich also auf die Quelltextsuche nach dem ENVIRON begeben.
Vielleicht hilft hier der Debugger, ansonsten das Developers Toolkit.
Wenn gefunden, muss der Aufruf durch ISSERVICETIER abgefangen werden.

Re: RTC ENVIRON-Methode ist veraltet

2. April 2009 15:19

Hallo Natalie,
danke für deine INFO.
Es ist so wie du sagst, zwischenzeitlich wurde ein Anpassung in der CU 1 vorgenommen, in der eben diesen Umstand (ISSERVIETIER) nicht berücksichtigt wurde.
Gott sei Dank hab's ich noch bemerkt, bevor ich mit einem Supportfall bei MS für die Erheiterung des Tages gesorgt hätte.

MFG
Michael

Re: [gelöst] RTC ENVIRON-Methode ist veraltet

7. Mai 2009 14:52

Gibt es eine alternative Methode, mit welcher ich z. B. die Pfadangabe zum Temp-Ordner herausfinde?

Re: [gelöst] RTC ENVIRON-Methode ist veraltet

7. Mai 2009 14:59

Geht die gute alte wsh noch?

Re: [gelöst] RTC ENVIRON-Methode ist veraltet

3. Juli 2009 16:04

nachdem ich mich heute ziemlich viel mit sowas rumgeschlagen habe und dabei auch diesen thread gesehen habe.
ja die wsh geht noch, sofern du damit die automation "Windows Script Host Object Model" gemeint hast.

je nach aufgabe, kann man wohl alles was mit environ ging damit irgendwie auch herausfinden.

Re: [gelöst] RTC ENVIRON-Methode ist veraltet

8. April 2013 14:41

Statt Wsh geht es auch mit : TEMPORARYPATH (für ENVIRON('Temp'))

Re: [gelöst] RTC ENVIRON-Methode ist veraltet

15. März 2017 17:03

Ich klinke mich hier mal ein, da es um fast dasselbe Thema geht.

Bisher habe ich environ('computername') genutzt um den Rechnernamen auszulesen - wie lautet denn der Nachfolger für diese Methode?

Re: [gelöst] RTC ENVIRON-Methode ist veraltet

15. März 2017 17:54

Code:
  IF GUIALLOWED THEN
    EXIT(ClientEnvironment.MachineName)
  ELSE
    EXIT(ServerEnvironment.MachineName);


Code:
Name              DataType Subtype                                                                                          RunOnClient
ClientEnvironment DotNet   System.Environment.'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' Yes
ServerEnvironment DotNet   System.Environment.'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' No

Re: [gelöst] RTC ENVIRON-Methode ist veraltet

19. Oktober 2023 11:01

Als Ersatz für die anderen Parameter OS, TEMP, WINDIR von ENVIRON und weitere neue aus dieser Liste Environment.SpecialFolder Enum. CASE … OF nach Bedarf erweitern.
Code:
    PROCEDURE EnvironBC@1000000071(Environtext@1000000002 : Text) : Text;
    VAR
      ClientEnvironment@1000000000 : DotNet "'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.System.Environment" RUNONCLIENT;
      ServerEnvironment@1000000001 : DotNet "'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.System.Environment";
      ClientEnvironmentSpecialFolder@1000000003 : DotNet "'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.System.Environment+SpecialFolder" RUNONCLIENT;
      ServerEnvironmentSpecialFolder@1000000004 : DotNet "'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.System.Environment+SpecialFolder";
    BEGIN
      IF GUIALLOWED THEN BEGIN
        // RunOnClient = Yes
        CASE Environtext OF
        '',' ': EXIT('::=::');
        'OS': EXIT(FORMAT(ClientEnvironment.OSVersion.Platform));
        'OSVERSION': EXIT(FORMAT(ClientEnvironment.OSVersion));
        'TEMP': EXIT(ClientEnvironment.GetEnvironmentVariable('TEMP'));
        'WINDIR': EXIT(ClientEnvironment.GetFolderPath(ClientEnvironmentSpecialFolder.Windows));
        'SYSTEM': EXIT(ClientEnvironment.GetFolderPath(ClientEnvironmentSpecialFolder.System));
        'SYSTEMX86': EXIT(ClientEnvironment.GetFolderPath(ClientEnvironmentSpecialFolder.SystemX86));
        'SENDTO': EXIT(ClientEnvironment.GetFolderPath(ClientEnvironmentSpecialFolder.SendTo));
        ELSE
          EXIT('');
        END;
      END ELSE BEGIN
        // RunOnClient = No
        CASE Environtext OF
        '',' ': EXIT('::=::');
        'OS': EXIT(FORMAT(ServerEnvironment.OSVersion.Platform));
        'OSVERSION': EXIT(FORMAT(ServerEnvironment.OSVersion));
        'TEMP': EXIT(ServerEnvironment.GetEnvironmentVariable('TEMP'));
        'WINDIR': EXIT(ServerEnvironment.GetFolderPath(ServerEnvironmentSpecialFolder.Windows));
        'SYSTEM': EXIT(ServerEnvironment.GetFolderPath(ServerEnvironmentSpecialFolder.System));
        'SYSTEMX86': EXIT(ServerEnvironment.GetFolderPath(ServerEnvironmentSpecialFolder.SystemX86));
        'SENDTO': EXIT(ServerEnvironment.GetFolderPath(ServerEnvironmentSpecialFolder.SendTo));
        ELSE
          EXIT('');
        END;
      END
    END;