Onshape는 즉시 사용할 수 있는 일반 릴리스 관리 워크플로를 제공합니다.이 프로세스는 에 설명되어 있습니다. 일반적인 릴리스 워크플로.Onshape는 이러한 일반 워크플로 외에도 사용자 지정 릴리스 관리 워크플로를 설계 및 생성한 다음 전체 조직에서 사용할 수 있도록 해당 워크플로를 게시할 수 있는 기능을 제공합니다.조직 내 특정 릴리스 관리 요구 사항을 충족하기 위해 여러 워크플로를 만들 수도 있습니다.

이 기능을 이용하기 위해서는 Onshape 엔터프라이즈의 관리자 역할이 배정되어야 합니다.

Onshape는 릴리스 관리 동작을 규제하는 다양한 옵션을 제공합니다. 비즈니스 프로세스에 따라 이러한 설정은 릴리스의 동작 방식, 릴리스의 조건, 사용 가능한 리비전 구성 등에 대한 기본 규칙으로 정의될 수 있습니다. 이들 옵션은 Onshape 회원계정에 있는 Company/엔터프라이즈 설정의 릴리스 관리 페이지에서 설정할 수 있습니다.

많은 경우에서 여러 릴리스 프로세스를 한 조직에서 구현할 경우, 다양한 프로세스에서 분리된 릴리스 설정이 필요할 수 있습니다. 릴리스 관리 설정 페이지에 정의된 기본 설정은 사용자 지정 릴리스 프로세스를 구현하는 과정에서 릴리스 프로세스에 따라 재정의될 수 있고, 프로세스에 따라 기본값을 재정의할 수도 있습니다.

자체 사용자 지정 릴리스 관리 워크플로를 생성하는 과정과 Onshape에서 이를 구현하는 방법을 알아보려면 읽어 보십시오.

사용자 지정 워크플로를 생성할 때 수반되는 사항

기본적으로 Onshape는 JSON 파일을 사용해 릴리스 및 사용되지 않는 워크플로 모두에 대한 레이아웃과 동작을 정의합니다.

  1. 기본 Onshape JSON 파일 다운로드
  2. 이 항목에서 제공된 JSON 구문을 따라 파일 사용자 지정
  3. 사용자 지정 JSON 파일을 다시 Onshape 통합문서에 업로드
  4. 사용자 지정 워크플로를 조직에 게시

해당 단계에 대해서는 아래에서 자세히 설명합니다.

JSON 파일 다운로드

조직의 Onshape 도메인 내에서 기본 JSON 파일을 찾을 수 있습니다.

  1. Onshape 계정에 로그인합니다.
  2. Company/엔터프라이즈 설정 > 릴리스 관리 페이지로 이동합니다.
  3. 릴리스 워크플로 또는 사용되지 않는 워크플로 등 워크플로 헤딩에서 생성하려는 워크플로 유형을 선택합니다.
  4. 드롭다운에서 Onshape 기본값...을 선택합니다.
  5. 드롭다운 옆의 통합문서에서 보기 링크를 클릭합니다.

워크플로 설정 및 관리형 워크플로 활성화의 예

JSON 파일 형식은 텍스트 형식이므로 상당히 이해하기 쉬운 반면, 워크플로가 복잡해지면 까다로와질 수 있습니다. Onshape가 통합문서의 구문과 서식 지정에서의 실수를 몇 가지 알려주긴 하지만, 오류 교정은 아니며 여전히 존재하는 오류로 인해 워크플로가 실패하게 될 수 있습니다.

여러 Onshape 워크플로를 설정하고 사용하는 방법에 대한 자세한 내용은 사용자 지정 릴리스 워크플로 생성 항목을 참조하십시오.

조직의 필요에 따라 JSON 사용자 지정

먼저 JSON이 무엇인지를 알아보겠습니다. JSON은 JavaScript Object Notation의 약어로, 데이터를 저장하고 전송하기 위해 사용되는 라이트웨이트 형식입니다. JSON은 종종 서버와 웹 페이지 간에 데이터를 전송하는 데 사용됩니다. JSON 형식은 “자기 기술적” 형식이며 쉽게 이해할 수 있습니다.

