Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

  1. Visão Geral
  2. Definições de Serviços
    1. GET - WSPfsApi/legaldesk/anexo/download/{key}
    2. POST - WSPfsApi/legaldesk/anexo/upload
    Exemplos de Utilização
  3. Tabelas utilizadas
  4. 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
languagejava
themeMidnight
titleRequest Header
collapsetrue
LEGALDESK: TRUE
TENANTID: T1,M SP 01
Content-Type: application/json
Bloco de código
languagejava
themeMidnight
titleResponse.json
collapsetrue
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
languagejava
themeMidnight
titleRequest Header
collapsetrue
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
languagejava
themeMidnight
titleResponse.json
collapsetrue
{
    "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):

Image Removed

  • Inclusão de um anexo (POST):

Para realizar a inclusão de um anexo, é necessário:

  1. Quando o tipo de integração de arquivos for WorkSite/iManage (parâmetro MV_JDOCUME = 1)
    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)
            
  2. Quando o tipo de integração de arquivos for Base de Conhecimento (parâmetro MV_JDOCUME = 2)
    1. Enviar o arquivo que está sendo anexado para a pasta Spool dentro do diretório Protheus_data;
    2. 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)

Image Removed

  • Exclusão de um anexo (DELETE):

Para realizar a exclusão de um anexo, basta enviar a chave do registro que será excluído.

Image Removed

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
StatusDescriçã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.

ERROROcorreu erro no momento do vínculo com a NUM. O erro estará descrito na chave result.
NOT_CREATEDQuando 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>