DocumentApprovalProcess 샘플에서는 여러 WF(Windows Workflow Foundation) 및 WCF(Windows Communication Foundation) 기능을 함께 사용하는 방법을 보여 줍니다. 문서 승인 프로세스 시나리오를 함께 구현합니다. 클라이언트 애플리케이션은 승인을 위해 문서를 제출하고 문서를 승인할 수 있습니다. 승인 관리자 애플리케이션은 클라이언트 간의 통신을 용이하게 하고 승인 프로세스의 규칙을 적용하기 위해 존재합니다. 승인 프로세스는 여러 유형의 승인을 실행할 수 있는 워크플로입니다. 단일 승인, 승인자 집합의 백분율에 따른 쿼럼 승인, 그리고 쿼럼과 단일 승인이 순차적으로 이루어지는 복잡한 승인 프로세스를 얻기 위한 활동이 존재합니다.
샘플 세부 정보
다음 그래픽에서는 문서 승인 프로세스 워크플로를 보여 줍니다.
클라이언트의 관점에서 승인 프로세스는 다음과 같이 작동합니다.
클라이언트는 승인 프로세스 시스템의 사용자로 구독합니다.
WCF 클라이언트는 승인 관리자 애플리케이션에서 호스트하는 WCF 서비스로 보냅니다.
고유한 사용자 ID가 클라이언트에 반환됩니다. 이제 클라이언트가 승인 프로세스에 참여할 수 있습니다.
연결되면 클라이언트는 단일, 쿼럼 또는 복잡한 승인 프로세스를 사용하여 승인을 위해 문서를 보낼 수 있습니다.
클라이언트 인터페이스의 단추를 클릭하여 클라이언트 워크플로 서비스 호스트에서 워크플로 인스턴스를 시작합니다.
워크플로는 승인 관리자 애플리케이션에 승인 요청을 보냅니다.
워크플로 관리자는 승인 프로세스를 나타내기 위해 워크플로를 자체적으로 시작합니다.
관리자 승인 워크플로가 실행되면 결과가 클라이언트로 다시 전송됩니다.
클라이언트에서 결과를 표시합니다.
클라이언트는 언제든지 승인 요청을 받고 요청에 응답할 수 있습니다.
클라이언트에서 호스트되는 WCF 서비스는 승인 관리자 애플리케이션에서 승인 요청을 받을 수 있습니다.
문서 정보는 검토를 위해 클라이언트에 표시됩니다.
사용자는 문서를 승인하거나 거부할 수 있습니다.
WCF 클라이언트는 승인 관리자 애플리케이션에 다시 승인 응답을 보내는 데 사용됩니다.
승인 관리자 애플리케이션의 관점에서 승인 프로세스는 다음과 같이 작동합니다.
클라이언트가 승인 프로세스 시스템에 참여하도록 요청합니다.
승인 관리자의 WCF 서비스는 승인 프로세스 시스템의 일부가 될 요청을 받습니다.
클라이언트에 대한 고유 ID가 생성됩니다. 사용자 정보는 데이터베이스에 저장됩니다.
고유 ID가 사용자에게 다시 전송됩니다.
승인 요청이 수신됩니다. 승인 관리자가 승인 프로세스를 실행합니다.
승인 관리자가 승인 요청을 받아 새 워크플로를 시작합니다.
요청 유형(단순, 쿼럼 또는 복합)에 따라 다른 작업이 실행됩니다.
상관 관계가 있는 보내기 및 받기 활동은 검토를 위해 클라이언트에 승인 요청을 보내고 응답을 받는 데 사용됩니다.
승인 프로세스 워크플로의 결과가 클라이언트로 전송됩니다.
샘플 사용
데이터베이스를 설정하려면
- 관리자 권한으로 열린 Visual Studio 명령 프롬프트에서 이 DocumentApprovalProcess 폴더로 이동하여 Setup.cmd 실행합니다.
애플리케이션을 설정하려면
Visual Studio를 사용하여 DocumentApprovalProcess.sln 솔루션 파일을 엽니다.
Ctrl+Shift+B를 눌러 솔루션을 빌드합니다.
솔루션을 실행하려면 솔루션 탐색기에서 ApprovalManager 프로젝트를 마우스 오른쪽 단추로 클릭하고 마우스 오른쪽 단추 클릭 메뉴에서 디버그 시작> 새 인스턴스를 클릭하여 승인 관리자 애플리케이션을 시작합니다.
관리자의 출력이 준비되었다는 것을 알려줄 때까지 기다립니다.
단일 승인 시나리오를 실행하려면
관리자 권한으로 명령 프롬프트를 엽니다.
솔루션이 포함된 디렉터리로 이동합니다.
ApprovalClient\Bin\Debug folder and execute two instances of ApprovalClient.exe로 이동하세요.
검색을 클릭하고 구독 단추가 활성화될 때까지 기다립니다.
사용자 이름을 입력하고 구독을 클릭합니다. 한 클라이언트의 경우
UserType1
를 사용하고, 다른 유형의 경우UserType2
을 사용하세요.클라이언트의
UserType1
드롭다운 메뉴에서 단일 승인 유형을 선택하고 문서 이름과 콘텐츠를 입력합니다. 승인 요청을 클릭합니다.클라이언트에서
UserType2
승인을 기다리는 문서가 나타납니다. 이를 선택하고 승인 또는 거부를 누릅니다. 결과는 클라이언트에UserType1
표시되어야 합니다.
쿼럼 승인 시나리오를 실행하려면
관리자 권한으로 명령 프롬프트를 엽니다.
솔루션이 포함된 디렉터리로 이동합니다.
ApprovalClient\Bin\Debug folder and execute three instances of ApprovalClient.exe으로 이동하십시오.
검색을 클릭하고 구독 단추가 활성화될 때까지 기다립니다.
사용자 이름을 입력하고 구독을 클릭합니다. 한 클라이언트에게는
UserType1
를 사용하고, 다른 두 유형에는UserType2
을 사용하십시오.클라이언트의
UserType1
드롭다운 메뉴에서 쿼럼 승인 유형을 선택하고 문서 이름과 콘텐츠를 입력합니다. 승인 요청을 클릭합니다. 이렇게 하면 두UserType2
클라이언트가 문서를 승인하거나 거부할 것을 요청합니다. 두 클라이언트가 모두UserType2
응답해야 하지만, 승인하려면 한 클라이언트만 문서를 승인해야 합니다.클라이언트에서
UserType2
승인을 기다리는 문서가 나타납니다. 이를 선택하고 승인 또는 거부를 누릅니다. 결과는 클라이언트에UserType1
표시되어야 합니다.
복잡한 승인 시나리오를 실행하려면
관리자 권한으로 명령 프롬프트를 엽니다.
솔루션이 포함된 디렉터리로 이동합니다.
ApprovalClient\Bin\Debug folder and execute four instances of ApprovalClient.exe으로 이동하세요.
검색을 클릭하고 구독 단추가 활성화될 때까지 기다립니다.
사용자 이름을 입력하고 구독을 클릭합니다. 클라이언트 하나에 사용할 때는
UserType1
를, 두 가지 유형에서는UserType2
을, 마지막 사용에서는UserType3
를 사용하십시오.클라이언트의
UserType1
드롭다운 메뉴에서 단일 승인 유형을 선택하고 문서 이름과 콘텐츠를 입력합니다. 승인 요청을 클릭합니다.클라이언트에서
UserType2
승인을 기다리는 문서가 나타납니다. 이 문서를 선택하고 승인 키를 누르면 문서가 클라이언트에UserType3
전달됩니다.문서가 첫 번째
UserType2
쿼럼에 의해 승인되면 문서가 클라이언트에UserType3
전달됩니다.클라이언트에서 문서를 승인하거나 거부합니다
UserType3
. 결과는 클라이언트에UserType1
표시되어야 합니다.
정리하기
- Visual Studio 명령 프롬프트에서 DocumentApprovalProcess 폴더로 이동하여 Cleanup.cmd 실행합니다.
.NET