Seite 1 von 1

[gelöst] RTC ENVIRON-Methode ist veraltet

Verfasst: 2. April 2009 14:38
von Fido
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

Re: RTC ENVIRON-Methode ist veraltet

Verfasst: 2. April 2009 15:14
von Natalie
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

Verfasst: 2. April 2009 15:19
von Fido
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

Verfasst: 7. Mai 2009 14:52
von Timo Lässer
Gibt es eine alternative Methode, mit welcher ich z. B. die Pfadangabe zum Temp-Ordner herausfinde?

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

Verfasst: 7. Mai 2009 14:59
von McClane
Geht die gute alte wsh noch?

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

Verfasst: 3. Juli 2009 16:04
von dr
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

Verfasst: 8. April 2013 14:41
von Kowa
Statt Wsh geht es auch mit : TEMPORARYPATH (für ENVIRON('Temp'))

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

Verfasst: 15. März 2017 17:03
von FlensGold
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

Verfasst: 15. März 2017 17:54
von Timo Lässer
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

Verfasst: 19. Oktober 2023 11:01
von Kowa
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;