다음을 통해 공유


연습: 연결 및 초기화 폼이 있는 워크플로 만들기

이 연습에서는 연결 및 초기화 폼의 사용을 통합하는 기본적인 순차 워크플로를 만드는 방법을 보여 줍니다.이러한 폼은 SharePoint 관리자가 처음 연결할 때(연결 폼) 및 사용자가 워크플로를 시작할 때(초기화 폼) 워크플로에 매개 변수를 추가할 수 있는 ASPX 폼입니다.

이 연습에서는 사용자가 다음 요구 사항을 가진 비용 보고서 승인 워크플로를 만드는 시나리오에 대해 설명합니다.

  • 워크플로가 목록에 연결되어 있으면 관리자에게 연결 폼이 표시되며, 여기서 비용 보고서의 금액 한도를 입력합니다.

  • 직원은 해당 비용 보고서를 공유 문서 목록에 업로드하고, 워크플로를 시작한 다음 워크플로 시작 양식에 비용 합계를 입력합니다.

  • 직원 비용 보고서 합계가 관리자의 미리 정의된 한도를 초과하면 직원 관리자에 대해 비용 보고서 승인 작업이 만들어집니다.하지만 직원 비용 보고서 합계가 비용 한도 이하이면 워크플로의 기록 목록에 자동 승인 메시지가 기록됩니다.

이 연습에서는 다음 작업을 수행합니다.

  • Visual Studio에서 SharePoint 목록 정의 순차 워크플로 프로젝트 만들기

  • 워크플로 일정 만들기

  • 워크플로 작업 이벤트 처리

  • 워크플로 연결 및 초기화 폼 만들기

  • 워크플로 연결

  • 수동으로 워크플로 시작

[!참고]

이 연습에서는 순차 워크플로 프로젝트를 사용하지만 상태 시스템 워크플로의 경우에도 프로세스가 동일합니다.

또한 컴퓨터에서 일부 Visual Studio 사용자 인터페이스 요소에 대해 다음 지침에서 설명한 것과는 다른 이름이나 위치를 표시할 수 있습니다.설치한 Visual Studio 버전과 사용하는 설정에 따라 이러한 요소가 결정됩니다.자세한 내용은 Visual Studio 설정을 참조하십시오.

사전 요구 사항

이 연습을 완료하려면 다음 구성 요소가 필요합니다.

SharePoint 순차 워크플로 프로젝트 만들기

먼저 Visual Studio에서 순차 워크플로 프로젝트를 만듭니다.순차 워크플로는 마지막 작업이 끝날 때까지 순서대로 실행되는 일련의 단계입니다.이 절차에서는 SharePoint의 공유 문서 목록에 적용되는 순차 워크플로를 만듭니다.워크플로 마법사를 사용하면 워크플로를 사이트 정의나 목록 정의에 연결하고 워크플로 시작 시기를 결정할 수 있습니다.

SharePoint 순차 워크플로 프로젝트를 만들려면

  1. 메뉴 표시줄에서 선택 파일, New, 프로젝트 표시 하는 새 프로젝트 대화 상자.

  2. 확장은 SharePoint 노드 중 하나에서 C# 또는 Visual Basic, 다음 선택은 2010 노드.

  3. 템플릿 창에서 선택에서 SharePoint 2010 프로젝트 프로젝트 템플릿.

  4. 이름 상자에서 경비 보고서에 입력 한 다음 선택 된 확인 단추.

    SharePoint 사용자 지정 마법사가 나타납니다.

  5. 사이트 지정 및 디버깅에 대 한 보안 수준 페이지에서 선택의 팜 솔루션으로 배포 옵션 단추를 선택한 다음 선택의 완료 신뢰 수준 및 기본 사이트 수락 단추.

    또한 이 단계에서는 솔루션의 신뢰 수준을 팜 솔루션으로 설정합니다. 이 옵션은 워크플로 프로젝트에 사용할 수 있는 유일한 옵션입니다.

  6. 솔루션 탐색기, 프로젝트 노드를 선택 합니다.

  7. 메뉴 표시줄에서 선택 프로젝트, 새 항목 추가.

  8. 하나 C# 또는 Visual Basic, 확장은 SharePoint 노드를 다음 선택은 2010 노드.

  9. 템플릿 창에서 선택 순차적 워크플로 (팜 솔루션) 서식 파일을 다음 선택은 추가 단추.

    SharePoint 사용자 지정 마법사가 나타납니다.

  10. 디버깅에 사용할 워크플로 이름 지정 페이지에서 기본 이름(ExpenseReport - Workflow1)을 적용합니다.기본 워크플로 템플릿 형식 값(List Workflow)을 그대로 두고다음 단추를 선택합니다.

  11. Visual Studio를 통해 디버그 세션에서 워크플로를 자동으로 연결하시겠습니까? 페이지에서 워크플로 템플릿을 자동으로 연결하는 확인란이 선택되어 있으면 선택을 취소합니다.

    이 단계를 수행하면 나중에 워크플로를 공유 문서 목록에 수동으로 연결할 수 있으며, 이 경우 연결 폼이 표시됩니다.

  12. 선택 된 완료 단추.

