1

「是正措置」のワークフローを作りました。ここで、発行者は CA をユーザーに発行します。彼がそれに返信した場合、承認者はそれを確認する必要があります。ここでは、承認者のために、ドロップダウンである「結果」フィールドを追加したタスク用に「CA レビュー」という名前のコンテンツ タイプを作成しました。

ワークフローでは、レビュー タスクのメソッド呼び出しで、コンテンツ タイプをタスクにアタッチしています。これは正常に機能しており、タスク編集フォームで「結果」を確認できます。

タスクが変更された場合、他のフィールドを設定するには「結果」の値が必要です。ここでは、タスク変更イベントの after プロパティを使用しています。しかし、これは「null」を返します。結果値を取得するための私のコードは次のとおりです。

private void checkTheRespondeApproval(object sender, ConditionalEventArgs e)
    {
        var props = this.onReviewTaskChanged_AfterProperties1.ExtendedProperties[GetWorkflowFieldId("Outcome")];
        e.Result = (props.ToString() == "Approved");
    }

ここで「props」は「Null」になっています。結果値を取得するのを手伝ってください。「GetWorkflowFieldID」のコードは次のとおりです。

private Guid GetWorkflowFieldId(string pFieldName)
    {
        foreach (SPField item in workflowProperties.Item.Fields)
        {
            if (item.Title == pFieldName)
                return item.Id;
        }

        return Guid.Empty;
    }
4

1 に答える 1

0

わかりましたみんな、

私は答えを見つけました。問題は、間違ったコレクションを調べているフィールド ID です。コンテンツ タイプのフィールド ID を取得する必要があります。以下は、IDを取得するために私が書いた関数です。それは今働いています。

private Guid GetContentTypeFileID(string pFieldName)
    {
        foreach (SPField item in workflowProperties.Web.ContentTypes["CAReview"].Fields)
        {
            if (item.Title == pFieldName)
                return item.Id;
        }

        return Guid.Empty;
    }

これがあなたにも役立つことを願っています。

于 2013-01-04T02:40:54.353 に答える