Histórico da Página
...
- Visão Geral
- Definições de Serviços
- GET - WSPfsApi/legaldesk/anexo/download/{key}
- POST - WSPfsApi/legaldesk/anexo/upload
- Tabelas utilizadas
- Assuntos Relacionados
01. VISÃO GERAL
Essa rotina possibilita a manutenção (inclusão/exclusão) dos anexos separadamente das demais rotina do módulo SIGAPFS. Quando um anexo vier por uma integração é este modelo que será consumido. Para consumir essa rotina via integração pode ser utilizado o nome do modelo JURA290 ou seu apelido JDOCANEXO.
...
Os serviços especificados neste documento tem por objetivo:
- Download - Permitir ao usuário baixar um arquivo que está no Protheus através da chave desse arquivo.
- Upload - Permitir ao usuário enviar arquivos para o diretório spool do Protheus.
02. DEFINIÇÕES DE SERVIÇOS
a. GET - WSPfsApi/legaldesk/anexo/download/{key}
Exibe o conteúdo do arquivo que foi anexado no Protheus:
Parâmetro:
key - Chave do Registro de Anexo (NUM_FILIAL+NUM_COD em base 64)
| Bloco de código | ||||||||
|---|---|---|---|---|---|---|---|---|
| ||||||||
LEGALDESK: TRUE
TENANTID: T1,M SP 01
Content-Type: application/json
|
| Bloco de código | ||||||||
|---|---|---|---|---|---|---|---|---|
| ||||||||
Content-Disposition: attachment; filename="arquivo.txt"
Content-Length: 51
Content-Type: Application/octet-stream
{
<arquivo.txt>
} |
Obs: A transferência do arquivo é realizada via octet-stream e attachment conforme o response acima.
b. POST - WSPfsApi/legaldesk/anexo/upload
Recebe os dados do arquivo que será criado na pasta do Protheus
...
b.1. Body da requisição
O body da requisição é composto de duas partes. O envio do Anexo via Multipart/Form-Data e o Data que vincula o anexo a entidade de anexos.
| Bloco de código | ||||||||
|---|---|---|---|---|---|---|---|---|
| ||||||||
LEGALDESK: TRUE TENANTID: T1,M SP 01 Accept-Encoding: gzip, deflate, br Connection: keep-alive Content-Type: multipart/form-data; boundary=--------------------------126713368602627514962789 Content-Length: 1149 ----------------------------126713368602627514962789 Content-Disposition: form-data; name=""; filename="arquivo.txt" <arquivo.txt> ----------------------------126713368602627514962789 Content-Disposition: form-data; name="data" { "entidade": "<Entidade>", "codEntidade": "<Código da Entidade>" } ----------------------------126713368602627514962789-- |
O Endpoint dá a opção de receber o anexo e somente criar ele na pasta de Anexos, assim como já criar o vínculo dele na NUM (Anexos Jurídico).
Detalhes das propriedades da solicitação:
- data.entidade: Tabela da Entidade. Indica qual a tabela que o anexo será vinculado.
- data.codEntidade: Código da entidade.
- Importante: O código deve ser a Chave Única da Tabela removendo a Filial do início da Chave, pois há um tratamento interno que resolve a parte da Filial da chave considerando o TenantID passado, caso a tabela seja Exclusiva.
| Bloco de código | ||||||||
|---|---|---|---|---|---|---|---|---|
| ||||||||
{
"result": "Anexo copiado com sucesso.",
"entityNUM": {
"status": "CREATED",
"id": "0000000139"
} |
Obs: A transferência do arquivo deve ser realizada via multipart/form-data conforme o header acima.
02. EXEMPLOS DE UTILIZAÇÃO
- Consulta de anexo (GET):
- Inclusão de um anexo (POST):
Para realizar a inclusão de um anexo, é necessário:
- Quando o tipo de integração de arquivos for WorkSite/iManage (parâmetro MV_JDOCUME = 1)
- Enviar as seguintes informações para para efetivação do anexo:
- NUM_FILENT - Filial da entidade (Caso compartilhamento da entidade seja 'Exclusivo')
- NUM_ENTIDA - Entidade (Exemplo: OHB)
- NUM_CENTID - Código/chave da entidade (Chave única)
- NUM_DOC - Nome do arquivo do anexo (Sem extensão)
- NUM_NUMERO - Identificação do arquivo no WorkSite/iManage (Id do arquivo)
- NUM_DESC - Nome do arquivo do anexo (Com extensão)
- NUM_EXTEN - Extensão do arquivo (Exemplo .PDF)
- Enviar as seguintes informações para para efetivação do anexo:
- Quando o tipo de integração de arquivos for Base de Conhecimento (parâmetro MV_JDOCUME = 2)
- Enviar o arquivo que está sendo anexado para a pasta Spool dentro do diretório Protheus_data;
- Enviar as seguintes informações para para efetivação do anexo:
- NUM_FILENT - Filial da entidade (Caso compartilhamento da entidade seja 'Exclusivo')
- NUM_ENTIDA - Entidade (Exemplo: OHB)
- NUM_CENTID - Código/chave da entidade (Chave única)
- NUM_DOC - Nome do arquivo do anexo (Sem extensão)
- NUM_DESC - Nome do arquivo do anexo (Com extensão)
- NUM_EXTEN - Extensão do arquivo (Exemplo .PDF)
- Exclusão de um anexo (DELETE):
Para realizar a exclusão de um anexo, basta enviar a chave do registro que será excluído.
03. TABELAS UTILIZADAS
04. ASSUNTOS RELACIONADOS
} |
Detalhes das propriedades da resposta:
- resposta.result: Resultado geral da operação
- resposta.entityNUM: Sessão sobre o registro gerado na NUM ( Tabela de Anexos do Jurídico )
- resposta.entityNUM.id: Código do Anexo, caso a requisição tenha recebido a sessão de "data" no body
- resposta.entityNUM.status: Status de retorno da geração da NUM. Abaixo os status possíveis
| Status | Descrição |
|---|---|
| CREATED | O registro da NUM foi criado com sucesso. O Id do anexo será retornado na chave id. Caso o anexo já esteja vinculado na NUM, o sistema irá retornar o Status Created e no Id irá retornar o código do registro que já estava criado. |
| ERROR | Ocorreu erro no momento do vínculo com a NUM. O erro estará descrito na chave result. |
| NOT_CREATED | Quando a requisição não contiver a sessão "data" no body o sistema irá somente gerar o arquivo na pasta do Protheus, sem vincular o anexo na NUM. |
Obs: A transferência do arquivo deve ser realizada via multipart/form-data conforme o header acima.
Obs²: Para os casos que enviarem a sessão "data", o sistema irá vincular a NUM automaticamente, desse modo não será necessário o uso da JURA290.
03. ASSUNTOS RELACIONADOS
| HTML |
|---|
<!-- esconder o menu -->
<style>
div.theme-default .ia-splitter #main {
margin-left: 0px;
}
.ia-fixed-sidebar, .ia-splitter-left {
display: none;
}
#main {
padding-left: 10px;
padding-right: 10px;
overflow-x: hidden;
}
.aui-header-primary .aui-nav, .aui-page-panel {
margin-left: 0px !important;
}
.aui-header-primary .aui-nav {
margin-left: 0px !important;
}
</style>
|


