Onshape bietet generische Workflows für das Release-Management, die Sie sofort verwenden können. Dieser Prozess wird beschrieben in Typischer Release-Workflow. Zusätzlich zu diesem generischen Workflow bietet Ihnen Onshape die Möglichkeit, Ihren eigenen benutzerdefinierten Release-Management-Workflow zu entwerfen und zu erstellen und diesen Workflow dann für Ihr gesamtes Unternehmen zur Verwendung zu veröffentlichen. Sie können sogar mehrere Workflows erstellen, um spezifische Anforderungen an das Release-Management in Ihrem Unternehmen abzudecken.

Um auf diese Funktion zugreifen zu können, müssen Sie als Administrator für Ihr Onshape-Enterprise definiert sein.

Onshape bietet zahlreiche Optionen, die das Verhalten des Freigabe-Managements festlegen. Abhängig von Ihren Geschäftsprozessen können diese Einstellungen z. B. als Standardregeln für das Verhalten von Freigaben definiert werden. Sie können die Bedingungen für die Freigabe festlegen und welcher Revisionsplan verwendet werden kann. Diese Optionen können über die Seite „Freigabe-Management“ der Company/Enterprise-Einstellungen in Ihrem Onshape-Abonnement festgelegt werden.

Wenn in einer Company mehrere Freigabe-Prozesse implementiert werden, können für verschiedene Prozesse oft unterschiedliche Freigabe-Einstellungen erforderlich sein. Die Standardeinstellungen, die auf der Einstellungen-Seite für das Freigabe-Management definiert sind, können bei jedem Freigabe-Prozess durch die Implementierung benutzerdefinierter Freigabe-Prozesse oder auf Basis einzelner Prozesse überschrieben werden.

Im Folgenden erfahren Sie, wie Sie Ihre eigenen benutzerdefinierten Freigabe-Management-Workflows erstellen und diese in Onshape implementieren können.

Was ist bei der Erstellung eines benutzerdefinierten Workflows zu beachten?

Im Wesentlichen verwendet Onshape eine JSON-Datei, um das Layout und das Verhalten des Workflows sowohl für Freigabe- als auch für Obsoletions-Workflows zu definieren.

  1. Die Onshape-JSON-Basisdatei herunterladen
  2. Datei gemäß der in diesem Thema angegebenen JSON-Syntax anpassen
  3. Die benutzerdefinierte JSON-Datei zurück in ein Onshape-Dokument hochladen
  4. Den angepassten Workflow für Ihre Organisation veröffentlichen

Diese Schritte werden im Folgenden ausführlich erläutert.

JSON-Datei herunterladen

Eine JSON-Basisdatei können Sie in der Onshape-Domain Ihrer Company finden:

  1. Melden Sie sich bei Ihrem Onshape-Konto an.
  2. Navigieren Sie zur Seite „Company/Enterprise-Einstellungen > Freigabe-Management“.
  3. Wählen Sie unter der Überschrift „Workflows“ die Art des Workflows aus, den Sie erstellen möchten: Freigabe-Workflow oder Obsoletions-Workflow.
  4. Wählen Sie „Onshape-Standard ...“ in der Dropdown-Liste aus.
  5. Klicken Sie auf den Link In Dokument anzeigen neben der Dropdown-Liste:

Beispiel für das Einrichten und Aktivieren verwalteter Workflows

Da es sich bei dem JSON-Dateiformat um ein Textformat handelt, ist es einerseits einfach zu verstehen, andererseits kann es aber auch recht komplex werden, insbesondere da unsere Workflows immer komplexer werden. Onshape wird Sie zwar über einige Fehler in der Syntax und Formatierung des Dokuments informieren, aber die Vorwarnungen bieten keine umfassende Sicherheit. Viele Optionen sind zwar zulässig, können aber dennoch zum Scheitern Ihres Workflows führen.

Detaillierte Anleitungen zum Einrichten und Verwenden mehrerer Onshape-Workflows finden Sie unter Benutzerdefinierten Freigabe-Workflow erstellen.

Passen Sie die JSON-Datei an Ihre organisatorischen Bedürfnisse an

Zuerst wollen wir klären, was JSON ist. JSON steht für JavaScript Object Notation. Es ist ein leichtgewichtiges Format zum Speichern und Transportieren von Daten. JSON wird oft verwendet, um Daten zu und von einem Server und einer Webseite zu senden. Das JSON-Format ist „selbstbeschreibend“ und leicht zu verstehen.

JSON ist auf zwei Strukturen aufgebaut:

  • Eine Sammlung von Name/Wert-Paaren. In verschiedenen Sprachen ist dies als Objekt, Datensatz, Strukturen, Wörterbuch, Hash-Tabelle, verschlüsselte Liste oder assoziatives Array realisiert.
  • Eine geordnete Liste von Werten. In den meisten Sprachen ist dies als Array, Vektor, Liste oder Sequenz realisiert.

