我在visualstudio 2010中爲SharePoint創建審批工作流程。 工作流在開始時創建任務,然後等待審批任務。但是如何檢查任務是否被批准?獲得審批狀態
Perhabs我形容我szebario有點更詳細:
- 我得有加入後得到reviewd項目列表。
- 如果他們獲得批准或拒絕它是一個絕對decission如果該項目得到批准的一些功能應該被解僱
- 如果被拒郵件應發送應該保持不變
- !
我的想法:
理念 - 工作流:
我最初的想法是創建一個ListItemd加入之後被解僱的工作流。 WF應該創建一個可以審查的任務。如果是肯定的,它應該啓動一些功能並自行刪除它。
Idea-流設計:
Idea-工作流代碼:
public Guid workflowId = default(System.Guid);
public SPWorkflowActivationProperties workflowProperties = new SPWorkflowActivationProperties();
// these properties are for the workflow task that will be created.
public SPWorkflowTaskProperties CreateTaskApproval_TaskProperties = new SPWorkflowTaskProperties();
public SPWorkflowTaskProperties CreateTaskApproval_AffterTaskProperties = new SPWorkflowTaskProperties();
public SPWorkflowTaskProperties CreateTaskApproval_BeforeTaskProperties = new SPWorkflowTaskProperties();
public String CreateTaskApproval_ContentTypeId = default(System.String);
public Int32 CreateTaskApproval_ListItemId = default(System.Int32);
public Guid CreateTaskApproval_TaskId = default(System.Guid);
private void createTask1_MethodInvoking(object sender, EventArgs e)
{
createTask1.TaskId = new Guid();
// Now create the approval task.
// Set up some of the properties.
CreateTaskApproval_TaskId = Guid.NewGuid();
//Setting the task properties
CreateTaskApproval_TaskProperties.Title = "TestTitle"
CreateTaskApproval_TaskProperties.Description = "Description";
CreateTaskApproval_TaskProperties.AssignedTo = @"testemail\testuser";
CreateTaskApproval_TaskProperties.SendEmailNotification = false;
CreateTaskApproval_TaskProperties.TaskType = 1;
LogComment("Request Task Created.");
}
private void onTaskChanged1_Invoked(object sender, ExternalDataEventArgs e)
{
try
{
//!!!! The Problem is here at Status
// Check to make sure the field is there on the item.
if (CreateTaskApproval_TaskProperties.ExtendedProperties["Status"] != null)
{
// Evaluate the value of the field.
if (CreateTaskApproval_TaskProperties.ExtendedProperties["Status"].ToString() == "Approved" || CreateTaskApproval_TaskProperties.ExtendedProperties["Status"].ToString() == "Declined")
{
TaskApproval_ApproveComplete = true;
}
else
{
TaskApproval_ApproveComplete = false;
}
}
else
{
// This should never happen because there is a default, but always good just in case.
TaskApproval_ApproveComplete = false;
}
}
catch (Exception ex)
{
TaskApproval_ApproveComplete = false;
LogComment(ex.ToString());
}
}
private void completeTask1_MethodInvoking(object sender, EventArgs e)
{
workflowProperties.Item.ModerationInformation.Status = SPModerationStatusType.Approved;
//Fire some code
}
理念 - 工作流 - 問題: 我不能得到適度的任務地位可言。 (「已批准」等)
CreateTaskApproval_TaskProperties.ExtendedProperties["Status"]
有沒有關於知道如何?
我建議你堅持-one- stackexchange網站,在這種情況下sharepoint.stackexchange.com。 http://meta.stackexchange.com/questions/64068/is-cross-posting-a-question-on-multiple-stack-exchange-sites-permitted-if-the-qu – 2012-07-11 08:23:01
「重複」的http:// sharepoint.stackexchange.com/questions/40678/diasable-approvement-for-a-single-listitem – 2012-07-11 08:25:47
對不起,但我昨天有點類似的問題沒有結果!這就是爲什麼我試圖尋找其他解決方案(如我在我的問題上寫在sharepoint.stackexchange上)!在用戶的回答後,我更詳細地描述了我的問題。所以我也在這裏添加了細節,因爲這裏也可能有用。 – HW90 2012-07-11 08:33:28