Árvore de páginas

Versões comparadas

Chave

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

...

Descrição:

QIPIntAPI - Eventos de Integração do SIGAQIP com as APIs do APP Minha Produção

Versões:

Microsiga Protheus 12

Idioma:

Português (Brasil)

Sistemas Operacionais Suportados:

Todos

Compatível com as Bases de Dados:

Todos

Parâmetro:

ParamIXB[1] - Objeto Json com dados correspondentes ao Evento (ParamIXB[4]), por exemplo:

  1. Evento "laboratoriosRelacionadosAoUsuario":
    1. oDados['loginUsuario'] -> Login do usuário logado


ParamIXB[2] - Endpoint de execução do ponto de entrada;
ParamIXB[3] - Classe da API relacionada;
ParamIXB[4] - Evento, exemplo:

  1. "laboratoriosRelacionadosAoUsuario" - Filtra os dados do aplicativo relacionados aos laboratórios retornados no array;

Retorno:

xReturn, varia de acordo com o Evento (ParamIXB[4]), por exemplo:

  1. Evento "laboratoriosRelacionadosAoUsuario":
    1. aLabsFil - Array com relação de laboratórios que o usuário faz parte;
Eventos de chamada de Ponto de Entrada:

Varia de acordo com o Evento (ParamIXB[4]):

  1. Evento "laboratoriosRelacionadosAoUsuario", endpoints:
    1. processinspectiontest/api/qip/v1/list
    2. processinspectiontest/api/qip/v1/test
    3. processinspections/api/qip/v1/pendinglist
    4. processinspections/api/qip/v1/search
    5. processinspections/api/qip/v1/inspection
Programa Fonte:EnsaiosInspecaoDeProcessosAPI.prw
Informações
titleIMPORTANTE
  • A partir de das versões do aplicativo 4.0.8 será realizado cache da consulta de Laboratórios da tela inicial, sendo que o resultado da consulta nesta tela é utilizado como cache para as demais, com os devidos tratamentos de laboratórios relacionados à cada inspeção;
  • O uso recorrente da função "FWGetSX5()" pode ocasionar lentidão. Recomenda-se o uso de cache estático após primeiro uso.
Bloco de código
languagedelphi
themeMidnight
firstline1
titleExemplo
linenumberstrue
#INCLUDE "TOTVS.CH" #DEFINE X5_CHAVE      3

User Function QIPINTAPI()
    Local oDadosaLabsFil   := {}
	Local aSX5       := Nil
    Local cEndPointcClasseAPI  := Nil
    Local cClasseAPIcEndPoint  := Nil
    Local cEvento    := Nil
    Local oDados aLabsFil    := {}Nil
     
    If ParamIXB != Nil
        oDados     := ParamIXB[1]
        cEndPoint  := ParamIXB[2]
        cClasseAPI := ParamIXB[3]
        cEvento    := ParamIXB[4]
    EndIf
 
    If  cEvento == "laboratoriosRelacionadosAoUsuario" .AND. !Empty(oDados['loginUsuario']) .AND. oDados['loginUsuario'] == "USUARIO01"
        aAdd(aLabsFil, "LABQUI")
	ElseIf cEvento == "laboratoriosRelacionadosAoUsuario"
        aSX5 := FWGetSX5( "Q2" )
		aEval(aSX5, {|aItem| aAdd(aLabsFil, aItem[X5_CHAVE]) })
    EndIf
 
Return aLabsFil