Dies sind universelle Datenstrukturen. Praktisch alle modernen Programmiersprachen unterstützen sie in der einen oder anderen Form. Es ist sinnvoll, dass ein Datenformat, das mit verschiedenen Programmiersprachen funktioniert, ebenfalls auf diesen Strukturen basiert.

In der JSON-Datei nehmen die Strukturen folgende Formen an:

Ein Objekt ist eine ungeordnete Menge von Name-/Wert-Paaren. Ein Objekt beginnt mit der linken Klammer { und endet mit der rechten Klammer }. Auf jeden Namen folgt ein Doppelpunkt : und die Name-/Wertpaare werden durch ein Komma , getrennt.

Die folgenden Ausführungen sind repräsentativ für den Onshape-Workflow-JSON. Dieses Beispiel definiert ein Mitarbeiterobjekt: ein Array von 3 Mitarbeiterdatensätzen (Objekten):

{
"employees":[
{"firstName":"John", "lastName":"Doe"},
{"firstName":"Anna", "lastName":"Smith"},
{"firstName":"Peter", "lastName":"Jones"}
]
}

Optionen: Freigabe-Einstellungen definieren

In Onshape gibt es 4 Objekte in der JSON-Datei. Diese sind:

  • Optionen: Freigabe-Einstellungen definieren
  • Eigenschaften: Attributdefinitionen festlegen
  • Status: kontrollieren die Punktdefinitionen
  • Übergänge: Link-Definitionen festlegen

Freigabe-Einstellungen sind 10 mögliche Einstellungen, die sich auf das Verhalten bei der Freigabe eines Dokuments beziehen. Alle diese Einstellungen sind auf der Seite „Freigabe-Management“ der Company/Enterprise-Einstellungen zu finden. Die Definitionen in einer JSON-Workflow-Datei haben jedoch Vorrang vor allen Freigabe-Management-Einstellungen, die in den Company/Enterprise-Einstellungen definiert sind.

Attributdefinitionen sind Attribute, die im Dialogfenster des Freigabe-Kandidaten angezeigt werden. Diese Attribute können einem oder mehreren Punkten im Workflow zugeordnet sein und vom Typ her unterschiedlich sein, obligatorisch oder optional, und können Standardwerte enthalten, z. B. „Bauteilnummer“.

Punkt-Definitionen definieren, welche Art von Punkten im Workflow enthalten sind und welche Attribute dem Punkt zugeordnet sind. Zum Beispiel „Ausstehend“ oder „Freigegeben“.

Link-Definitionen sind automatisierte Aktionen, die während des Übergangs auftreten können. Sie verbinden nicht nur die Punkte miteinander, sondern definieren auch, welche Attribute am Freigabe-Kandidaten beim jeweiligen Übergang angezeigt werden. Zum Beispiel das Senden einer E-Mail-Benachrichtigung an Benutzer, die der nächsten Aktion zugeordnet sind.

Der folgende Abschnitt beschreibt die verschiedenen Abschnitte im Onshape-Workflow-Dokument und alle möglichen Optionen für die verschiedenen Attribute.

Workflow-JSON definieren

Der Abschnitt „Optionen“

Der erste Abschnitt der JSON-Datei ermöglicht Workflows mit eindeutigen Einstellungen, die die Bedingungen für eine Freigabe regeln. Alle diese Einstellungen finden Sie auf der Seite „Company/Enterprise-Einstellungen“ -→ „Freigabe-Management“. Beachten Sie, dass die im JSON-Workflow definierten Einstellungen die Einstellungen auf der Freigabe-Management-Seite überschreiben.

Das folgende „Optionen“-Objekt definiert alle möglichen Name/Wert-Paare, wobei jedes dieser Paare optional ist. Wenn es nicht definiert ist, werden standardmäßig die Werte von der Einstellungsseite der Freigabe-Verwaltung verwendet. Zum Beispiel:

"options": {
"revisionSchemeId": "5851740138fa98150a8f953e",
"requireApprover": true,
"requireAllApprovers": true,
"disallowCreatorAsApprover": true,
"requireNote": true,
"autoObsolete": false,
"errorOnFeatureListErrors": true,
"errorOnRolledBack": false,
"errorOnAssemblyErrors": false,
"errorOnDrawingOutOfDate": true,
"errorOnAssemblyRefsOutOfDate": true,
}

Im Folgenden wird jede dieser Optionen im Detail beschrieben.

revisionSchemeId

Eine eindeutige ID erhalten Sie auf der Freigabe-Management-Seite der Company/Enterprise-Einstellungen. Wählen Sie in der Dropdown-Liste einen Revisionsplan aus, kopieren Sie die nachfolgende Revisionsplan-ID und fügen Sie sie in dieses Feld in der JSON-Datei ein.

