FC
TL;DR консольный AddPermission не даёт взять таск под тем, кому выдан пермишн, с помощью Get Task на панели очередей
Мне потребовалось сделать проект, в котором будут несколько очередей, доступных под учётной записью Senior Verifier. Для этого я предпринял следующие шаги:
1. Берём проект Letters&Contracts, переименовываем в TestProject
2. Создаём новый тип пакета Verification 2, из настроек меняем только имя стадии верификации так же на Verification 2 (для этого нужно выставить Advenced-схему) и доступ к веб-станциям
3. Загружаем проект на сервер
4. Для выдачи прав пользователю в PowerShell запускаем следующий скрипт:
$appServer = "localhost" $url = "http://$appServer" $authUri = $url + '/FlexiCapture12/Server/AuthAPI/v1/WSDL' $authSvc = New-WebServiceProxy -Uri $authUri -UseDefaultCredential $authSvc.Url = $url + '/FlexiCapture12/Server/AuthAPI/v1/Soap'
$id = 7 #userId - select Id from Principal where Name = 'sver' $projectId = 20 #TestProject - select * from Project where Name = 'TestProject' $roleType = 6 #Senior Verifier - select Type from Role Where ProjectId = 20 and Name = 'Senior Verification Operator' $batchType = 14 #Verification 2 - select Id from BatchType where name = 'Verification 2' and ProjectId = 20 $authSvc.AddPermission($id, $projectId, 0, $roleType) #0 - для default $authSvc.AddPermission($id, $projectId, $batchType, $roleType)
Так мы выдадим учётной записи sver права на работу с пакетами. Если записи sver нет, можно её создать следующей командой:
#sver 123 $account = 'sver' $id = $authSvc.CreateUser($account, 'Senior Verifier', 'AABC36B333D9A9C9B4C30991E0937973D021E6CF265B60CC281C8D4054EE2BBA', 'test@abbyy.com', '')
Кажется, учётная запись готова для использования, перейдём к нему:
1. Создаём любой пакет Verification 2 на станции сканирования
2. Берём таск на станции верификации под admin/sver с помощью кнопки Get any task (либо Get Task непосредственно на очереди) - проблем нет; режектим таск
3. Заходим под sver, выбираем проект и роль Senior Verification Operator, пытаемся взять таск, получаем следующее:
Сервер говорит: Status Code: 500 Internal Server Error
Логи говорят: <message>Caught UnknownException, Message=SOAP Server Application Faulted</message>
Из забавных эффектов можно увидеть задвоение таска:
Причём, с этой страницы таск берётся
На странице батчей же таск будет один, и тоже спокойно берётся:
Если же права выдавать не через AddPermission, а через чекбоксы на станции администрирования и мониторинга, подобной проблемы не будет
Вопрос - в чём именно проблема?