2012-02-17 8 views
1

共有ポイントリストの列を自動入力するためのワークフローを作成しました。新しいエントリを追加すると、何も起こりません。しかし、私が別のリストに行き、ワークフローのリストに戻った場合、私はそれが働いていることがわかります。私は、新しいアイテムが作成されたときに開始するワークフローを設定しました。ワークフローに他の設定があるので、即座に更新できますか?Sharepointワークフローが更新されない

答えて

0

いいえありません。代わりにSPItemEventReceiverを使用し、ItemUpdatingメソッドを使用する必要があります。これは即座に機能し、ワークフローには時間がかかり、非同期で実行されます。さらに、ワークフローは重く、非常に簡単な操作には使用しないでください。

イベントレシーバのためのサンプルコードは

public class MyEventReceiver :SPItemEventReceiver 
{ 
    public override void ItemUpdating(SPItemEventProperties properties) 
    { 
     UpdateField(properties); 
    } 

    public override void ItemAdding(SPItemEventProperties properties) 
    { 
     UpdateField(properties); 
    } 

    private void UpdateField(SPItemEventProperties properties) 
    { 
     EventFiringEnabled = false; 

     var item = properties.ListItem; 

     // do calculation here 

     item.SystemUpdate(false); // this update that is most suitable for automatic updates 

     EventFiringEnabled = true; 
    } 
} 

され、その後、リストにこのイベントレシーバーを追加します。このlinkが役に立ちますようにお願いします。

+0

提案していただきありがとうございます。行く良い方法のように聞こえる。しかし、私はビジュアルスタジオを持っていません。シェアポイントデザイナーでこれを達成する方法はありますか? – DasPete

0

Visual Studioを使用できない場合は、計算された列をリストに追加することもできます。このように、リスト項目の他の列からデータを取り込み、計算を実行する数式を定義するのが最も難しい点です。 link1link2は、コードなしでSharePointの計算列に式を書き込む方法の詳細を示します。