Onshape bietet verschiedene Arten von Revisionsplänen an. Diese können sein:

  • Alphabetisch
  • Numerisch
  • Benutzerdefiniert

Viele Organisationen werden einen numerischen Plan für die Workflows vor der Produktion verwenden und dann zu einem alphabetischen für die Freigabe- und Änderungsprozesse nach der Entwicklung übergehen. Wenn Sie diese Option aktivieren, kann der Workflow die in den Freigabe-Einstellungen definierten Vorgaben überschreiben und entweder einen numerischen oder einen alphabetischen Revisionsplan verwenden.

Einstellungen „Revisionen und Bauteilnummern“

Klicken Sie auf die Schaltfläche „In Zwischenablage kopieren“, damit Sie die entsprechende Revisionsplan-ID in Ihrem JSON-Workflow verwenden können.

requireApprover

Wenn diese Option auf „wahr“ gesetzt ist, ist das Feld „Genehmiger“ im Dialogfenster „Freigabe-Kandidat“ obligatorisch. Diese Option steht in direktem Zusammenhang mit der Option „Genehmiger muss im Freigabe-Dialogfenster angegeben werden“ in den Einstellungen des Freigabe-Managements.

requireAllApprovers

In vielen Workflows können parallele Genehmigungen von verschiedenen Gruppen oder Personen in der Organisation erforderlich sein. Wenn Sie diese Option auf „wahr“ setzen, müssen alle Gruppen oder Personen, die als Genehmigende genannt werden, den Workflow genehmigen, bevor er zum nächsten Punkt übergehen kann.

Wenn der Workflow von einem Genehmigenden abgelehnt wird, geht er sofort in den Status „Abgelehnt“ über.

Wenn diese Option auf „falsch“ gesetzt ist, reicht es aus, dass eine der definierten Gruppen oder Personen die Freigabe akzeptiert, damit sie zum nächsten Punkt übergehen kann. In diesem Fall ist nur eine Genehmigung erforderlich.

Dialogfenster „Freigabe-Kandidaten erstellen“, Anzeige des Freigabe-Namens, der Versionshinweise und der Genehmigenden sind erforderlich

disallowCreatorAsApprover

In vielen Organisationen kann die Person, die den Freigabeprozess initiiert, nicht die Person sein, die ihn auch genehmigt. Wenn diese Option auf „wahr“ gesetzt wird, wird dies gesichert und verhindert, dass ein Freigabe-Kandidat vom Ersteller des Freigabe-Kandidaten genehmigt wird.

requireNote

Wenn diese Option auf „wahr“ gesetzt ist, wird die Richtlinie durchgesetzt, dass das Feld „Anmerkung“ in jeder Phase des Workflows ausgefüllt werden muss. Dies bedeutet, dass der Initiator des Workflows eine Freigabemitteilung eingeben muss und jede Person, die diese genehmigt (oder ablehnt), einen Kommentar eingeben muss. Das Feld „Versionshinweis“ wird im Dialogfenster verpflichtend. Siehe Abbildung oben.

autoObsolete

Die Einstellung dieser Option auf „wahr“ bewirkt, dass frühere Revisionen eines bestimmten Objekts sofort nach der Freigabe eines neuen Objekts veraltet sind. In Onshape ist es erlaubt, dass mehrere Freigaben gleichzeitig aktiv sind, aber einige Organisationen verlangen, dass nur eine Freigabe eines Bauteils, einer Baugruppe oder Zeichnung zu einem bestimmten Zeitpunkt aktiv ist.

Die folgenden vier Optionen beziehen sich auf Fehler bei der Freigabe des Dokuments. Wenn bei jeder dieser Optionen die entsprechende Bedingung bei einem Freigabe-Objekt erfüllt ist, führt das Setzen der Option auf „wahr“ zu einem Fehler beim Objekt und verhindert, dass der Freigabe-Kandidat gesendet wird. Wenn die Option auf „falsch“ gesetzt ist, gibt es zwar eine Warnung zu dem Objekt, aber die Freigabe kann dennoch gesendet werden.

Wenn Sie diese Optionen auf „wahr“ setzen, wird der Freigabe-Kandidat nicht losgeschickt. Diese Einstellungen haben Vorrang vor den Standardverhaltensweisen, die auf der Seite Company/Enterprise-Einstellungen → Freigabe-Management definiert sind.

errorOnFeatureListErrors

Diese Option verhindert die Freigabe eines Bauteils, wenn Fehler in der Feature-Liste vorliegen.

errorOnRolledBack

Diese Option verhindert die Freigabe eines Bauteils, wenn sich die Rollback-Leiste in seinem Part Studio nicht am Ende der Feature-Liste befindet.

errorOnAssemblyErrors

Diese Option verhindert die Freigabe einer Baugruppe, wenn sie fehlerhaft ist.

errorOnDrawingOutOfDate

