Árvore de páginas

Versões comparadas

Chave

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

...

Descrição:

QIEIntAPI - Eventos de Integração do SIGAQIE 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" - Filtra os dados do aplicativo relacionados aos laboratórios retornados no array:
    1. oDados['loginUsuario'] -> Login do usuário logado

  2. Evento "complementoAmostra" - Gravação complementar após inclusão da amostra de resultados:
    1. oDados['QPR_' + ...]  -> Campos da QPR relacionados a gravação

  3. Evento "complementoResultados" - Gravação complementar após inclusão de todas as amostras de resultados;:
    1. oDados['items']  -> Array de amostras destinadas pelo aplicativo para inclusão conforme documentação POST Postman processinspectiontestresults/api/qip/v1/save;

  4. Evento "complementoLaudo" - Gravação complementar após a inclusão de laudos:
    1. oDados['login']  -> Login do usuário logado
    2. oDados['laudo']  -> geral / laboratorio / operacao
    3. oDados['insert']  -> Indicador de operação de inclusão
    4. oDados['update']  -> Indicador de operação de atualização

    5. Laudo Geral / Laudo de Laboratório:
      1. oDados['recnoQPLrecnoQEL']  -> RECNO do registro relacionado na tabela QPL - Laudo da Ordem de Produção
      Laudo Operação:
      1. oDados['recnoQPM']  -> RECNO do registro relacionado na tabela QPM - Laudo da Operação
  5. Evento "bloqueioDataInspecao" - Bloqueia o campo de data de inspeção da amostra de resultados:
    1. oDados['login']  -> Login do usuário logado
    2. oDados['recnoQPKrecnoQEK']  -> RECNO do registro relacionado na tabela QPK QEK - Insp.Processos Entradas - Avaliacoes
    3. oDados['recnoQPRrecnoQER']  -> RECNO do registro relacionado na tabela QPR QER - Medições - Dados Genericos
    4. oDados['operationID']  -> Código da operação relacionada
    5. oDados['insert']  -> Indicador de operação de inclusão
    6. oDados['update']  -> Indicador de operação de atualização

  6. Evento "bloqueioHoraInspecao" - Bloqueia o campo de hora de inspeção da amostra de resultados:
    1. oDados['login']  -> Login do usuário logado
    2. oDados['recnoQPKrecnoQEK']  -> RECNO do registro relacionado na tabela QPK QEK - Insp.Processos Entradas - Avaliacoes
    3. oDados['recnoQPRrecnoQER']  -> RECNO do registro relacionado na tabela QPR QER - Medições - Dados Genericos
    4. oDados['operationID']  -> Código da operação relacionada
    5. oDados['insert']  -> Indicador de operação de inclusão
    6. oDados['update']  -> Indicador de operação de atualização
    Evento "qpuInclusaoSemQIPQNC" - Permite inclusão de Não Conformidades na tabela QPU relacionadas à inspeção sem integração ao módulo QNC, quando MV_QIPQNC desabilitado.
    1. oDados['code']  -> Status da mensagem de retorno;
    2. oDados['result']  -> .T. se MV_QIPQNC habilitado, .F. se MV_QIPQNC desabilitado.
  7. Evento "qpuCamposAdicionais" - Permite indicar campos adicionais a serem exibidos no APP na relação de NCs.
    1. oDados → Nil


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;
  2. "complementoAmostra" - Gravação complementar após inclusão da amostra de resultados; 
  3. "complementoResultados" - Gravação complementar após inclusão de todas as amostras de resultados;
  4. "complementoLaudo" - Gravação complementar após a inclusão de laudos;
  5. "bloqueiaDataInspecao" - Bloqueia o campo de data de inspeção da amostra de resultados;
  6. "bloqueiaHoraInspecao" - Bloqueia o campo de hora de inspeção da amostra de resultados;


7. Evento "

qpuInclusaoSemQIPQNC

