Árvore de páginas

Versões comparadas

Chave

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

01. DADOS GERAIS

Produto:

Solucoes_totvs
Solucao TOTVS Manufatura

Linha de Produto:

TOTVS Protheus

Segmento:

Segmentos_totvs
SegmentoManufatura

Módulo:SIGAQIP - Inspeção de Processos
Função:

QIPA215

País:Todos
Ticket:Interno.
Issue:DMANQUALI-4018

02. SITUAÇÃO/REQUISITO

Criar uma nova interface para Inspeção de Processo, simplificada para facilitar a entrada de Medições.

03. SOLUÇÃO

Projeto em desenvolvimento.


Deck of Cards
historyfalse
idProced_Implanta
Card
idRequisitos
labelRequisitos
titleRequisitos
  1. Build, RPO e LIB atualizados para versão mais recente no release 12.1.33;
  2. Servidor REST habilitado no AppServer do ambiente;
  3. Contrato TOTVS I ou Mobile*** (revisar);
  4. Host configurado no Mingle;
  5. Versão mais recente do APP Minha Produção instalada no dispositivo;
Card
idDisponibilização de API's
labelDisponibilização de API's
titleDisponibilização de API's

O processo de integração do módulo Inspeção de Processos (SIGAQIP) do ERP TOTVS Protheus com o App Mobile Minha Produção se dá através do uso de API's REST.

A TOTVS disponibiliza o uso destas API's para clientes que desejaram realizar diretamente a integração com o processo de inspeção. 

A seguir, apresentamos um resumo detalhando as APIs e os EndPoint disponibilizados, demonstração de configuração do servidor REST Full no AppServer.INI do servidor de aplicação do Protheus, utilização de Postman com GET e POST para conhecimento dos EndPoints e implementação de exemplo de código ADVPL para Cliente REST.


Informações
titlePré-Requisitos Uso de API's
  1. Configuração do servidor REST no ambiente, seguir instruções da documentação oficial: 1. Configuração do REST do Protheus;
  2. Atualização do RPO com versão da expedição contínua igual ou superior a: DMANQUALI-4478;
  3. Utilização dos métodos GET e POST conforme especificação padrão "TOTVS - RESTFul API" e exemplos a seguir;
Deck of Cards
historyfalse
idDetalhamento_APIs
effectTypefade
Card
idLista_APIs
labelLista de API's e Endpoints Disponíveis
titleLista de API's e Endpoints Disponíveis

A seguir são listadas as API's disponibilizadas, detalhamentos de seus endpoints e mapa de campos relacionados.

Deck of Cards
historyfalse
idPrincipais_Campos
effectTypefade
Card
idAPI_1
labelInspeções de Processos por Operação
titleInspeções de Processos por Operação
  • TOTVS - RESTFul API:
  • Métodos:
    • GET: Retorna Lista Inspeções de Processos Pendentes:
      • Endpoint: processinspections/api/qip/v1/pendinglist/{Login}/{Order}/{OrderType}/{Page}/{PageSize}
      • Objetivo: permitir a consulta das inspeções de processos pendentes a nível de ordem de produção + operação;
      • PathParam:
        • Login: referência de login do usuário do configurador Protheus em QAA_LOGIN (obrigatório). Ex: ADMINISTRADOR;
        • Order: referência de campos para ordenação dos resultados. Ex: "productionOrderID,operationID,lot";
        • OrderType: referência de ordenação dos resultados, Ex 1: vazio ou "ASC" para crescente. Ex 2: "DESC" para decrescente.
        • Page: número de página atual da paginação de resultados; Ex: 1.
        • PageSize: tamanho da página considerado na paginação de resultados; Ex: 5;
      • QueryParam:
        • Fields: referência de "Código API" para os campos que devem ser retornados. Default: vazio = todos;

    • GET: Pesquisa Inspeção:
      • Endpoint: processinspectionsapi/qip/v1/search/{Login}/{Text}/{Order}/{OrderType}/{Page}/{PageSize}
      • Objetivo: permitir a pesquisa por Produto ou OP das inspeções de processos a nível de ordem de produção + operação;
      • PathParam:
        • Text: texto para pesquisa por OP ou produto;
        • Demais conforme anterior; 
      • QueryParam:
        • Fields: referência de "Código API" para os campos que devem ser retornados. Default: todos;

    • GET: Existe Usuário:
      • Endpoint: processinspectionsapiapi/qip/v1/userExist/{Login}
      • Objetivo: permitir identificar se o usuário possui cadastro no módulo inspeção de processos;
      • PathParam:
        • Login: referência de login do usuário do configurador Protheus em QAA_LOGIN (obrigatório). Ex: ADMINISTRADOR;


