Приложение 3: примеры сценариев
Получение ФИО пользователя
class DVScript
{
// Получение ФИО пользователя DV
// На входе – переменная “UserDV” типа “Пользователь DV”
// На выходе – переменная “User” типа “Строка”
public void Execute(DocsVision.Workflow.Runtime.ProcessInfo process, PassState passInfo)
{
try
{
process.LogMessage("Получение ФИО Пользователя DV...");
// Переменная типа пользователь DV
ProcessVariable oEmployeeID = process.GetVariableByName("UserDV");
// Переменная типа строка
ProcessVariable oUserFIO = process.GetVariableByName("User");
//Получаем Гейт к DocsVision
DVGate m_oDVGate = (DVGate)process.Gates[DVGate.GateID];
//Получаем Сотрудника
DVPrincipal oEmployee = (DVPrincipal)oEmployeeID.Value;
///Подготоваливаем строки вида Фамилия И.О.
string sTempFIO = "";
if (oEmployee.LastName.Length > 0) { sTempFIO = oEmployee.LastName; }
if (oEmployee.FirstName.Length > 0) { sTempFIO += " " + oEmployee.FirstName.Substring(0, 1) + "."; }
if (oEmployee.MiddleName.Length > 0) { sTempFIO += oEmployee.MiddleName.Substring(0, 1) + "."; }
oUserFIO.Value = sTempFIO;
process.LogMessage("ФИО:" + sTempFIO);
}
catch (Exception ex)
{
// запись в журнал ошибки исполнения
process.LogMessage("Ошибка выполнения скрипта:" + ex.Message);
}
return;
}
}
Получение заместителя пользователя
class DVScript
{
// вход: переменная "UserDV" процесса типа Пользователь DV
// выход: переменная "Deputy" процесса типа Пользователь DV,
// которая вычисляется как первый заместитель у пользователя из переменной1
public void Execute(DocsVision.Workflow.Runtime.ProcessInfo process, PassState passInfo)
{
try
{
process.LogMessage("Получение заместителя...");
// Переменная типа пользователь DV
ProcessVariable oUserDV = process.GetVariableByName("UserDV");
ProcessVariable oDeputy = process.GetVariableByName("Deputy");
DVPrincipal dvUser = (DVPrincipal)oUserDV.Value;
process.LogMessage("Пользователь: " +
dvUser.LastName + " " + dvUser.FirstName + " " + dvUser.MiddleName);
DVPrincipal dvDeputy = dvUser.ActiveDeputy;
oDeputy.Value = dvDeputy;
// Результат
process.LogMessage("Заместитель: " +
dvDeputy.LastName + " " + dvDeputy.FirstName + " " + dvDeputy.MiddleName);
}
catch (Exception ex)
{
// запись в журнал ошибки исполнения
process.LogMessage("Ошибка выполнения скрипта:" + ex.Message);
}
return;
}
}
Получение URL-ссылки на карточку
class DVScript
{
// вход:
// переменная "Card" процесса типа "Карточка DV" – карточка
// выход:
// переменная "URL" процесса типа строка – содержит URL на карточку
private DVGate m_oDVGate;
public void Execute(DocsVision.Workflow.Runtime.ProcessInfo process, PassState passInfo)
{
try
{
process.LogMessage("Формирование URL карточки...");
// Переменные
ProcessVariable oURL = process.GetVariableByName("URL");
ProcessVariable oCard = process.GetVariableByName("Card");
// Получаем шлюз
m_oDVGate = (DVGate)process.Gates[DVGate.GateID];
// Приводим тип переменной
DVCard dvCard = (DVCard)oCard.Value;
// Формируем URL
string strUrl = oURL.Value.ToString();
if (m_oDVGate.BaseURL != null)
strUrl += Environment.NewLine + "<" + m_oDVGate.BaseURL + ((m_oDVGate.BaseURL.IndexOf('?') > 0) ? "&" : "?") + "CardID=" + dvCard.ID + ">";
// Результат
oURL.Value = strUrl;
process.LogMessage("Url: " + strUrl);
}
catch (Exception ex)
{
// запись в журнал ошибки исполнения
process.LogMessage("Ошибка выполнения скрипта:" + ex.Message);
}
return;
}
}
Перемещение ярлыка карточки
class DVScript
{
// вход:
// переменная "TargetFolder" процесса типа "Папка DV" – целевая папка
// переменная "Card" процесса типа "Документ DV" – карточка
// выход:
// перемещает сильную ссылку карточки "Card" в "TargetFolder"
private DVGate m_oDVGate;
public void Execute(DocsVision.Workflow.Runtime.ProcessInfo process, PassState passInfo)
{
try
{
process.LogMessage("Перемещение ярлыка...");
// Переменные
ProcessVariable oTargetFolder = process.GetVariableByName("TargetFolder");
ProcessVariable oCard = process.GetVariableByName("Card");
// Приводим типы переменных
DVFolder dvTargetFolder = (DVFolder)oTargetFolder.Value;
DVCard dvCard = (DVCard)oCard.Value;
// Получаем шлюз
m_oDVGate = (DVGate)process.Gates[DVGate.GateID];
process.LogMessage("Получили шлюз");
// получаем сессию
UserSession oSes = m_oDVGate.Session;
process.LogMessage("Получили сессию");
// получение карточки папок
FolderCard oFoldersCard = (FolderCard)oSes.CardManager.get_Card(oSes.CardManager.GetCardByRow(dvTargetFolder.ID, "FE27631D-EEEA-4E2E-A04C-D4351282FB55").ID);
process.LogMessage("Получили карточку папок");
// получение ярлыка
Shortcut oShortcut = oFoldersCard.GetHardLink(dvCard.ID);
process.LogMessage("Получили ярлык, перемещаем");
// перемещение ярлыка
oShortcut.Move(dvTargetFolder.ID);
process.LogMessage("Ярлык перемещен успешно.");
}
catch (Exception ex)
{
// запись в журнал ошибки исполнения
process.LogMessage("Ошибка выполнения скрипта:" + ex.Message);
}
return;
}
}
Удаление унаследованных прав на карточку
class DVScript
{
// Удаление унаследованных прав на карточке
// На входе – переменная “Карточка” типа “Карточка DV”
public void Execute(DocsVision.Workflow.Runtime.ProcessInfo process, PassState passInfo)
{
try
{
ProcessVariable varCard = process.GetVariableByName("Карточка");
// получение шлюза
DVGate dvGate;
dvGate = (DVGate)process.Gates[DVGate.GateID];
// получение объекта сессии для доступа к API
UserSession session = dvGate.Session;
// получение дескриптора
string cardID = ((DVCard)varCard.Value).ID;
ISecurable secureCard = session.AccessManager.GetSecureCard(cardID);
byte[] descBytes = (byte[])secureCard.ADsSecurityDescriptor;
CommonSecurityDescriptor desc = new CommonSecurityDescriptor(true, false, descBytes, 0);
// отключение наследования
desc.SetDiscretionaryAclProtection(true, false);
// сохранение измененного дескриптора
descBytes = new byte[desc.BinaryLength];
desc.GetBinaryForm(descBytes, 0);
secureCard.ADsSecurityDescriptor = descBytes;
process.LogMessage("Унаследованные права удалены");
}
catch (Exception ex)
{
process.LogMessage("Ошибка выполнения скрипта:" + ex.Message);
}
return;
}
}
3Copyright © DocsVision, 2002–2010. Все права защищены v.4.5.0
|
|
DocsVision 6 sr1: Руководство по установке и настройке
Особенности конфигурации серверного программного обеспечения для установки DocsVision 5
|
|
Техническое задание
Сопровождение и разработка прикладных решений на платформе «DocsVision» в 2016 году
|
|
Руководство по установке Иркутск, 2016 г
Конфигурирование программного обеспечения перед установкой серверной части Docsvision 25
|
|
Эпидемиологическое лечение пациентов
Синдромное (эмпирическое, эпидемиологическое) лечение пациентов с клиническими проявлениями иппп и их половых партнеров в практике...
|
|
Руководство разработкой системы документооборота
Разработка приложений для пользователей и партнеров на платформе AndroidДостижения
|
|
Информационное письмо для партнеров
В параметры функции коррекции бд добавлен чек «Контроль пустых мнемокодов» с возможностью их автоматического заполнения
|
|
На русском языке
Членам нп «Гидроэнергетика России» все материалы Международной комиссии по большим плотинам доступны на портале для партнеров в разделе...
|
|
На русском языке
Членам нп «Гидроэнергетика России» все материалы Международной комиссии по большим плотинам доступны на портале для партнеров в разделе...
|
|
Преимущества для партнеров
Партнерам с действующим компетенциями уровня Gold или Silver дополнительно доступна профессиональная техническая поддержка по телефону...
|
|
Данное методическое пособие издается в соответствии с Соглашением...
Пособие содержит материалы и лексику, которые могут быть необходимы при преподавании и использовании профессионально ориентированного...
|
|
Инновационная деятельность. 2009. №1 (6)
Научно-аналитический журнал для ученых, производственников, разработчиков новой продукции, инвесторов, властных структур и организаторов...
|
|
Методическое пособие Саратов 2008 г. Организация комплексной системы...
Методическое пособие предназначено для руководителей и преподавателей- организаторов обж образовательных учреждений
|
|
Главный редактор: Атоян Вазген Рубенович
Научно-аналитический журнал для ученых, производственников, разработчиков новой продукции, инвесторов, властных структур и организаторов...
|
|
Информационное письмо для партнеров
Начиная с версии 71 мастер-диск и инсталлятор единый для Парус-Бюджет, Парус-Муниципальное образование, Парус-Бюджетный учет поселений,...
|
|
Информационное письмо для партнеров
Начиная с версии 71 мастер-диск и инсталлятор единый для Парус-Бюджет, Парус-Муниципальное образование, Парус-Бюджетный учет поселений,...
|
|
Информационное письмо для партнеров
Начиная с версии 71 мастер-диск и инсталлятор единый для Парус-Бюджет, Парус-Муниципальное образование, Парус-Бюджетный учет поселений,...
|