API de Gestão Documental
A API de Gestão Documental (CMISGatewayRS) é uma API REST desenvolvida com recurso a produtos de integração seguros e robustos que asseguram uma comunicação transparente entre ambientes produtivos com sistemas e tecnologias heterogênias.
Através da presente API é possível invocar o CMIS e assim realizar as seguintes operações de gestão documental sobre o FileNet:
- Criar documentos no repositório;
- Remover documentos no repositório;
- Obter documentos no repositório;
- Atualizar documentos no repositório;
- Obter conteúdo de documentos no repositório;
- Obter link para conteúdo de documentos no repositório;
- Obter propriedades de documentos no repositório;
- Atualizar propriedades de documentos no repositório;
- Procurar documentos no repositório;
- Procurar classes no repositório;
- Procurar propriedades de uma classe no repositório;
A definição destas operações expostas nos interfaces seguem a norma RESTful e um modelo de comunicação síncrono, o que exige a necessidade de manter a comunicação entre a realização dos pedidos e obtenção das respostas.
Especificação de modelos
A definição das entidades e modelos definidos está disponível em Swagger de acordo com a especificação OpenAPI versão 2.0.
Payload de input - Criação de documento
Modelo que representa o payload de input para a criação de documentos no FileNet.
Modelo | Tipo de Dados | Opcional | Descrição |
---|---|---|---|
CreateDocumentRequest | JSON.Object | Payload de input com documento a criar. | |
properties | JSON.Object | Sim | Propriedades do documento. |
folderId | String | Sim | ID da pasta onde vai ser criado o documento. |
content | JSON.Object | Sim | Conteúdo do documento. |
Exemplo:
{ "content": { "filename": "124_Teste1.jpg", "stream": "dGVzdGU=" } }
CMISObject
Modelo canónico de um objeto/documento no FileNet. É o modelo devolvido nas interfaces que implementam o GET e pesquisa (POST) de informação de documento(s).
Modelo | Tipo de Dados | Opcional | Descrição |
---|---|---|---|
CMISObject | JSON.Array | CMIS Object. | |
properties | JSON.Object | Sim | Propriedades do documento. |
allowableActions | JSON.Object | Sim |
Ações permitidas ao objeto. |
relationship | JSON.Array | Sim | Objeto dependente. |
changeEventInfo | JSON.Object | Sim | Track de update do objeto. |
acl | JSON.Object | Sim | Lista de controlo de acesso. |
exactACL | Boolean | Sim | Indicador se ACL retornado descreve na íntegra a permissão do objeto. Default: False. |
policyIds | JSON.Object | Sim | Ids das políticas aplicadas ao objeto. |
rendition | JSON.Array | Sim | Representações alternativas do documento. |
extension | JSON.Array | Sim | Objecto para extender o schema. |
Exemplo:
{ "properties": { "propertyDateTime": [ { "propertyDefinitionId": "cmis:creationDate", "value": ["2020-05-14 11:26:42.466"], "localName": "DateCreated", "displayName": "Date Created", "queryName": "cmis:creationDate" }, { "propertyDefinitionId": "ContentRetentionDate", "localName": "ContentRetentionDate", "displayName": "Content Retention Date", "queryName": "ContentRetentionDate" }, { "propertyDefinitionId": "DateCheckedIn", "value": ["2020-05-14 11:26:42.467"], "localName": "DateCheckedIn", "displayName": "Date Checked In", "queryName": "DateCheckedIn" }, { "propertyDefinitionId": "cmis:lastModificationDate", "value": ["2020-05-14 11:26:42.466"], "localName": "DateLastModified", "displayName": "Date Last Modified", "queryName": "cmis:lastModificationDate" }, { "propertyDefinitionId": "DateContentLastAccessed", "localName": "DateContentLastAccessed", "displayName": "Date Content Last Accessed", "queryName": "DateContentLastAccessed" } ], "propertyInteger": [ { "propertyDefinitionId": "VersionStatus", "value": [1], "localName": "VersionStatus", "displayName": "Version Status", "queryName": "VersionStatus" }, { "propertyDefinitionId": "MajorVersionNumber", "value": [1], "localName": "MajorVersionNumber", "displayName": "Major Version Number", "queryName": "MajorVersionNumber" }, { "propertyDefinitionId": "CmIndexingFailureCode", "localName": "CmIndexingFailureCode", "displayName": "Indexing Failure Code", "queryName": "CmIndexingFailureCode" }, { "propertyDefinitionId": "MinorVersionNumber", "value": [0], "localName": "MinorVersionNumber", "displayName": "Minor Version Number", "queryName": "MinorVersionNumber" }, { "propertyDefinitionId": "ClassificationStatus", "value": [0], "localName": "ClassificationStatus", "displayName": "Classification Status", "queryName": "ClassificationStatus" }, { "propertyDefinitionId": "ReservationType", "localName": "ReservationType", "displayName": "Reservation Type", "queryName": "ReservationType" }, { "propertyDefinitionId": "cmis:contentStreamLength", "value": [5], "localName": "ContentSize", "displayName": "Content Size", "queryName": "cmis:contentStreamLength" } ], "propertyId": [ { "propertyDefinitionId": "cmis:objectId", "value": ["idd_D0B81272-0000-C11B-AFC9-76F7D1CE01F6"], "localName": "Id", "displayName": "ID", "queryName": "cmis:objectId" }, { "propertyDefinitionId": "IndexationId", "localName": "IndexationId", "displayName": "Indexation Id", "queryName": "IndexationId" }, { "propertyDefinitionId": "cmis:baseTypeId", "value": ["cmis:document"], "localName": "", "displayName": "cmis:baseTypeId", "queryName": "cmis:baseTypeId" }, { "propertyDefinitionId": "cmis:objectTypeId", "value": ["cmis:document"], "localName": "", "displayName": "cmis:objectTypeId", "queryName": "cmis:objectTypeId" }, { "propertyDefinitionId": "cmis:contentStreamId", "value": ["-1"], "localName": "", "displayName": "cmis:contentStreamId", "queryName": "cmis:contentStreamId" }, { "propertyDefinitionId": "cmis:versionSeriesId", "value": ["idv_D0B81272-0000-C41F-AE1C-75B999889BF0"], "localName": "VersionSeries", "displayName": "Version Series", "queryName": "cmis:versionSeriesId" }, { "propertyDefinitionId": "cmis:versionSeriesCheckedOutId", "localName": "", "displayName": "cmis:versionSeriesCheckedOutId", "queryName": "cmis:versionSeriesCheckedOutId" } ], "propertyBoolean": [ { "propertyDefinitionId": "IsVersioningEnabled", "value": [true], "localName": "IsVersioningEnabled", "displayName": "Is Versioning Enabled", "queryName": "IsVersioningEnabled" }, { "propertyDefinitionId": "cmis:isLatestVersion", "value": [true], "localName": "IsCurrentVersion", "displayName": "Is Current Version", "queryName": "cmis:isLatestVersion" }, { "propertyDefinitionId": "IsReserved", "value": [false], "localName": "IsReserved", "displayName": "Is Reserved", "queryName": "IsReserved" }, { "propertyDefinitionId": "cmis:isImmutable", "value": [false], "localName": "IsFrozenVersion", "displayName": "Is Frozen Version", "queryName": "cmis:isImmutable" }, { "propertyDefinitionId": "CmIsMarkedForDeletion", "value": [false], "localName": "CmIsMarkedForDeletion", "displayName": "Is Marked For Deletion", "queryName": "CmIsMarkedForDeletion" }, { "propertyDefinitionId": "IsInExceptionState", "value": [false], "localName": "IsInExceptionState", "displayName": "Is In Exception State", "queryName": "IsInExceptionState" }, { "propertyDefinitionId": "cmis:isMajorVersion", "value": [true], "localName": "", "displayName": "cmis:isMajorVersion", "queryName": "cmis:isMajorVersion" }, { "propertyDefinitionId": "cmis:isLatestMajorVersion", "value": [true], "localName": "", "displayName": "cmis:isLatestMajorVersion", "queryName": "cmis:isLatestMajorVersion" }, { "propertyDefinitionId": "cmis:isVersionSeriesCheckedOut", "value": [false], "localName": "", "displayName": "cmis:isVersionSeriesCheckedOut", "queryName": "cmis:isVersionSeriesCheckedOut" } ], "propertyString": [ { "propertyDefinitionId": "cmis:createdBy", "value": ["FILENETDSDCONTENTENG"], "localName": "Creator", "displayName": "Creator", "queryName": "cmis:createdBy" }, { "propertyDefinitionId": "cmis:name", "value": ["idd_D0B81272-0000-C11B-AFC9-76F7D1CE01F6"], "localName": "Name", "displayName": "Name", "queryName": "cmis:name" }, { "propertyDefinitionId": "cmis:lastModifiedBy", "value": ["FILENETDSDCONTENTENG"], "localName": "LastModifier", "displayName": "Last Modifier", "queryName": "cmis:lastModifiedBy" }, { "propertyDefinitionId": "DocumentTitle", "localName": "DocumentTitle", "displayName": "Document Title", "queryName": "DocumentTitle" }, { "propertyDefinitionId": "CurrentState", "localName": "CurrentState", "displayName": "Current State", "queryName": "CurrentState" }, { "propertyDefinitionId": "cmis:changeToken", "value": ["0"], "localName": "", "displayName": "cmis:changeToken", "queryName": "cmis:changeToken" }, { "propertyDefinitionId": "cmis:checkinComment", "localName": "", "displayName": "cmis:checkinComment", "queryName": "cmis:checkinComment" }, { "propertyDefinitionId": "cmis:contentStreamMimeType", "value": ["image/jpeg"], "localName": "MimeType", "displayName": "Mime Type", "queryName": "cmis:contentStreamMimeType" }, { "propertyDefinitionId": "cmis:contentStreamFileName", "value": ["124_Teste1.jpg"], "localName": "", "displayName": "cmis:contentStreamFileName", "queryName": "cmis:contentStreamFileName" }, { "propertyDefinitionId": "cmis:versionLabel", "value": ["1.0"], "localName": "", "displayName": "cmis:versionLabel", "queryName": "cmis:versionLabel" }, { "propertyDefinitionId": "cmis:versionSeriesCheckedOutBy", "localName": "", "displayName": "cmis:versionSeriesCheckedOutBy", "queryName": "cmis:versionSeriesCheckedOutBy" } ], "extension": [ { "key": "GUID", "value": "{D0B81272-0000-C11B-AFC9-76F7D1CE01F6}", "namespace": "http://www.ibm.com/xmlns/prod/ecm/cmis/p8extensions" }] }, "changeEventInfo": { "changeType": "updated", "changeTime": "2020-05-14 11:26:42.466" } }
CMISContentStreamLink
O modelo CMISContentStreamLink representa a estrutura que engloba o link para o conteúdo do documento.
Modelo | Tipo de Dados | Opcional | Descrição |
---|---|---|---|
CMISContentStreamLink | JSON.Object | Informação do link para o conteúdo do documento. | |
length | Integer | Sim | Tamanho da stream de conteúdo em bytes. |
mimeType | String | Sim | MIME Media Type da stream de conteúdo. |
filename | String | Não | Nome do ficheiro (objectID_filename para garantir unicidade). |
directory | String | Não | Diretoria do ficheiro no IBM Sterling para o utilizador em específico. |
extension | JSON.Array | Sim | Objecto para extender o schema. |
Exemplo:
{ "length": "142733", "mimeType": "image/jpeg", "filename": "idd_308EC071-0000-C21F-82ED-34218CC9E187_124_Teste.jpg", "directory": "/Inbox/cttiib" }
CMISContentStream
O modelo CMISContentStream representa a estrutura que engloba o conteúdo do documento.
Modelo | Tipo de Dados | Opcional | Descrição |
---|---|---|---|
CMISContentStream | JSON.Object | Informação do conteúdo do documento. | |
length | Integer | Sim | Tamanho da stream de conteúdo em bytes. |
mimeType | String | Sim | MIME Media Type da stream de conteúdo. |
filename | String | Sim | Nome do ficheiro. |
stream | String | Não | Stream de conteúdo em Base64. |
extension | JSON.Array | Sim | Objecto para extender o schema. |
Exemplo:
{ "length": "5", "mimeType": "image/jpeg", "filename": "124_Teste1.jpg", "stream": "dGVzdGU=" }
SearchDocumentsFilter
O modelo SearchDocumentsFilter representa a estrutura que define uma pesquisa de documentos no FileNet.
Modelo | Tipo de Dados | Opcional | Descrição |
---|---|---|---|
SearchDocumentsFilter | JSON.Object | Payload de pesquisa de documentos. | |
statement | String | Não | Statement SQL para procura de documentos. |
maxItems | String | Sim | Número máximo de itens a serem retornados. |
Exemplo:
{ "statement": "SELECT * FROM cmis:document", "maxItems": 2 }
SearchClassesFilter
O modelo SearchClassesFilter representa a estrutura que define uma pesquisa de classes no FileNet.
Modelo | Tipo de Dados | Opcional | Descrição |
---|---|---|---|
SearchClassesFilter | JSON.Object | Payload de pesquisa de classes. | |
appId | String | Não | Id da aplicação. |
Exemplo:
{ "appId":"CTT" }
SearchClassPropertiesFilter
O modelo SearchClassPropertiesFilter representa a estrutura que define uma pesquisa de propriedades de uma classe no FileNet.
Modelo | Tipo de Dados | Opcional | Descrição |
---|---|---|---|
SearchClassPropertiesFilter | JSON.Object | Payload de pesquisa de propriedades de uma classe. | |
appId | String | Não | Id da aplicação. |
classId | String | Não | Id da classe. |
Exemplo:
{ "appId":"CTT", "classId":"{00C77658-0000-C211-9AD1-80FCA3D53C4A}" }
SearchClassesResponseList
O modelo SearchClassesResponseList representa a estrutura de output de uma pesquisa de classes no FileNet.
Modelo | Tipo de Dados | Opcional | Descrição |
---|---|---|---|
SearchClassesResponseList | JSON.Object | Payload de output de uma pesquisa de classes. |
SearchClassPropertiesResponseList
O modelo SearchClassPropertiesResponseList representa a estrutura de output de uma pesquisa de propriedades de uma classe no FileNet.
Modelo | Tipo de Dados | Opcional | Descrição |
---|---|---|---|
SearchClassPropertiesResponseList | JSON.Object | Payload de output de uma pesquisa de propriedades de uma classe. |
Exemplo:
{ "list": [ { "symbolicName": "DocumentTitle", "displayName": "Document Title", "id": "{A47A2B50-010F-4AB3-85D4-DC9FC39CA5E9}", "dataType": "STRING" }, { "symbolicName": "ComponentBindingLabel", "displayName": "Component Binding Label", "id": "{80679693-A583-413E-AE22-7C71B2E88F74}", "dataType": "STRING" }, { "symbolicName": "IgnoreRedirect", "displayName": "Ignore Redirect", "id": "{DBF31A66-DF56-4711-9778-D9379F2F8331}", "dataType": "BOOLEAN" }, { "symbolicName": "EntryTemplateObjectStoreName", "displayName": "Entry Template Object Store Name", "id": "{B363DDCC-B33E-435E-859C-7A24F6E91BEC}", "dataType": "STRING" }, { "symbolicName": "EntryTemplateLaunchedWorkflowNumber", "displayName": "Entry Template Launched Workflow Number", "id": "{9F436F96-7F3D-4D03-A364-393B67557352}", "dataType": "STRING" }, { "symbolicName": "EntryTemplateId", "displayName": "Entry Template Id", "id": "{30F1D5E5-7CF0-4725-B7E8-139C4F997CB8}", "dataType": "GUID" }, { "symbolicName": "spSecurityParentBPO", "displayName": "Security Parent BPO", "id": "{ECD309DF-40E1-410D-ABC6-6CDDEEB6B12C}", "dataType": "OBJECT" }, { "symbolicName": "ptGUID", "displayName": "GUID", "id": "{6A89AA99-78B0-4F42-A207-216B5A25E0E3}", "dataType": "STRING" } ] }