Árvore de páginas

Ponto de Entrada para manipulação dos eventos de integração do SIGAQIP com o APP Minha Produção

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

IMPORTANTE

  • 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.
Exemplo
#DEFINE X5_CHAVE      3

User Function QIPINTAPI()
    Local aLabsFil   := {}
	Local aSX5       := Nil
    Local cClasseAPI := Nil
    Local cEndPoint  := Nil
    Local cEvento    := Nil
    Local oDados     := 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