Tipo de retorno requerido de um WebService no G5

  • gabriel.rissatti
    Participante
    # 2 anos, 3 meses atrás

    Bom dia pessoal,
    estou preparando o backend no G5 para que o BPM consuma esses serviços, porém mesmo lendo os tópicos abaixo :

    Criando um DataSource G5/G6 no BPM

    Utilizando DataSource G5/G6 no BPM

    Ainda fiquei com uma dúvida.Desenvolvi um WebService, conforme regra abaixo para retornar a listagem de dependentes elegíveis para inclusão em um plano de saúde ou exclusão :

    /*
    Consultor:Gabriel Rissatti
    Data de criação:02/10/2018
    */
    DEFINIR ALFA ASQL;
    DEFINIR ALFA CR036DEP;
    DEFINIR NUMERO NNUMEMP;
    DEFINIR NUMERO NTIPCOL;
    DEFINIR NUMERO NNUMCAD;
    DEFINIR NUMERO NCODDEP;
    DEFINIR ALFA ANOMDEP;
    DEFINIR DATA DDATZER;
    DEFINIR ALFA ATIPO;
    NNUMEMP =getDepOdontoDisp.enumemp;
    NTIPCOL =getDepOdontoDisp.etipcol;
    NNUMCAD =getDepOdontoDisp.enumcad;
    ATIPO =getDepOdontoDisp.etipo;
    MONTADATA(31,12,1900,DDATZER);
    SE(ATIPO=”I”)
    {
    @se for inclusão no plano faremos um not exists, agora se for exclusão faremos um exists@
    ASQL =”SELECT CODDEP, NOMDEP \
    FROM R036DEP P \
    WHERE NUMEMP = :NUMEMP \
    AND TIPCOL = :TIPCOL \
    AND NUMCAD = :NUMCAD \
    AND DATOBI = :DATZER \
    AND NOT EXISTS( \
    SELECT ‘X’ \
    FROM R164DEP A \
    WHERE A.NUMEMP = P.NUMEMP \
    AND A.TIPCOL =P.TIPCOL \
    AND A.NUMCAD =P.NUMCAD \
    AND A.CODDEP =P.CODDEP \
    AND A.MESEXC = :DATZER \
    AND A.CODOEM = 2 )”;
    }
    SENAO
    {
    ASQL =”SELECT CODDEP, NOMDEP \
    FROM R036DEP P \
    WHERE NUMEMP = :NUMEMP \
    AND TIPCOL = :TIPCOL \
    AND NUMCAD = :NUMCAD \
    AND DATOBI = :DATZER \
    AND EXISTS( \
    SELECT ‘X’ \
    FROM R164DEP A \
    WHERE A.NUMEMP = P.NUMEMP \
    AND A.TIPCOL =P.TIPCOL \
    AND A.NUMCAD =P.NUMCAD \
    AND A.CODDEP =P.CODDEP \
    AND A.MESEXC = :DATZER \
    AND A.CODOEM = 2 )”;
    }
    SQL_CRIAR(CR036DEP);
    SQL_DEFINIRCOMANDO(CR036DEP,ASQL);
    SQL_USARABRANGENCIA(CR036DEP,0);
    SQL_USARSQLSENIOR2(CR036DEP,0);
    SQL_DEFINIRINTEIRO(CR036DEP,”NUMEMP”,NNUMEMP);
    SQL_DEFINIRINTEIRO(CR036DEP,”TIPCOL”,NTIPCOL);
    SQL_DEFINIRINTEIRO(CR036DEP,”NUMCAD”,NNUMCAD);
    SQL_DEFINIRDATA(CR036DEP,”DATZER”,DDATZER);
    SQL_ABRIRCURSOR(CR036DEP);
    ENQUANTO(SQL_EOF(CR036DEP)=0)
    {
    SQL_RETORNARINTEIRO(CR036DEP,”CODDEP”,NCODDEP);
    SQL_RETORNARALFA(CR036DEP,”NOMDEP”,ANOMDEP);
    getDepOdontoDisp.Dependentes.CRIARLINHA();
    getDepOdontoDisp.Dependentes.coddep = NCODDEP;
    getDepOdontoDisp.Dependentes.nomdep = ANOMDEP;

    SQL_PROXIMO(CR036DEP);
    }
    SQL_FECHARCURSOR(CR036DEP);
    SQL_DESTRUIR(CR036DEP);

    Notem que o trecho em negrito é onde eu alimento uma tabela de retorno.. Agora minha dúvida:
    Para que o BPM possa consumir este web service e carregar um data source no futuro eu posso continuar retornando essa tabela ou preciso retornar uma string com a notação Json, por exemplo: [{“COLUNA”:”VALOR”,”COLUNA2″:”VALOR2″},{“COLUNA”:”VALOR”,”COLUNA2″:”VALOR2″}].

    Desde já, muito obrigado.

    # 2 anos, 3 meses atrás

    Bom dia Gabriel,

    Na verdade o ideal é usar uma tabela, como você fez.
    Sua URL da fonte de dados deve ser neste formato:
    https://SERVER:PORTA/SXI/G5Rest?server=SERVER:PORTA&module=rubi&service=&port=&DATASOURCEATTRNAME=dependentes

    Ex: https://dev.senior.com.br:8181/SXI/G5Rest?server=https://dev.senior.com.br:8181&module=rubi&service=com.senior.wf.utils&port=retornaColaborador&DATASOURCEATTRNAME=colaborador

    Na tela de cadastro da fonte de dados, você vai informar \\\\\\\”Objete raíz\\\\\\\” = \\\\\\\”dependentes\\\\\\\”.
    E cadastrar os campo \\\\\\\”coddep\\\\\\\” e \\\\\\\”nomdep\\\\\\\”.

    Não se esquece que o Glassfish deve estar liberado para o SeniorX e de instalar a API, conforme primeira parte da documentação https://dev.senior.com.br/documentacao/integracao-com-g5/

    gabriel.rissatti
    Participante
    # 2 anos, 3 meses atrás

    Bom dia, muito obrigado!

    gabriel.rissatti
    Participante
    # 2 anos, 3 meses atrás

    Bom dia, após realizar todas as etapas, obtive o seguinte retorno:

    “IP” demorou muito para responder.

    Glassfish e rabbit estão online e segui todos os passos dos tutoriais, saberiam me dizer o que seria?

    Muito obrigado

    gabriel.rissatti
    Participante
    # 2 anos, 2 meses atrás

    Já resolvido

Visualizando 5 posts - 1 até 5 (de 5 do total)

You must be logged in to reply to this topic.