Повторное выполнение активности кода в рабочем процессе SharePoint?

У меня есть индивидуальная реализация рабочего процесса, которая требует обновления внешней БД. Я создал простой рабочий процесс для текстовых целей и обнаружил странную вещь!

мой код обновления / вставки базы данных помещается в действие кода рабочего процесса. кажется, что действие кода выполняется несколько раз, когда рабочий процесс вызывается для простого элемента списка в настраиваемом списке sharepoint. Вот мой рабочий процесс:

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();
}

в БД я получаю более 1 строки для выполнения рабочего процесса! Интересно то, что во время каждого выполнения количество добавляемых строк меняется.

Почему это происходит? в чем моя ошибка?
Любые идеи и предложения приветствуются.


person Abdel Raoof Olakara    schedule 07.09.2010    source источник


Ответы (1)


Убедитесь, что у вас установлены последние исправления и обновления для SharePoint.

Более ранние версии 2007 года допускали циклический самозапуск (например, повторный запуск). В более поздних версиях этого нет (но все же разрешены коциклические триггеры). Я подозреваю, что это проблема и "каскад" запускается методом Update. Просто догадка.

Это должно быть исправлено в SP2: Пакет обновления 2 предотвращает запуск рабочего процесса при изменении

person Community    schedule 07.09.2010
comment
@pst .. спасибо за информацию .. какое-нибудь решение? в моем реальном рабочем процессе будет процесс утверждения между ними, и только после утверждения элемента данные будут обновлены / вставлены во внешнюю БД. какие-либо лучшие практики или другое решение этой проблемы? - person Abdel Raoof Olakara; 08.09.2010
comment
@Abdel Я обновил свой ответ (надеюсь) полезной ссылкой. Если эта проблема связана с событием при изменении, то SP2 должен исправить наблюдаемое поведение. Когда я создал такие рабочие процессы (это звучит), я делаю рабочий процесс коротким и сохраняю состояние в самом элементе. Затем я исхожу из предположения, что элемент НЕ БУДЕТ ВНЕШНИМ ИЗМЕНЕНИЯМ во время выполнения рабочего процесса (сам рабочий процесс может изменить элемент, SP2 предотвращает повторный запуск). С этим предположением и исправлением SP2 все работает хорошо. - person ; 08.09.2010
comment
@pst, я сделал апгрейд и все еще не работает !! я попробую еще раз развернуть рабочий процесс и протестировать ... - person Abdel Raoof Olakara; 08.09.2010