Diese Option verhindert die Freigabe einer Zeichnung, wenn sie nicht auf dem neuesten Stand ist.

Der Abschnitt „Eigenschaften“

Eigenschaften sind Attribute, die dem Freigabe-Kandidat-Dialogfenster hinzugefügt werden können. Diese Attribute können von unterschiedlichem Typ sein, Standardwerte haben und als obligatorisch oder optional festgelegt werden.

Nachfolgend sehen Sie ein Beispiel für verschiedene Attribute, die im Eigenschaftsobjekt der Onshape-Workflow-JSON-Datei definiert sind.

"properties": [
{
"name": "Compliance Approval",
"propertyId": "comp_app",
"valueType": "USER",
"defaultValue": [
"5e5d30bbc7dcaf1000b61484"
]
},
{
"name": "Observers",
"propertyId": "observers",
"valueType": "USER"
},
{
"name": "Rejection Reason",
"propertyId": "rejres",
"valueType": "STRING"
},
{
"name": "ECR",
"propertyId": "ecr",
"valueType": "STRING",
"defaultValue": ""
},
]

Dieser Abschnitt beschreibt die verschiedenen Attribute und ihre Werte, die für das Eigenschaftsobjekt verfügbar sind.

name

Der Wert für das Attribut „name“ kann eine beliebige Zeichenfolge sein. Diese Eigenschaft wird über dem entsprechenden Feld im Dialogfenster des Freigabe-Kandidaten angezeigt. Siehe unten:

Beispiel für die Anzeige des Wertes für das Attribut „Name“ im Dialogfenster „Freigabe-Kandidat“

propertyId

Der „propertyId“-Wert kann als eindeutige Zeichenfolge im Kontext der JSON-Datei definiert werden. Dieser Wert wird in anderen Objekten verwendet, um zu definieren, welche Attribute in welcher Phase des Workflows bereit gestellt werden.

Es ist ratsam, eine für Sie aussagekräftige Eigenschafts-ID zu definieren, damit sie später leicht referenziert werden kann. Verwenden Sie für die Eigenschafts-ID z. B. selbsterklärende Namen wie „Ablehnungsgrund“ oder „Technischer Genehmiger“.

Eigenschafts-IDs müssen eindeutig sein (und sich von fest programmierten Namen, Beschreibungen oder Kommentar-Eigenschafts-IDs in Onshape unterscheiden).

valueType

Der Wert dieses Attributs definiert den Typ des Feldes, das im Dialogfenster für den Freigabe-Kandidaten angezeigt wird. Die Arten von Werten, die hier verwendet werden können, sind:

  • USER: Erstellt ein Feld, in dem Sie Benutzer, Teams und Rollen auswählen können. Ein Standardwert für diese Art von Eigenschaft muss ein Array von Benutzer-, Team- oder Rollen-IDs sein.
  • STRING: Ein normales Textfeld.
  • INT: eine Ganzzahl
  • DOUBLE: ein Dezimalwert
  • DATE: Bietet eine Steuerung zur Datumsauswahl.
  • ENUM: Bietet ein Auswahl-Steuerelement, das mit definierten Werten vorbelegt ist, aus denen der Benutzer einen auswählen kann. Eine Eigenschaft, die diesen Typ verwendet, muss auch eine Liste von Werten für das Feld bereitstellen. Im Folgenden finden Sie ein Beispiel für das ENUM-Format:
{
"name": "Inventory Disposition: (Scrap, Return to Supplier (RTS), Rework, Use As Is)",
"propertyId": "disposition",
"valueType": "ENUM",
"enumValues": [
{
"value": "Scrap"
},
{
"value": "Return to Supplier (RTS)"
},
{
"value": "Rework"
},
{
"value": "Use As Is"
}
],
"defaultValue": "Use As Is"
},
defaultValue

Der Wert „defaultValue“ liefert einen Wert, mit dem das zu definierende Feld vorausgefüllt werden kann. Der hier definierte Wert muss mit dem Typ des im „valueType“-Attribut ausgewählten Feldes übereinstimmen.

Bei Eigenschaften vom Typ USER muss der Standardwert eine Liste von Benutzer-, Team- und Rollen-IDs sein, wie unten dargestellt. Bei allen anderen Typen ist es ein einzelner Wert (entweder eine Zahl oder eine Zeichenkette).

“valueType”: “USER”,
"defaultValue": [
"5e5d30bbc7dcaf1000b61484",
"5e5d30bbc7dcaf99634a82219"
]

Benutzer- und Team-IDs finden Sie auf den Seiten „Benutzer“ oder „Teams“ in den Company/Enterprise-Einstellungen. Rechtsklicken Sie auf den Benutzer oder das Team und wählen Sie die Option „Bearbeiten“ aus dem Kontextmenü aus. Verwenden Sie dann die Schaltfläche „In Zwischenablage kopieren“ neben dem ID-Feld, um den Wert zu kopieren.