validaResultadoUnico" - Valida a confirmação de resultado único:

    • oDados['login']  -> Login do usuário logado
    • oDados['recnoQEK']  -> RECNO do registro relacionado na tabela QEK - Insp.Entradas- Avaliacoes
    • oDados['recnoQER']  -> RECNO do registro relacionado na tabela QER - Medições - Dados Genericos
    • oDados['operationID']  -> Código da operação relacionada
    • oDados['insert']  -> Indicador de operação de inclusão
    • oDados['update']  -> Indicador de operação de atualização
    • oDados['form']  -> String JSON com dados de formulário da tela do APP
      oDados['form']['processInspectionTest'] -> Informações do ensaio relacionado 
      oDados['form']['processInspectionTestResult'] -> Informações da amostra de resultados relacionada; 


8. Evento "validaResultadosMultiplos" - Valida a confirmação de resultados de múltiplos ensaios simultâneos:

    • oDados['login']  -> Login do usuário logado
    • oDados['recnoQEK']  -> RECNO do registro relacionado na tabela QEK - Insp.Entradas- Avaliacoes
    • oDados['operationID']  -> Código da operação relacionada
    • oDados['form']  -> String JSON com dados de formulário da tela do APP
      oDados['form']['processInspectionTests'] -> Informações dos ensaios relacionados
      oDados['form']['processInspectionTestResults'] -> Informações das amostras de resultados relacionadas; 
      oDados['form']['postItems'] -> Informações dos dados preparados para envio a operação de inclusão no backend do Protheus
  1. Permite inclusão de Não Conformidades na tabela QPU relacionadas à inspeção sem integração ao módulo QNC, quando MV_QIPQNC desabilitado;"qpuCamposAdicionais" - Permite indicar campos adicionais a serem exibidos no APP na relação de NCs.

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;

  2. Evento "complementoAmostra":
    1. Nil - não usado.

  3. Evento "complementoResultados":
    1. Nil - não usado.

  4. Evento "complementoLaudo":
    1. Nil - não usado,

  5. Evento "bloqueioDataInspecao":
    1. lBloqueio - Lógico indicando se deve bloquear o campo data de inspeção da amostra;

  6. Evento "bloqueioHoraInspecao":
    1. lBloqueio - Lógico indicando se deve bloquear o campo Hora de inspeção da amostra;

  7. Evento "qpuInclusaoSemQIPQNCvalidaResultadoUnico":
    1. Objeto JsonObject com propriedades:
      1. oReturn['permite'] 
      lRetorno
      1. - Lógico indicando se
      deve incluir Não Conformidades na tabela QPU relacionadas à inspeção sem integração ao módulo QNC, quando MV_QIPQNC desabilitado.

    Evento "qpuCamposAdicionais":

      1. permite prosseguir (.T.) ou bloqueia (.F.) o processo;
      2. oReturn['mensagem'] - Mensagem que será exibida durante o bloqueio do processo;

  8. Evento "validaResultadosMultiplos":
    1. Objeto JsonObject com propriedades:
      1. oReturn['permite']  - Lógico indicando se permite prosseguir (.T.) ou bloqueia (.F.) o processo;
      2. oReturn['mensagem'] - Mensagem que será exibida durante o bloqueio do processo
  9. aCampos – Array Json com relação de campos customizados da tabela QPU para uso em telas de inclusão, edição e consulta de NCs. Propriedades:

    1. codigo (obrigatório): código do campo, por exemplo "QPU_MEUCPO".

    2. default (opcional): valor padrão atribuído ao campo na inclusão.

    3. placeHolder (opcional): texto de sugestão a ser exibido no campo.

    4. tabelasx5 (opcional): código da tabela SX5 para uso em consultas do APP.

    5. permiteInclusao (opcional): indica se o campo será exibido na tela de inclusão.

    6. permiteEdicao (opcional): indica se o campo pode ser editado nas telas de Detalhes da Ficha / Edição da Ficha.

    7. conteudoConsulta (opcional): código ADVPL executado para retorno do conteúdo em consultas de NCs, ex.: QPU→QPU_MEUCPO.

    8. tituloConsulta (obrigatório): título exibido nas telas de consulta.

    9. tituloInclusao (opcional): título exibido somente na tela de inclusão.

    10. grid (opcional): indica se o campo será exibido na grid.

    11. tamanho (interno): limite de caracteres aceito no preenchimento do APP.

    12. obrigatorio (interno): indica se o campo é de preenchimento obrigatório.

  10. Propriedades obrigatórias:

    1. "codigo" e "tituloConsulta".

    2. Em caso de campo "permiteInclusao", obrigatório preenchimento de "tituloInclusao" ou "placeHolder";
  11. Observações:

  12. Quando o campo não for encontrado na SX3, o sistema utilizará o conteúdo fornecido pelo cliente.

  13. Somente permitido para uso com campos do tipo caracter.

  14. Pode ser utilizado com campo fictício e retorno de posicionamento externo com base posicionamento atual na QPR e QPU
      1. ;