JSON은 두 가지 구조로 구성됩니다.

  • 이름/값 쌍의 모음. 여러 언어에서 이 항목은 개체, 레코드, 구조, 사전, 해시 테이블, 키 목록 또는 연관 어레이로 실현됩니다.
  • 값의 순서 목록. 대부분 언어에서 이 항목은 어레이, 벡터, 목록 또는 시퀀스로 실현됩니다.

이것은 범용 데이터 구조입니다. 실제로 모든 최신 프로그래밍 언어가 한 가지 형태나 또 다른 형태로 이러한 구조를 지원합니다. 프로그래밍 언어와 상호 교환할 수 있는 데이터 형식이 이러한 구조를 기반으로 합니다.

JSON에서는 구조가 이러한 형태를 취합니다.

개체는 순서가 지정되지 않은 이름/값 쌍에 해당합니다. 개체는 왼쪽 괄호 {로 시작하고 오른쪽 괄호 }로 끝납니다. 각 이름 다음에는 : 콜론이 오고, 이름/값 쌍은 , 쉼표로 구분됩니다.

다음은 Onshape Workflow JSON에서 볼 수 있는 표현입니다. 이 예에서는 직원 개체를 정의합니다: 3개 직원 레코드(개체)의 어레이:

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

Onshape JSON 형식

Onshape에서는 다음과 같이 JSON 파일에 4개의 개체가 존재합니다.

  • 옵션 - 릴리스 설정 정의
  • 속성 - 특성 정의 설정
  • 상태 - 노드 정의 제어
  • 전환 - 링크 정의 지정

릴리스 설정은 통합문서의 릴리스 동작과 관련하여 가능한 10가지 설정의 그룹입니다. 이들 설정 모두는 Company/엔터프라이즈 설정의 릴리스 관리 페이지에서 확인할 수 있습니다. 단, JSON 워크플로 파일의 정의는 Company/엔터프라이즈 설정에 정의된 해당 릴리스 관리 설정을 재정의합니다.

특성 정의는 릴리스 후보자 대화상자에 나타나는 특성입니다. 이러한 특성은 워크플로에서 하나 이상의 노드에 할당될 수 있고, 서로 다른 유형이거나 필수 또는 선택 사항일 수 있고, “파트 번호”와 같은 기본값을 포함할 수 있습니다.

노드 정의는 워크플로에 포함되는 노드의 유형과 해당 노드에 할당된 특성을 정의합니다. 예를 들어, “보류 중” 또는 “릴리스됨” 등이 있습니다.

링크 정의는 전환 중 발생할 수 있는 자동 작업입니다. 이 작업은 노드를 함께 연결할 뿐 아니라, 특정 전환에서 릴리스 후보자에 나타나는 특성을 정의합니다. 예를 들어, 다음 작업에 할당된 사용자에게 이메일 알림을 전송합니다.

다음 섹션은 Onshape 워크플로 통합문서의 여러 섹션과 다양한 특성에 가능한 모든 옵션에 대해 설명합니다.

워크플로 JSON 정의

옵션 섹션

JSON 파일의 첫 번째 섹션을 통해 워크플로가 릴리스의 조건을 규제하는 고유 설정을 갖게 됩니다. 이들 설정 모두 Company/엔터프라이즈 설정 --→ 릴리스 관리 페이지에서 확인할 수 있습니다. JSON 워크플로에 정의된 설정은 릴리스 관리 페이지에 설정된 항목을 재정의합니다.

다음의 “옵션” 개체는 가능한 모든 이름/값 쌍을 정의하지만, 이들 개체는 선택 항목에 해당합니다. 정의되지 않은 경우, 릴리스 관리 설정 페이지에 정의된 값이 기본적으로 사용됩니다. 예를 들어 다음과 같습니다.

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