Beispiel für das Dialogfenster „Benutzer bearbeiten“, mit der Option „In Zwischenablage kopieren“ neben dem Feld „Benutzer-ID“

Der Abschnitt „Status“

Status definieren die tatsächlichen Punkte im Workflow – den Status des Freigabe-Pakets, während es den Freigabe-Prozess durchläuft. Wenn ein Paket diese Statuspunkte erreicht, wird ihm der im Attribut „Name“ definierte Status zugewiesen:

Nachfolgend ein Beispiel für einige Status:

"states": [
{
"name": "IN_PROGRESS",
"displayName": "Create Engineering Release",
"entryActions": [],
"exitActions": []
},
{
"name": "PENDING",
"displayName": "Project Admin Approval ",
"approverSourceProperty": "pr_appr",
"editableProperties": [
"pr_appr"
],
"entryActions": [
{
"name": "markItemsPending"
}
],
"exitActions": []
}
]

name

Dieses Attribut dient als eindeutige Kennung für den Statuspunkt. Es kann sich dabei um eine beliebige Zeichenfolge handeln, solange sie innerhalb des Workflows eindeutig ist.

Beispiel für die eindeutige Kennung für den Statusknoten im Dialogfenster „Freigabe überprüfen“

displayName

Der Wert des Attributs displayName ist der Name, der im Workflow-Diagramm angezeigt wird. Es kann sich dabei um eine beliebige Zeichenfolge handeln, die den Punkt beschreibt. Abhängig von der Komplexität des Workflows können mehrere Status denselben Anzeigenamen haben, obwohl ihre Namen (IDs) unterschiedlich sind.

approverSourceProperty

Dieses Attribut gibt an, welche (wenn überhaupt) der im Eigenschaften-Objekt definierten Eigenschaften als Genehmiger für einen Status fungieren. Der Wert dieses Attributs muss der „propertyId“ einer Eigenschaft vom Typ „USER“ entsprechen. Benutzer und Teams in dieser Eigenschaft werden über den Fortschritt der Freigabe informiert und müssen die Freigabe genehmigen, bevor sie den Status verlassen kann.

Property State
{
"name": "Compliance Approval",
"propertyId": "comp_app",
"valueType": "USER"
}
{
"name": "PENDING",
"displayName": "Compliance Approval",
"approverSourceProperty": "comp_app"
}

notifierSourceProperty

Ähnlich wie bei „approverSourceProperty“ ist dieses Attribut die „propertyId“ einer Eigenschaft vom Typ „USER“ und definiert, wer (wenn überhaupt) benachrichtigt wird, wenn der Workflow diesen Status erreicht. Dies ist dasselbe wie bei Benutzern oder Benutzergruppen, die die Freigabe verfolgen, aber nicht unbedingt daran teilnehmen.

entryActions
und
exitActions

Der Onshape-Workflow ermöglicht es, einige vordefinierte Aktionen an bestimmten Punkten des Workflows durchzuführen. Diese Aktionen können die Metadaten der Objekte aktualisieren oder Benachrichtigungen an die Beteiligten senden. Statuseintritts- und -austrittsaktionen treten auf, wenn eine Freigabe in einen Status übergeht oder diesen verlässt.

Die Aktionen werden im Abschnitt „Aktionen“ dieses Dokuments detailliert beschrieben.

editableProperties

Mit diesem Attribut kann eine Liste von Eigenschaften definiert werden, die in dieser Phase des Workflows bearbeitet werden können. Der Wert dieses Attributs muss eine Liste von „propertyIds“ von im Workflow definierten Eigenschaften sein.

Beispiel für das Eigenschaftenobjekt und das Statusobjekt mit ihren Beziehungen

requiredProperties

Dieses Attribut definiert eine Liste von Attributwerten, die obligatorisch sind und ausgefüllt werden müssen, bevor die Freigabe in einen anderen Status übergehen kann. Wie „editableProperties“ ist der Wert dieses Attributs eine Liste von „propertyIds“.

Wenn eine „propertyId“ als erforderlich markiert ist, ist sie automatisch bearbeitbar.

requiredItemProperties

Einstellungen „Benutzerdefinierte Eigenschaften“, wobei das Attribut „Größe“ ausgewählt ist

Bei diesem Attribut handelt es sich um eine Liste von Metadaten-Eigenschafts-IDs – von der Seite „Benutzerdefinierte Eigenschaften“ der Company/Enterprise-Einstellungen, nicht der Workflow-Eigenschaften –, die für jedes Objekt im Freigabe-Kandidaten ausgefüllt werden müssen, bevor der Status verändert werden kann. Um die Eigenschafts-ID zu erhalten, doppelklicken Sie auf eine Eigenschaft auf der Seite „Benutzerdefinierte Eigenschaften“ und verwenden Sie dann die Schaltfläche „In Zwischenablage kopieren“ neben dem Id-Feld (nur für Company-Administratoren möglich).

