APIMYPENDINGAPPROVAL - Informações para Aplicativo MLA

Produto:

Datasul

Ocorrência:

Documentação de API

Nome físico:

lap/apiMyPendingApproval.p


Objetivo

Esta API tem como objetivo de fornecedor informações para apresentações de dados para o aplicativo do MLA, assim como realização das aprovações.


Funcionamento

A API fornece uma série de métodos que podem ser executados individualmente para apresentação de dados no aplicativo MLA, assim como realização de aprovações de pendências.

A sintaxe para a chamada da API, que deve ser de forma persistente:


run lap/apiMyPendingApproval.p persistent set h-handle.


A variável denominada h-handle irá receber o “handle” do programa, permitindo o acesso aos “métodos” internos da API.

Método Negócio


Quando a API estiver executada em modo persistente, os seguintes métodos estarão disponíveis para execução:


pi-get-defaults-v1

Requisito

Nenhum.

Descrição

Retorna dados principais para carregamento inicial do APP: empresas, estabelecimentos e documentos do aprovador com seus layouts.

Parâmetros

Tipo

Input/Output

Descrição

oInput

JsonObject

INPUT

Parâmetros para a busca dos dados iniciais:

pathParams:  Informar na seguinte ordem: getDefaults e código do aprovador.


queryParams →  expand: Utilizando este parâmetro com as opções abaixo permite retornar também as informações de:
  • visualConfigurations: Configurações Visuais
  • groupCompanies: Grupo de empresas
  • documents: Documentos 
  • documents.fields: Componentes de cada docmento
  • establishments: Estabelecimentos


{
    "queryParams": {
    "expand": [     "visualConfigurations,groupsCompanies,documents,documents.fields,establishments"
    ]
  },
    "pathParams": [
       "getDefaults",
       "super"
    ],
}
oOutputJsonObjectOUTPUT

Informações iniciais para o APP:


