<< Click to Display Table of Contents >> Разработка > Процесс разработки > Утилита RxCmd Пример плагина для интеллектуальной обработки документов |
Ситуация
В системе Directum RX настроена интеллектуальная обработка документов. Необходимо создать новый плагин на основе существующего и добавить в него свою функцию, которая будет выполнять дополнительные проверки настроек интеллектуальной обработки.
Решение
Предварительно в среде разработки Directum RX в серверном коде нужного модуля создайте новую функцию для проверки настроек интеллектуальной обработки. За основу можно взять существующую функцию ValidateSettings() модуля SmartProcessing. Для функции добавьте атрибут Public, чтобы она была доступна через сервис интеграции.
Затем создайте копию стандартного плагина SmartProcessing и замените в нем вызов функции ValidateSettings() на свою MyValidateSettings(). Для этого:
1.Распакуйте архив RxCmdPluginSDK.zip и откройте его как решение в Microsoft Visual Studio.
2.В свойствах проекта CustomPlugin переименуйте имя сборки Sungero.RxCmd, например, в Sungero.RxCmd.MySmartProcessing.
3.Скопируйте содержимое исходных файлов плагина SmartProcessing в соответствующие файлы своего плагина:
•\samples\SmartProcessing\Plugin.cs – в CustomPlugin.cs;
•\samples\SmartProcessing\SmartCommand.cs – в CustomCommand.cs;
•\samples\SmartProcessing\SmartProcManager.cs – в CustomManager.cs.
4.Подключите к проекту CustomPlugin библиотеку ArioExtensions из папки \lib\. Для этого в файле *.csproj добавьте блок:
<Reference Include="Sungero.ArioExtensions">
<HintPath>..\lib\Sungero.ArioExtensions.dll</HintPath>
<Private>False</Private>
</Reference>
5.В модуле CustomPlugin.cs переименуйте команду первого уровня:
public BaseCommand GetCommand()
{
return new SmartCommand("<Имя команды>", "Smart document processing commands.");
}
6.В CustomManager.cs в функции ProcessPackage() укажите имя модуля Directum RX, в который добавлена новая серверная функция, и добавьте ее вызов в плагине:
public static int ProcessPackage(string senderLineName, string instanceInfosXmlPath, string deviceInfoXmlPath, string inputFilesXmlPath, string packageFolderPath)
{
try
{
Log("Start processing package.");
// Код проверки настроек интеллектуальной обработки.
Log("Validating smart processing settings...");
IntegrationServiceClient.RunAction("<Имя модуля Directum RX,
в который добавлена серверная функция>",
"<Имя своей функции>",
new { senderLineName });
Log("Smart processing settings validated.");
// Создание пакета бинарных образов документов DCS.
Log("Preparing dcs package...");
var dcsPackage = DcsFileParser.CreateDcsPackage(senderLineName,
instanceInfosXmlPath,
deviceInfoXmlPath,
inputFilesXmlPath,
packageFolderPath);
PackageId = dcsPackage.PackageId;
Log("Dcs package prepared.");
// ……
7.Присоедините созданный плагин к утилите RxCmd. Для этого соберите проект CustomPlugin с любым типом конфигурации сборки debug или release. Затем добавьте собранные файлы с расширениями *.dll, *.deps.json, *.pdb в подпапку утилиты \Plugins\.
8.В файле rxsmartproc.bat, который запускает служба ввода DCS при обработке документов, укажите имя новой команды. В этом случае строка для запуска интеллектуально обработки с помощью утилиты RxCmd примет вид:
<Путь до утилиты RxCmd> <Имя команды> process-pkg -n "Service user" -p 11111 %1 %2 %3 %4 %5
© Компания Directum, 2024 |