업데이트 세트를 통한 워크플로우 이동
워크플로우 정보는 여러 테이블에 저장되므로 시스템은 업데이트 세트의 워크플로우를 다른 기록과 다르게 추적합니다.
워크플로우 버전에 대한 변경 내용은 워크플로우가 게시될 때까지 업데이트 세트에 추가되지 않으며, 이때 전체 워크플로우가 업데이트 세트에 추가됩니다. 업데이트 세트는 워크플로우를 단일 워크플로우 [wf_workflow] 레코드로 저장하고 업데이트 유형이 워크플로우인 최신 버전만 유지합니다.
업데이트 세트에 대한 자세한 내용은 시스템 업데이트 세트를 참조하십시오.
워크플로우 업데이트 세트 마이그레이션 사용 사례 - 단순
의존성이 없는 새 워크플로우를 생성한 다음 업데이트 세트에서 워크플로우를 마이그레이션합니다.
- 사용자 A가 업데이트 세트 A를 선택합니다.
- 사용자 A는 워크플로우 A라는 새 워크플로우를 만듭니다.
- 사용자 A가 워크플로우 A를 게시합니다.
고객 업데이트 세트 기록은 게시된 워크플로우 A 및 모든 활동 의존성을 포함하여 XML 페이로드를 포함하는 업데이트 세트 A에 추가됩니다. XML 페이로드에는 워크플로우와 연결된 워크플로우 입력 변수도 포함되어 있습니다.
- 사용자 A는 업데이트 세트 A를 완료하고 프로덕션 인스턴스로 마이그레이션합니다.
- 업데이트 세트 A가 성공적으로 커밋되었습니다.
- 워크플로우 A가 예상대로 작동합니다.
워크플로우 업데이트 세트 마이그레이션 사용 사례 - 하위 플로우 의존성(성공)
기존 워크플로우와 종속 하위 플로우를 성공적으로 편집하고 마이그레이션합니다.
- 사용자 A가 업데이트 세트 B를 선택합니다.
- 사용자 A가 워크플로우 A를 체크아웃합니다.
- 사용자 A는 워크플로우 B라는 하위 플로우를 워크플로우 A에 추가합니다.
워크플로우 B가 이전에 게시되어 프로덕션 인스턴스로 마이그레이션되었다고 가정합니다.
- 사용자 A가 워크플로우 A를 게시합니다.
고객 업데이트 세트 기록이 업데이트 세트 B에 추가되고 게시된 워크플로우 A와 모든 활동 의존성을 포함해 XML 페이로드가 포함됩니다. XML 페이로드에는 워크플로우와 연결된 워크플로우 입력 변수도 포함되어 있습니다.
- 사용자 A는 업데이트 세트 B를 완료하고 프로덕션 인스턴스로 마이그레이션합니다.
- 업데이트 세트 B가 커밋되었습니다.
- 워크플로우 A는 예상대로 작동하며 워크플로우 B는 하위 플로우입니다.
워크플로우 업데이트 세트 마이그레이션 사용 사례 - 하위 플로우 의존성(실패)
종속 하위 플로우가 누락되어 프로덕션 인스턴스에서 실행되지 못하는 테스트 인스턴스에서 기존 워크플로우를 편집하고 마이그레이션합니다.
- 사용자 A는 업데이트 세트 C를 선택합니다.
- 사용자 A가 워크플로우 A를 체크아웃합니다.
- 사용자 A는 워크플로우 B라는 하위 플로우를 워크플로우 A에 추가합니다.
워크플로우 B가 이전에 게시되었지만 프로덕션 인스턴스로 마이그레이션되지 않았다고 가정합니다.
- 사용자 A가 워크플로우 A를 게시합니다.
고객 업데이트 세트 기록이 XML 페이로드를 포함하는 업데이트 세트 C에 추가되고 게시된 워크플로우 A 및 모든 활동 의존성을 포함합니다. XML 페이로드에는 워크플로우와 연결된 워크플로우 입력 변수도 포함되어 있습니다.
특히 업데이트 세트 C에는 워크플로우 B라는 하위 플로우가 없습니다. 워크플로우 B는 사용자 A가 업데이트 세트 C를 선택하기 전에 게시되었습니다.
- 사용자 A는 업데이트 세트 C를 완료하고 프로덕션 인스턴스로 마이그레이션합니다.
- 업데이트 세트 C가 경고와 함께 커밋됩니다.
- 프로덕션 인스턴스에서 워크플로우 A가 호출되어 다음과 같은 결과가 나타납니다.
워크플로우 A가 런타임 확인 검사에 실패하고 프로덕션 시스템에서 실행할 수 없습니다. 시스템은 워크플로우 컨텍스트에 실패의 원인, 특히 종속 워크플로우의 부재를 자세히 설명하는 워크플로우 로그 항목을 추가합니다.
워크플로우 의존성 및 업데이트 세트에 대한 유효성 검사에 대한 자세한 내용은 다음 문서를 참조하십시오 ValidateUpdateSetDependencies.
워크플로우 업데이트 세트 마이그레이션 사용 사례 - 하위 플로우 의존성(위험)
여러 사용자가 적절한 조정 없이 테스트 인스턴스에서 프로덕션 인스턴스로 워크플로우를 마이그레이션합니다. 이 사용 사례는 성공할 수 있지만, 각 사용자가 의존성을 이해하고 워크플로우의 종속 부분을 새 인스턴스로 올바르게 마이그레이션하는 경우에만 성공할 수 있습니다.
이 예시는 업데이트 세트가 실패를 나타내지 않지만 이 사용 사례에서 업데이트 세트가 가장 자주 비난됩니다. 확인을 통해 여러 업데이트 세트에서 워크플로우 의존성의 가시성이 향상되고 디자이너에게 더 나은 정보를 제공할 수 있습니다. 대부분의 경우 경고는 작업을 방지하는 것이 아니라 위험을 식별할 뿐입니다. 디자이너는 유효성 검사에서 제공된 조언에 따라 작업을 수행할 책임이 있습니다.
- 사용자 A는 업데이트 세트 C를 선택합니다.
- 사용자 A가 워크플로우 A를 체크아웃합니다.
- 사용자 A는 사용자 ID를 반환하는 워크플로우 B라는 하위 플로우를 추가합니다.주:워크플로우 B가 이전에 게시되어 프로덕션 인스턴스로 마이그레이션되었다고 가정합니다.
- 사용자 A는 워크플로우 B의 반환 값을 사용하여 승인을 생성합니다.
- 사용자 B가 업데이트 세트 D를 선택합니다.
- 사용자 B가 워크플로우 B(워크플로우 A의 하위 플로우)를 체크아웃합니다.
- 사용자 B는 워크플로우의 반환 값을 사용자 ID 에서 문자열 메시지로 변경하여 수정합니다.
- 사용자 A가 워크플로우 A를 게시합니다.주:대화 상자에 워크플로우 A와 관련된 경고가 표시되고 사용자 A에게 게시하기 전에 워크플로우의 유효성을 검사하도록 권장합니다.
- 사용자 A가 게시를 취소하고 워크플로우 A 의 유효성을 검사합니다 .
- 사용자 A에게 워크플로우 B가 다른 업데이트 세트의 사용자에 의해 수정되었다는 경고가 표시됩니다.
- 사용자 A는 이 경고를 무시하고 워크플로우 A를 게시합니다.주:고객 업데이트 세트 기록이 XML 페이로드를 포함하는 업데이트 세트 C에 추가되고 게시된 워크플로우 A 및 모든 활동 의존성을 포함합니다. XML 페이로드에는 워크플로우와 연결된 워크플로우 입력 변수도 포함되어 있습니다.
- 사용자 A는 업데이트 세트 C를 완료하고 프로덕션 인스턴스로 마이그레이션합니다.
- 워크플로우 A는 프로덕션 인스턴스에서 호출되고 시스템에 이미 있는 이전 버전의 워크플로우 B를 사용하여 성공적으로 실행됩니다.
- 사용자 B가 워크플로우 B를 게시합니다.주:업데이트 세트가 더 이상 진행 중이 아니므로 사용자 B에게 업데이트 세트 C 의존성에 대한 경고가 표시되지 않습니다. 그러나 사용자 B는 대화 상자를 통해 워크플로우 버전과 관련된 경고가 있다는 정보를 받고 워크플로우 B를 확인하라는 지시를 받습니다. 사용자 B가 게시를 취소하고 워크플로우의 유효성을 검사하면 사용자 B는 워크플로우 B를 하위 플로우로 사용하는 워크플로우가 있다는 경고를 받습니다. 반환 값이 변경되었음을 알면 사용자 B도 해당 워크플로우를 테스트해야 합니다. 업데이트 세트 경고의 매개변수를 이해하려면 문서를 참조하십시오 ValidateUpdateSetDependencies .
- 사용자 B가 마지막으로 워크플로우 B를 게시합니다.주:고객 업데이트 세트 기록이 게시된 워크플로우 B 및 모든 활동 의존성을 포함하여 XML 페이로드를 포함하는 업데이트 세트 D에 추가됩니다.
- 사용자 B는 업데이트 세트 D를 완료하고 프로덕션 인스턴스로 마이그레이션합니다.
- 업데이트 세트 D는 경고 없이 커밋합니다.
- 워크플로우 A가 프로덕션 인스턴스에서 호출되고 워크플로우 B의 반환 값이 더 이상 사용자 ID를 생성하지 않기 때문에 성공적으로 실행되지 못합니다.