Mapa de Campos Padrões:

DescriçãoCódigo APIReferência ProtheusTipo
Código do ProdutoproductIDQPK_PRODUTC
Descrição do ProdutoproductB1_DESCC
Ordem de ProduçãoproductionOrderIDQPK_OPC
Código da OperaçãooperationIDQQK_OPERACC
Descrição da OperaçãooperationQQK_DESCRIC
RecursoresourceH1_DESCRIC
QuantidadelotSizeQPK_TAMLOTN
Código Unidade MedidalotUnitIDQPK_UMC
Unidade de MedidalotUnitAH_DESCPOC
LotelotQPK_LOTEC
Número de SérieserialNumberQPK_NUMSERC
Data de EmissãodateQPK_EMISSAD
Cliente e LojacustomerA1_COD + A1_LOJA + A1_NOMEC
Versão da EspecificaçãospecificationVersionQPK_REVIC
Data da ProduçãoproductionDateQPK_DTPRODD
Usuário PermitidoallowedUserReferência existente de cLogin = QAA_LOGIN → trueL
Status:
N = Não Iniciado
I = Iniciado
A = Aprovado
R = Rejeitado
U = Liberação Urgente
C = Liberação Condicional
status

Regra de Negócio Interna

C
Recno InspeçãorecnoQQK.R_E_C_N_O_N
Card
idAPI_2
labelEnsaios
titleEnsaios
  • TOTVS - RESTFul API:
  • Métodos:
    • GET: Retorna Lista de Ensaios das Inspeções de Processos:
      • Endpoint: processinspectiontestapi/qip/v1/list/{Recno}/{Order}/{OrderType}/{Page}/{PageSize}
      • Objetivo: permitir a consulta dos ensaios das inspeções de processos;
      • PathParam:
        • Recno: recno da inspeção - QPK.R_E_C_N_O_;
        • Order: referência de campos para ordenação dos resultados. Ex: "title,laboratory";
        • OrderType: referência de ordenação dos resultados, Ex 1: vazio ou "ASC" para crescente. Ex 2: "DESC" para decrescente.
        • Page: número de página atual da paginação de resultados; Ex: 1.
        • PageSize: tamanho da página considerado na paginação de resultados; Ex: 5;
      • QueryParam:
        • Fields: referência de "Código API" para os campos que devem ser retornados. Default: vazio = todos;


Mapa de Campos Padrões:

DescriçãoCódigo APIReferência ProtheusTipo
RECNO InspeçãorecnoInspectionQPK.R_E_C_N_O_N
RECNO EnsaiorecnoTestQP7.R_E_C_N_O_ ou QP8.R_E_C_N_O_N
Código do EnsaiotestIDQP7_ENSAIO ou QP8_ENSAIOC
Sequência do LaboratóriosequenceQP7_SEQLAB ou QP8_SEQLABN
Título do EnsaiotitleQP1_DESCPOC
Quantidade de MediçõesnumberOfMensurementsQP1_QTDE*N
LaboratóriolaboratoryX5_DESCRI para X5_TABELA = 'Q2'C
Especificação ResumidasummarySpecification

QP7_NOMINA QP7_LIE / QP7_LSE

Ou QP8_TEXTO

