توجيه رسائل البريد الإلكتروني لمهمة سير العمل إلى المجموعات بناءً على قيمة القائمة

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

سؤال

لقد قمت بتطوير سير عمل آلة الحالة الذي يعمل حاليًا بشكل جيد.على الرغم من أن هذا الأمر ناجح، إلا أن المستخدمين يشكون من تعرضهم لوابل من رسائل البريد الإلكتروني الخاصة بمهام سير العمل والتي ليس لها أي علاقة بفرقهم.داخل doc lib، أقوم بتنفيذ سير العمل، ويوجد عمود يسرد التطبيقات التي يعمل عليها كل فريق.هل هناك طريقة للحصول على المعلومات من هذا الحقل وتوجيهها إلى المجموعة الصحيحة.سيكون هذا ديناميكيًا لذا قد تتغير قيمة العمود.العمود عبارة عن حقل منسدل (والتي لا يمكنك استرجاع المعلومات منها... على الأقل أعتقد)، لكنني قمت بإنشاء حقل محسوب لاسترداد المعلومات من القائمة المنسدلة بحيث تكون في عمود ثابت.بالإضافة إلى ذلك، قمت بإنشاء قائمة خارجية تحتوي على 3 أعمدة لمحاولة القراءة منها أيضًا:المجموعة والنظام والموافقون.

أي إذا اختار المستخدم "الكمبيوتر" من القائمة المنسدلة "النظام"، فسيقوم كل شخص في مجموعة الموافقة "My حاسوب "التطبيق" يجب أن يحصل على بريد إلكتروني يعتمد على وجود سلسلة "الكمبيوتر" في الحقل واسم المجموعة، ثم ينطبق الأمر نفسه على الاختيارات الأخرى أيضًا مع المجموعات الصحيحة.

طريقة أقل من مثالية مع عبارات if-else الضخمة وأنا متأكد من أنها ممكنة.... محاولة جعلها أكثر ديناميكية قليلاً وليست مشفرة بشكل صارم..

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

تحديث

أنا قادر على إرجاع القائمة ويمكنني الآن استرداد العناصر بناءً على معرف العنصر بهذه الطريقة

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