Benutzer-Werkzeuge

Webseiten-Werkzeuge


primus:bedingung

Dies ist eine alte Version des Dokuments!


Bedingung

Bedingungen werden für Primus Funktionen verwendet um z.B. bestimmte Menüeinträge nur unter bestimmten Bedingungen anzuzeigen oder zu aktivieren. Es gibt mehrere Möglichkeiten Bedingungen zu definieren.

Globale Bedingung definieren

Im Abschnitt Public können Bedingungen definiert werden um sie an anderer Stelle in der Konfiguration zu nutzen. Dadurch erhöht sich die Lesbarkeit der Konfiguration und es werden Fehler durch unterschiedliche Vergleiche vermieden.

Das tag heißt Condition, der Name der Bedingung ist das einzige Attribut, der Wert besteht aus einem oder mehreren Vergleichen. Mehrere Vergleiche können durch AND oder OR verknüpft werden. Dabei müssen die einzelnen Vergleiche in ' eingeschlossen werden.

Vergleichsoperator Funktion
== Gleich
=! Ungleich
Kleiner oder gleich
>= Größer oder gleich
< Kleiner als
> Größer als
~ Enthält
!~ Enthält nicht
<!--Eine Bedingung die prüft ob es sich bei dem aktuellen Dokument um eine Solid Edge Datei handelt-->
<Condition isSEDocument="'#(FILE_TYPE)==PAR' OR '#(FILE_TYPE)==ASM' OR '#(FILE_TYPE)==PSM' OR '#(FILE_TYPE)==DFT'" />

Direkt definieren

Eine Bedingung kann auch direkt in dem Parameter der TRUE oder FALSE erfordert, eingegeben werden. Beispiel:

<!--Prüfung ob der FILE_TYPE = PAR ist-->
<SAMPLE visible="'#(FILE_TYPE)==PAR'" />

Primus interne Bedingungen

Es gibt auch Bedingungen die in Primus intern bereits vordefiniert sind. Die Bedingungen geben immer TRUE oder FALSE zurück. Optional gibt es Parameter mit denen die Bedingung näher spezifiziert werden kann. Hier eine Liste der bisher bekannten:

Bedingung Parameter Erklärung
CheckFileLocalSite 0
1
CheckActiveLicenseType CAD Prüft ob Primus mit einer bestimmten Lizenz gestartet wurde
OFFICE
VIEWER
<LICFILENAME> Beliebiger Name einer Lizenzdatei, z.B. JobServer (ab Primus 2021)
ContainsListValue String|List Prüft ob in String einer der Einträge von List enthalten ist
IsActiveRegTab tabChildRefs Aktives Register , Beziehungen
IsCellForPaste
IsCtrlKey Abfrage ob die STRG-Taste gedrückt ist
IsDataForPaste Sind Einfügedaten in der Zwischenablage
IsElementsForCopyPaste
IsElementsForCopyPaste
IsElementsForPaste Kann in dieses Element eingefügt werden
IsJobServerEnabled Ist die Jobserverfunktion aktiv
IsJobServerHost Ist dies der Jobserver
IsListAllSubProjects Ist die Listeneinstellung „alle Unterprojekte auflisten“ aktiv
ISLPrimusAddIn.islGetInsertFolder
IsNodeTypeActive jobserver
recyclebin Ist der Papierkorb gewählt
stdparts Ist der Knoten Standard Parts gewählt
virtfolders Ist der gewählte Knoten ein virtueller Ordner
IsProjectActive Ist der aktiv gewählte Knoten „Project“
IsSearchServiceDBActive Ist der PrimusSearchService aktiv/erreichbar
LocalWorkMode0 Server Arbeitsweise aktiv
1 Lokale Arbeitsweise aktiv
2 Offline Arbeitsweise aktiv
PrimusSmartCopy.IsMarkTarget0 Ist ein Einfügeordner gesetzt
1 Ist ein Zielordner gesetzt
PrimusSmartCopy.IsSessionActive Ist eine SmartCopy Session aktiv
PrimusSmartCopy.IsSmartCopySessionActive Ist eine SmartCopy Sitzung aktiv
Workflow.newversioncond

Bedingung in einem Attribut nutzen

Die Bedingung wird aufgerufen mit 'CALL(<Bedingung>)'

Beispiel:

 <SAMPLE visible="'CALL(IsCtrlKey)'" />

Ausnahme

$(Workflow.newversioncond)

Funktionen mit Rückgabewerten

Es gibt auch die Möglichkeit eine Funktion aufzurufen die als Rückgabewert TRUE oder FALSE zurück liefert. Können oder müssen mehrere Werte angeben werden so sind diese mit dem entsprechenden Trennzeichen zu trennen. Im Attribut parameter ist dies ein |.