다음은 이러한 옵션의 각각을 자세히 설명합니다.

revisionSchemeId

Company/엔터프라이즈 설정의 릴리스 관리 페이지에서 획득한 고유의 ID 드롭다운에서 리비전 구성 유형을 선택하고, 후속 리비전 구성 ID를 복사하여 JSON의 이 필드에 삽입하십시오.

Onshape는 다음과 같이 다양한 유형의 리비전 구성을 제공합니다.

  • 알파벳순
  • 숫자
  • 사용자 지정

많은 조직에서는 생산전 워크플로에서 숫자 구성을 사용하고, 엔지니어링후 릴리스 및 변경 프로세스에서 알파 기반 구성으로 전환하는 경우가 많습니다. 이 옵션을 선택하면 워크플로가 릴리스 설정에 정의된 기본값을 재정의하고, 숫자 또는 알파 기반 리비전 구성을 사용할 수 있습니다.

리비전 및 파트 번호 설정

클립보드로 복사 버튼을 클릭하면 JSON 워크플로에서 적절한 리비전 구성 ID를 사용할 수 있습니다.

requireApprover

“true”로 설정되면 이 옵션이 릴리스 후보자 대화상자에서 승인자 필드를 필수로 설정합니다. 이 옵션은 릴리스 관리 설정에서 “릴리스 대화상자에 승인자 필요” 옵션과 직접 관련이 있습니다.

requireAllApprovers

다수의 워크플로에서는 조직 내 서로 다른 그룹 또는 담당자의 동시 승인이 필요할 수도 있습니다. 이 설정을 “true”로 설정하면 승인자돌 명명된 모든 그룹 또는 담당자가 워크플로를 승인해야 다음 노드로 진행할 수 있습니다.

승인자가 워크플로를 거부하면 즉시 거부됨 상태로 이동됩니다.

이 옵션이 “false”로 설정되면 정의된 그룹 또는 사람 중 한 명만이 다음 노드로 진행하도록 릴리스를 수락할 수 있습니다. 이 경우, 승인이 하나만 필요합니다.

릴리스 이름, 릴리스 노트, 승인자 필요를 보여주는 릴리스 후보자 생성 대화상자

disallowCreatorAsApprover

많은 조직에서 릴리스 프로세스를 개시한 사람이 승인자가 될 수 없습니다. “true”로 설정되면 해당 옵션이 이 정책을 시행하고 릴리스 후보자의 생성자에 의해 릴리스 후보자가 승인되지 못하게 설정합니다.

requireNote

“true”로 설정되면 이 옵션이 워크플로의 모든 단계에서 “메모” 필드를 채워야 하는 정책을 시행합니다. 즉, 워크플로의 개시자가 릴리스 노트를 입력해야 하고 해당 릴리스를 승인(또는 거부)한 각 담당자가 설명을 입력해야 합니다. 릴리스 노트 필드는 위의 이미지와 같이 대화상자에서 필수 항목이 됩니다.

autoObsolete

이 옵션을 “true”로 설정하면 새로운 항목을 릴리스할 때 지정된 항목의 이전 리비전이 즉시 사용하지 않음으로 설정됩니다. Onshape는 동시에 여러 개의 릴리스 활성화를 허용하지만, 일부 조직에서는 지정된 시간에 파트, 어셈블리 또는 도면의 릴리스 하나만을 필요로 합니다.

다음은 릴리스 중인 통합문서의 오류와 관련된 4가지 옵션입니다. 각각의 옵션은 해당하는 조건이 릴리스 항목에서 충족될 때, 옵션을 “true”로 설정하면 항목에서 오류가 생성되고 릴리스 후보자의 제출이 차단됩니다. 옵션이 false로 설정되면 여전히 해당 항목에 대한 경고가 생성되지만 릴리스를 제출할 수는 있습니다.

이러한 옵션을 “true”로 설정하면 릴리스 후보자가 제출되지 않습니다. 이들 설정은 Company/엔터프라이즈 설정 → 릴리스 관리 페이지에 정의된 기본 동작을 재정의합니다.