C
Código Unidade de MedidalotUnitIDQP7_UNIMEDC
Tipo de ControlecontrolTypeQP7_MINMAXC
Limite Inferior EngenharialowerDeviationQP7_LIEC
Limite Superior EngenhariaupperDeviationQP7_LSEC
Tipo do EnsaiotestTypeQP7 → N → Numérico
QP8 → T → Texto
C
Status:
A = Aprovado
R = Reprovado
P = Pendente
N = Não Obrigatório
statusRegra de Negócio InternaC
Card
idAPI_3
labelResultados das Inspeções
titleResultados das Inspeções
  • TOTVS - RESTFul API:
  • Métodos:
    • GET: Retorna Resultado(s) da Inspeção de Processos:
      • Endpoint: processinspectiontestresultsapi/api/qip/v1/result/{RecnoQPK}/{RecnosQPR}/{Order}/{Page}/{PageSize}
      • Objetivo: permitir a consulta de uma relação específica de resultados de inspeção com base no RECNO da inspeção (RecnoQPK) e em lista de RECNOS das amostras (RecnosQPR);
      • PathParam:
        • RecnoQPK: recno da inspeção - QPK.R_E_C_N_O_ (obrigatório);
        • RecnosQPR: recnos das amostras separados por ponto e virgula - QPR.R_E_C_N_O_;
        • Order: referência de campos para ordenação dos resultados. Ex: "productionOrderID,operationID";
        • OrderType: referência de ordenação dos resultados, Ex 1: vazio ou "ASC" para crescente. Ex 2: "DESC" para decrescente.
        • Page: número de página atual da paginação de resultados; Ex: 1.
        • PageSize: tamanho da página considerado na paginação de resultados; Ex: 5;
      • QueryParam:
        • Fields: referência de "Código API" para os campos que devem ser retornados. Default: vazio = todos;

    • GET: Retorna Histórico de Resultados por Ensaio:
      • Endpoint: processinspectiontestresultsapi/api/qip/v1/testhistory/{RecnoQPK}/{IDTest}/{Order}/{Page}/{PageSize}
      • Objetivo: permitir a consulta do histórico de resultados de um ensaio específico com base no RECNO de uma inspeção (RecnoQPK) e no ID de um ensaio (IDTest, QP7_ENSAIO ou QP8_ENSAIO);
      • PathParam:
        • RecnoQPK: recno da inspeção - QPK.R_E_C_N_O_ (obrigatório);
        • IDTest: código do ensaio relacionado QP7_ENSAIO ou QP8_ENSAIO (obrigatório);
        • Demais conforme anterior; 
      • QueryParam:
        • Fields: referência de "Código API" para os campos que devem ser retornados. Default: vazio = todos;

    • GET: Retorna Histórico de Resultados da Inspeção de Processos:
      • Endpoint: processinspectiontestresultsapi/api/qip/v1/history/{RecnoQPK}/{Order}/{Page}/{PageSize}
      • Objetivo: permitir a consulta do histórico de resultados completo da inspeção de processos com base no RECNO de uma inspeção (RecnoQPK);
      • PathParam:
        • RecnoQPK: recno da inspeção - QPK.R_E_C_N_O_ (obrigatório);
        • Demais conforme anterior; 
      • QueryParam:
        • Fields: referência de "Código API" para os campos que devem ser retornados. Default: vazio = todos;

    • POST: Salva Resultado(s):
      • Endpoint: processinspectiontestresultsapi/api/qip/v1/save
      • Objetivo: permitir salvar resultados de inspeção;
      • QueryParam:
        • items: array com relação de objetos json com os campos padrões a seguir:
          • recnoInspection: RECNO da inspeção QPK.R_E_C_N_O_ (Obrigatório);
          • recnoTest: RECNO do ensaio relacionado - QP7.R_E_C_N_O_ ou QP8.R_E_C_N_O_ (Obrigatório);
          • measurementDate: data da amostra (facultativo);
            • Ao não enviar o sistema considerará a data do recebimento da mensagem;
          • measurementTime: hora da amostra (facultativo);
            • Ao não enviar o sistema considerará a data do recebimento da mensagem;
          • testType: tipo do resultado de ensaio (Obrigatório):
            • QP7 → N → Numérico;
            • QP8 → T → Texto;
          • measurements: array com string de medições da amostra (Obrigatório quando testType = N);
          • textStatus: status da amostra (Obrigatório):
            • A = Aprovado;
            • R = Reprovado;
          • textDetail: justificativa de medições do tipo texto reprovadas(Obrigatório quando testType = N e textStatus = R);
          • protheusLogin: login do usuário do Protheus (Obrigatório);
          • recno: RECNO da amostra - QPR.R_E_C_N_O_ (facultativo)
            • 0 → incluirá nova amostra;
            • informado → editará uma amostra existente;

