リスト値に基づいてワークフロータスクメールをグループにルーティングする

sharepoint.stackexchange https://sharepoint.stackexchange.com//questions/40520

質問

私はcurretly正常に動作している状態マシンのワークフローを開発しました。これは機能していますが、ユーザーは自分のチームとは何の関係もないワークフロータスクメールが殺到していることについて不平を言っています。ワークフローを実行しているdoc lib内には、各チームが作業するアプリケーションを一覧表示する列があります。このフィールドから情報を取得し、正しいグループにルーティングする方法はありますか。これは動的になるため、列の値が変更される可能性があります。列はドロップダウンフィールドです(情報を取得することはできませんfrom...as 少なくとも私は思う)、しかし、ドロップダウンから情報を取得するための計算フィールドを作成したので、静的列になります。さらに、私は3列の外部リストを作成して、同様に読み取ろうとしました:グループ、システム、および承認者。

I.E. ユーザーが"システム"ドロップダウンリストから"コンピュータ"を選択した場合、承認グループ"マイ"のすべてのユーザーが"マイ"を選択した場合は、"マイ"を選択して、"マイ" コンピュータ App"は、フィールドとグループ名に"Computer"という文字列を持つことに基づいて電子メールを取得する必要があり、正しいグループでも他の選択肢にも同じことが行

私は確信している巨大なif-else文で最適ではない方法が可能です。...ハードコード化されていないように、もう少し動的にしようとしています。.

if (Listitem = system
createTask_taskProperties.AssignedTo = "IT Group A"
{
e.Result = true;
}
else
{
if (Listitem = system 2......

更新

リストを返すことができ、次のようにアイテムIDに基づいてアイテムを取得できるようになりました

SPListItem item = list.GetItemById(26);

ワークフローがトリガーされたときに列/フィールドのすべての値を取得する方法を見つける必要があるため、その情報を変数に渡すことができます。これが完了すると、CAMLクエリでその変数を呼び出して、各アイテムタスクをルーティングする必要がある場所を決定できるはずです。列からGUIDを取得したと思いましたが、このコードを使用したのはリスト自体のGUIdのみでした

SPListItem item2 = list.GetItemByUniqueId[new Guid("de417a82-f221-46bd-8003-034ea45de155")];
役に立ちましたか?

解決

クエリは次のように返されます。 SPListItem, 、しかし必要とします SPGroup 配布リストの電子メールを取得します。

に到達するには SPGroup オブジェクト それは実際にあなたがリストから戻っているようなグループの名前ではなく、グループ自体を表し、あなたはそれをプルする必要があります SPWeb (ワークフローはページのコンテキストで実行されないため、少しトリッキーになります;私は把握するためにあなたにこれを残しておきます)。

SPListItem item = list.GetItemById(26); // <-- This is your code here
string strGroupName = item["ColumnWithGroupName"].ToString();

// Get your SPWeb object from which to pull the group here
using (SPWeb webYourWeb = ...)
{
    // (Use SiteGroups or Groups here depending on where you want to pull the group from)
    SPGroup group = webYourWeb.SiteGroups[strGroupName];
    string strGroupEmail = group.DistributionGroupEmail;

    // Send your email
}

これは、グループ名からグループの電子メールアドレスを取得する方法です(グループ名から取得したもの)。 SPListItem)

ライセンス: CC-BY-SA帰属
所属していません sharepoint.stackexchange
scroll top