- 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;
- DELETE: Deleta Informações de Uma Amostra (Novo: em expedição):
- Endpoint: processinspectiontestresultsapi/api/qip/v1/result
- Objetivo: permitir deletar uma amostra da inspeção de resultados;
- QueryParam:
- RecnoQPR: RECNO da amostra correspondente para exclusão na tabela QPR;
Mapa de Campos Padrões: Descrição | Código API | Referência Protheus | Tipo | Opções |
---|
RECNO Inspeção | recnoInspection | QPK.R_E_C_N_O_ | N |
| RECNO Ensaio | recnoTest | QP7.R_E_C_N_O_ ou QP8.R_E_C_N_O_ | N |
| Data da Amostra | measurementDate | QPR_DTMEDI | D |
| Hora da Amostra | measurementTime | QPR_HRMEDI | H |
| Código do Ensaiador | rehearserID | QPR_ENSR | C |
| Ensaiador | rehearser | QAA_NOME | C |
| Tipo do Ensaio | testType | QP7 = Tabela de Ensaios Mensuráveis Produtos QP8 = Tabela de Ensaios Textos dos Produtos | C | N = Numérico T = Texto | Array de Medições | measurements | String com array de medições: QPS_MEDICA | C |
| Status da Amostra | textStatus | QPR_RESULT | C | A = Aprovado R = Reprovado | Justificativa Reprovação | textDetail | QPQ_MEDICA | C |
| Usuário Protheus | protheusLogin | QAA_LOGIN | C |
| RECNO Amostra | recno | QPR.R_E_C_N_O_ | N |
|
|
|
|
Card |
---|
id | AppServer.INI |
---|
label | AppServer.INI |
---|
title | AppServer.INI |
---|
| Segue abaixo demonstração de código para configuração de servidor RESTFul no AppServer.ini do servidor de aplicação do ERP TOTVS Protheus: Nota: ajustar "ENVIRONMENT" para o nome de seu ambiente. Bloco de código |
---|
language | text |
---|
title | Amostra 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 |
---|
id | GET Postman |
---|
label | GET Postman |
---|
title | GET Postman |
---|
| Conheça melhor os EndPoints testando-os via Postman. Segue abaixo demonstração da execução de um método GET: 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"; Image Added Bloco de código |
---|
language | text |
---|
title | Exemplo de resposta |
---|
collapse | true |
---|
| {
"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 |
---|
id | POST Postman |
---|
label | POST Postman |
---|
title | POST Postman |
---|
| Conheça melhor os EndPoints testando-os via Postman. Segue abaixo demonstração da execução de um método POST: 1. Crie uma nova aba, selecione a operação 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; Image Added 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")
Image Added
Bloco de código |
---|
language | text |
---|
title | Exemplo de conteúdo para Body |
---|
collapse | true |
---|
| {
"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 |
---|
language | text |
---|
title | Exemplo de resposta |
---|
collapse | true |
---|
| {
"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 |
---|
id | Código: GET REST Client em ADVPL |
---|
label | Código: GET REST Client em ADVPL |
---|
title | Código: GET REST Client em ADVPL |
---|
| Você pode desenvolver uma customização usando a classe FWRest, documentada em: https://tdn.totvs.com/display/public/framework/FWRest Segue abaixo exemplo de código ADVPL com GET Rest Client para API de Inspeções de Processos: Bloco de código |
---|
language | text |
---|
title | Código Exemplo - ADVPL FWRest GET |
---|
| #INCLUDE "TOTVS.CH"
User Function tstMAIN()
RPCSetType(3)
lRet := RpcSetEnv("99", "01")
U_tstAPIGET()
RpcClearEnv()
Return
User Function tstAPIGET()
Local aHeaderWS as array
Local cLogin as string
Local cPassword as string
Local cPathParams as string
Local oRestClient as object
//Local oResult as object
cLogin := "ADMIN"
cPassword := "1234"
aHeaderWS := {}
AAdd(aHeaderWS, {"Content-Type: application/json"})
AAdd(aHeaderWS, "Authorization: Basic " + Encode64(cLogin+":"+cPassword))
oRestClient := FWRest():New("http://localhost:5050/rest")
cPathParams := ""
cPathParams += "RecnoQPK=134"
cPathParams += "&Order=recno"
cPathParams += "&Page=1"
cPathParams += "&PageSize=9"
oRestClient:SetPath("/processinspectiontestresults/api/qip/v1/history/")
oRestClient:SetGetParams(cPathParams)
If oRestClient:Get(aHeaderWS)
ConOut(oRestClient:GetResult())
//oResult := JsonObject():New()
//oResult:fromJson(oRestClient:GetResult())
//oResult['items'] //Relação de Resultados
Else
ConOut(oRestClient:GetLastError())
EndIf
Return
|
|
Card |
---|
id | Código: POST REST Client em ADVPL |
---|
label | Código: POST REST Client em ADVPL |
---|
title | Código: POST REST Client em ADVPL |
---|
| Você pode desenvolver uma customização usando a classe FWRest, documentada em: https://tdn.totvs.com/display/public/framework/FWRest Segue abaixo exemplo de código ADVPL com POST Rest Client para API de Resultados Inspeções de Processos: Bloco de código |
---|
language | text |
---|
title | Código Exemplo - ADVPL FWRest POST |
---|
| #INCLUDE "TOTVS.CH"
User Function tstMAIN()
RPCSetType(3)
lRet := RpcSetEnv("99", "01")
U_tstAPIPOST()
RpcClearEnv()
Return
User Function tstAPIPOST()
Local aHeaderWS as array
Local cBody as string
Local cLogin as string
Local cPassword as string
Local oBody as object
Local oNumeric as object
Local oRestClient as object
Local oText as object
cLogin := "ADMIN"
cPassword := "1234"
aHeaderWS := {}
AAdd(aHeaderWS, {"Content-Type: application/json"})
AAdd(aHeaderWS, "Authorization: Basic " + Encode64(cLogin+":"+cPassword))
oBody := JsonObject():New()
oBody['items'] := {}
oNumeric := JsonObject():New()
oNumeric["recnoInspection"] := 134
oNumeric["recnoTest"] := 165
oNumeric["measurementDate"] := "2022-08-09"
oNumeric["measurementTime"] := "11:31"
oNumeric["rehearserID"] := "001"
oNumeric["rehearser"] := "NOME DO ENSAIADOR"
oNumeric["testType"] := "N"
oNumeric["measurements"] := {}
aAdd(oNumeric["measurements"], " 19.00")
oNumeric["textStatus"] := "A"
oNumeric["textDetail"] := nil
oNumeric["protheusLogin"] := "ADMINISTRADOR"
oNumeric["recno"] := 335 //Para editar um resultado
//oNumeric["recno"] := 0 //Para incluir um novo resultado
aAdd(oBody['items'], oNumeric)
oText := JsonObject():New()
oText["recnoInspection"] := 134
oText["recnoTest"] := 14
oText["measurementDate"] := "2022-08-09"
oText["measurementTime"] := "11:31"
oText["rehearserID"] := "001"
oText["rehearser"] := "NOME DO ENSAIADOR"
oText["testType"] := "T"
oText["measurements"] := nil
oText["textStatus"] := "A"
oText["textDetail"] := "BOA"
oText["protheusLogin"] := "ADMINISTRADOR"
oText["recno"] := 336
//oText["recno"] := 0 //Para incluir um novo resultado
aAdd(oBody['items'], oText)
cBody := oBody:toJson()
oRestClient := FWRest():New("http://localhost:5050/rest")
oRestClient:SetPath("/processinspectiontestresults/api/qip/v1/save")
oRestClient:SetPostParams(cBody)
If oRestClient:Post(aHeaderWS)
Conout(oRestClient:GetResult())
Else
Conout(oRestClient:GetLastError())
EndIf
Return
|
|
|
|
|