Mapa de Campos Padrões:

DescriçãoCódigo APIReferência ProtheusTipo
RECNO InspeçãorecnoInspectionQPK.R_E_C_N_O_N
RECNO EnsaiorecnoTestQP7.R_E_C_N_O_ ou QP8.R_E_C_N_O_N
Data da AmostrameasurementDateQPR_DTMEDID
Hora da AmostrameasurementTimeQPR_HRMEDIH
Código do EnsaiadorrehearserIDQPR_ENSRC
EnsaiadorrehearserQAA_NOMEC
Tipo do EnsaiotestTypeQP7 → N → Numérico
QP8 → T → Texto
C
Array de MediçõesmeasurementsString com array de medições: QPS_MEDICAC
Status da Amostra:
A = Aprovado
R = Reprovado
textStatus

QPR_RESULT

C
Justificativa ReprovaçãotextDetailQPQ_MEDICAC
Usuário ProtheusprotheusLoginQAA_LOGINC
RECNO AmostrarecnoQPR.R_E_C_N_O_N
Card
idAppServer.INI
labelAppServer.INI
titleAppServer.INI

Segue abaixo demonstração de código para configuração de servidor REST Full no AppServer.ini do servidor de aplicação do ERP TOTVS Protheus:

Bloco de código
languagetext
titleAmostra de Configuração REST no AppServer.INI
;CONFIGURACAO REST
[ONSTART]
JOBS=HTTPJOB1
REFRESHRATE=120

[HTTPJOB1]
MAIN=HTTP_START
ENVIRONMENT=V12_1_33_compila

[HTTPV11]
Enable=1
Sockets=HTTPREST1

[HTTPREST1]
Port=5050
IPsBind=
URIs=HTTPURI1
Security=1

[HTTPURI1]
URL=/rest
PrepareIn=ALL
Instances=1,1,1,1
CORSEnable=1
AllowOrigin=*
; FIM CONFIGURACAO REST
Card
idGET Postman
labelGET Postman
titleGET Postman

Segue abaixo demonstração da execução de um método GET via Postman:

1. Crie uma nova aba, selecione a operação GET e o endpoint desejado, por exemplo: http://localhost:5050/rest/processinspectiontestresults/api/qip/v1/history;

2. Configure o modo de autorização na aba "Authorization" com o usuário e senha de acesso ao ERP TOTVS Protheus;

3. Informe os parâmetros desejados na aba "Params";

4. Envie a requisição clicando em "SEND";

Bloco de código
languagetext
titleExemplo de resposta
collapsetrue
{
    "items": [
        {
            "recnoInspection": 134,
            "recnoTest": 166,
            "measurementDate": "2022-08-09",
            "measurementTime": "11:31",
            "rehearserID": "001",
             "rehearser": "NOME DO ENSAIADOR", 
            "testType": "N",
            "measurements": [
                "      10"
            ],
            "textStatus": "A",
            "textDetail": null,
            "protheusLogin": "ADMINISTRADOR",
            "recno": 334
        },
        {
            "recnoInspection": 134,
            "recnoTest": 165,
            "measurementDate": "2022-08-09",
            "measurementTime": "11:31",
            "rehearserID": "001",
             "rehearser": "NOME DO ENSAIADOR", 
            "testType": "N",
            "measurements": [
                "   19.00"
            ],
            "textStatus": "A",
            "textDetail": null,
            "protheusLogin": "ADMINISTRADOR",
            "recno": 335
        },
        {
            "recnoInspection": 134,
            "recnoTest": 14,
            "measurementDate": "2022-08-09",
            "measurementTime": "11:31",
            "rehearserID": "001",
            "rehearser": "NOME DO ENSAIADOR",
            "testType": "T",
            "measurements": [],
            "textStatus": "A",
            "textDetail": "BOA",
            "protheusLogin": "ADMINISTRADOR",
            "recno": 336
        }
    ],
    "hasNext": false,
    "code": 200
}
Card
idPOST Postman
labelPOST Postman
titlePOST Postman