Im Folgenden sehen Sie ein Beispiel für ein Statusobjekt, bei dem benutzerdefinierte Eigenschaften verwendet werden:

{
"name": "PENDING",
"displayName": "Project Admin Approval ",
"approverSourceProperty": "pr_appr",
"editableProperties": [
"pr_appr"
],
"entryActions": [
{
"name": "markItemsPending"
}
],
"exitActions": [],
"requiredItemProperties" : [
"5d655b8dbce891151cf7d9d9",
"5d0be2b3374eae12dd6eda1c"
]
}

Der Abschnitt „Übergänge“

Übergänge verbinden Status miteinander. Sie handhaben die Interaktionen zwischen den Status und die Abläufe, wenn ein Benutzer im Freigabe-Dialogfenster auf eine Schaltfläche wie „Senden“ oder „Genehmigen“ klickt.

Es folgt ein Beispiel für ein Übergangsobjekt.

{
"name": "ADVANCE_TO_QA_APPROVAL",
"displayName": "Advance",
"type": "APPROVE",
"uiHint": "success",
"sourceState": "PENDING_OPERATIONS_APPROVAL",
"targetState": "PENDING_QA_APPROVAL",
"actions": [
{
"name": "sendUserNotifications"
},
{
"name": "sendEmailNotifications"
}
]
}

Grafisch dargestellt als:

Grafische Darstellung des Status und Übergangs

Im Folgenden werden die innerhalb eines Übergangsobjekts verfügbaren Optionen im Detail beschrieben und es wird gezeigt, wie sich ein Übergang auf Status bezieht.

Name

Dabei sollte es sich um einen eindeutigen beschreibenden Namen handeln, der es Ihnen ermöglicht, den Zweck dieses Übergangsobjekts leicht zu identifizieren, ohne dass Sie sich ansehen müssen, wo es seinen Ursprung hat und wo es endet. In komplexeren Flows gibt es viele Übergänge und noch mehr Status - das ergibt eine sehr lange und möglicherweise verwirrende JSON-Datei. Die Verwendung von beschreibenden Namen kann die JSON-Datei vereinfachen und Fehler vermeiden helfen.

displayName

Der Wert „displayName“ ist ein Wert, der im Workflow-Diagramm angezeigt wird. Wie oben gezeigt, ist der Anzeigename des Übergangs als „Erweitern“ angegeben. Für den Namen gibt es keine spezifischen Regeln, außer dass er beschreibend und repräsentativ für den Übergang sein sollte.

Typ

Damit wird die Art des Übergangs zwischen den Status definiert. Die drei möglichen Typen sind:

  • SENDEN
  • GENEHMIGEN
  • ABLEHNEN

Der erste Übergang wird immer vom Type SUBMIT sein, die folgenden Übergänge sollten vom Type APPROVE oder REJECT sein.

Im Folgenden wird jede Typoption im Detail beschrieben:

  • Einreichen
    • Führt verschiedene „Initialisierungen“ an der Freigabe nach der Einrichtung und während des Übergangs in den Workflow durch, wie z. B. die Erstellung von Miniaturen für konfigurierte Bauteile in der Freigabe, die Verbindung von verknüpften Dokument-/Versions-IDs usw.
    • Nur der Ersteller der Freigabe darf SENDEN-Übergänge ausführen.
    • Umstellungen aus dem ursprünglichen Status heraus sollten Senden-Aktionen sein.
    • Ein „Senden“-Vorgang, der kein anfänglicher Übergang ist, hat keine besonderen Auswirkungen.
  • Genehmigen
    • Kennzeichnet den Benutzer als Erteiler der Genehmigung eines Freigabe-Kandidaten (färbt das Token im Freigabe-Dialogfenster grün).
    • Wenn die Company-Richtlinie auf ALLE GENEHMIGER ERFORDERLICH eingestellt sind, kann der Übergang erst erfolgen, wenn alle Genehmiger ihre Zustimmung gegeben haben.
    • Erzeugt Baugruppen-/Zeichnungsinhalts-Referenzen für Objekte.
    • Nur eine solche Umstellung aus einem Status heraus ist zulässig.
    • Nur ein Genehmiger des aktuellen Status (oder ein Administrator) darf etwas genehmigen.
  • Ablehnen
    • Kennzeichnet den Benutzer als denjenigen, der den Freigabe-Kandidaten abgelehnt hat (färbt das Token im Freigabe-Dialogfenster rot).
    • Nur ein Genehmiger des aktuellen Status (oder ein Administrator) darf etwas ablehnen.

uiHint

Dies definiert die Farbe des nächsten Punkts in der grafischen Darstellung sowie die entsprechende Schaltfläche im Freigabe-Dialogfenster. Es gibt derzeit drei Werte für dieses Attribut, die Bootstrap-UI-Stile sind:

  • „primary“ – blau
  • „success“ – grün
  • „danger“ - rot

