Как я могу получить идентификатор объекта документа из рабочего элемента

Я получил требование получить идентификатор объекта документа (идентификатор документа движка контента) из рабочего элемента, полученного из движка процесса. И мы получаем идентификатор документа, который нам нужен для извлечения соответствующего документа из движка контента. Я создал сеанс PE и получил рабочий объект с помощью queuequery. Я не знаю, как действовать дальше. Есть ли для этого какой-нибудь код API?

3 ответа

Используйте метод ниже, чтобы получить идентификатор документа из идентификатора серии версий из vwattachment.

VersionSeries versionSeries = (VersionSeries)objectStore.getObject("VERSIONSERIES", "versionseriesid");    
Property pp= versionSeries.fetchProperty("CurrentVersion", null);
System.out.println(pp.getIdValue());
Document doc = Factory.Document.fetchInstance(objectStore, pp.getIdValue(),null );
System.out.println("document is "+doc.get_Name());

Я не на 100% уверен, что именно вы спрашиваете, но у WorkItems нет идентификаторов документов. Уникальный идентификатор WorkItem - это WorkObjectNumber. Чтобы получить это, вы можете выполнить

VWQueueElement.getWorkObjectNumber()

Если вы хотите получить идентификатор документа вложения для WorkItem, это другое дело. И вы можете получить это с помощью следующих

String attachmentName; // Set to name of attachment property used in Workflow
VWQueueQuery results = queue.createQuery(indexName, firstValues, lastValues, queryFlags, queryFilter, substitutionVars, VWFetchType.FETCH_TYPE_QUEUE_ELEMENT);
if(results != null)
{
    while(results.hasNext())
    {
        VWQueueElement e = (VWQueueElement) results.next();
        VWAttachment attachment = (VWAttachment) e.fetchWorkObject(false, false).getDataField(attachmentName).getValue();
        System.out.println(attachment.getId()); // Version Series Id
        System.out.println(attachment.getLibraryName()); // ObjectStore Name 
        System.out.println(attachment.getAttachmentDescription()); // Document Id 
        System.out.println(attachment.getAttachmentName()); // Attachment Name
    }
}

Вы можете получить текущую версию документа из серии версий и получить идентификатор этого документа.

      vs = Factory.VersionSeries.fetchInstance(objectStore, attachment.getId(), pf);
Id iDoc = ((Containable) vs.get_CurrentVersion()).get_Id();
Другие вопросы по тегам