Как разблокировать объекты в IBM Content Navigator из вызова веб-службы SOA

В моем SOA есть два приложения, обменивающиеся информацией о документах туда и обратно. Один из них — Навигатор файловой сети/контента IBM. Теперь другое приложение не может обращаться к документам в файловой сети, когда эти документы извлечены в файловой сети. Обычно это можно решить, войдя в Filenet вручную, щелкнув документ правой кнопкой мыши и выбрав отмену проверки.

Поскольку задержка действительно мешает моей интеграции с SOA, я хочу иметь возможность выполнять это действие «отменить проверку» в файловой сети через вызов веб-службы в моем SOA. Это сэкономит много времени, затрачиваемого на ручные действия по разблокировке документов. Я использую Пакет Oracle SOA 11g (и 12c), и мой процесс в значительной степени поддерживается BPEL. У меня уже есть хороший веб-сервис, взаимодействующий с Filenet. Однако мне нужно будет создать новую операцию «UnlockDocument», чтобы взаимодействовать и выполнять это действие в файловой сети.

Что мне нужно: Мне нужен код для операции "UnlockDocument" в среде файловой сети или что-то подобное, чтобы выполнить эту работу. Любая информация (в том числе не связанная с кодом!) о том, как я могу действовать, очень приветствуется, и я буду обновлять свой пост, если сам найду больше информации!

Спасибо за помощь!

Джеспер

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
301
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Оказывается, в веб-сервисе файловой сети нет возможных операций «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. В противном случае вы не сможете подключиться к файловой сети.

Это стоило мне много времени, поэтому я надеюсь, что это поможет кому-то, кроме меня. Наслаждайтесь своим мастерством удаления файловой сети!

Другие вопросы по теме