워크플로에 연결 폼 추가

다음으로, SharePoint 관리자가 처음으로 워크플로를 비용 보고서 문서와 연결할 때 표시되는 .ASPX 연결 폼을 만듭니다.

워크플로에 연결 폼을 추가하려면

  1. 선택 된 Workflow1 노드에서 솔루션 탐색기.

  2. 메뉴 표시줄에서 선택 프로젝트, 새 항목 추가 를 표시 하는 새 항목 추가 대화 상자.

  3. 대화 상자의 트리 뷰에서 하나 확장 C# 또는 Visual Basic (프로젝트 언어에 따라), 확장의 SharePoint 노드를 다음 선택은 2010 노드.

  4. 템플릿 목록에서 선택 된 워크플로 연결 폼 템플릿.

  5. 이름 텍스트 상자에 Expensereportassocform.aspx를 입력 합니다.

  6. 선택 된 추가 단추 폼을 프로젝트에 추가 합니다.

연결 폼 디자인 및 코딩

이 절차에서는 컨트롤과 코드를 추가하여 연결 폼에 기능을 도입합니다.

연결 폼을 디자인하고 코딩하려면

  1. 연결 폼(ExpenseReportAssocForm.aspx)에서 ID="Main"인 asp:Content 요소를 찾습니다.

  2. 이 콘텐츠 요소의 첫째 줄 바로 뒤에 다음 코드를 추가하여 비용 승인 한도(AutoApproveLimit)를 묻는 레이블과 텍스트 상자를 만듭니다.

    <asp:Label ID="lblAutoApproveLimit" Text="Auto Approval Limit:" runat="server" />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    <asp:TextBox ID="AutoApproveLimit" runat="server" />
    <br /><br />
    
  3. 솔루션 탐색기에서 ExpenseReportAssocForm.aspx 파일을 확장하여 종속 파일을 표시합니다.

    [!참고]

    프로젝트에 있는 경우 Visual Basic, 선택 해야의 모든 파일 보기 이 단계를 수행 하는 단추입니다.

  4. ExpenseReportAssocForm.aspx 파일의 바로 가기 메뉴를 열고 선택 코드 보기.

  5. GetAssociationData 메서드를 다음 코드로 바꿉니다.

    Private Function GetAssociationData() As String
        ' TODO: Return a string that contains the association data that 
        ' will be passed to the workflow. Typically, this is in XML 
        ' format.
        Return Me.AutoApproveLimit.Text
    End Function
    
    private string GetAssociationData()
    {
        // TODO: Return a string that contains the association data that 
        // will be passed to the workflow. Typically, this is in XML 
        // format.
        return this.AutoApproveLimit.Text;
    }
    

워크플로에 초기화 폼 추가

다음으로, 사용자가 비용 보고서에 대해 워크플로를 실행할 때 표시되는 초기화 폼을 만듭니다.

초기화 폼을 만들려면

  1. 선택 된 Workflow1 노드에서 솔루션 탐색기.

  2. 메뉴 표시줄에서 선택 프로젝트, 새 항목 추가 표시 된 새 항목 추가 대화 상자.

  3. 대화 상자의 트리 뷰에서 하나 확장 C# 또는 Visual Basic (프로젝트 언어에 따라), 확장의 SharePoint 노드를 다음 선택은 2010 노드.

  4. 템플릿 목록에서 선택 된 워크플로 초기화 양식 을 템플릿.

  5. 이름 텍스트 상자에 Expensereportinitform.aspx를 입력 합니다.

  6. 선택 된 추가 단추 폼을 프로젝트에 추가 합니다.

초기화 폼 디자인 및 코딩

다음으로, 컨트롤과 코드를 추가하여 초기화 폼에 기능을 도입합니다.