sourceState
&
targetState

Das „sourceState“-Attribut ist der Name des Statusobjekts, von dem aus dieser Übergang initiiert wird. Das „targetState“-Attribut ist der Name des Ziel-Statusobjekts.

Die Benennung ist sehr wichtig, um Kohärenz zu gewährleisten und mögliche Fehler zu reduzieren. Aus diesem Grund wird dringend empfohlen, beschreibende Namen für die Statusobjekte zu verwenden. Bei größeren Workflows kann dies schnell komplex und fehleranfällig werden. Das folgende Diagramm zeigt die Zuordnung zwischen dem Statusobjekt und den Ausgangs- und Ziel-Statusattributen.

Beispiel für das Statusobjekt und das Übergangsobjekt mit ihren Beziehungen

Aktionen

Wie bei Status können auch bei Übergängen zusätzlich zur einfachen Verschiebung des Freigabe-Kandidaten in den nächsten Status Aktionen durchgeführt werden. Dieses Attribut definiert eine Liste von Aktionen auf die gleiche Weise wie die Attribute „entryActions“ und „exitActions“ bei Status. Die Aktionen eines Übergangs werden vor den „exitActions“ des Ausgangsstatus und vor den „entryActions“ des Zielstatus ausgeführt.

Der Abschnitt „Aktionen“

In diesem Abschnitt werden die Aktionen beschrieben, die den Status und Übergängen zugeordnet werden können. Während die meisten dieser Aktionen für beide verwendet werden können, gibt es bei einigen von ihnen Einschränkungen sowohl in Bezug auf die Reihenfolge als auch den Ort, an dem sie platziert werden können.

Aktionen werden als ein JSON-Objekt mit einem einzigen Attribut dargestellt: „Name“.

Es folgt ein Beispiel für einen Status mit Eingabe- oder Ausgabeaktionen:

{
"name": "PENDING_ENGINEERING_APPROVAL",
"displayName": "Technische Genehmigung ausstehend",
"approverSourceProperty": "Konstrukteure",
"entryActions": [
{
"name": "markItemsPending"
}
],
"exitActions": []
}
Innerhalb eines Übergangs können sie wie folgt definiert werden:
"actions": [
{
"name": "sendUserNotifications"
},
{
"name": "sendEmailNotifications"
}
]

Dies sind die Aktionen, die derzeit zur Verfügung stehen:

  • markItemsPending: Ändern Sie den Metadatenstatus aller Objekte in der Freigabe auf „Ausstehend“. Diese Aktion ist bei veralteten Workflows nicht zulässig und kann nicht nach den Aktionen „markItemsRejected“ oder „releaseItems“ verwendet werden.
  • markItemsRejected: Ändern Sie den Metadatenstatus aller Objekte in der Freigabe auf „Abgelehnt“. Diese Option ist bei veralteten Workflows nicht zulässig und kann nicht nach der Aktion „markItemsRejected“ oder vor der Aktion „releaseItems“ verwendet werden.
  • releaseItems: Ändern Sie den Metadatenstatus aller Objekte in der Freigabe auf „Freigegeben“ und erstellen Sie für diese Objekte Revisionen (automatische Festlegung anderer Revisionen als veraltet, falls in der Unternehmensrichtlinie oder den für den Workflow definierten Optionen festgelegt). Diese Option ist für Obsoletions-Workflows nicht verfügbar.
  • obsoleteItems: Ändern Sie den Metadatenstatus aller Objekte im Paket auf „Veraltet“ und definieren Sie deren entsprechende Revisionen als obsolet. Diese Option ist für Freigabe-Workflows nicht verfügbar.
  • sendUserNotifications: Senden Sie in der Onshape-Benachrichtigungs-Palette die Nachricht, dass ein Übergang stattgefunden hat, einschließlich eines Links zum Öffnen des Freigabe-Kandidaten. Diese Aktion ist nur bei Übergängen erlaubt.
  • sendEmailNotifications: Versenden Sie eine E-Mail-Benachrichtigung mit einem Link zum Öffnen des Freigabe-Kandidaten in Onshape. Diese Aktion ist nur bei Übergängen erlaubt.

Beide der oben genannten Benachrichtigungsaktionen senden Benachrichtigungen an den Ersteller des Freigabe-Kandidaten sowie an die Genehmigenden und Benachrichtigenden des Ausgangs- und des Zielstatus (falls vorhanden), wie in den Attributen „approverSourceProperty“ und „notifierSourceProperty“ dieser Status angegeben ist. Für Genehmigende enthalten die Benachrichtigungen die Aufforderung, den Freigabe-Kandidaten zu genehmigen.

Tipps und Tricks

Der Onshape-Workflow-Designer kann helfen

