سؤال

لديّ تطبيق مخصص لسير العمل الذي يتطلب تحديثًا لـ DB خارجي. لقد قمت بإنشاء سير عمل بسيط لغرض النص ووجدت شيئًا غريبًا!

يتم وضع رمز تحديث/إدراج DB في نشاط رمز سير العمل. يبدو أن نشاط الكود يتم تنفيذه عدة مرات عندما يتم استدعاء سير العمل على عنصر قائمة بسيط في قائمة SharePoint Custom. ها هو سير العمل الخاص بي:

workflow-image

والرمز الخاص بي هو:

 private void onWorkflowActivated1_Invoked(object sender, ExternalDataEventArgs e)
{
    workflowProperties.Item["Title"] = "Processed by workflow at "+ DateTime.Now;
    workflowProperties.Item.Update();      

}

private void codeActivity1_ExecuteCode(object sender, EventArgs e)
{
    Random rnd = new Random();

    string conStr = "Data Source=192.168.1.57\\TRIBIRD;Initial Catalog=XXXXXX;User ID=XXXXXX;Password=XXXXXXXXXX";
    SqlConnection connection = new SqlConnection(conStr);
    SqlCommand command = connection.CreateCommand();
    command.CommandType = System.Data.CommandType.Text;
    command.CommandText = "INSERT INTO XXXX VALUES(" + rnd.Next() + ",'THE CONTENT FROM SHAREPOINT WORKFLOW','EN',1,1,'BRT')";

    connection.Open();
    command.ExecuteNonQuery();
    command.Dispose();
    connection.Close();
}

في DB أحصل على أكثر من صف واحد لتنفيذ سير العمل! الشيء المثير للاهتمام هو ، أثناء كل تنفيذ ، يختلف عدد الصفوف المضافة.

لماذا يحدث هذا؟ ما هو خطأي؟
أي أفكار واقتراحات مرحب بها.

هل كانت مفيدة؟

المحلول

تأكد من قيامك بتشغيل أحدث التصحيحات والتحديثات لـ SharePoint.

تسمح الإصدارات السابقة في عام 2007 بتجديدات الذات الدورية (مثل إعادة التشغيل). الإصدارات اللاحقة لا (ولكن لا تزال تسمح المشغلات الدورية المشتركة). أظن أن هذه هي المشكلة وبدأ "سلسلة" Update طريقة. مجرد حدس.

يجب إصلاح هذا في SP2: تمنع حزمة الخدمة 2 من سير العمل على التغيير من بدء نفسه

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top