[RESOLVIDO] Conexão com AppServer

Discussão em 'EMS , HCM e Totvs 11' iniciado por erickles, Outubro 27, 2015.

Status do Tópico:
Não esta aberto para novas mensagens.
  1. erickles

    erickles Membro Participativo

    Boa tarde pessoal,

    No momento, eu costumo realizar conexão com AppServer da seguinte maneira, usando a função abaixo:

    Código:
    /* AppServer Functions */
    FUNCTION fConectaAppServer RETURNS LOGICAL (INPUT iSeqAppService AS INTEGER):
    
        DEFINE VARIABLE nrAppSrv  AS INTEGER    NO-UNDO.
        DEFINE VARIABLE counter   AS INTEGER    NO-UNDO.
        DEFINE VARIABLE lAppSrv   AS LOGICAL     NO-UNDO.
        DEFINE VARIABLE cParamApp AS CHARACTER   NO-UNDO.
       
        /* Localiza PF de Connecxao do AppServer */
       
        FIND es-param-aprov-eletro WHERE es-param-aprov-eletro.sequencia = iSeqAppService NO-LOCK NO-ERROR.
    
        IF NOT AVAILABLE es-param-aprov THEN
            RETURN NO.
    
        ASSIGN cParamApp = '-AppService ' + es-param-aprov-eletro.appService + ' '
                            + '-H ' + es-param-aprov-eletro.host + ' '
                            + '-S ' + es-param-aprov-eletro.service + ' '
                            + '-DirectConnect'.
        MESSAGE cParamApp
                VIEW-AS ALERT-BOX INFO BUTTONS OK.
       
        /*
        FIND FIRST mgcad.servid_rpc WHERE mgcad.servid_rpc.cod_servid_rpc = "CRIPTO" NO-LOCK NO-ERROR.
        IF NOT AVAILABLE mgcad.servid_rpc THEN
            RETURN NO.
    
        ASSIGN cParamApp = mgcad.servid_rpc.des_carg_rpc + ' -DirectConnect'.
    
        MESSAGE cParamApp
                VIEW-AS ALERT-BOX INFO BUTTONS OK.
        */
       
        CREATE SERVER hAppSrv.
        DO WHILE NOT lAppSrv:
            ASSIGN lAppSrv = hAppSrv:CONNECT(cParamApp ,"","") NO-ERROR.
            IF NOT lAppSrv THEN DO:
                nrAppSrv = nrAppSrv + 1.
                IF nrAppSrv = 2 THEN
                    LEAVE.           
            END.
        END.
    
        IF VALID-HANDLE(hAppSrv) THEN DO:
           
            IF NOT hAppSrv:CONNECTED() THEN DO:
                IF ERROR-STATUS:ERROR OR ERROR-STATUS:NUM-MESSAGES > 0 THEN DO:
                    DO counter = 1 TO ERROR-STATUS:NUM-MESSAGES:
                       
                        /*
                        CREATE RowErrors.
                        ASSIGN RowErrors.ErrorSequence    = counter
                               RowErrors.ErrorNumber      = 17006
                               RowErrors.ErrorDescription = 'Falha ConexÆo AppServer "' + es-param-aprov-eletro.descricao + '" - ' + ERROR-STATUS:GET-MESSAGE(counter)
                               RowErrors.ErrorParameters  = ''
                               RowErrors.ErrorType        = 'Custom'
                               RowErrors.ErrorHelp        = ERROR-STATUS:GET-MESSAGE(counter)
                               RowErrors.ErrorSubType     = 'Error'.
                        */
                    END.
                END.
            END.
       
            /* MVR - Efetua Autenticacao no APPServer */
            IF VALID-HANDLE(hAppSrv) AND hAppSrv:CONNECTED() THEN DO:
               
                RUN esp/esapi910za.p (INPUT hAppSrv,            /* Hnd AppServer */
                                      INPUT conteudo-cookie,    /* Cookie */
                                      INPUT "usuario",              /* Usuario */
                                      INPUT "dominio",          /* Dominio */
                                      OUTPUT TABLE tt-erros).   /* Erros */
               
                /* Trata Retorno de Erro de Autenticacao */
                IF RETURN-VALUE = "NOK" OR CAN-FIND(FIRST tt-erros) THEN DO:
                   
                    MESSAGE tt-erros.cod-erro   SKIP
                            tt-erros.desc-erro
                            VIEW-AS ALERT-BOX INFO BUTTONS OK.
    
    
                    /*
                    FOR EACH tt-erros:
                        CREATE RowErrors.
                        ASSIGN RowErrors.ErrorSequence    = counter
                               RowErrors.ErrorNumber      = tt-erros.cod-erro
                               RowErrors.ErrorDescription = tt-erros.desc-erro
                               RowErrors.ErrorParameters  = ''
                               RowErrors.ErrorType        = 'Custom'
                               RowErrors.ErrorHelp        = tt-erros.desc-erro
                               RowErrors.ErrorSubType     = 'Error'.
                    END.
                    */
                END.
            END.
           
            RETURN hAppSrv:CONNECTED().
    
        END.
    
        RETURN FALSE.
    
    END FUNCTION.
    Vejam que eu uso parâmetros de conexão oriundos de uma tabela especifica, porem, terei que usar parâmetros do próprio Datasul, do programa BTB013AA. Tentei utilizar a linha de conexão da maneira que a própria TOTVS aconselha a usarmos e meu teste não funciona. Engraçado que, no programa BTB013AA, clicando no botão de teste, funciona ok.

    Alguém saberia me dizer como realizar tal conexão? Da mesma forma que é feito no teste do BTB013AA?
Status do Tópico:
Não esta aberto para novas mensagens.

Compartilhe esta Página