errorOnFeatureListErrors

이 옵션은 피처리스트에 오류가 있을 경우, 파트의 릴리스를 차단합니다.

errorOnRolledBack

이 옵션은 Part Studio의 롤백 바가 피처리스트의 끝에 없을 경우, 파트의 릴리스를 차단합니다.

errorOnAssemblyErrors

이 옵션은 어셈블리에 오류가 포함된 경우, 어셈블리의 릴리스를 차단합니다.

errorOnDrawingOutOfDate

이 옵션은 최신 버전이 아닐 경우 도면의 릴리스를 차단합니다.

속성 섹션

속성은 릴리스 후보자 대화상자에 추가할 수 있는 특성입니다. 이러한 특성은 서로 유형이 다르고, 기본값을 포함하거나, 필수 또는 선택 항목으로 설정할 수 있습니다.

다음은 Onshape Workflow JSON 파일의 속성 개체에 정의된 여러 특성의 예입니다.

"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": ""
},
]

이 섹션에서는 속성 개체에 사용 가능한 다양한 특성과 해당 값에 대해 자세히 설명합니다.

name

이름 특성의 값은 아무 문자열이나 될 수 있습니다. 이 속성은 여기서와 같이 릴리스 후보자 대화상자의 해당 필드 위에 나타납니다.

릴리스 후보자 대화상자에서 이름 특성의 값을 보여주는 예

propertyId

propertyId 값은 JSON 컨텍스트 내에서 고유 문자열로 정의될 수 있습니다. 이 값은 워크플로의 단계에서 사용 가능한 특성을 정의하기 위해 다른 개체에서 사용됩니다.

나중에 쉽게 참조할 수 있도록 속성 ID를 정의하는 것이 권장됩니다. 예를 들어 “rejection_reason” 또는 “Engineering_approver”와 같이 자체적인 설명을 포함하여 속성 ID를 지정할 수 있습니다.

속성 ID는 고유해야 합니다(Onshape의 하드 코드 이름, 설명 또는 의견 속성 ID와 일치하지 않음).

valueType

이 특성의 값은 릴리스 후보자 대화상자에 표시할 필드 유형을 정의합니다. 여기서 사용할 수 있는 값의 유형은 다음과 같습니다.

  • USER - 사용자, 팀 및 역할을 선택할 수 있는 필드를 생성합니다. 이 속성 유형의 기본값은 사용자, 팀 또는 역할 ID의 어레이여야 합니다.
  • STRING - 일반 텍스트 필드.
  • INT - 정수.
  • DOUBLE - 10진수 값.
  • DATE - 날짜 선택 컨트롤을 제공합니다.
  • ENUM - 선택 컨트롤을 제공하며, 사용자가 선택할 수 있는 정의된 값으로 미리 채워집니다. 이 유형을 사용한 속성은 필드의 값 목록도 제공합니다. 다음은 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

defaultValue는 정의할 필드를 미리 채울 값을 제공합니다. 여기서 정의된 값은 valueType 특성에서 서택한 필드 유형과 일치해야 합니다.

USER 유형 속성의 경우, 기본값은 아래와 같이 사용자/팀/역할 ID 목록이어야 합니다. 다른 모든 개체의 경우는 단일 값(숫자 또는 문자열)입니다.

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

사용자 및 팀 ID는 Company/엔터프라이즈 설정의 사용자 또는 팀 페이지에서 찾아볼 수 있습니다. 사용자 또는 팀을 마우스 오른쪽 버튼으로 클릭하고 컨텍스트 메뉴에서 '편집'을 선택한 다음, ID 필드 옆에 있는 '클립보드로 복사' 버튼을 사용해서 값을 복사합니다.

사용자 편집 대화상자의 예, 사용자 ID 필드 옆의 클립보드로 복사 옵션 포함

상태 섹션

