[Progress Communities] [Progress OpenEdge ABL] Forum Post: RE: Method GET or method POST with webservices

Status
Not open for further replies.
W

wsartorelli

Guest
Irfan, 250/5000 follow my code, this one with error in the line: RUN execute IN hWSTransacional (INPUT DATASET executeRequest, OUTPUT DATASET executeResponse). It is arriving on the vendor server as GET and should arrive as POST. Please, where am I going wrong? Code: 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 " 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 " 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 ' preproducao.roadcard.com.br/.../WSTransacional " + "-SOAPEndpoint preproducao.roadcard.com.br/sistemapamcardwsdl " + "-sslAuth ssl " + "-sslKeyFile D:\Pamcard\quimicaamparo2017.pfx " + "-sslKeyPwd 12345678 " + "-ssl " + "-nohostverify "). RUN WSTransacional SET hWSTransacional ON hWebService. /*** Create Create the necessary Temp-tables here.*/ CREATE arg0. ASSIGN arg0.context = "FindCard". FIND FIRST arg0 NO-LOCK NO-ERROR. CREATE fieldsRequest. ASSIGN fieldsRequest.KEY = "viagem.contratante.documento.numero" fieldsRequest.value1 = "43461789000190" fieldsRequest.arg0_id = RECID(arg0). CREATE fieldsRequest. ASSIGN fieldsRequest.KEY = "viagem.cartao.numero" fieldsRequest.value1 = "4417819800000860" fieldsRequest.arg0_id = RECID(arg0). /****/ /** 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 executeResponse:WRITE-XML("file",SESSION:TEMP-DIRECTORY + "/executeResponse.xml":U, {&xFormated} ). /** Garbage collection is needed here. i.e. DELETE OBJECT hWebService.**/ PROCEDURE execute: DEFINE INPUT PARAMETER DATASET FOR executeRequest. DEFINE OUTPUT PARAMETER DATASET FOR executeResponse. END PROCEDURE. /*******************************************************************/ 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. /*******************************************************************/

Continue reading...
 
Status
Not open for further replies.
Top