Eventos de chamada de Ponto de Entrada:

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

  1. Evento "laboratoriosRelacionadosAoUsuario", endpoints:
    1. incominginspectiontestreports/api/qie/v1/list

    2. incominginspectiontestreports/api/qie/v1/test
    3. incominginspectiontestreports/api/qie/v1/pendinglist
    4. incominginspectiontestreports/api/qie/v1/search
    5. incominginspectiontestreports/api/qie/v1/inspection

  2. Evento "complementoAmostra", endpoints:
    1. incominginspectiontestreports/api/qie/v1/save

  3. Evento "complementoResultados", endpoints:
    1. incominginspectiontestreports/api/qie/v1/save

  4. Evento "complementoLaudo", endpoints:
    1. incominginspectiontestreports/api/qie/v1/savegeneralreport
    2. incominginspectiontestreports/api/qie/v1/savelaboratoryreport
    3. incominginspectiontestreports/api/qie/v1/saveoperationreport

  5. Evento "bloqueiaDataInspecao", endpoints:
    1. incominginspectiontestreports/api/qie/v1/dateeditpermission

  6. Evento "bloqueiaHoraInspecao", endpoints:
    1. incominginspectiontestreports/api/qie/v1/timeeditpermission

  7. Evento "qpuInclusaoSemQIPQNCvalidaResultadoUnico", endpoints:
    1. nonconformancerecords
      1. incominginspectiontestresults/api/
      qip
      1. qie/v1/
      processinspectionintegrationstatus
      1. vldsingleresult

  8. Evento "qpuCamposAdicionaisvalidaResultadosMultiplos", endpoints:
    1. nonconformancerecords
      1. incominginspectiontestresults/api/
      qip
      1. qie/v1/
      qpuextrafields
    2. processinspectiontestresults/api/qip/v1/save
    3. nonconformancerecords/api/qip/v1/qipinspectionrelatednonconformance
      1. vldmultipleresult
Programa Fonte:

QualityAPIManager.prw

QIELaudosEnsaios.prw

InspecoesDeEntradasAPI.prw

ResultadosEnsaiosInspecaoDeEntradasAPI.prw

EnsaiosInspecaoDeEntradasAPI.prw

...

Bloco de código
languagedelphi
themeMidnight
firstline1
titleExemplo
linenumberstrue
#DEFINE X5_CHAVE      3  

User Function QIEINTAPI()

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

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

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

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

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

    ElseIf cEvento == "complementoLaudo"
        //Meu complemento de laudo

    ElseIf cEvento == "validaResultadoUnico"
     
    EndIf
  
Return   //Validação de amostra de resultados única

        oForm := JsonObject():New()
        oForm:fromJson(oDados["form"])

        xReturn := JsonObject():New()
        xReturn['permite']  := .T.
        xReturn['mensagem'] := "Inclusão permitida pelo evento de validação."

        //xReturn['permite']  := .F.
        //xReturn['mensagem'] := "Inclusão bloqueada pelo evento de validação validaResultadoUnico."

    ElseIf cEvento == "validaResultadosMultiplos"
        //Validação de amostras de resultados múltiplas
 
        oForm := JsonObject():New()
        oForm:fromJson(oDados["form"])
        
        xReturn := JsonObject():New()
        xReturn['permite']  := .T.
        xReturn['mensagem'] := "Inclusão permitida pelo evento de validação."

        //xReturn['permite']  := .F.
        //xReturn['mensagem'] := "Inclusão bloqueada pelo evento de validação validaResultadosMultiplos."

    EndIf    Return xReturn