Progettazione di processi di gestione delle versioni
Onshape offre flussi di lavoro generici per la gestione dei rilasci che puoi iniziare a utilizzare immediatamente. Questo processo è descritto in Flusso di lavoro di rilascio tipico. Oltre a questo flusso di lavoro generico, Onshape ti offre la possibilità di progettare e creare un flusso di lavoro personalizzato per la gestione dei rilasci e quindi pubblicarlo l'intera tua organizzazione possa utilizzarlo. È anche possibile creare più flussi di lavoro, per soddisfare esigenze specifiche di gestione delle versioni di rilascio all'interno dell'organizzazione.
Per accedere a questa funzionalità devi avere assegnato il ruolo amministratore di Onshape Enterprise.
Onshape offre molte opzioni che regolano il comportamento di gestione delle versioni. A seconda dei processi aziendali, queste impostazioni possono essere definite come regole predefinite per il comportamento delle versioni, quali sono le condizioni per il rilascio e quale schema di revisione può essere utilizzato, ad esempio. Queste opzioni possono essere impostate tramite la pagina Gestione delle versioni delle Impostazioni Azienda/Enterprise nell'abbonamento Onshape.
In molti casi, quando più processi di rilascio sono implementati in un'organizzazione, i vari processi potrebbero richiedere impostazioni di rilascio diverse. Le impostazioni predefinite, definite nella pagina Impostazioni Release Management, possono essere sostituite in base al processo di rilascio tramite l'implementazione di processi di rilascio personalizzati che possono anche sostituire i valori predefiniti per ogni processo.
Continua a leggere per scoprire il processo di creazione di flussi di lavoro per la gestione delle versioni personalizzati e come implementarli in Onshape.
Cosa comporta la creazione di un flusso di lavoro personalizzato
Fondamentalmente, Onshape utilizza un file JSON per definire il layout e il comportamento del flusso di lavoro, sia per i flussi di lavoro di rilascio che di quelli obsoleti.
- Scarica il file JSON di base Onshape
- Personalizzare il file seguendo la sintassi JSON fornita in questo argomento
- Carica nuovamente il file JSON personalizzato in un documento Onshape
- Pubblica il flusso di lavoro personalizzato nella tua organizzazione
Questi passaggi sono spiegati in dettaglio di seguito.
Scarica il file JSON
Puoi trovare un file JSON di base all'interno del dominio Onshape della tua organizzazione:
- Accedi al tuo account Onshape.
- Passa alla pagina Impostazioni azienda/Enterprise > Gestione delle versioni.
- Nell'intestazione Flussi di lavoro selezionare il tipo di flusso di lavoro che si desidera creare: flusso di lavoro: di rilascio o obsoleto.
- Seleziona Onshape predefinito ... nel menu a discesa.
- Fai clic sul link Visualizza nel documento accanto al menu a discesa:
Poiché il formato di file JSON è un formato di testo, da un lato è abbastanza facile da capire, ma dall'altro può diventare piuttosto complesso, in particolare quando i nostri flussi di lavoro diventano più complessi. Nonostante Onshape ti informerà di alcuni errori nella sintassi e nella formattazione del documento, può sbagliare e molte opzioni, sebbene legali, possono comunque portare al fallimento del flusso di lavoro.
Per istruzioni dettagliate su come configurare e utilizzare più flussi di lavoro Onshape, vedi l'argomento Creazione di un flusso di lavoro di rilascio personalizzato.
Personalizza il JSON per le tue esigenze organizzative
Innanzitutto, è necessario capire cos'è JSON. JSON sta per JavaScript Object Notation. È un formato leggero per la memorizzazione e il trasporto di dati. JSON viene spesso utilizzato per inviare dati da e verso un server e una pagina Web. Il formato JSON è "intuitivo" e facile da capire.
JSON è costruito su due strutture:
- Una raccolta di coppie nome/valore. In varie lingue, questo viene ottenuto nella forma di un oggetto, una registrazione, una struttura, un dizionario, una tabella hash, un elenco con chiavi o una matrice associativa.
- Un elenco ordinato di valori. Nella maggior parte delle lingue, questo viene realizzato come matrice, vettore, elenco o sequenza.
Queste sono strutture dati universali. Praticamente tutti i moderni linguaggi di programmazione li supportano in una forma o nell'altra. Un formato di dati intercambiabile con i linguaggi di programmazione deve basarsi anche su queste strutture.
In JSON, le strutture assumono queste forme:
Un oggetto è un insieme non ordinato di coppie nome/valore. Un oggetto inizia con {parentesi sinistra e termina con} parentesi destra. Ogni nome è seguito da due punti e le coppie nome/valore sono separate da una virgola.
Quanto segue è rappresentativo di ciò che vedrai nel flusso di lavoro Onshape JSON. Questo esempio definisce un oggetto dipendenti: una matrice di 3 record dipendenti (oggetti):
{
"employees":[
{"firstName":"John", "lastName":"Doe"},
{"firstName":"Anna", "lastName":"Smith"},
{"firstName":"Peter", "lastName":"Jones"}
]
}
The Onshape JSON format
In Onshape there are 4 objects in the JSON file, as follows:
- Opzioni - Definisci le impostazioni di rilascio
- Proprietà - Imposta Definizione attributo
- Stati - Definizioni dei nodi di controllo
- Transizioni - Specifica le definizioni di collegamento
Impostazioni di rilascio è un gruppo di 10 possibili impostazioni relative al comportamento di rilascio di un documento. Tutte queste impostazioni sono disponibili nella pagina Release Management delle impostazioni azienda/Enterprise; tuttavia, le definizioni di un file di flusso di lavoro JSON sostituiscono tutte le impostazioni di Release Management corrispondenti definite nelle impostazioni azienda/Enterprise.
Le Definizioni di attributi sono attributi che appaiono nella finestra di dialogo versione di pre-rilascio. Questi attributi possono essere assegnati a uno o più nodi del flusso di lavoro e possono essere di diversi tipi, obbligatori o facoltativi, e possono contenere valori predefiniti, ad esempio Numero parte.
Le Definizioni dei nodi definiscono il tipo di nodi contenuti nel flusso di lavoro e quali attributi sono assegnati al nodo. Ad esempio, In sospeso o Rilasciato.
Le definizioni di collegamento sono azioni automatizzate che possono verificarsi durante la transizione. Non solo collegano i nodi insieme, ma definiscono anche quali attributi appaiono sulla versione di pre-rilascio in questa transizione specifica. Ad esempio, inviando una notifica via email agli utenti assegnati all'azione successiva.
Nella sezione seguente vengono illustrate le varie sezioni del documento del flusso di lavoro Onshape e tutte le opzioni possibili per i vari attributi.
Definizione del flusso di lavoro JSON
La prima sezione del file JSON consente ai flussi di lavoro di avere impostazioni uniche che regolano le condizioni di una versione. Tutte queste impostazioni sono disponibili nella pagina Impostazioni azienda/Enterprise -→ pagina Release Management. Ricorda che le impostazioni definite nel flusso di lavoro JSON sostituiscono qualsiasi impostazione definita nella pagina Release Management.
Il seguente oggetto Opzioni definisce tutte le possibili coppie nome/valore, tuttavia, ognuna di queste è facoltativa. Se non è definito, i valori definiti nella pagina Impostazioni di Release Management sono utilizzati per impostazione predefinita. Ad esempio:
"options": {
"revisionSchemeId": "5851740138fa98150a8f953e",
"requireApprover": true,
"requireAllApprovers": true,
"disallowCreatorAsApprover": true,
"requireNote": true,
"autoObsolete": false,
"errorOnFeatureListErrors": true,
"errorOnRolledBack": false,
"errorOnAssemblyErrors": false,
"errorOnDrawingOutOfDate": true,
"errorOnAssemblyRefsOutOfDate": true,
}
Di seguito vengono descritte in dettaglio ciascuna di queste opzioni.
revisionSchemeId
Un ID univoco ottenuto dalla pagina di gestione delle versioni nelle impostazioni azienda/Enterprise. Seleziona un tipo di schema di revisione nel menu a discesa, copia l'ID dello schema di revisione successivo e inseriscilo in questo campo nel JSON.
Onshape offre diversi tipi di schemi di revisione. Questi possono essere:
- Alfabetico
- Numerico
- Personalizzato
Molte organizzazioni utilizzeranno uno schema numerico nei flussi di lavoro di pre-produzione e poi passeranno a uno schema alfabetico per i processi di rilascio e modifica post-ingegneristici. Selezionare questa opzione farà sì che il flusso di lavoro sostituisca i valori definiti nelle impostazioni Rilascio e utilizzi uno schema di revisione numerico o alfabetico.
Fai clic sul pulsante Copia negli appunti in modo da poter utilizzare l'ID schema di revisione appropriato nel flusso di lavoro JSON.
requireApprover
Se impostata su true, questa opzione rende obbligatorio il campo Approvatore nella finestra di dialogo Versione di pre-rilascio. Questa opzione è direttamente correlata all'opzione Richiedi approvatore nella finestra di dialogo Rilascio nelle impostazioni di Release Management.
requireAllApprovers
In molti flussi di lavoro, potrebbero venire richieste approvazioni parallele da diversi gruppi o persone dell'organizzazione. L'impostazione di questa opzione su true richiede che tutti i gruppi o le persone denominate approvatori approvino il flusso di lavoro prima che possa passare al nodo successivo.
Se il flusso di lavoro viene rifiutato da un qualsiasi approvatore, passa immediatamente allo stato Rifiutato.
Se questa opzione è impostata su false, è sufficiente che uno dei gruppi o delle persone definiti accetti il rilascio per passare al nodo successivo. In questo caso è necessaria una sola approvazione.
disallowCreatorAsApprover
In molte organizzazioni la persona che avvia il processo di rilascio non può essere la persona che lo approva. Se impostata su true, questa opzione applica questa politica e impedisce che una versione di pre-rilascio sia approvata dal suo creatore.
requireNote
Se è impostata su tgrue, questa opzione applica il criterio in cui il campo Nota deve essere compilato in ogni fase del flusso di lavoro. Ciò significa che l'iniziatore del flusso di lavoro deve inserire una nota di rilascio e ogni persona che approva (o rifiuta) deve inserire un commento. Il campo Nota di rilascio diventa obbligatorio nella finestra di dialogo, come visualizzato nell'immagine sopra.
autoObsolete
L'impostazione di questa opzione su true fa sì che le revisioni precedenti di un determinato elemento siano rese obsolete immediatamente dopo il rilascio di una nuova. Onshape consente di attivare più rilasci contemporaneamente, ma alcune organizzazioni richiedono che sia attivo un solo rilascio di una parte, un assieme o un disegno in un determinato momento.
Le quattro opzioni seguenti sono correlate agli errori relativi al rilascio del documento. Per ognuna di queste opzioni, quando la condizione corrispondente è soddisfatta su un elemento di rilascio, l'impostazione dell'opzione su true crea un errore sull'elemento e impedisce che la versione di pre-rilascio sia inviata. Se l'opzione è impostata su false, sarà comunque presente un avviso sull'elemento, ma il rilascio potrà essere inviato.
L'impostazione di queste opzioni su true impedirà l'invio della versione di pre-rilascio. Queste impostazioni sostituiscono i comportamenti predefiniti nella pagina Impostazioni Azienda/Enterprise → Release Management.
errorOnFeatureListErrors
Questa opzione impedisce il rilascio di una parte in caso di errori nell'elenco funzioni.
errorOnRolledBack
Questa opzione impedisce il rilascio di una parte se la barra di ripristino nel relativo Part Studio non si trova alla fine dell'elenco Funzioni.
errorOnAssemblyErrors
Questa opzione impedisce il rilascio di un assieme se l'assieme contiene errori.
errorOnDrawingOutOfDate
Questa opzione impedisce il rilascio di un disegno se non è aggiornato.
Le proprietà sono attributi che possono essere aggiunti alla finestra di dialogo versione di pre-rilascio. Questi attributi possono essere di diversi tipi, hanno valori predefiniti e possono essere resi obbligatori o facoltativi.
Di seguito è riportato un esempio di attributi diversi definiti nell'oggetto delle proprietà del file JSON del flusso di lavoro Onshape.
"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": ""
},
]
Questa sezione descrive in dettaglio i vari attributi e i relativi valori disponibili per l'oggetto proprietà.
name
Il valore dell'attributo nome può essere qualsiasi stringa. Questa proprietà viene visualizzata sopra il campo corrispondente nella finestra di dialogo versione di pre-rilascio, come illustrato di seguito:
propertyId
Il valore propertyId può essere definito come una stringa univoca nel contesto del JSON. Questo valore è utilizzato in altri oggetti per definire quali attributi saranno resi disponibili e in quali fasi del flusso di lavoro.
È opportuno definire un ID di proprietà che abbia un senso per te, in modo che possa essere facilmente referenziato in seguito; ad esempio, rendere l'ID della proprietà autoesplicativo, come 'motivo_rifiuto' o 'ingegnere_approvatore'.
Gli ID proprietà devono essere univoci (e non corrispondere all'ID della proprietà Nome, Descrizione o Commento codificati di Onshape).
valueType
Il valore di questo attributo definisce il tipo di campo da visualizzare nella finestra di dialogo Versione di pre-rilascio. I tipi di valori che possono essere utilizzati qui sono:
- UTENTE - Crea un campo in cuipuoi selezionare utenti, team e ruoli. Un valore predefinito per questo tipo di proprietà deve essere una matrice di utente, team o ruolo.
- STRINGA - Un normale campo di testo.
- INT - Un valore intero (numero intero).
- DOPPIO - Un valore decimale.
- DATA - Fornisce un controllo di selezione della data.
- ENUM - Fornisce un controllo Seleziona, pre-compilato con valori definiti da cui l'utente può selezionarne uno. Una proprietà che utilizza questo tipo deve anche fornire un elenco di valori per il campo. Di seguito è riportato un esempio del formato ENUM:
{
"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
Il defaultValue fornisce un valore con il quale pre-compilare il campo che viene definito. Il valore qui definito deve corrispondere al tipo di campo selezionato nell'attributo valueType.
Per le proprietà di tipo utente, il valore predefinito deve essere un elenco di ID utente/team/ruolo, come mostrato di seguito. Per tutti gli altri tipi, è un valore singolo (un numero o una stringa).
“valueType”: “USER”,
"defaultValue": [
"5e5d30bbc7dcaf1000b61484",
"5e5d30bbc7dcaf99634a82219"
]
Gli ID utente e team sono disponibili nelle pagine Utenti o Team nelle impostazioni azienda/Enterprise. Fai clic con il pulsante destro del mouse sull'utente o sul team e seleziona l'opzione Modifica dal menu contestuale, quindi utilizza il pulsante Copia negli appunti accanto al campo ID per copiare il valore.
Gli stati definiscono i nodi effettivi del flusso di lavoro, lo stato del pacchetto di rilascio durante il processo di rilascio. Quando un pacchetto raggiunge questi nodi di stato, gli viene assegnato lo stato definito nell'attributo «Nome», come illustrato di seguito:
Di seguito è riportato un esempio di alcuni stati:
"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
Questo attributo funge da identificatore univoco per il nodo di stato. Può trattarsi di qualsiasi stringa, purché sia unica all'interno del flusso di lavoro.
displayName
Il valore dell'attributo DisplayName è il nome visualizzato nel diagramma del flusso di lavoro. Può trattarsi di qualsiasi stringa che descrive cos'è quel nodo. A seconda della complessità del flusso di lavoro, più stati possono avere lo stesso nome visualizzato anche se i loro nomi (ID) sono diversi.
approverSourceProperty
Questo attributo indica quale delle proprietà definite nell'oggetto Proprietà (se indicate) sarà considerata nel ruolo di Approvatore per uno stato. Il valore di questo attributo deve essere il propertyId di una proprietà di tipo utente. Gli utenti e i team di tale proprietà ricevono una notifica sull'avanzamento della versione e devono approvare il rilascio prima che possa uscire dallo stato.
Property | State |
{ "name": "Compliance Approval", "propertyId": "comp_app", "valueType": "USER" } |
{ "name": "PENDING", "displayName": "Compliance Approval", "approverSourceProperty": "comp_app" } |
notifierSourceProperty
Analogamente ad approvverSourceProperty, questo attributo è il propertyID di una proprietà di tipo utente e definisce quale utente viene eventualmente notificato quando il flusso di lavoro raggiunge questo stato. Questo è lo stesso degli utenti o dei gruppi di utenti, che potrebbero seguire il rilascio, ma non necessariamente parteciparvi.
entryActionse
exitActions
Il flusso di lavoro Onshape consente di eseguire alcune azioni predefinite in determinati punti del flusso di lavoro. Queste azioni possono aggiornare i metadati degli elementi o inviare notifiche alle parti interessate. Le azioni di ingresso e uscita dello stato si verificano quando un rilascio entra o esce da uno stato.
Le azioni sono descritte in dettaglio nella sezione Le azioni di questo documento.
editableProperties
Questo attributo consente di definire un elenco di proprietà che è possibile modificare in questa fase del flusso di lavoro. Il valore di questo attributo deve essere un elenco di propertyId delle proprietà definite nel flusso di lavoro.
requiredProperties
Questo attributo definisce un elenco di valori attributo obbligatori, che devono essere compilati prima che il rilascio possa uscire da questo stato. Come EditableProperties, il valore di questo attributo è un elenco di PropertyIds.
Se un propertyId è contrassegnato come obbligatorio, viene automaticamente reso modificabile.
requiredItemProperties
Questo attributo è un elenco di ID delle proprietà dei metadati (dalla pagina Proprietà personalizzate delle impostazioni azienda/Enterprise, non dalle proprietà del flusso di lavoro) che deve essere compilato su ciascun elemento della versione di pre-rilascio prima che possa procedere. Per ottenere l'ID delle proprietà, fai doppio clic su una proprietà nella pagina Proprietà personalizzate e utilizza il pulsante Copia negli appunti accanto al campo Id. Solo un amministratore aziendale può farlo.
Di seguito è riportato un esempio di un oggetto stato che utilizza proprietà personalizzate:
{
"name": "PENDING",
"displayName": "Project Admin Approval ",
"approverSourceProperty": "pr_appr",
"editableProperties": [
"pr_appr"
],
"entryActions": [
{
"name": "markItemsPending"
}
],
"exitActions": [],
"requiredItemProperties" : [
"5d655b8dbce891151cf7d9d9",
"5d0be2b3374eae12dd6eda1c"
]
}
Le transizioni sono ciò che collegano gli stati. Gestiscono le interazioni tra stati e cosa succede quando un utente fa clic su un pulsante come «Invia» o «Approva» nella finestra di dialogo rilascio.
Di seguito è riportato un esempio di oggetto di transizione.
{
"name": "ADVANCE_TO_QA_APPROVAL",
"displayName": "Advance",
"type": "APPROVE",
"uiHint": "success",
"sourceState": "PENDING_OPERATIONS_APPROVAL",
"targetState": "PENDING_QA_APPROVAL",
"actions": [
{
"name": "sendUserNotifications"
},
{
"name": "sendEmailNotifications"
}
]
}
Rappresentato graficamente come:
Di seguito vengono illustrate le opzioni disponibili all'interno di un oggetto di transizione e mostra come una transizione si riferisca agli stati.
name
Questo dovrebbe essere un nome descrittivo univoco che consente di identificare facilmente lo scopo di questo oggetto di transizione senza dover guardare dove ha origine e dove finisce. Nei flussi più complessi ci saranno molte transizioni e ancora più stati - questo rende un JSON molto lungo e forse confuso. Utilizzando nomi descrittivi è possibile semplificare il JSON ed eliminare gli errori.
displayName
Il displayName è un valore visualizzato nel diagramma del flusso di lavoro. Come si vede sopra, il nome visualizzato della transizione è definito come Avanzato. Non esistono regole specifiche, se non che il nome deve essere descrittivo e rappresentativo della transizione.
type
Definisce il tipo di transizione tra stati. Esistono tre tipi possibili:
- SUBMIT
- APPROVE
- REJECT
La prima transizione sarà sempre di tipo SUBMIT e di conseguenza le successive transizioni dovrebbero essere di tipo APPROVE o REJECT.
Di seguito vengono descritte in dettaglio ciascuna di queste opzioni.
- Submit
- Esegue varie «inizializzazioni» sul rilascio man mano che esce dalla configurazione e va nel flusso di lavoro, ad esempio avviando la generazione di anteprime per le parti configurate nel rillascio, collegando gli ID documento/versione collegati, ecc.
- Solo il creatore del rilascio ha la possibilità di eseguire transizioni INVIA.
- Le transizioni fuori dallo stato iniziale devono essere Inoltrate.
- Un Invio che non è una transizione iniziale non ha alcuna abilità speciale.
- Approve
- Contrassegna l'utente in modo da indicare che ha approvato una versione di pre-rilascio (il token nella finestra di dialogo di rilascio diventa verde).
- Se le politiche aziendali sono impostate su RICHIEDI TUTTI GLI APPROVATORI, la transizione non verrà eseguita fino a quando non sarà approvata da tutti gli approvatori.
- Genera riferimenti al contenuto di assieme/disegno per gli elementi.
- È consentita solo una transizione di questo tipo fuori da uno stato
- Solo un approvatore dello stato corrente (o un amministratore) ha la possibilità di approvare.
- Reject
- Contrassegna l'utente in modo da indicare che ha rifiutato una versione di pre-rilascio (il token nella finestra di dialogo di rilasci diventa rosso).
- Solo un approvatore dello stato corrente (o un amministratore) ha la possibilità di rifiutare.
uiHint
Questo definisce il colore del nodo successivo nella visualizzazione grafica, nonché il pulsante corrispondente nella finestra di dialogo Rilascia. Attualmente sono disponibili tre valori per questo attributo, che sono gli stili dell'interfaccia utente Bootstrap:
- “primario” – blu
- “success” – verde
- 'pericolo' - rosso
sourceState&
targetState
L'attributo sourceState è il nome dell'oggetto stato da cui viene avviata questa transizione. L'attributo targetState è il nome dell'oggetto stato a cui viene assegnato.
La denominazione è molto importante per garantire coerenza e ridurre possibili errori; per questo motivo si consiglia vivamente di utilizzare nomi descrittivi per gli oggetti di stato. Con flussi di lavoro più grandi, può trasformarsi rapidamente in un'operazione complessa e soggetta a errori. Il diagramma seguente mostra la mappatura tra l'oggetto stato e gli attributi dello stato di origine e destinazione.
actions
Come gli stati, alle transizioni possono essere eseguite azioni oltre al semplice spostamento della release candidate allo stato successivo. Questo attributo definisce un elenco di azioni nello stesso modo degli attributi entryActions ed exitActions sugli stati. Le azioni di una transizione vengono eseguite prima delle ExitActions dello stato di origine e delle EntryActions dello stato di destinazione.
Questa sezione descrive in dettaglio le azioni che possono essere assegnate a Stati e Transizioni. Sebbene la maggior parte di queste azioni siano comuni a entrambe, alcune di esse hanno restrizioni sia per l'ordine che per il luogo in cui possono essere posizionate.
Le azioni sono rappresentate come un oggetto JSON con un singolo attributo: name.
Di seguito è riportato un esempio di stato con azioni di entrata o uscita:
{
"name": "PENDING_ENGINEERING_APPROVAL",
"displayName": "Pending engineering approval",
"approverSourceProperty": "engineers",
"entryActions": [
{
"name": "markItemsPending"
}
],
"exitActions": []
}
All'interno di una transizione, possono essere definiti come segue:
"actions": [
{
"name": "sendUserNotifications"
},
{
"name": "sendEmailNotifications"
}
]
Queste sono le azioni attualmente disponibili:
- markItemsPending: modifica lo stato dei metadati di tutti gli elementi del rilascio in sospeso. Questa azione non è consentita nei flussi di lavoro obsoleti e non può essere utilizzata dopo le azioni markItemsRejected o releaseItems.
- markItemsRejected: modifica lo stato dei metadati di tutti gli elementi del rilascio in Rifiutato. Questa opzione non è consentita nei flussi di lavoro obsoleti e non può essere utilizzata dopo l'azione markItemsRejected o prima dell'azione releaseItems.
- releaseItems: modifica lo stato dei metadati di tutti gli elementi del rilascio in Rilasciato e crea revisioni per essi (rendendo automaticamente obsolete altre revisioni, se specificato nella politica dell'azienda o nelle opzioni specifiche del flusso di lavoro). Questa opzione non è disponibile per i flussi di lavoro obsoleti.
- obsoleteItems: modifica lo stato dei metadati di tutti gli elementi del pacchetto in Rendi obsoleto e rendi obsolete le relative revisioni. Questa opzione non è disponibile per i flussi di lavoro rilascio.
- SendUserNotifications - Invia un messaggio, nel pannello Notifiche Onshape, che comunica che si è verificata una transizione, incluso un collegamento per aprire la versione di pre-rilascio. Questa operazione è consentita solo in caso di transizioni.
- sendEmailNotifications - Invia una notifica email contenente un link per aprire la versione di pre-rilascio in Onshape. Questa operazione è consentita solo in caso di transizioni.
Entrambe le azioni di notifica di cui sopra inviano notifiche al creatore della versione di pre-rilascio, nonché agli approvatori e ai notificatori degli stati di origine e di destinazione (se presenti), come specificato negli attributi ApproverSourceProperty e NotifierSourceProperty di tali stati. Per gli approvatori, le notifiche conterranno un invito ad approvare la versione di pre-rilascio.
Suggerimenti e trucchi
Workflow designer di Onshape Workflow può risultare utile
Se modifichi il JSON in Onshape, vedrai il flusso di lavoro rappresentato come un grafico con nodi (stati) e bordi (transizioni), aggiornandolo in tempo reale man mano che modifichi il JSON. L'editor evidenzierà gli errori di formattazione JSON.
Se disponi di un editor preferito, puoi modificare il JSON in quel programma e quindi caricarlo su Onshape. Il progettista grafico continuerà a evidenziare eventuali errori.
Il progettista del flusso di lavoro Onshape individua gli errori di formattazione JSON e alcuni tipi di errori di costruzione, come un ID non valido. Tuttavia, non ti dirà, ad esempio, che hai usato il tipo di transizione sbagliato, ecco perché i test sono importanti!
Usa nomi e ID descrittivi
Man mano che il flusso di lavoro diventa più complesso, diventa difficile tenere traccia degli ID utilizzati per vari oggetti, come le proprietà. Ciò può diventare particolarmente complesso quando si collegano oggetti di stato con i valori degli attributi sourceState e targetState di oggetti di transizione.
Utilizzando nomi descrittivi e sempre univoci, puoi semplificare il JSON ed eliminare molti errori possibili.
Riconoscimento di ortografia e maiuscole/minuscole
Nel JSON, i nomi degli oggetti e i nomi degli attributi, nonché alcuni valori, sono codificati e con distinzione tra maiuscole e minuscole. Ad esempio, l'attributo “sourceState” non è lo stesso di “sourcestate”. Gli errori di battitura come questo causano il mancato funzionamento del flusso di lavoro.
Questo argomento utilizza sempre la sintassi corretta e dovresti copiare e incollare queste parole chiave da qui o da uno dei flussi di lavoro di esempio forniti da Onshape.
Prova il tuo flusso di lavoro
Prima di utilizzarlo in produzione, esegui il flusso di lavoro su una parte di test e assicurati che funzioni. Assicurati che le preferenze di rilascio utilizzate nel flusso di lavoro forniscano il comportamento previsto.
Consenti ai gruppi assegnati alle varie fasi del flusso di lavoro di accettare il rilascio.
Creazione di flussi di lavoro di obsolescenza
In questo argomento viene illustrato come creare flussi di lavoro Rilascio. Il processo per la creazione di un flusso di lavoro Obsoleto è lo stesso, tuttavia non contiene alcuna operazione releaseItems, ma un'azione di immissione obsoleteItems su un oggetto stato. Quando si pubblica il flusso di lavoro, seleziona l'opzione Flusso di lavoro «Obsoleto» anziché l'opzione Flusso di lavoro «Rilascio» nella finestra di dialogo Pubblica. Questi flussi di lavoro appariranno nella scheda Flusso di lavoro «Obsoleto» nelle impostazioni di rilascio.
All'interno di un flusso di lavoro Obsoleto è possibile contrassegnare un elemento da rilasciare nuovamente con questa sintassi:
{
"name": "Mark revision as re-releasable",
"propertyId": "os-mark-rereleasable",
"valueType": "BOOL"
}
Eliminare flussi di lavoro
Attualmente, anche se si elimina un documento Onshape contenente un documento JSON del flusso di lavoro, il flusso di lavoro rimarrà nell'elenco dei flussi di lavoro disponibili nelle impostazioni di rilascio. Puoi de-selezionare il flusso di lavoro in modo che non sia disponibile per la selezione durante la creazione di una versione di pre-rilascio. Sebbene ciò non sia ottimale, esiste una best practice per creare test dei flussi di lavoro e quindi aggiornarli a una versione di rilascio.
Un documento contenente un file JSON flusso di lavoro si comporta esattamente come qualsiasi documento Onshape. Ciò significa che il documento può essere modificato solo mentre ti trovi nell'area di lavoro (in genere Principale). Puoi pubblicare un documento del flusso di lavoro dall'area di lavoro e ciò creerà una versione del documento. Durante la pubblicazione è possibile sovrascrivere il flusso di lavoro esistente.
Questa metodologia consente di sperimentare diverse opzioni e flussi di lavoro prima di pubblicare (rilasciare) un flusso di lavoro che soddisfi le esigenze dell'organizzazione.