В моем SOA есть два приложения, обменивающиеся информацией о документах туда и обратно. Один из них — Навигатор файловой сети/контента IBM. Теперь другое приложение не может обращаться к документам в файловой сети, когда эти документы извлечены в файловой сети. Обычно это можно решить, войдя в Filenet вручную, щелкнув документ правой кнопкой мыши и выбрав отмену проверки.
Поскольку задержка действительно мешает моей интеграции с SOA, я хочу иметь возможность выполнять это действие «отменить проверку» в файловой сети через вызов веб-службы в моем SOA. Это сэкономит много времени, затрачиваемого на ручные действия по разблокировке документов. Я использую Пакет Oracle SOA 11g (и 12c), и мой процесс в значительной степени поддерживается BPEL. У меня уже есть хороший веб-сервис, взаимодействующий с Filenet. Однако мне нужно будет создать новую операцию «UnlockDocument», чтобы взаимодействовать и выполнять это действие в файловой сети.
Что мне нужно: Мне нужен код для операции "UnlockDocument" в среде файловой сети или что-то подобное, чтобы выполнить эту работу. Любая информация (в том числе не связанная с кодом!) о том, как я могу действовать, очень приветствуется, и я буду обновлять свой пост, если сам найду больше информации!
Спасибо за помощь!
Джеспер
Оказывается, в веб-сервисе файловой сети нет возможных операций «UnlockDocument» или «CancelCheckout». Тем не менее, я нашел изящный обходной путь, который позволяет вам сделать именно это.
Когда документ извлекается в файловую сеть через клиент или через вызов веб-службы операции:
«Оформить действие».
Копия документа создается внутри файловой сети с тем же VersionSeriesId
, что и исходный документ, но со свойством Isreserved = 'true'
. Если вы выполняете «DeleteAction» на этой копии, вы, по сути, воссоздаете ручной шаг «Cancel Checkout», доступный в клиенте файловой сети. «DeleteAction» требует ObjectId
и не работает с VersionSeriesId
. Чтобы получить этот ObjectID через вызов веб-сервиса, вам нужно сделать SOAPCall, который получит этот ObjectID
. Чтобы отменить первоначальную проверку, необходимо выполнить второй вызов SOAPCall, который удалит документ с полученным на предыдущем шаге ObjectID
, также известным как «копия». Ниже приведены два примера используемых вызовов SOAPCall:
Выполнить поисковый запрос SoapCall:
<soap:Envelope xmlns:soap = "http://www.w3.org/2003/05/soap-envelope" xmlns:sch = "http://www.filenet.com/ns/fnce/2006/11/ws/schema">
<soap:Header>
<sch:Localization>
<sch:Locale>en_EN</sch:Locale>
<sch:Timezone/>
</sch:Localization>
</soap:Header>
<soap:Body>
<sch:ExecuteSearchRequest xsi:type = "RepositorySearch" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance">
<sch:SearchScope xsi:type = "ObjectStoreScope" objectStore = "ObjectStoreXXX"/>
<sch:SearchSQL>SELECT [Id] FROM Document WHERE VersionSeries = {"enter the VersionSeriesID of the initial document without quotes"} AND IsReserved = true</sch:SearchSQL>
</sch:ExecuteSearchRequest>
</soap:Body>
</soap:Envelope>
УдалитьActionRequest SoapCall:
<soap:Envelope xmlns:soap = "http://www.w3.org/2003/05/soap-envelope" xmlns:sch = "http://www.filenet.com/ns/fnce/2006/11/ws/schema">
<soap:Header>
<sch:Localization>
<sch:Locale>en-EN</sch:Locale>
<sch:Timezone/>
</sch:Localization>
</soap:Header>
<soap:Body>
<sch:ExecuteChangesRequest xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance">
<sch:ChangeRequest>
<sch:TargetSpecification classId = "Document" objectId = "{"enter the objectId of the previously obtained document without quotes"}" objectStore = "ObjectStoreO7"/>
<sch:Action xsi:type = "sch:DeleteAction"/>
</sch:ChangeRequest>
</sch:ExecuteChangesRequest>
</soap:Body>
</soap:Envelope>
Теперь, чтобы заставить это работать из SOA, вам нужно дважды вызвать веб-службу файловой сети из вашего BPEL. Сначала с первой операцией: ExecuteSearchRequest
, которая дает вам ObjectId, необходимый для отмены проверки, затем со второй операцией ExecuteChangesRequest
, которая удаляет правильный документ, отменяя первоначальную проверку. Эти операции перечислены в приведенных выше примерах SOAP. Кроме того, вам необходимо добавить WS-security в свой исходящий заголовок с рабочими учетными данными для доступа к службе Filenet. В противном случае вы не сможете подключиться к файловой сети.
Это стоило мне много времени, поэтому я надеюсь, что это поможет кому-то, кроме меня. Наслаждайтесь своим мастерством удаления файловой сети!