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

User Function QIPINTAPI()

    Local oReturn    := Nil
    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" 
        oReturn := {}
        If !Empty(oDados['loginUsuario']) .AND. oDados['loginUsuario'] == "USUARIO01"
            aAdd(oReturn, "LABQUI")
        Else
            aSX5 := FWGetSX5( "Q2" )
            aEval(aSX5, {|aItem| aAdd(oReturn, aItem[X5_CHAVE]) })
        EndIf

    ElseIf cEvento == "bloqueiaDataInspecao"
        oReturn := .T.

    ElseIf cEvento == "bloqueiaHoraInspecao"
        oReturn := .T.

    ElseIf cEvento == "complementoAmostra"
        //Meu complemento de amostra

    ElseIf cEvento == "complementoResultados"
        //Meu complemento de resultados

    ElseIf cEvento == "complementoLaudo"
        //Meu complemento de laudo
        
    EndIf
  
Return oReturn