문제

나는 구성 관리 책임의 일환으로 매주 실행하는 반복 가능한 비즈니스 프로세스를 가지고 있습니다.프로세스는 변경되지 않습니다.변경 세부 사항을 Excel로 다운로드하고, 스프레드시트를 열고, 매크로를 기반으로 세부 사항을 복사하고, 안건 템플릿에서 Word 문서를 만들고, Excel 데이터로 안건을 업데이트하고, Word 문서에서 PDF를 생성하여 이메일로 보냅니다.

이 프로세스는 시퀀스 워크플로에서 매우 쉽게 표현되며 지금까지 COM 자동화를 사용하여 Excel 및 Word 부분을 자동으로 처리했습니다.기어의 렌치는 "의제 만들기"와 "보내기" 사이에 인간의 단계가 있다는 것입니다. 여기서 변경 세부 사항을 검토하고 이에 대한 질문을 공식화하여 의제에 추가합니다.현재 이 프로세스를 수동으로 수행하는 동안 워크플로를 일시 중단하는 일시 중단 활동이 있습니다.

내 질문은 비즈니스 프로세스에서 인간 상호 작용에 대한 모범 사례를 따르도록 상태 시스템으로 만들기 위해 워크플로를 다시 작성해야 하는가입니다. 아니면 일시 중단 활동이 합리적인 솔루션입니까?

도움이 되었습니까?

해결책

아니요, 이 워크플로에 상태 머신을 사용할 필요는 없다고 생각합니다.그러나 다음과 같은 이유로 Suspend 활동을 변경하도록 제안합니다.

서스펜탁 활동은 일시적으로 현재 워크 플로의 실행을 중지합니다.일반적으로 관리자의주의를 기울여야하는 오류 조건을 반영하기 위해 SiltendActivity 활동을 사용합니다.

워크 플로 인스턴스가 중단되면 오류가 기록됩니다.관리자가 SpendActivity 오류 속성의 문제를 진단하는 데 도움이되는 오류와 함께 메시지 문자열을 지정할 수 있습니다.중단 된 워크 플로 인스턴스는 여전히 워크 플로가 다시 시작될 때까지 대기하는 메시지를받을 수 있습니다.워크 플로 인스턴스의 모든 상태 정보는 저장되며 인스턴스가 재개 될 때 (이력서를 사용) 복원됩니다.

원천: MSDN

워크플로(시퀀스 또는 상태 머신)에 휴먼 작업을 추가하는 일반적인 방법은 외부 데이터 교환 인터페이스를 정의하고 HandleExternalEvent 활동(및 CallExternalMethod 활동도 가능)을 사용하는 것입니다.자세한 내용은 다음 문서를 참조하세요.

다른 팁

업데이트:Panos는 Suspend Activity에 대해 좋은 점을 지적합니다.나는 그것이 워크플로 자동화에서 다른 목적을 가지고 있다는 데 동의합니다.

다양한 상태 간 워크플로 전환에 대해 더 걱정하고 있다면 상태 시스템 워크플로가 이상적입니다.그렇지 않으면 순서가 괜찮습니다.

해결해야 할 주요 문제는 워크플로가 인간 상호 작용(스레드 민첩성)을 기다리는 동안 스레드를 묶어서는 안 된다는 것입니다.해당 시간 동안 워크플로가 유휴 상태이고 지속되는 경우(예: SqlWorkflowPersistenceService), 문제가 되지 않습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top