초기화 폼을 코딩하려면

  1. 찾을 착수 폼 (ExpenseReportInitForm.aspx)는 asp:Content 포함 요소 ID="Main".

  2. 이 콘텐츠 요소의 첫째 줄 바로 뒤에 다음 코드를 추가하여 연결 폼에 입력된 비용 승인 한도(AutoApproveLimit)를 표시하는 레이블 및 텍스트 상자와 비용 합계를 묻는 다른 레이블 및 텍스트 상자(ExpenseTotal)를 만듭니다.

    <asp:Label ID="lblAutoApproveLimit" Text="Auto Approval Limit:" runat="server" />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    <asp:TextBox ID="AutoApproveLimit" ReadOnly="true" runat="server" />
    <br /><br />
    <asp:Label ID="lblExpenseTotal" Text="Expense Total:" runat="server" />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    <asp:TextBox ID="ExpenseTotal" runat="server" />
    <br /><br />
    
  3. 솔루션 탐색기에서 ExpenseReportInitForm.aspx 파일을 확장하여 종속 파일을 표시합니다.

  4. ExpenseReportInitForm.aspx 파일의 바로 가기 메뉴를 열고 선택 코드 보기.

  5. Page_Load 메서드를 다음 예제로 바꿉니다.

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As 
      EventArgs) Handles Me.Load
        InitializeParams()
        Me.AutoApproveLimit.Text = workflowList.WorkflowAssociations(New 
          Guid(associationGuid)).AssociationData
        ' Optionally, add code here to pre-populate your form fields.
    End Sub
    
    protected void Page_Load(object sender, EventArgs e)
    {
        InitializeParams();
        this.AutoApproveLimit.Text = 
          workflowList.WorkflowAssociations[new 
          Guid(associationGuid)].AssociationData;
    }
    
  6. GetInitiationData 메서드를 다음 예제로 바꿉니다.

    ' This method is called when the user clicks the button to start the workflow.
    Private Function GetInitiationData() As String
        Return Me.ExpenseTotal.Text
        ' TODO: Return a string that contains the initiation data that 
        ' will be passed to the workflow. Typically, this is in XML 
        ' format.
        Return String.Empty
    End Function
    
    // This method is called when the user clicks the button to start the workflow.        
    private string GetInitiationData()
    {
        // TODO: Return a string that contains the initiation data that 
        // will be passed to the workflow. Typically, this is in XML 
        // format.
        return this.ExpenseTotal.Text;
    }
    

워크플로 사용자 지정

다음으로, 워크플로를 사용자 지정합니다.나중에 두 개의 폼을 워크플로에 연결합니다.

워크플로를 사용자 지정하려면

  1. Workflow1 프로젝트를 열어 워크플로 디자이너에서 워크플로 표시 합니다.

  2. 도구, 확장의 Windows 워크플로 v3.0 노드 찾습니다는 IfElse 활동.

  3. 다음 단계 중 하나를 수행 하 여 워크플로를이 작업을 추가 합니다.

    • 바로 가기 메뉴 열기는 IfElse 활동, 선택 복사, 줄 아래에 대 한 바로 가기 메뉴를 엽니다의 onWorkflowActivated1 활동이 워크플로 디자이너에서 다음 선택 붙여넣기.

    • 드래그는 IfElse 활동에서의 도구 상자, 아래 줄을 연결 하 고는 onWorkflowActiviated1 워크플로 디자이너에서 활동.

  4. 도구 상자에서 SharePoint Workflow 노드를 확장하고 CreateTask 작업을 찾습니다.

  5. 다음 단계 중 하나를 수행 하 여 워크플로를이 작업을 추가 합니다.

    • 바로 가기 메뉴 열기는 CreateTask 활동, 선택 복사, 둘 중 하나는 바로 가기 메뉴 열기 여기에 작업 놓기 워크플로 디자이너에서 IfElseActivity1 내의 영역 다음 선택 붙여넣기.

    • 드래그는 CreateTask 활동에서의 도구 상자 둘 중 하나에 여기에 작업 놓기 IfElseActivity1 내 영역.

  6. 속성 창에서 CorrelationToken 속성에 대해 taskToken의 속성 값을 입력합니다.

  7. 확장 된 CorrelationToken 더하기 기호를 선택 하 여 속성 (TreeView 더하기 기호) 옆에.

  8. 드롭 다운 화살표를 선택은 OwnerActivityName 하위 속성을 설정 하 고는 Workflow1 값입니다.

  9. 선택은 TaskId 속성을 다음 줄임표를 선택 (ASP.NET 모바일 디자이너 줄임표) 단추를 표시 하는 바인딩할 속성 대화 상자.

  10. 선택은 새 멤버에 바인딩할 탭에서 선택의 필드 만들기 옵션 단추를 선택한 다음 선택은 확인 단추.

  11. 선택은 TaskProperties 속성을 다음 줄임표를 선택 (ASP.NET 모바일 디자이너 줄임표) 단추를 표시 하는 바인딩할 속성 대화 상자.

  12. 선택은 새 멤버에 바인딩할 탭에서 선택의 필드 만들기 옵션 단추를 선택한 다음 선택은 확인 단추.

  13. 도구, 확장은 SharePoint 워크플로 노드를 찾습니다는 LogToHistoryListActivity 활동.

  14. 다음 단계 중 하나를 수행 하 여 워크플로를이 작업을 추가 합니다.

    • 바로 가기 메뉴를 엽니다의 LogToHistoryListActivity 활동, 선택 복사, 다른 바로 가기 메뉴를 엽니다 여기에 작업 놓기 IfElseActivity1 영역의 워크플로 디자이너에서 다음 선택 붙여넣기.

    • 드래그는 LogToHistoryListActivity 활동에서의 도구 상자, 다른 끌어다 놓습니다 여기에 작업 놓기 IfElseActivity1 내 영역.