상태는 워크플로에서 실제 노드를 정의합니다. 즉, 릴리스 프로세스를 진행할 때 릴리스 패키지의 상태를 나타냅니다. 패키지가 이러한 상태 노드에 도달하면 여기에 나타난 것처럼 “Name” 특성에 정의된 상태가 할당됩니다.

다음은 일부 상태에 대한 예입니다.

"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

이 특성은 상태 노드에 대한 고유 ID로 작용합니다. 워크플로 내에서 고유할 경우, 어떤 문자열이든 될 수 있습니다.

릴리스 검토 대화상자에서 상태 노드의 고유 ID 예

displayName

displayName 특성 값은 워크플로 다이어그램에 표시되는 이름으로, 해당 노드가 무엇인지를 설명하는 모든 문자열이 될 수 있습니다. 워크플로의 복잡성에 따라 이름(ID)이 다르더라도 여러 상태가 동일한 표시 이름을 가질 수 있습니다.

approverSourceProperty

이 특성은 (있는 경우) 속성 개체에 정의된 속성 중 상태의 승인자로 작용하는 속성을 알려줍니다. 이 특성의 값은 USER 유형 속성의 propertyId여야 합니다. 해당 속성의 사용자와 팀에게 릴리스 진행 상황에 대한 알림이 제공되며, 해당 상태에서 이동하기 전에 릴리스를 승인해야 합니다.

속성 상태
{
"name": "규정 준수 승인",
"propertyId": "comp_app",
"valueType": "USER"
}
{
"name": "이름",
"displayName": "표시 이름",
"approverSourceProperty": "comp_app"
}

notifierSourceProperty

approverSourceProperty와 유사하게 이 특성은 USER 유형 속성의 propertyId이며 워크플로가 이 상태에 도달할 때 (있는 경우) 통지를 받을 대상을 정의합니다. 이는 사용자 또는 사용자 그룹과 같으며, 릴리스를 팔로우하나 반드시 참여할 필요는 없습니다.

entryActions
exitActions

Onshape 워크플로에서는 워크플로의 특정 지점에서 일부 사전 정의된 동작이 발생할 수 있습니다. 이러한 동작은 항목의 메타데이터를 업데이트하거나 이해관계자들에게 알림을 전송할 수 있습니다. 상태 진입 및 출구 동작은 릴리스가 상태로 들어가거나 나갈 때 발생합니다.

작업에 대해서는 이 통합문서의 작업 섹션에 자세히 설명되어 있습니다.

editableProperties

이 특성을 이용하면 워크플로의 이 단계에서 편집할 수 있는 속성 목록을 정의할 수 있습니다. 이 특성의 값은 워크플로에서 정의된 속성의 propertyId 목록이어야 합니다.

관계를 포함한 속성 개체 및 상태 개체의 예

requiredProperties

이 특성은 필수 항목에 해당하는 특성 값의 목록을 정의하며, 릴리스가 이 상태를 종료하기 전에 작성되어야 합니다. editableProperties와 같이 이 특성의 값은 propertyIds의 목록입니다.

propertyId가 필수로 표시된 경우, 자동으로 편집 가능하게 설정됩니다.

requiredItemProperties

사용자 지정 속성 설정, 크기 특성을 선택한 상태

이 특성은 워크플로 속성이 아닌 Company/엔터프라이즈 설정의 '사용자 지정 속성' 페이지에 있는 메타데이터 속성 ID 목록입니다. 즉, 다음으로 이동하기 전에 릴리스 후보자의 각 항목에서 작성되어야 합니다. 속성 ID를 가져오려면 사용자 지정 속성 페이지에서 속성을 두 번 클릭하고 ID 필드 옆에 있는 '클립보드로 복사' 버튼을 사용하십시오. 이 작업을 수행하려면 Company 관리자여야 합니다.

다음은 사용자 지정 속성을 사용하는 상태 개체의 예입니다.

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

전환 섹션

