
Um die GRMG-Anfrage bearbeiten zu können, muss die GRMG-Anwendung in der angegebenen Reihenfolge die folgenden Schritte durchführen können:
Verwenden Sie zur Erleichterung dieser Aufgaben die in GRMG-Anwendung erstellen - Prinzip genannten Java-Klassen:
public void doPost(HttpServletRequest req , HttpServletResponse res) Throws ServletException, IOException{ ServletOutputStream out = res.getOutputStream(); // Get output stream of the servlet InputStream is=req.getInputStream(); // Get input stream of servlet try { GrmgRequest ix=new GrmgRequest(is); // Create new GrmgRequest object from //serlvlet's input stream and parse XML structure GrmgScenario sc = ix.getScenario(); // Get GrmgScenario object from GrmgRequest processing(sc);
/* You must include your own code here to process the parameters passed by XML document and to carry out any testing that is required */
GrmgResponse ox=new GrmgResponse(sc); // Create new GrmgResponse object using // GrmgScenario object as parameter ByteArrayOutputStream bytearray=ox.getOutput(); // Get XML document as result of processing bytearray.writeTo(out); // give back result to servlet's output stream } catch (Exception e) { // Exception handling }}
Der schattierte Teil könnte dabei wie folgt aussehen (dieses Coding basiert dabei auf dem Beispiel für eine GRMG-Anfrage):
void processing(GrmgScenario sc) throws Exception{ try { URL conn = new URL(sc.getComponentByName("WEBTEST"). getPropertyByName("url").getValue()); // getting URL HttpURLConnection hcon = (HttpURLConnection) conn.openConnection(); // trying to connect to URL if(hcon.getResponseCode() == HttpURLConnection.HTTP_NOT_FOUND) //checking response from connection
sc.getComponentByName("WEBTEST").addMessage(). setMessageParameters("ERROR","255","RT","001","","","","", "page not found");
// Page not found and we generate Message for GRMG else
sc.getComponentByName("WEBTEST").addMessage(). setMessageParameters("OKAY","000","RT","003","","","","", "relatively okay (for test)");
// OKAY and we generate Message for GRMG } catch(Exception e) {
sc.getComponentByName("WEBTEST").addMessage(). SetMessageParameters("ERROR","255","RT","002",e.getMessage(), "","","",e.getMessage());
} try { JCO.createClient(sc.getComponentByName("R3TEST"). getPropertyByName("SAPClient").getValue(); sc.getComponentByName("R3TEST). getPropertyByName("userid").getValue(); sc.getComponentByName("R3TEST). getPropertyByName("password").getValue(); sc.getComponentByName("R3TEST). getPropertyByName("language").getValue(); sc.getComponentByName("R3TEST). getPropertyByName("sid").getValue(); sc.getComponentByName("R3TEST). getPropertyByName("system_number").getValue()); // trying to connect to SAP system
sc.getComponentByName("R3TEST"). addMessage().setMessageParameters("OKAY","001","RT","004", "","","","","Connected!");
//Everything is fine and we generate Message for GRMG } catch(Exception e) { // Exception handling }}
In den schattierten Coding-Bereichen setzen Sie jeweils die Komponente und die Meldungsparameter für die GRMG-Antwort. Dabei können Sie im einzelnen die folgenden Parameter übergeben:
sc.getComponentByName("<compname>").addMessage().setMessageParameters("<messalert>","<messseverity>","<messarea>","<messnumber>","<messpara1>","<messpara2>","<messpara3>","<messpara4>","<messtext>");
Die Bedeutung der einzelnen Parameter ist in Aufbau der GRMG-Antwort beschrieben.
Startseite Überwachung mit dem Generic Request and Message Generator