Das Wissen aller Anwender nutzen

Im Allplan Connect Forum tauschen sich Anwender aus, geben wertvolle Tipps oder beraten sich bei ganz konkreten Aufgabenstellungen − auch international.
Und damit wirklich keine Frage unbeantwortet bleibt, unterstützen die Mitarbeiter des Technischen Supports ebenfalls aktiv das Forum.

Es erwarten Sie:

  • Foren-Vielfalt aus CAD Architektur, CAD Ingenieurbau uvm.
  • Tipps von User für User
  • international: Deutsch, Englisch, Italienisch, Französisch und Tschechisch

Melden Sie sich jetzt an und diskutieren Sie mit!

Zur Registrierung

[Frage] VBScript läuft im Netzwerk nicht

Schlagworte:
  • Allplan 2021-0-4

Hallo zusammen,

auf meiner "Entdeckungsreise" durch die VBScripts bin ich jetzt an folgendem Punkt: Ich habe ein Script geschrieben, das mir bestimmte Bauteile beschriftet. Auf meinem Rechner läuft das anstandslos, alles wunderbar. Sobald ich damit in das Netzwerk gehe, läuft es auf mehreren Rechnern nicht. Folgendes habe ich gemacht/geprüft:

- die aktualisierte Functions.vbs ist in den Bürostandard im Netz einkopiert
- das zugehörige Beschriftungsbild ist ebenfalls in einem Projekt im Büro vorhanden
- Beim Beschriften wird allerdings keinerlei Inhalt generiert

Zur Fehlersuche habe ich mich erst einmal auf einen Rechner im Netzwerk konzentriert, bei dem
- Nach Prüfung der Registry der Verweis auf die Functions.VBS korrekte Pfadangaben enthält
- Ein Blick ins Logfile zeigt beim Aufruf der Beschriftung keinerlei Fehlermeldung
- Nach Aussage unseres SystemAdmins werden VBScripte nicht domänenweit blockiert

Woran könnte es liegen? Ich habe auch eine Supportanfrage laufen, aber vielleicht hat von euch jemand eine schlaue "Richtungs-"Idee?

Viele Grüße
Jochen

1 - 10 (12)

Bei der Fehlersuche würde ich mich auf das Script und dessen Inhalt konzentrieren.

Als einfacher Test, ob das Script überhaupt ausgeführt wird, sollte man einen kontanten Wert (String) zurückgeben.
Man kann auch zunächst das mit Allplan installierte Script testen. Das sollte in jedem Fall eine Ausgabe produzieren.
So kann man schon mal Syntaxfehler ausschliessen, die das Script beim Laden blockiert.

Meine Erfahrung ist, das die Ergebnisse (oder eben auch keine Ergebnisse) auch vom Rechner und der Stelle im Speicher, wo das Script geladen wird, abhängen. Gerade wenn Strings manipuliert werden, ist es scheinbar wichtig, dass der Speicher für den Rückgabewert
mit 0x00 initialisiert ist. Sonst werden Strings nicht korrekt zurückgegeben.

Syntax-Fehler kann man mit dem Script-Tester aufspüren.

Hier und hier sind Hinweise für die Funktionen in der functions.vbs zu finden.

Leider gibt es keine ausführliche Dokumentation seitens Allplan, und auch keine Debugging-Möglichkeit
für solche durchaus brauchbaren Funktionen. Da auch die Formel-Attribute vbs.Script-Funktionen unterstützen,
sehe ich hier dringend Nachhol-Bedarf!
@Allplan:
Bitte die Dokumentation und die Debugging-Möglichkeiten (Ausgabe im Trace) unbedingt verbessern.
Auch wenn man evtl. über Python als zusätzliche Script-Sprache nachdenkt, sind das essentielle Voraussetzungen für
Programmierung und Testung der Script-Funktionen.

Hallo Nemo,

das habe ich schon gemacht. Auf meinem lokalen Rechner läuft das Script, es ist also erstmal kein Fehler in der Programmierung. Um den generellen Aufruf zu testen habe ich eine kurze Test-VBS geschrieben, die tatsächlich nur einen "harten" Stringwert zurück gibt. Ergebnis ist das gleiche, auf meinem Rechner gehts, auf den anderen Rechnern nicht. Und zwar mittlerweile in 2020 und in 2021 getestet.