{
  "status": 200,
  "payload": {
    "total": 1,
    "hasNext": false,
    "items": [
      {
        "userCode": "super",
        "userName": "Super Usuário",
        "eMail": "",
        "sendEmail": true,
        "receiveEmail": true,
        "masterUser": false,
        "currency": 0,
        "currencyAbbrev": "R$",
        "automaticApproval": true,
        "automaticApprovalApprover": true,
        "siteCode": "1",
        "allocationCode": "10702",
        "releaseAmount": false,
        "configuratorUser": true,
        "companyCode": "10",
        "language": "pt",
        "_expandables": [
          "visualConfigurations",
          "groupsCompanies",
          "documents",
          "documents.fields",
          "establishments"
        ],
        "visualConfigurations": [
          {
            "ordination": 3,
            "allCompanies": false,
            "approveWithoutReason": true,
            "undoTime": 5,
            "rightSwipeAction": 1,
            "leftSwipeAction": 1,
            "initialView": 1,
            "pageRecordsNumber": 50
          }
        ],
        "groupsCompanies": [
          {
            "sequence": 1,
            "name": "Grupo de Empresas 1",
            "companies": [
              {
                "code": "002",
                "name": "TOTVS SA - E-kanban"
              },
              {
                "code": "10",
                "name": "10 TOTVS S.A"
              },
              {
                "code": "11",
                "name": "TOTVS"
              }
           }
         ],
         "documents": [
          {
            "documentCode": 1,
            "documentDescription": "Solicitação de Compra - Item",
            "defaultLayout": false,
            "shortName": "SC",
            "fields": [
              {
                "id": "doc-nr-requisicao",
                "componentType": 1,
                "label": "",
                "description": "Número da Solicitação de Compra",
                "visible": true,
                "size": 100
              },
              {
                "id": "pend-valor-doc",
                "componentType": 1,
                "label": "",
                "description": "Valor da Pendência de Aprovação",
                "visible": true,
                "size": 100
              }
            ]
          },
          {
            "documentCode": 5,
            "documentDescription": "Cotação de Materiais",
            "defaultLayout": false,
            "shortName": "CO",
            "fields": [
              {
                "id": "pend-chave-doc",
                "componentType": 1,
                "label": "Chave",
                "description": "Chave do Documento da Pendência de Aprovação",
                "visible": true,
                "size": 100
              },
              {
                "id": "pend-valor-doc",
                "componentType": 1,
                "label": "Valor",
                "description": "Valor da Pendência de Aprovação",
                "visible": true,
                "size": 100
              }
            ]
          }
        ],
        "establishments": [
          {
            "code": "A1",
            "name": "Estabelecimento TOTVS",
            "codeCompany": "10"
          },
          {
            "code": "10000",
            "name": "Estab 10000",
            "codeCompany": "10"
          }
         ]         
      }
    ]
  }
}

Para verificar o que significa cada campo, conferir nas temp-tables no final desta documentação: 

  • tt-aprovador: contém as informações principais do aprovador
  • tt-config-visual (visualConfigurations): contém as informações de configuração visual do usuário.
  • groupsCompanies
    • sequencia: sequência do grupo de empresa;
    • name: Nome do grupo de empresa;
    • ttCompany (companies): contém informações de empresas
  • tt-document (documents): contém informações dos documentos
    • tt-layout (fields): contém informações de campos do layout de documento
  • ttEstablishments (establishments): contém informações dos estabelecimentos
RowErrorsTemp-tableOUTPUTInformações sobre os erros ocorridos durante o processo de busca dos dados

Retorno

Dados principais para inicialização do APP ou erros ocorridos durante o processo de busca.



pi-get-document-abrev

Requisito

Nenhum.

Descrição

Retorna a sigla do documento

Parâmetros

Tipo

Input/Output

Descrição

piDocumentCodeINTEGERINPUTCódigo do documento
pcDocumentDescriptionCHARACTERINPUTDescrição do documento
pcSiglaCHARACTEROUTPUTSigla do documento

Retorno

Sigla do documento.



pi-validate-user-info-v1

Requisito

Nenhum.

Descrição

Realiza validações do usuário para acesso:

  • Se é aprovador;
  • Se possui algum documento configurado para aprovação;
  • Se o existe estabelecimento configurado para aprovação (MLA0000)

Parâmetros

Tipo

Input/Output

Descrição

oInput

JsonObject

INPUT

Parâmetros para a validação do aprovador:

pathParams:  Informar na seguinte ordem: validateUserInfo e código do aprovador.


{
    "pathParams": [
    "validateUserInfo",
    "super"
  ],
}
oOutputJsonObjectOUTPUT

Campo indicando se o usuário está válido:


{
  "status": 200,
  "payload": {
    "total": 1,
    "hasNext": false,
    "items": [
      {
        "passed": true       
      }
    ]
  }
}
RowErrorsTemp-tableOUTPUTInformações sobre os erros ocorridos durante o processo de validação.

Retorno

Indica se o usuário está válido e caso não esteja, os erros de validação.



pi-query-app-list-v1

Requisito

Nenhum.

Descrição

Realiza a busca de pendências a ser apresentada na listagem do APP.

Obs.: Os campos são retornados conforme layout configurado para cada usuário e documento.

Parâmetros

Tipo

Input/Output

Descrição

oInput

JsonObject

INPUT

Parâmetros para a busca do aprovador:

pathParams:  Informar: getPendingApprovalToList

queryParams

  • company: Empresa, se não informar o parâmetro serão consideradas todas as empresas
  • establishment: Estabelecimento, se não informar o parâmetro serão considerados todos os estabelecimentos
  • inicialGenerationDate: Data de geração inicial no formato yyyy-mm-dd (se enviar no formato inválido é desconsiderado)
  • finalGenerationDate: Data de gera‡geraçãofinal no formato yyyy-mm-dd (se enviar no formato inválido é desconsiderado)
  • mainPendencies: Indica se devem ser apresentadas as pendências principais
  • alternativePendencies: Indica se devem ser apresentadas as pendências alternativas
  • masterPendencies: Indica se devem ser apresentadas as pendências como mestre
  • documents: Documentos a serem considerados (separados por vírgula)
  • pendingPendencies: Indica se devem ser apresentadas pendências "pendentes"
  • approvedPendencies: Indica se devem ser apresentadas pendências "aprovadas"
  • rejectedPendencies: Indica se devem ser apresentadas pendênciaspendências "reprovadas"
  • reApprovedPendencies: Indica se devem ser apresentadas pendências "reaprovadas"
  • order: Ordenação: Opçõess possíveis (se não informado ser  utilizado: -generationDate):
    • -generationDate: Data de geração, decrescente
    • generationDate: Data de geração, crescente
    • -price: Valor, decrescente
    • price: Valor, crescente
    • company: Empresa
    • establishment: Estabelicemento
    • documentType: Documento
  • pageSize: Tamanho da página (número de registros retornados)
  • nextRowid: Rowid do registro da próxima página (que será buscado os registros)


{
   "pathParams": [
      "getPendingApprovalToList"
   ],
   "queryParams": {
      "mainPendencies": [
         ""
      ],
      "pendingPendencies": [
         ""
      ],
      "approvedPendencies": [
         ""
      ],
      "rejectedPendencies": [
         ""
      ],
      "reApprovedPendencies": [
         ""
      ],
      "documents": [
         "3,8"
      ],
      "order": [
         "-price"
      ],
      "pageSize": [
         "30"
      ]
  },
}
oOutputJsonObjectOUTPUT

Informações das pendências:


{
  "status": 200,
  "payload": {
    "total": 3,
    "hasNext": false,
    "items": [
      {
        "transactionNumber": 88912,
        "documentType": 8,
        "documentKey": "994344",
        "generateDate": "2021-03-03",
        "approver": "super",
        "status": 2,
        "company": "10",
        "site": "1",
        "pendencyType": 1,
        "price": 109989000.00,
        "fields": [
          {
            "id": "pend-cod-tip-doc-desc",
            "value": "Pedido Emergencial - Total"
          },
          {
            "id": "pend-chave-doc",
            "value": "994344"
          },
          {
            "id": "pend-cod-usuar-doc",
            "value": "super"
          },
          {
            "id": "pend-valor-doc",
            "value": "R$ 109.989.000,00"
          }
        ]
      },
      {
        "transactionNumber": 88967,
        "documentType": 3,
        "documentKey": "12345707710 .compras",
        "generateDate": "2021-03-04",
        "approver": "super",
        "status": 1,
        "company": "10",
        "site": "1",
        "pendencyType": 1,
        "price": 12.45,
        "fields": [
          {
            "id": "doc-nr-requisicao",
            "value": "123457077"
          },
          {
            "id": "doc-sequencia",
            "value": "10"
          },
          {
            "id": "doc-it-codigo",
            "value": ".compras"
          },
          {
            "id": "doc-dt-requisicao",
            "value": "04\/03\/2021"
          },
          {
            "id": "doc-nome-abrev",
            "value": "super"
          },
          {
            "id": "pend-valor-doc",
            "value": "R$ 12,45"
          }
        ]
      },
      {
        "transactionNumber": 89469,
        "documentType": 3,
        "documentKey": "12345708510 .compras-copia",
        "generateDate": "2021-03-22",
        "approver": "super",
        "status": 4,
        "company": "10",
        "site": "1",
        "pendencyType": 1,
        "price": 9.09,
        "fields": [
          {
            "id": "doc-nr-requisicao",
            "value": "123457085"
          },
          {
            "id": "doc-sequencia",
            "value": "10"
          },
          {
            "id": "doc-it-codigo",
            "value": ".compras-copia"
          },
          {
            "id": "doc-dt-requisicao",
            "value": "22\/03\/2021"
          },
          {
            "id": "doc-nome-abrev",
            "value": "super"
          },
          {
            "id": "pend-valor-doc",
            "value": "R$ 9,09"
          }
        ]
      }
    ]
  },
  "nextRowid": null
}

Para verificar o que significa cada campo, conferir nas temp-tables no final desta documentação: 

  • tt-mla-doc-pend-aprov: contém as informações gerais da pendência
    • tt-fields (fields): contém as informações de campos e valores da pendência
  • nextRowid: Rowid do registro da próxima página (para utilizar na próxima busca de dados)


RowErrorsTemp-tableOUTPUTInformações sobre os erros ocorridos durante o processo de busca das pendências.

Retorno

Informações de pendências a serem apresentadas ou erro ocorridos durante a busca.


pi-query-pending-approval

pi-query-rejection-options-v1

pi-get-detail-pending-v1

pi-get-detail-historic-pending-v1

pi-approve-v1

pi-reprove-v1

pi-reapprove-v1

pi-process-pending-v1


Definição de temp-tables:


RowErrors

Entrada/Saída

Temp-table com dados dos erros ocorridos durante o processo

Saída

Atributo

Tipo

Descrição

Obrigatório

Evolução

ErrorSequence

 INTEGER

Número da sequência do erro

Sim

Não se aplica

ErrorNumber

INTEGER Código do erro 

Sim

Não se aplica

ErrorDescriptionCHARACTER Descrição do erro SimNão se aplica
ErrorParametersCHARACTER Parâmentros da mensagem de erro SimNão se aplica
ErrorTypeCHARACTER Tipo do erro SimNão se aplica
ErrorHelpCHARACTER Texto de ajuda da mensagem de erro SimNão se aplica
ErrorSubTypeCHARACTERSubtipo do erroSimNão se aplica



tt-aprovador

Entrada/Saída

Temp-table com dados dos aprovadores

Saída

Atributo

Nome no objeto

Tipo

Descrição

Obrigatório

Evolução

cod-usuar

userCode

CHARACTER 

Código do aprovador

Não

Não se aplica

nome-usuar

userNameCHARACTER Nome do aprovador

Não

Não se aplica

e-maileMailCHARACTER E-mail do aprovadorNãoNão se aplica
envia-emailsendEmailLOGICALIndica se envia e-mailNãoNão se aplica
recebe-emailreceiveEmailLOGICALIndica se recebe e-mailNãoNão se aplica
usuar-mestremasterUserLOGICALIndica se o usuário é mestreNãoNão se aplica
mo-codigocurrencyINTEGERMoeda do aprovadorNãoNão se aplica
sigla-moedacurrencyAbbrevCHARACTER Sigla da moeda do usuárioNãoNão se aplica
aprova-autoautomacticApprovalLOGICALIndica se o aprovador aprova automaticamenteNãoNão se aplica
aprova-auto-aprovautomacticApprovalApproverLOGICALIndica se o aprovador aprova automaticamente pendências do aprovadorNãoNão se aplica
cod-estabelsiteCodeCHARACTER Estabelecimento do aprovadorNãoNão se aplica
cod-lotacaoallocationCodeCHARACTER Lotação do aprovadorNãoNão se aplica
libera-verbareleaseAmountLOGICALIndica se o aprovador libera verbaNãoNão se aplica
log-usuar-configconfiguratorUserLOGICALIndice se o aprovador é configurador visualNãoNão se aplica
empresacompanyCodeCHARACTER Empresa do aprovadorNãoNão se aplica
idiomalanguageCHARACTER Idioma do aprovadorNãoNão se aplica



tt-config-visual

Entrada/Saída

Temp-table com dados de configurações visuais de aprovadores

Saída

Atributo

Nome no objeto

Tipo

Descrição

Obrigatório

Evolução

cod-usuar


CHARACTER 

Código do aprovador

Não

Não se aplica

idi-ordenacao

ordinationINTEGER

Ordenação padrão:

(1 - Mais recentes / 2 - Mais antigas / 3 - Maior valor / 4 - Menor valor / 5 - Tipo de documento / 6 - Empresa / 7 - Estabelecimento)

Não

Não se aplica

log-mostra-todas-empresasallCompaniesLOGICALIndica apresentação de pendências de todas as empresasNãoNão se aplica
log-aprova-sem-motivapproveWithoutReasonLOGICALIndica aprovação sem informar motivoNãoNão se aplica
cdn-tempo-desfundoTimeINTEGERTempo de desfazerNãoNão se aplica
idi-acao-swip-direrightSwipeActionINTEGER

Ação do swipe (Direito)

(1 - Aprovar / 2 - Rejeitar / 3 - Nenhum)


Não se aplica
idi-acao-swip-esqleftSwipeActionINTEGER

Ação do swipe (Esquerdo)

(1 - Aprovar / 2 - Rejeitar / 3 - Nenhum)

NãoNão se aplica
idi-visualiz-inicialinitialViewINTEGER

Visualização inicial

(1 - Todas as pendências / 2 - Pendências principais / 3 - Pendências alternativas / 4 - Pendências como mestre)

NãoNão se aplica
num-registro-paginacpageRecordsNumberINTEGERNúmero de registros por páginaNãoNão se aplica



ttCompany

Entrada/Saída

Temp-table com dados de empresas

Saída

Atributo

Nome no objeto

Tipo

Descrição

Obrigatório

Evolução

seqGroup


INTEGER

Sequência da empresa

Sim

Não se aplica

cCodecodeCHARACTERCódigo da empresaSimNão se aplica
cNamenameCHARACTERNome da empresaSimNão se aplica



ttEstablishments

Entrada/Saída

Temp-table com dados de estabelecimentos

Saída

Atributo

Nome no objeto

Tipo

Descrição

Obrigatório

Evolução

cCodecodeCHARACTERCódigo do estabelecimentoSimNão se aplica
cNamenameCHARACTERNome do estabelecimentoSimNão se aplica
cCodeCompanycodeCompanyCHARACTERCódigo da empresaSimNão se aplica.



tt-document

Entrada/Saída

Temp-table com dados de documentos

Saída

Atributo

Nome no objeto

Tipo

Descrição

Obrigatório

Evolução

cod-usuar

userCode

CHARACTER 

Código do aprovador

Sim

Não se aplica

idi-interfacinterfaceINTEGERInterface (1 - Lista / 2 - Detalhe)SimNão se aplica
cod-tip-docdocumentCodeINTEGERCódigo do documentoSimNão se aplica
desc-tip-docdocumentDescriptionCHARACTER Descrição do documentoNãoNão se aplica
layout-padraodefaultLayoutLOGICALLayout padrãoNãoNão se aplica
siglashortNameCHARACTERSigla do documentoNãoNão se aplica



tt-layout

Entrada/Saída

Temp-table com campos de layout

Saída

Atributo

Nome no objeto

Tipo

Descrição

Obrigatório

Evolução

cdn-docto
INTEGERCódigo do documentoSimNão se aplica

cod-usuar


CHARACTER 

Código do aprovador

Sim

Não se aplica

idi-interfac
INTEGERInterface (1 - Lista / 2 - Detalhe)SimNão se aplica
cod-id-campoidCHARACTER Identificador do campoSimNão se aplica
idi-componcomponentTypeINTEGERTipo de componente (1 - Campo / 2 - Lista / 3 - Separador)SimNão se aplica
nom-rotu-campolabelCHARACTER Rótulo do campoNãoNão se aplica
des-campodescriptionCHARACTER Descrição do campoSimNão se aplica
log-visivelvisibleLOGICALVisibilidade do campoSimNão se aplica
cdn-tamanhosizeINTEGERTamanho do campoSimNão se aplica
cdn-ord
INTEGEROrdem do campoSimNão se aplica
cod-entid-pai
CHARACTER Identificação da entidade paiNãoNão se aplica
Índice: visivel-ordem, log-visivel, cdn-ord