I4GL migration guide / Migrate an I4GL web service consumer to Genero |
I4GL web service errors are returned on a non conventional SOAP fault what cannot be handled in Genero. However the errors are handled through the additional returned parameter soapstatus that must be checked after each web service call. If its value is not zero, an error has occurred and can be retrieved via the global Genero wsError record defined in the above generated .inc file.
In the Genero Web Service you must check the soap status after each web service call:
FUNCTION func_cons_ws_zipcode() DEFINE state_rec RECORD pin CHAR(10), city CHAR(100), state CHAR(100) END RECORD; # # Genero web service status returning # whether web function call was successful or not # DEFINE soapstatus INTEGER # Genero web service function call CALL zipcode_details("97006") RETURNING soapstatus, state_rec.city, state_rec.state # Check soap status for errors after zipcode_details call IF soapstatus<>0 THEN # Display error information from the server DISPLAY "Error:" DISPLAY " code :",wsError.code DISPLAY " ns :",wsError.codeNS DISPLAY " desc :",wsError.description DISPLAY " actor:",wsError.action ELSE # Display results DISPLAY "\n ------------------------- \n" DISPLAY "SUPPLIED ZIP CODE: 97006 \n" DISPLAY " ------------------------- \n" DISPLAY "RESPONSE FROM WEB SERVICE \n" DISPLAY " ------------------------- \n" DISPLAY " CITY:",state_rec.city DISPLAY "\n STATE:",state_rec.state DISPLAY "\n ======================== \n" END IF ... END FUNCTION