전환은 상태를 함께 연결하는 작업입니다. 즉, 상태 간의 상호 작용을 처리하고 사용자가 릴리스 대화상자에서 “제출” 또는 “승인”과 같은 버튼을 클릭할 때 발생하는 동작을 처리합니다.

다음은 전환 개체의 예입니다.

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

다음과 같은 그래픽 표현:

상태 및 전환의 그래픽 표현

다음은 전환 개체 내에서 사용할 수 있는 옵션을 자세히 설명하고, 전환과 상태의 관계를 보여줍니다.

name

시작과 끝을 살펴보지 않고도 이 전환 개체의 목적을 쉽게 파악할 수 있도록 고유의 설명을 포함한 이름이어야 합니다. 보다 복잡한 흐름에서는 다수의 전환과 훨씬 더 많은 상태가 존재할 수 있습니다. 이 경우, JSON이 매우 길어지고 혼동될 가능성이 있습니다. 설명을 포함한 이름을 사용하면 JSON을 간소화하고 오류를 방지할 수 있습니다.

displayName

displayName은 워크플로 다이어그램에 표시되는 값입니다. 위에서처럼 전환 표시 이름은 “Advance”로 정의됩니다. 설명을 포함하고 전환에 대한 표현을 나타내야 하는 조건 이외에 이에 대한 특별한 규칙은 없습니다.

유형

이는 상태 간의 전환 유형을 정의하며, 다음과 같이 3가지 유형이 가능합니다.

  • SUBMIT
  • APPROVE
  • 거부

항상 첫 번째 전환은 제출 유형 중 하나이며, 이후 전환은 승인 또는 거부 유형이어야 합니다.

다음은 각 옵션 유형을 자세히 설명합니다.

  • 제출
    • 설정에서 나가 워크플로로 이동할 때 릴리스에서 다양한 “초기화”를 수행합니다(예: 릴리스에서 구성된 파트에 대한 썸네일 생성 시작, 연결된 통합문서/버전 ID 연결 등).
    • 릴리스 작성자만이 SUBMIT 전환을 실행할 수 있는 기능이 있습니다.
    • 초기 상태로부터의 전환은 제출이어야 합니다.
    • 초기 전환에 해당하지 않는 제출은 특수 기능이 없습니다.
  • 승인
    • 사용자가 릴리스 후보자를 승인한 것으로 표시합니다(릴리스 대화상자에서 토큰이 녹색으로 바뀜).
    • Company 정책이 모든 승인자 필요로 설정된 경우, 모든 승인자가 승인하기 전까지 전환이 수행되지 않습니다.
    • 항목에 대한 어셈블리/도면 내용 참조를 생성합니다.
    • 상태에서 이 유형의 전환 하나만 허용됩니다.
    • 현재 상태의 승인자(또는 관리자)만이 승인할 기능을 갖습니다.
  • 거부
    • 사용자가 릴리스 후보자를 거부한 것으로 표시합니다(릴리스 대화상자에서 토큰이 빨간색으로 바뀜).
    • 현재 상태의 승인자(또는 관리자)만이 거부할 기능을 갖습니다.

uiHint

그래픽 디스플레이에서 다음 노드의 컬러를 비롯하여 릴리스 대화상자에서 해당하는 버튼을 정의합니다. 현재 이 특성에 대해 Bootstrap UI 스타일인 3가지 값을 사용할 수 있습니다.

  • “primary” – 파란색
  • “success” – 녹색
  • “danger” - 빨간색

sourceState
&
targetState

sourceState 특성은 이 전환이 시작된 상태 개체의 이름입니다. targetState 특성은 전환을 진행한 상태 개체의 이름입니다.

이름 지정은 일관성을 제공하고 가능한 오류를 줄이기 위해서 매우 중요합니다. 이러한 이유로 상태 개체에 대해 설명을 포함한 이름을 사용하는 것이 권장됩니다. 대형 워크플로에서는 이것이 복잡하고 오류를 발생시키기 쉬울 수 있습니다. 다음의 다이어그램은 상태 개체와 소스 및 대상 상태 특성 간의 매핑을 보여줍니다.