Wenn Sie die JSON-Datei in Onshape bearbeiten, sehen Sie den Workflow als ein Diagramm mit Punkten (Status) und Kanten (Übergängen), die in Echtzeit aktualisiert wird, wenn Sie die JSON-Datei ändern. Der Editor hebt JSON-Formatierungsfehler hervor.

Wenn Sie einen bevorzugten Editor haben, können Sie die JSON-Datei in diesem Programm bearbeiten und dann auf Onshape hochladen. Der Grafikdesigner wird weiterhin alle Fehler markieren.

Der Onshape-Workflow-Designer fängt JSON-Formatierungsfehler und bestimmte Arten von Konstruktionsfehlern, wie z. B. eine ungültige ID, ab. Er wird Ihnen jedoch nicht sagen, dass Sie beispielsweise den falschen Übergangstyp verwendet haben. Aus diesem Grund ist das Testen so wichtig!

Beschreibende Namen und IDs verwenden

Während der Workflow komplexer wird, wird es schwieriger, den Überblick über die IDs zu behalten, die Sie für verschiedene Objekte - wie z. B. Eigenschaften - verwendet haben. Dies kann besonders unübersichtlich werden, wenn Sie Zustandsobjekte mit den Attributwerten der Übergangsobjekte „sourceState“ und „targetState“ verbinden.

Durch die Verwendung beschreibender und immer eindeutiger Namen können Sie JSON vereinfachen und viele potentielle Fehler vermeiden.

Rechtschreibung und Groß- und Kleinschreibung

In der JSON-Datei sind die Objekt- und Attributnamen sowie einige der Werte fest codiert und unterscheiden Groß- und Kleinschreibung. So ist beispielsweise das Attribut „sourceState“ nicht dasselbe wie „sourcestate“. Tippfehler können hier zum Fehlschlagen des Workflows führen.

Dieses Thema verwendet durchgehend die korrekte Syntax, und Sie sollten diese Schlüsselwörter entweder von hier aus oder aus einem der von Onshape bereitgestellten Beispiel-Workflows kopieren und einfügen.

Workflow testen

Führen Sie Ihren Workflow vor der Verwendung in der Produktion an einem Testbauteil aus und stellen Sie sicher, dass es funktioniert. Prüfen Sie, ob die von Ihnen in Ihrem Workflow verwendeten Freigabe-Einstellungen das erwartete Verhalten aufweisen.

Lassen Sie die Freigabe von Gruppen, die den verschiedenen Stufen im Workflow zugeordnet sind, annehmen.

Veraltete Workflows erstellen

Dieses Thema zeigt, wie Freigabe-Workflows erstellt werden können. Der Prozess zur Erstellung eines Obsoletions-Workflows ist derselbe, jedoch hat er keine „releaseItems“-Aktion, sondern eine „obsoleteItems“-Eintragsaktion auf einem Statusobjekt. Wenn Sie den Workflow veröffentlichen, wählen Sie die Option „Obsoletions-Workflow“ anstelle der Option „Freigabe-Workflow“ im Dialogfenster „Veröffentlichen“ aus. Diese Workflows erscheinen unter der Registerkarte „Obsoletions-Workflow“ in den Freigabe-Einstellungen.

Innerhalb eines veralteten Workflows können Sie ein Objekt zur erneuten Freigabe mit dieser Syntax markieren:

{
"name": "Revision kann erneut freigegeben werden",
„propertyId“: „os kann erneut freigegeben werden“,
"valueType": "BOOL"
}

Workflows werden gelöscht

Selbst wenn Sie derzeit ein Onshape-Dokument löschen, das ein JSON-Workflow-Dokument enthält, bleibt der Workflow in der Liste der verfügbaren Workflows in den Freigabe-Einstellungen erhalten. Sie können die Markierung des Workflows aufheben, so dass er beim Erstellen eines Freigabe-Kandidaten nicht zur Auswahl steht. Dies ist zwar nicht optimal, aber es gibt ein bewährtes Verfahren, um Test-Workflows zu erstellen und sie dann auf eine Freigabe-Version zu aktualisieren.

Ein Dokument, das eine Workflow-JSON-Datei enthält, verhält sich genau wie jedes andere Onshape-Dokument. Das bedeutet, dass das Dokument nur bearbeitet werden kann, während Sie sich im Arbeitsbereich (normalerweise Hauptarbeitsbereich) befinden. Sie können ein Workflow-Dokument vom Arbeitsbereich aus veröffentlichen, wodurch eine Version des Dokuments erstellt wird. Beim Veröffentlichen haben Sie die Möglichkeit, den bestehenden Workflow zu überschreiben.

Diese Methode ermöglicht es Ihnen, mit verschiedenen Optionen und Workflows zu experimentieren, bevor Sie einen Workflow veröffentlichen (freigeben), der den Anforderungen Ihrer Companys entspricht.