Ich vermute, dass aus welchem Grund auch immer das VBScript gar nicht erst ausgeführt wird. Die Frage ist jetzt: Liegts an Allplan (irgendein Registrierungswert o.ä.) oder liegts am System.

Viele Grüße
JOchen

..bei unserem System (auch Workgroup mit dediziertem Server) läuft so ein Script, welches ja im STD-Verzeichnis auf dem Server liegt.

Möglicherweise ist eine Virenschutz-Lösung für die Blockierung eines VB-Scriptes verantwortlich.
Ausserdem gibt es m.E. Möglichkeiten in den Schutzfunktionen des Betriebssystems/Internet-Explorers die Ausführung von Scripten generell (also nicht nur in Webseiten) zu verbieten oder einen Freigabedialog vorher anzuzeigen. Letzteres wird Allplan beim Ausführen des vbs-Scripts möglicherweise hindern.

Der "lokale Rechner", wo es anscheinend fehlerfrei läuft, ist nicht mit der Workgroup verbunden, hat also eine "Stand-allone-Installation" von Allplan?

Wichtig erscheint mit noch der Hinweis, dass nach jeglichen Änderungen an der functions.vbs Allplan neu gestartet werden sollte.

Wie konkret wurde das Funktionieren getestet?
Durch ein Beschriftungsbild, welches in der Formel die Funktion aufruft, und welches dann mit "Beschriftung aktualisieren" refresht wird?

Hallo Nemo,

das Script ist auf einem ausgecheckten Rechner der Workgroup geschrieben worden. Getestet habe ich sowohl ausgecheckt als auch eingecheckt, und zwar per Beschriftungsbild. Beide Varianten laufen, daher würde ich Zugriffsrechte auf die Functions.vbs im STD-Ordner erstmal ausschließen.

Die entsprechende Functions.vbs liegt im STD-Ordner und enthält nach Prüfung auch die fragliche Funktion. Außerdem habe ich gerade die Sicherheitseinstellungen auf dem funktionierenden Rechner mit dem nicht funktionierenden Rechner verglichen, die sind identisch. Der Virenscanner zeigt im LOG auch nichts an, und wenn ich ihn abschalte ändert sich auch nichts.

Es (das Script) hat also schon mal auf dem Workgroup-Server funktioniert.
Das war der Beschreibung so nicht zu entnehmen, und der Titel des Beitrages suggeriert auch etwas anderes!

Dann sollte man nicht nachlassen, die Unterschiede der beiden Rechner in der Workgroup zu untersuchen.
Möglicherweise liegt es auch gar nicht an dem Rechner, sondern an den Daten!
Ist wirklich sichergestellt, dass die Attribute in dem Test-Projekt vorhanden sind.
Auch der Benutzer (und seine Rechte) können eine Rolle spielen.

Und ist evtl. auf einem Rechner Excel nicht, oder in einer anderen Version installiert?

Das Script wird in einem extra Thread ausgeführt. Dieser muss auch das Script vom Server "laden".
Eventuell ist die Antwortzeit des Servers zu lang, sodass die Abfrage, ob eine solche Funktion im Script exisitert, zu lange braucht!

So, nach intensiver Prüfung habe ich in der Workgroup exakt 1 Rechner gefunden (neben meinem Laptop) auf dem das Script läuft. Also läuft es theoretisch grundsätzlich auch im Netzwerk. Ich setz jetzt meinen IT-Menschen darauf an, ich kann den Unterschied zwischen den Maschinen nicht entdecken. Ich werde berichten....

Hast Du schonmal geschaut, ob der Eintrag in der Registrierung richtig ist; Pfadname korrekt, vielleicht gemappte Laufwerke ???

Gruß Ralph

Hallo Ralph,

danke für den Input. Ja, die Pfadangaben in der Registry sind geprüft und stimmen. Ich stehe aktuell im Kontakt mit dem Support um das Thema aufzuklären. Ich werde berichten....

Gruß
Jochen

Hallo Jochen,

gibt es hier neue Erkenntnisse? Habe nämlich das gleiche Problem mit einem Rechner. Dutzend andere laufen problemlos.

Freundliche Grüße

1 - 10 (12)