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"
}
]
}
