1

coresrviceを使用してワークフローでアイテムをautherに返送しようとしています。以下は私のコードで、usrdataからlinktotrusteedataへのキャスト時にコンパイルエラーが発生します。

        WorkItemData workitem = (WorkItemData)csClient.Read(workitemid, readoption);
        ProcessInstanceData processInstance = (ProcessInstanceData)csClient.Read(workitem.Process.IdRef, readoption);
        IEnumerable<ActivityData> ieActivities = processInstance.Activities;

        if (ieActivities != null)
        {
            ActivityInstanceData targetactivity = (ActivityInstanceData)csClient.Read(processInstance.Activities[0].Id, readoption);
            UserData lastperformer = (UserData)csClient.Read(processInstance.Activities[0].Owner.IdRef, readoption);                
            ActivityFinishData finishData = new ActivityFinishData(); 
            finishData.Message = "Finished automatically";
            finishData.NextAssignee = lastperformer;
            csClient.FinishActivity(targetactivity.Id, finishData, readoption); 
            csClient.Close(); 

        }
4

2 に答える 2

1

NextAssignee プロパティはタイプLink<TrusteeData>ですが、オブジェクトに設定していUserDataます。おそらく、新しいリンクを作成し、その ID とタイトルを入力する必要があります。

これは機能するはずです(テストされていません):

[...]
Link<UserData> lastperformer = processInstance.Activities[0].Owner;                
ActivityFinishData finishData = new ActivityFinishData(); 
finishData.Message = "Finished automatically";
finishData.NextAssignee = new Link<TrusteeData> { Id = lastperformer.Id, Title = lastperformer.Title };
csClient.FinishActivity(targetactivity.Id, finishData, readoption); 
[...]

UserData は TrusteeData から継承されるため、NextAssignee を lastperformer 変数に設定するだけで機能する可能性もありますが、それについては確信が持てません。試してみる?

于 2012-07-17T08:40:43.593 に答える
0

すでにオブジェクトを持っているLinkToUserDataので、に割り当てたり、プロパティ()を使用して新しいデータオブジェクトを作成したりすることはできprocessInstance.Activities[0].OwnerませfinishData.NextAssigneeOwnerLinkToUserData

それともあなたが読んだ特定の理由がありますUserDataか?

于 2012-07-17T08:46:34.590 に答える