Funktion Attribute Funktion
CheckChildrenStatusconditionEine Bedingung die prüft ob diese Datei geprüft werden soll. Siehe PreCalls
parameter 1Pfad zur Datei, z.B. %FILEPATH%
2Feld dessen Wert verglichen werden soll, z.B. WorkflowStatus
3Vergleichswert für den Feldinhalt, mehrere mögliche Werte werden durch einen . voneinander getrennt, z.B. .003.004.
CheckParentsStatus conditionEine Bedingung die prüft ob diese Datei geprüft werden soll. Siehe PreCalls
parameter 1Pfad zur Datei, z.B. %FILEPATH%
2 Feld dessen Wert verglichen werden soll, z.B. WorkflowStatus
3 Vergleichswert für den Feldinhalt, mehrere mögliche Werte werden durch einen . voneinander getrennt, z.B. .003.004.
4 Bedingung die das zu prüfende Dokument erfüllen muß, z.B. eine bestimmte Dateiendung
5 Text der im Fehlerfall angezeigt werden soll. Es kann ein interfacetext eingetragen werden
IgnoreStatus conditionEine Bedingung die prüft ob diese Datei geprüft werden soll. Siehe PreCalls
parameter 1Pfad zur Datei, z.B. %FILEPATH%
2Feld dessen Wert verglichen werden soll, z.B. WorkflowStatus
3Vergleichswert für den Feldinhalt, mehrere mögliche Werte werden durch einen . voneinander getrennt, z.B. .003.004.

AND / OR Verknüpfung

Bedingungen können mittels AND und OR miteinander verknüpft werden. Dabei gilt die Regel AND vor OR, ähnlich wie Punkt- vor Strichrechnung in der Mathematik. Es ist aber auch möglich die Vergleiche in Klammern zu setzen, diese Klammern kommen in der Reihenfolge zuerst.

('%EXTENSION%==.par'OR'%EXTENSION%==.asm')AND'#(Title)==''

Es wird zuerst verglichen ob es eine .par oder .asm handelt, und ob der Title leer ist.

Verschachtelte Verknüpfungen

Bei Verschachtelten Verknüpfungen kann es evtl. notwendig sein mit Klammern zu arbeiten.

Beispiel

<ReservationCall condition="($(Condition.isSEDocument))AND'#(WorkflowStatus)!=003'"
<-- Definition der Bedingung -->
<Condition isSEDocument="'#(FILE_TYPE)==PAR' OR '#(FILE_TYPE)==ASM' OR '#(FILE_TYPE)==PSM' OR '#(FILE_TYPE)==DFT' OR '#(FILE_TYPE)==PWD'" />

Für die Verarbeitung werden von Primus intern die Bedingungen in ihre Strings aufgelöst, was dann so aussieht:

<ReservationCall condition="('#(FILE_TYPE)==PAR' OR '#(FILE_TYPE)==ASM' OR '#(FILE_TYPE)==PSM' OR '#(FILE_TYPE)==DFT' OR '#(FILE_TYPE)==PWD')AND'#(WorkflowStatus)!=003'"

Ohne die zusätzliche Klammer um die Bedingung $(Condition.isSEDocument) würde lediglich AND vor OR gelten, was letzlich dann auf

... OR'#(FILE_TYPE)==PWD'AND'#(WorkflowStatus)!=003'

Die UND Bedingung wäre also nur bei PWDs erfüllt worden, bei keinem anderen Dateityp.

Ausnahme bei Call

Werden Bedingungen mittels call abgefragt, dann ist die Verwendung von Klammern nicht möglich. In dem Fall muss „ausgeklammert“ werden:

'CALL(IsNodeTypeActive stdparts)'AND'$(Condition.isCADLic)' OR 'CALL(IsProjectActive)'AND'$(Condition.isCADLic)'

Bedingte Wertzuweisung in Parametern

Es ist möglich in Attributen die Paramter einzelner Funktionen sind, Werte mithilfe von Bedingungen zu definieren. Dies ist z.B. bei der Definition von Dateinamen wichtig. Die Bedingungen hat folgenden allgemeinen Aufbau IF('<WERT><VERGLEICHSOPERATOR><VERGLEICHSWERT'?<TRUE FALL>:<FALSE FALL>)

Beispiele

<!-- Wenn das FileNamePrefix leer ist, dann nimm den Counter, sonst nichts.
Wenn die Revision nicht leer ist, dann nimm - mit Revision dahinter, sonst nichts. -->
<Kommando filename_format="#(FileNamePrefix)IF('#(FileNamePrefix)=='?#(FileNameSuffix)%COUNTER%:)IF('%REVISION%!='?-%REVISION%:)" />
<!-- Macht ein Feld im Datenblatt beschreibbar (W), wenn der Benutzer Admin ist, sonst nur lesbar (R) -->
<DataSheet_Feld mode_singlesel="IF('$(Condition.isAdmin)'?W:R)" />

Liste der unterstützten Parameter

Die Auswertung von IF erfolgt nicht in allen Parametern, die Liste ist Möglicherweise noch unvollständig.

Parameter Verwendung
mode_singlesel Data Sheets
parameter Diverse Befehle
filename_format NewFileNameDialog
primus/bedingung.1659713318.txt.gz · Zuletzt geändert: (Externe Bearbeitung)