Функция Execute пробегает по коллекции
oCardsColl
(задания БП) и добавляет в коллекцию PerformersVar (ИД сотрудников (для удаления ярлыков)) идентификаторы сотрудников исполнителей заданий БП
// подключение системных библиотек
using System;
using System.Xml;
// подключение библиотек СУБП
using DocsVision.Workflow.Objects;
using DocsVision.Workflow.Runtime;
using DocsVision.Workflow.Gates;
using DocsVision.Platform.HelperAPI;
namespace DVScriptHost
{
class DVScript
{
// стандартная функция, которая будет вызвана подсистемой СУБП
//
// входные параметры функции:
//
// process - информация о процессе. содержит коллекции
// Gates - коллекция шлюзов процесса
// Variables - коллекция переменных процесса
// passInfo - информация о текущем проходе
//
public void Execute(ProcessInfo process, PassState passInfo)
{
try
{
ProcessVariable oCardsColl = process.GetVariableByName("Задания процессов");
ProcessVariable PerformersVar = process.GetVariableByName("ИД сотрудников (для удаления ярлыков)");
PerformersVar.Values.Clear();
int iCount = oCardsColl.Values.Count;
for (int i = 1; i <= iCount; i++)
{
DVCard oCard = (DVCard)oCardsColl.Values[i].Value;
DVCardSection Section_Performers = (DVCardSection)oCard.GetSectionByAlias("Performers");
DVCardRows Performers = (DVCardRows)Section_Performers.Rows;
for (int j=0; j< Performers.Count; j++)
{
PerformersVar.Values.AddNew(((DVCardRow)Performers[j]).Value["PerformerID"]);
}
}
process.LogMessage ("Значение переменной изменено");
}
catch (Exception ex)
{
// запись в журнал ошибки исполнения
process.LogMessage("Ошибка выполнения скрипта:" + ex.Message);
}
return;
}
}
}
// подключение системных библиотек
using System;
using System.Xml;
// подключение библиотек СУБП
using DocsVision.Workflow.Objects;
using DocsVision.Workflow.Runtime;
using DocsVision.Workflow.Gates;
using DocsVision.Platform.HelperAPI;
namespace DVScriptHost
{
class DVScript
{
// стандартная функция, которая будет вызвана подсистемой СУБП
//
// входные параметры функции:
//
// process - информация о процессе. содержит коллекции
// Gates - коллекция шлюзов процесса
// Variables - коллекция переменных процесса
// passInfo - информация о текущем проходе
//
public void Execute(ProcessInfo process, PassState passInfo)
{
try
{
ProcessVariable oCardsColl = process.GetVariableByName("Задания процессов");
ProcessVariable PerformersVar = process.GetVariableByName("ИД сотрудников (для удаления ярлыков)");
PerformersVar.Values.Clear();
int iCount = oCardsColl.Values.Count;
for (int i = 1; i <= iCount; i++)
{
DVCard oCard = (DVCard)oCardsColl.Values[i].Value;
DVCardSection Section_Performers = (DVCardSection)oCard.GetSectionByAlias("Performers");
DVCardRows Performers = (DVCardRows)Section_Performers.Rows;
for (int j=0; j< Performers.Count; j++)
{
PerformersVar.Values.AddNew(((DVCardRow)Performers[j]).Value["PerformerID"]);
}
}
process.LogMessage ("Значение переменной изменено");
}
catch (Exception ex)
{
// запись в журнал ошибки исполнения
process.LogMessage("Ошибка выполнения скрипта:" + ex.Message);
}
return;
}
}
}
Комментариев нет:
Отправить комментарий