Segue abaixo demonstração da execução de um método POST via Postman:

1. Crie uma nova aba, selecione a operação GET POST e o endpoint desejado, por exemplo: http://localhost:5050/rest/processinspectiontestresults/api/qip/v1/save;

2. Configure o modo de autorização na aba "Authorization" com o usuário e senha de acesso ao ERP TOTVS Protheus;

3. Informe os itens para inclusão na aba "Body" conforme os dados de recno, rehearser e testType de sua base:
(Em caso de dúvidas, consulte acima "Lista de API's e Endpoints Disponíveis + Resultados das Inspeções")


Bloco de código
languagetext
titleExemplo de conteúdo para Body
collapsetrue
{
    "items": [
        {
            "recnoInspection": 134,
            "recnoTest": 165,
            "measurementDate": "2022-08-09",
            "measurementTime": "11:31",
            "rehearserID": "001",
            "rehearser": "NOME DO ENSAIADOR",
            "testType": "N",
            "measurements": [
                "   19.00"
            ],
            "textStatus": "A",
            "textDetail": null,
            "protheusLogin": "ADMINISTRADOR",
            "recno": 335
        },
        {
            "recnoInspection": 134,
            "recnoTest": 14,
            "measurementDate": "2022-08-09",
            "measurementTime": "11:31",
            "rehearserID": "001",
            "rehearser": "NOME DO ENSAIADOR",
            "testType": "T",
            "measurements": [],
            "textStatus": "A",
            "textDetail": "BOA",
            "protheusLogin": "ADMINISTRADOR",
            "recno": 336
        }]
}
Bloco de código
languagetext
titleExemplo de resposta
collapsetrue
{
    "items": [
        {
            "recnoInspection": 134,
            "recnoTest": 14,
            "measurementDate": "2022-08-09",
            "measurementTime": "11:31",
            "rehearserID": "001",
            "rehearser": "NOME DO ENSAIADOR",
            "testType": "T",
            "measurements": [],
            "textStatus": "A",
            "textDetail": "BOA",
            "protheusLogin": "ADMINISTRADOR",
            "recno": 336
        },
        {
            "recnoInspection": 134,
            "recnoTest": 165,
            "measurementDate": "2022-08-09",
            "measurementTime": "11:31",
            "rehearserID": "001",
            "rehearser": "NOME DO ENSAIADOR",
            "testType": "N",
            "measurements": [
                "   19.00"
            ],
            "textStatus": "A",
            "textDetail": null,
            "protheusLogin": "ADMINISTRADOR",
            "recno": 335
        }
    ],
    "hasNext": false,
    "code": 200
}
Card
idCódigo: GET REST Client em ADVPL
labelCódigo: GET REST Client em ADVPL
titleCódigo: GET REST Client em ADVPL
  1. Build, RPO e LIB atualizados para versão mais recente no release 12.1.33;
  2. Servidor REST habilitado no AppServer do ambiente;
  3. Contrato TOTVS I ou Mobile*** (revisar);
  4. Host configurado no Mingle;
  5. Versão mais recente do APP Minha Produção instalada no dispositivo;
Card
idCódigo: POST REST Client em ADVPL
labelCódigo: POST REST Client em ADVPL
titleCódigo: POST REST Client em ADVPL
  1. Build, RPO e LIB atualizados para versão mais recente no release 12.1.33;
  2. Servidor REST habilitado no AppServer do ambiente;
  3. Contrato TOTVS I ou Mobile*** (revisar);
  4. Host configurado no Mingle;
  5. Versão mais recente do APP Minha Produção instalada no dispositivo;

04. DEMAIS INFORMAÇÕES

  • Não se aplica.

05. ASSUNTOS RELACIONADOS