워크플로에 코드 추가

다음으로, 워크플로에 코드를 추가하여 기능을 제공합니다.

워크플로에 코드를 추가하려면

  1. 바로 가기 메뉴 열기는 createTask1 활동이 워크플로 디자이너에서 다음을 선택 하 고 코드 보기.

  2. 다음 메서드를 추가 합니다.

    Private Sub createTask1_MethodInvoking(ByVal sender As 
      System.Object, ByVal e As System.EventArgs)
        createTask1_TaskId1 = Guid.NewGuid
        createTask1_TaskProperties1.AssignedTo = "somedomain\\someuser"
        createTask1_TaskProperties1.Description = "Please approve the 
          expense report"
        createTask1_TaskProperties1.Title = "Expense Report Approval 
          Needed"
    End Sub 
    
    private void createTask1_MethodInvoking(object sender, EventArgs e)
    {
        createTask1_TaskId1 = Guid.NewGuid();
        createTask1_TaskProperties1.AssignedTo = "somedomain\\someuser";
        createTask1_TaskProperties1.Description = "Please approve the 
          expense report";
        createTask1_TaskProperties1.Title = "Expense Report Approval 
          Needed";
    } 
    

    [!참고]

    코드에서 somedomain\\someuser를 작업이 만들어질 도메인 및 사용자 이름(예: "Office\\JoeSch")으로 바꿉니다.테스트를 위해 개발 시 사용한 계정을 사용하는 것이 가장 편리합니다.

  3. MethodInvoking 메서드 아래에 다음 예제를 추가합니다.

    Private Sub checkApprovalNeeded(ByVal sender As Object, ByVal e As 
      ConditionalEventArgs)
        Dim approval As Boolean = False
        If (Convert.ToInt32(workflowProperties.InitiationData) > 
          Convert.ToInt32(workflowProperties.AssociationData)) Then
            approval = True
        End If
        e.Result = approval
    End Sub 
    
    private void checkApprovalNeeded(object sender, ConditionalEventArgs 
      e)
    {
        bool approval = false;
        if (Convert.ToInt32(workflowProperties.InitiationData) > 
          Convert.ToInt32(workflowProperties.AssociationData))
        {
            approval = true;
        }
        e.Result = approval;
    } 
    
  4. 워크플로 디자이너에서 선택 된 ifElseBranchActivity1 활동 합니다.

  5. 속성 창에서 드롭다운 화살표를 선택의 조건 속성을 설정한는 Code Condition 값.

  6. 확장은 조건 더하기 기호를 선택 하 여 속성 (TreeView 더하기 기호) 옆 및 해당 값을 설정 고 checkApprovalNeeded.

  7. 워크플로 디자이너에서 바로 가기 메뉴를 엽니다의 logToHistoryListActivity1 작업을 다음 선택 처리기 생성 빈 메서드를 생성 하는 MethodInvoking 이벤트.

  8. MethodInvoking 코드를 다음과 같이 바꿉니다.

    Private Sub logToHistoryListActivity1_MethodInvoking(ByVal sender As 
      System.Object, ByVal e As System.EventArgs)
        Me.logToHistoryListActivity1.HistoryOutcome = ("Expense was auto 
          approved for " + workflowProperties.InitiationData)
    End Sub 
    
    private void logToHistoryListActivity1_MethodInvoking(object sender, 
      EventArgs e)
    {
        this.logToHistoryListActivity1.HistoryOutcome = "Expense was 
          auto approved for " + workflowProperties.InitiationData;
    } 
    
  9. 프로그램을 디버그 하려면 F5 키를 선택 합니다.

    응용 프로그램을 컴파일, 패키징 및 배포하고, 기능을 활성화하고, 인터넷 정보 서비스 응용 프로그램 풀을 재생한 다음 사이트 URL 속성에 지정된 위치에서 브라우저를 시작합니다.

문서 목록에 워크플로 연결

다음으로, SharePoint 사이트의 공유문서 목록에 워크플로를 연결하여 워크플로 연결 폼을 표시합니다.

워크플로를 연결하려면

  1. 선택 된 공유 문서 빠른 실행 표시줄에서 링크.

  2. 선택의 라이브러리 링크에 라이브러리 도구 탭 및 다음 선택의 라이브러리 설정 리본 단추.

  3. 사용 권한 및 관리 섹션에서 선택의 워크플로 설정 연결 하 고 다음을 선택의 워크플로 추가 링크에 워크플로 페이지.

  4. 위 목록에서 워크플로 설정 페이지에서 선택 된 경비 보고서-Workflow1 템플릿.

  5. 다음 필드에 Expensereportworkflow를 입력 한 다음 선택 된 다음 단추.

    워크플로가 공유 문서 목록에 연결되고 워크플로 연결 폼이 표시됩니다.

  6. 자동 승인 제한 1200을 입력 하 고 다음 선택 하는 텍스트 상자에 워크플로 연결 단추.

워크플로 시작

다음으로, 공유 문서 목록의 문서 중 하나에 워크플로를 연결하여 워크플로 시작 양식을 표시합니다.

워크플로를 시작하려면

  1. SharePoint 페이지에서 선택 된 단추.

  2. 선택 된 공유 문서 표시 하려면 빠른 실행 표시줄에서 링크의 공유 문서 목록.

  3. 선택의 문서 에 링크는 라이브러리 도구 페이지의 위쪽에 탭 및 다음 선택의 문서 업로드 에 새 문서를 업로드 하려면 리본 메뉴의 단추는 공유 문서 목록.

  4. 문서 업로드 대화 상자에서 선택의 찾아보기 단추, 모든 문서 파일을 선택, 선택의 열려 단추를 클릭 한 다음 선택의 확인 단추.

    이 대화 상자에서 문서에 대 한 설정을 변경할 수 있지만 선택 하 여 기본값을 그대로 두고는 저장 단추.

  5. 업로드 된 문서를 선택 하 고 표시 되 고 선택 드롭다운 화살표를 선택 된 워크플로 항목.

  6. ExpenseReportWorkflow 옆에 있는 이미지를 선택 합니다.

    워크플로 시작 양식이 표시됩니다.자동 승인 한도 상자에 표시된 값은 연결 폼에서 입력되었으므로 읽기 전용입니다.

  7. 경비 총 텍스트 상자 1600를 입력 한 다음 선택은 워크플로 시작 단추.

    공유 문서 목록이 다시 표시됩니다.값이 완료됨ExpenseReportWorkflow라는 새 열이 워크플로에서 방금 시작한 항목에 추가됩니다.

  8. 업로드 한 문서 옆의 드롭다운 화살표를 선택 하 고 선택은 워크플로 항목의 워크플로 상태 페이지를 표시 합니다.선택 된 완료 에서 값 완료 된 워크플로.작업 섹션 아래에 해당 작업이 표시됩니다.

  9. 해당 작업의 세부 정보를 표시할 작업의 제목을 선택 합니다.

  10. 공유문서 목록으로 돌아가서 동일한 문서나 다른 문서를 사용하여 워크플로를 다시 시작합니다.

  11. (1200) 연결 페이지에 입력 한 크기 보다 작거나 시작 페이지 크기를 입력 합니다.

    이렇게 하면 작업 대신 기록 목록의 항목이 만들어집니다.워크플로 상태 페이지의 워크플로 기록 섹션에 항목이 표시됩니다.기록 이벤트의 결과 열에 표시된 메시지를 확인합니다.이 메시지에는 자동 승인된 금액을 비롯하여 logToHistoryListActivity1.MethodInvoking 이벤트에 입력한 텍스트가 포함됩니다.

다음 단계

다음 항목에서는 워크플로 템플릿을 만드는 방법에 대해 더 자세히 설명합니다.

참고 항목

작업

연습: 워크플로에 응용 프로그램 페이지 추가

기타 리소스

SharePoint 워크플로 솔루션 만들기