관계를 포함한 상태 개체 및 전환 개체의 예

작업

상태와 같이, 전환에는 릴리스 후보자를 다음 상태로 이동하는 것 이외의 작업이 수행될 수 있습니다. 이 특성은 상태에서 entryActions 및 exitActions와 동일한 방식으로 작업 목록을 정의합니다. 전환의 작업은 소스 상태의 exitActions과 대상 상태의 entryActions 이전에 실행됩니다.

액션 섹션

이 섹션에서는 상태 및 전환에 할당될 수 있는 작업을 자세히 설명합니다. 대부분 작업이 두 가지 모두에 공통되며, 일부는 순서 할당과 배치 위치 모두에 제한이 있습니다.

작업은 단일 특성 “name”을 포함한 JSON 개체로 표현됩니다.

다음은 진입 또는 출구 동작을 포함한 상태의 예입니다.

{
"name": "PENDING_ENGINEERING_APPROVAL",
"displayName": "Pending engineering approval",
"approverSourceProperty": "engineers",
"entryActions": [
{
"name": "markItemsPending"
}
],
"exitActions": []
}
전환 내에서 다음과 같이 정의될 수 있습니다.
"actions": [
{
"name": "sendUserNotifications"
},
{
"name": "sendEmailNotifications"
}
]

현재 사용 가능한 작업입니다.

  • markItemsPending - 릴리스에서 모든 항목의 메타데이터 상태를 보류 중으로 변경합니다. 이 작업은 사용되지 않는 워크플로에서는 허용되지 않고, markItemsRejected 또는 releaseItems 작업 후에는 사용할 수 없습니다.
  • markItemsRejected - 릴리스에서 모든 항목의 메타데이터 상태를 거부됨으로 변경합니다. 이 옵션은 사용되지 않는 워크플로에서는 허용되지 않고, markItemsRejected 이후 또는 releaseItems 작업 이전에는 사용할 수 없습니다.
  • releaseItems - 릴리스에 있는 모든 항목의 메타데이터 상태를 릴리스됨으로 변경하고, 해당 항목에 대한 리비전을 생성합니다(Company 정책 또는 워크플로별 옵션에 지정된 경우, 다른 리비전은 자동으로 사용 안함). 이 옵션은 릴리스 워크플로에 대해 사용할 수 없습니다.
  • obsoleteItems - 패키지에 있는 모든 항목의 메타데이터 상태를 사용되지 않음으로 변경하고, 해당 리비전의 사용을 중지합니다. 이 옵션은 릴리스 워크플로에 대해 사용할 수 없습니다.
  • sendUserNotifications - 릴리스 후보자를 열 수 있는 링크를 포함해 전환이 발생한 Onshape 알림 패널에서 메시지를 전송합니다. 이 작업은 전환에서만 허용됩니다.
  • sendEmailNotifications - Onshape에서 릴리스 후보자를 열기 위한 링크를 포함한 이메일 알림을 전송합니다. 이 작업은 전환에서만 허용됩니다.

위의 알림 동작 모두 릴리스 후보자의 생성자뿐 아니라 소스 및 대상 상태(있을 경우)에 대해 상태의 approverSourcePropery 및 notifierSourceProperty 특성에 지정된 대로 승인자와 통지자에게 알림을 전송합니다. 승인자의 경우, 알림에는 릴리스 후보자를 승인하기 위해 취할 조치가 포함됩니다.

유용한 팁과 조언

Onshape 워크플로 디자이너가 도움을 제공할 수 있습니다.

Onshape에서 JSON을 편집할 때 워크플로가 노드(상태) 및 모서리(전환)를 포함한 그래프로 나타나며, JSON을 변경할 때 실시간으로 업데이트됩니다. 에디터가 JSON 서식 지정 오류를 강조 표시합니다.

