1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

  2. Anuncie Aqui ! Entre em contato fdantas@4each.com.br

[RESOLVIDO] Consumo Webservice

Discussão em 'EMS , HCM e Totvs 11' iniciado por wsartorelli, Dezembro 6, 2017.

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

    wsartorelli Membro Participativo

    Estou tentando fazer o consumo de webservices da RoadCard, do Cartao Pamcard, e estou com erro, nao consigo rodar nenhuma função, abaixo o pedaço do codigo e o erro, se algum puder me auxiliar, agradeço.

    CREATE SERVER hWebService.
    hWebService:CONNECT("-WSDL 'https://preproducao.roadcard.com.br/sistemapamcard/services/WSTransacional?WSDL'
    -Port WSTransacional
    -sslAuth ssl
    -sslKeyFile C:\temp\pamcard\host2017.pfx
    -sslKeyPwd hjbg374489").

    RUN WSTransacional SET hWSTransacional ON hWebService.

    RUN EXECUTE IN hWSTransacional (INPUT lcInput, OUTPUT lcOutput).


    Erro:

    Error receiving Web Service Response: Fatal Error: csnet read operation failed (WinSock reported error=0) (11773)

    O erro ocorre quando rodo a instrução abaixo:

    RUN EXECUTE IN hWSTransacional (INPUT lcInput, OUTPUT lcOutput).
    reissobr curtiu isso.
  2. Guilherme.Moles

    Guilherme.Moles Membro Participativo

    Boa Tarde,

    Como está definido o lcOutput ?
  3. wsartorelli

    wsartorelli Membro Participativo

    Grande Guilherme, tudo bem?
    Entao o lcinput e o lcoutput estão como langchar.
    abraço.
  4. Guilherme.Moles

    Guilherme.Moles Membro Participativo

    Tudo bom Wander, e vc...?

    Então eu já tive problemas com dataset, por isso perguntei.

    Eu encontrei a solução abaixo no KB da Progress veja se ajuda...

  5. wsartorelli

    wsartorelli Membro Participativo

    Guilherme, bom dia, tudo bem?
    Eu coloquei o -soapendpoint na linha de conexao, mas o erro persiste, nao consigo rodar a procedure:
    Abaixo o erro e o fonte:
    upload_2017-12-18_9-43-38.png


    DEFINE VARIABLE hWebService AS HANDLE NO-UNDO.
    DEFINE VARIABLE hWSTransacional AS HANDLE NO-UNDO.

    DEF VAR err AS LOG NO-UNDO.

    &SCOPED-DEFINE xFormated TRUE

    /** REQUEST Group.. START**/

    DEFINE TEMP-TABLE arg0 NO-UNDO
    NAMESPACE-URI ""
    FIELD context AS CHARACTER XML-NODE-NAME "context".

    DEFINE TEMP-TABLE fieldsRequest NO-UNDO
    NAMESPACE-URI ""
    XML-NODE-NAME "fields"
    FIELD key AS CHARACTER XML-NODE-NAME "key"
    FIELD value1 AS CHARACTER XML-NODE-NAME "value"
    FIELD arg0_id AS RECID XML-NODE-TYPE "HIDDEN" .

    DEFINE DATASET executeRequest NAMESPACE-URI "http://webservice.pamcard.jee.pamcary.com.br"
    XML-NODE-NAME "execute"
    FOR arg0, fieldsRequest
    PARENT-ID-RELATION RELATION1 FOR arg0, fieldsRequest
    PARENT-ID-FIELD arg0_id.

    /** REQUEST Group.. END**/

    /** RESPOUNCE Group.. START**/

    DEFINE TEMP-TABLE returnResponce NO-UNDO
    NAMESPACE-URI ""
    XML-NODE-NAME "return"
    FIELD return1_field AS INTEGER XML-NODE-TYPE "HIDDEN" .

    DEFINE TEMP-TABLE fieldsResponce NO-UNDO
    NAMESPACE-URI ""
    XML-NODE-NAME "fields"
    FIELD key AS CHARACTER XML-NODE-NAME "key"
    FIELD value1 AS CHARACTER XML-NODE-NAME "value"
    FIELD return1_id AS RECID XML-NODE-TYPE "HIDDEN" .

    DEFINE DATASET executeResponse
    NAMESPACE-URI "http://webservice.pamcard.jee.pamcary.com.br"
    XML-NODE-NAME "executeResponse"
    FOR returnResponce, fieldsResponce
    PARENT-ID-RELATION RELATION1 FOR returnResponce, fieldsResponce
    PARENT-ID-FIELD return1_id .

    /** RESPOUNCE Group.. END**/


    CREATE SERVER hWebService.

    hWebService:CONNECT("-WSDL 'https://preproducao.roadcard.com.br/sistemapamcardwsdl/WSTransacional-wsdl.xml?WSDL'
    -SOAPEndpoint http://preproducao.roadcard.com.br/sistemapamcardwsdl").

    RUN WSTransacional SET hWSTransacional ON hWebService.

    /*** Create

    Create the necessary Temp-tables here.*/

    CREATE arg0.
    ASSIGN arg0.context = "FindCard".

    CREATE fieldsRequest.
    ASSIGN fieldsRequest.KEY = "viagem.contratante.documento.numero"
    fieldsRequest.value1 = "43461789000190".

    CREATE fieldsRequest.
    ASSIGN fieldsRequest.KEY = "viagem.cartao.numero"
    fieldsRequest.value1 = "4417819800000860".

    /****/


    /** debug**/
    DATASET executeRequest:WRITE-XML("file",SESSION:TEMP-DIRECTORY + "/executeRequest.xml":U, {&xFormated} ).

    RUN execute IN hWSTransacional(INPUT DATASET executeRequest,
    OUTPUT DATASET executeResponse).


    RUN ErrorInfo (OUTPUT err).
    /* IF NOT err THEN DO: */
    /* MESSAGE STRING(cResponse) "~n" */
    /* STRING(MTIME - li) " milisecondes." */
    /* VIEW-AS ALERT-BOX. */
    /* END. */



    /** debug**/
    DATASET executeRequest:WRITE-XML("file",SESSION:TEMP-DIRECTORY + "/executeResponse.xml":U, {&xFormated} ).

    /** Garbage collection is needed here. i.e. DELETE OBJECT hWebService.**/



    /*******************************************************************/
    PROCEDURE ErrorInfo: /*1*/
    DEFINE OUTPUT PARAMETER errorfound AS LOGICAL INITIAL FALSE.
    DEFINE VARIABLE i AS INTEGER NO-UNDO.
    DEFINE VARIABLE hSOAPFault AS HANDLE NO-UNDO.
    DEFINE VARIABLE hSOAPFaultDetail AS HANDLE NO-UNDO.
    DEFINE VARIABLE HeaderXML AS LONGCHAR VIEW-AS EDITOR SIZE 70 BY 15 LARGE.

    IF ERROR-STATUS:NUM-MESSAGES > 0 THEN DO:
    errorfound = TRUE.
    DO i = 1 TO ERROR-STATUS:NUM-MESSAGES:
    MESSAGE ERROR-STATUS:GET-MESSAGE(i) VIEW-AS ALERT-BOX.
    END.
    /*2*/
    IF VALID-HANDLE(ERROR-STATUS:ERROR-OBJECT-DETAIL) THEN DO:
    hSOAPFault = ERROR-STATUS:ERROR-OBJECT-DETAIL.
    MESSAGE
    "Fault Code: " hSOAPFault:SOAP-FAULT-CODE SKIP
    "Fault String: " hSOAPFault:SOAP-FAULT-STRING SKIP
    "Fault Actor: " hSOAPFault:SOAP-FAULT-ACTOR SKIP
    "Error Type: " hSOAPFault:TYPE VIEW-AS ALERT-BOX.
    /*3*/
    IF VALID-HANDLE(hSOAPFault:SOAP-FAULT-DETAIL) THEN DO:
    hSOAPFaultDetail = hSOAPFault:SOAP-FAULT-DETAIL.
    MESSAGE "Error Type: " hSOAPFaultDetail:TYPE
    VIEW-AS ALERT-BOX.
    HeaderXML = hSOAPFaultDetail:GET-SERIALIZED().
    DISPLAY HeaderXML LABEL "Serialized SOAP fault detail"
    WITH FRAME a.
    END.
    END.
    END.
    END PROCEDURE.
    /*******************************************************************/
Status do Tópico:
Não esta aberto para novas mensagens.

Compartilhe esta Página