기본 에디터가 있을 경우, 해당 프로그램에서 JSON을 편집하고 Onshape에 업로드할 수 있습니다. 이 경우에도 그래픽 디자이너가 오류를 강조 표시합니다.

Onshape 워크플로 디자이너가 JSON 서식 지정 오류 및 특정 유형의 구조적 실수(예: 부적합한 ID)를 포착하되, 사용자에게 알려주지는 않습니다. 예를 들어 잘못된 전환 유형을 사용했을 수 있습니다. 테스트가 중요한 이유가 바로 여기에 있습니다!

설명을 포함한 이름과 ID 사용

워크플로가 복잡해지면 속성과 같이 여러 개체에 사용한 ID를 추적하기가 어려워집니다. 상태 개체를 전환 개체 sourceState 및 targetState 특성 값과 연결할 때 특히 복잡해질 수 있습니다.

설명이 포함되고 항상 고유한 이름을 사용함으로써 JSON을 간소화하고 가능한 여러 오류를 피할 수 있습니다.

맞춤법 및 대소문자 구분

JSON에서 개체 이름 및 특성 이름을 비롯하여 일부 값이 하드 코딩되고 대소문자가 구분됩니다. 예를 들어, “sourceState” 특성은 “sourcestate”와 같은 특성이 아닙니다. 이와 같은 오타로 인해 워크플로가 실패하게 됩니다.

이 항목은 올바른 구문을 사용하며, 여기 또는 Onshape에서 제공한 예시 워크플로 중 하나에서 해당 키워드를 복사하여 붙여 넣어야 합니다.

워크플로 테스트

생산에서 사용하기 전에 테스트 파트에서 워크플로를 실행하고 원활히 작동하는지 확인하십시오. 워크플로에서 사용한 릴리스 환경설정이 예상된 동작을 제공하는지 확인하십시오.

워크플로 내의 여러 단계에 할당된 그룹이 릴리스를 수락합니다.

사용되지 않는 워크플로 생성

이 항목은 릴리스 워크플로를 생성하는 방법을 보여줍니다. 사용되지 않는 워크플로를 생성하는 프로세스는 동일하지만, releaseItems 동작이 없고 대신 상태 개체에 obsoleteItems 진입 동작이 존재합니다. 이 워크플로를 게시하면 게시 대화상자에 아래와 같이 “릴리스 워크플로” 옵션 대신 “사용되지 않는 워크플로” 라디오 버튼 옵션이 나타납니다. 이러한 워크플로는 릴리스 설정에서 “사용되지 않는 워크플로” 탭 아래에 나타납니다.

폐기 워크플로 내에서 다음 구문을 사용하여 항목을 다시 릴리스하도록 표시할 수 있습니다.

{
“name”: “개정판을 다시 릴리스 가능으로 표시”,
"propertyId": "os-mark-rereleasable",
"valueType": "BOOL"
}

워크플로 삭제

현재 워크플로 JSON 통합문서를 포함한 Onshape 통합문서를 삭제해도 해당 워크플로가 릴리스 설정에서 사용 가능한 워크플로 목록에 그대로 유지됩니다. 릴리스 후보자를 만들 때 선택할 수 없도록 해당 워크플로의 선택을 취소할 수 있습니다. 이것이 최적은 아니지만, 테스트 워크플로를 만들어 릴리스 버전으로 업데이트하기 위한 모범 사례에 해당합니다.

워크플로 JSON 파일을 포함한 통합문서는 Onshape 통합문서와 정확히 동일한 방식으로 동작합니다. 즉, 작업공간(일반적으로 메인)에 있을 때에만 통합문서를 편집할 수 있습니다. 작업공간에서 워크플로 통합문서를 게시할 수 있고, 이렇게 하면 통합문서의 버전이 생성됩니다. 게시할 때 기존 워크플로를 재정의할 수 있는 기능이 제공됩니다.

이 방법론을 통해 조직의 필요에 맞는 워크플로를 게시(릴리스)하기 전에 여러 가지 옵션과 워크플로를 실험해볼 수 있습니다.