Call ABAP FM from XI Java mapping

Can you please provide me some documentation on how to make a call to ABAP function module from Java mapping.
Basically this would be a RFC lookup from Java mapping.
Any recomendations on which one is a standard approach among ABAP Mapping vs JAVA mapping within XI.
Your responses are appreciated.
TNV

Hi TNV,
<i>I am more looking into using RFC call from java mapping.</i>
The article by Michal can be used to make the RFC lookup not only from an User Defined Function but also from a java mapping.
You can write any piece of java code inside the EXECUTE() method of your Java Mapping including the RFC Lookup API code in michal's article.
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/xi/xi-code-samples/xi%20mapping%20lookups%20rfc%20api.pdf
Regards.
Bhavesh

Similar Messages

  • Calling ABAP BAPIs from a JAVA client - Web Services vs. JCo

    Hi All,
    When calling BAPIs from a JAVA client, what are the pros/cons for making the call employing JCo vs web service technologies.  I understand that using SOAP would play better into the SOA theme and that there are nice tools to generate a WSDL document from a BAPI.  Aside from the obvious, are there any performance considerations and/or other major pros/cons to each
    Thanks,
    Mark

    Hi Mark,
    Have you got any information on this. If you have any information on this pls forward to me at <b>[email protected]</b> I am also having this confusion. My question is a bit deviating from your point. If we use XI when developing WDJs with WS, will it help in improving performance and maintenance.will it give any advantage if I use XI with BAPIs to connecto backend from WDJ apps. I got this confusion, becasue of a requirement to develop WDJ apps that will be accessed by 50,000 users. Somebody told client that use of XI willimprove performance.
    Any help is greatful
    Regards
    Ravindra
    Message was edited by:
            Ravindra Babu Tanguturi

  • Call ABAP RFC From mapping

    HI Guys,
    I have a requirement to call ABAP RFC from Message Mapping.
    Can any one pls share the document links or ideas with me.
    Thanks,
    MS

    Hi
    u can use RFC LoopUp
    if PI 7.0 / 3.0 -- need to write the UDF to execute
    link
    https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/70d90a91-3cf4-2a10-d189-bfd37d9c3231
    if PI 7.1 then u have functionality in MM itself to do so
    rgds
    srini

  • Re-use message mapping from within java mapping?

    Hi there,                                                                               
    I have a question regarding java mapping. What I would like to do is to re-use an existing message mapping from within java mapping.
    Technicaly, message mapping is perfomed by com.sap.aii.mappingtool.tf3.AMappingProgram.execute, right? I would like to call that mapping program for a specifc message mapping from within my java mapping.
    Pseudo java code would look like this:
    public void execute(InputStream in, OutputStream out)
      throws StreamTransformationException {
    com.sap.aii.mappingtool.tf3.AMappingProgram.execute(in,out,'SomeMessageMapping');
    SomeMessageMapping is a message mapping that is defined in the integration repository.
    Is it possible? If so, could you provide me with some details?
    Thank you and best regards,
    Wolfgang

    Hi Wolfgang,
    very interesting idea?
    I would activa a dummy message mapping. than I would have a look in the file directory of the java-stack and try to find out the name of the *.class or *.jar file.
    On the other hand you could generate a tpz-transport-file an unpack this file, to explore the name of the *.class or *.jar
    Unfortunately I do not have access to the file system. So I can't explore the name.
    Regards Mario

  • Calling a servlet from a Java Stored Procedure

    Hey,
    I'm trying to call a servlet from a Java Stored Procedure and I get an error.
    When I try to call the JSP-class from a main-method, everything works perfectly.
    Java Stored Procedure:
    public static void callServlet() {
    try {
    String servletURL = "http://127.0.0.1:7001/servletname";
    URL url = new URL(servletURL);
    HttpURLConnection conn = (HttpURLConnection)url.openConnection();
    conn.setDoOutput(true);
    conn.setRequestProperty("Pragma", "no-cache");
    conn.connect();
    ObjectInputStream ois = new ObjectInputStream(conn.getInputStream());
    Integer client = (Integer)ois.readObject();
    ois.close();
    System.out.println(client);
    conn.disconnect();
    } catch (Exception e) {
    e.printStackTrace();
    Servlet:
    public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    Integer id = new Integer(10);
    OutputStream os = response.getOutputStream();
    ObjectOutputStream oos = new ObjectOutputStream(os);
    oos.writeObject(id);
    oos.flush();
    oos.close();
    response.setStatus(0);
    Grant:
    call dbms_java.grant_permission( 'JAVA_USER', 'SYS:java.net.SocketPermission','localhost', 'resolve');
    call dbms_java.grant_permission( 'JAVA_USER','SYS:java.net.SocketPermission', '127.0.0.1:7001', 'connect,resolve');
    Package:
    CREATE OR REPLACE PACKAGE pck_jsp AS
    PROCEDURE callServlet();
    END pck_jsp;
    CREATE OR REPLACE PACKAGE BODY pck_jsp AS
    PROCEDURE callServlet()
    AS LANGUAGE JAVA
    NAME 'JSP.callServlet()';
    END pck_jsp;
    Architecture:
    AS: BEA WebLogic 8.1.2
    DB: Oracle 9i DB 2.0.4
    Exception:
    java.io.StreamCorruptedException: InputStream does not contain a serialized object
    at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java)
    at java.io.ObjectInputStream.<init>(ObjectInputStream.java)
    The Servlet and the class work together perfectly, only when I make the call from
    within the database things go wrong.
    Can anybody help me.
    Thank in advance,
    Bart Laeremans
    ... Desperately seeking knowledge ...

    Look at HttpCallout.java in the following code sample
    http://www.oracle.com/technology/sample_code/tech/java/jsp/samples/jwcache/Readme.html
    Kuassi

  • How to call IAC Iview from WebDynpro java code

    Hi Team,
    I am tring to call IAC Iview from WebDynpro Java code. we are passing value but blank page  displayed and there is no error show on error log.
    Below is Java Code which i am calling.
      public void wdDoInit()
          try {
                String strURL = "portal_content/TestSRM/iView/TestSRM";                           //WDProtocolAdapter.getProtocolAdapter().getRequestParameter("application");
                 String random = WDProtocolAdapter.getProtocolAdapter().getRequestObject().getParameter("random_code");     
                 //wdContext.currentContextElement().setRandomNumber(random);
    //below we are call URL           
    WDPortalNavigation.navigateAbsolute("ROLES://portal_content/TestSRM/iView/TestSRM?VAL="+random,WDPortalNavigationMode.SHOW_INPLACE,(String)null, (String)null,
                       WDPortalNavigationHistoryMode.NO_DUPLICATIONS,(String)null,(String)null, " ");
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
    I am passing value from URL.
    http://<host Name>:<port>/webdynpro/resources/local/staruser/StarUser?random_code=111111111
    when we call above URL we getting blank screen.
    Regards
    Pankaj Kamble

    Hi Vinod,
    read this document (from pages 7 ).
    <a href="https://www.sdn.sap.comhttp://www.sdn.sap.comhttp://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/b5380089-0c01-0010-22ae-bd9fa40ddc62">https://www.sdn.sap.comhttp://www.sdn.sap.comhttp://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/b5380089-0c01-0010-22ae-bd9fa40ddc62</a>
    In addition lok at these links: (Navigation Between Web Dynpro Applications in the Portal)
    <a href="http://help.sap.com/saphelp_erp2005/helpdata/en/ae/36d93f130f9115e10000000a155106/frameset.htm">http://help.sap.com/saphelp_erp2005/helpdata/en/ae/36d93f130f9115e10000000a155106/frameset.htm</a>
    <a href="http://help.sap.com/saphelp_erp2004/helpdata/en/b5/424f9c88970f48ba918ad68af9a656/frameset.htm">http://help.sap.com/saphelp_erp2004/helpdata/en/b5/424f9c88970f48ba918ad68af9a656/frameset.htm</a>
    It may be helpful for you.
    Best regards,
    Gianluca Barile

  • Calling ABAP report from BEx query

    Good day!
    I want to call ABAP report from BEx query by right-clicking on the field and using context menu. I know that transaction RSBBS is used (sender-receiver connecting), but I don't know how to transfare data to ABAP program
    In ABAP program I want to know at least data from those cell in BEx query, that was right-clicked.

    Depending on your requirement and environment, you have the following options:
    1. Use an info spoke and make selections as you would in a query.
    2. USe FM RS_VC_GET_QUERY_VIEW_DATA_FLAT to send the data to a file and your ABAP can read this file.
    Ravi Thothadri

  • Calling ABAP Code From BSP

    Hello all,
    I dont have much idea of BSP ans would like to have some inputs from you all.
    I would like to know that can I call ABAP transaction from BSP page ?
    I have got a set of column entries just as an ALV column on my BSP page and I would like to provide hotspot or double click functionality so that for each of the entries in the table , the BSP page navigates to ABAP tcode and back to BSP page.Is this functionality possible?
    any help would highly be appreciated.
    Regards
    Amruta

    Hi Amruta ,
    You can't call an R/3 transaction directly from BSP.
    But you can achieve all the functionalities it does .
    for ex ..if an r/3 transaction is a report , u hav to code in BSP editor .u can call function modules from BSP .
    But one thing u hav to concern is ,,in BSP Apllication logic is seperatd from Business logic .
    U hav to move all your results into an itab / params and display that inside HTML tables .
    Start ur journey from here .......
    http://help.sap.com/saphelp_erp2004/helpdata/en/e6/e23fd8c47e11d4ad320000e83539c3/frameset.htm
    All the best .
    Regards,
    J

  • SQL Exception: Invalid column index while calling stored proc from CO.java

    Hello all,
    I am getting a "SQL Exception: Invalid column index" error while calling stored proc from CO.java
    # I am trying to call this proc from controller instead of AM
    # PL/SQL Proc has 4 IN params and 1 Out param.
    Code I am using is pasted below
    ==============================================
              OAApplicationModule am = (OAApplicationModule)oapagecontext.getApplicationModule(oawebbean);
    OADBTransaction txn = (OADBTransaction)am.getOADBTransaction();
    OracleCallableStatement cs = null;
    cs = (OracleCallableStatement)txn.createCallableStatement("begin MY_PACKAGE.SEND_EMAIL_ON_PASSWORD_CHANGE(:1, :2, :3, :4, :5); end;", 1);
         try
    cs.registerOutParameter(5, Types.VARCHAR, 0, 2000);
                        cs.setString(1, "[email protected]");
                             cs.setString(2, s10);
    //Debug
    System.out.println(s10);
                             cs.setString (3, "p_subject " );
                             cs.setString (4, "clob_html_message - WPTEST" );
                   outParamValue = cs.getString(1);
    cs.executeQuery();
    txn.commit();
    catch(SQLException ex)
    throw new OAException("SQL Exception: "+ex.getMessage());
    =========================================
    Can you help please.
    Thanks,
    Vinod

    You may refer below URL
    http://oracleanil.blogspot.com/2009/04/itemqueryvoxml.html
    Thanks
    AJ

  • Calling a URL from a Java Stored Procedure

    Hi,
    I'm trying to call a URL from a Java Stored Procedure in Oracle 8.1.7(Windows 2000). The ultimate goal is to call this stored procedure from a database trigger. The status of the object remains invalid in the database even after compilation and publishing without any errors. The code follows. Any suggestions/alternatives to accomplish this would be appreciated.
    Java Stored Procedure:
    CREATE OR REPLACE JAVA SOURCE NAMED "UPDATEATTR" AS
    import java.net.*;
    import java.util.*;
    import java.io.*;
    public class UpdateAttr {
    public static String testmain() {
    ObjectInputStream is;
    URL url;
    String uri =
    "http://www.yahoo.com";
    try {
    //calling the URL
    url = new URL(uri);
    URLConnection yahooConnection = yahoo.openConnection();
    } catch (Exception e) {
         e.printStackTrace(System.err);
    return "TEST_SUCCESSFUL";
    Code to Publish it:
    CREATE OR REPLACE FUNCTION setNewAttributes return VARCHAR2
    AS LANGUAGE JAVA NAME
    'UpdateAttr.testmain() return String';
    Thanks in advance.
    Ris

    Small mistake in the previous post. The object still has a status of "INVALID" though. The Java stored procedure should actually read:
    Java Stored Procedure:
    CREATE OR REPLACE JAVA SOURCE NAMED "UPDATEATTR" AS
    import java.net.*;
    import java.util.*;
    import java.io.*;
    public class UpdateAttr {
    public static String testmain() {
    ObjectInputStream is;
    URL url;
    String uri =
    "http://www.yahoo.com";
    try {
    //calling the URL
    URL yahoo = new URL(uri);
    URLConnection yahooConnection = yahoo.openConnection();
    } catch (Exception e) {
    e.printStackTrace(System.err);
    return "TEST_SUCCESSFUL";
    Code to Publish it:
    CREATE OR REPLACE FUNCTION setNewAttributes return
    VARCHAR2
    AS LANGUAGE JAVA NAME
    'UpdateAttr.testmain() return String';
    /

  • Possibility of calling standard actions from a java program

    Hi ,
    I am working for a project where customer wants to have option of saving orders as draft only and later convert to order if need be. However since we do not want many drafts to reside on server there is a need to delete these at a specified time. For draft orders I am using order templates since they stay in the database without getting converted to orders. Now I do not know how to go about the deletion part.
    i need to write a program that would run on the server and which would fetch the templates (drafts) that have been created till a particular time and call the delete action of the template. Now the question is how do i call these actions from a java program where this java program will have to run on the server end (ie will be a backend process).
    Please suggest.
    Thanks
    Roopali

    hello roopali,
    you can create a separate thread that will run your
    code that will check for stale drafts and delete them.
    it is just like a session management program but here
    we will be looking over the drafts and not the session
    objects.
    now if you want the invocation of the action from another
    program, a socket program would suffice but opening ports
    will cause you network connections thru firewall.
    if you can make use of HTTP servlet as your service
    provider e.g., you can then just pass some action params
    to invoke it.
    regards
    jo

  • Problem with special charecter while calling a BAPI from Webdynpro JAVA.

    Hi Experts,
    I am calling a BAPI from Webdynpro JAVA. I am passing a special charecter  u2018 as input to BAPI. But I am getting a # as input in R/3.. Can any one explain why it is getting changed?
    Any inputs regarding this issue are appreciated.
    Thanks,
    Kasinath.

    Hi,
        I had same problem before..For this I have created function module in backend for removing #. It was for converting Stream to ITF text.
    CONVERT_STREAM_TO_ITF_TEXT.
    Try this.
    Thanks,
    Prajakta

  • Calling OCX Methods from a Java Program

    Hi All,
    Is it possible to call OCX methods from a Java program? If yes, can you please refer me to any documents or sample code to achieve this.
    All inputs are highly appreciated.
    Thanks
    Tarek

    JNI
    http://java.sun.com/docs/books/tutorial/native1.1/index.html

  • Calling a already existing mapping from a java mapping

    Hi.
    Is it possible to get a reference to an existing graphical mapping in a new java mapping or new user defined function?
    Rod

    Hi,
    If you have the mapping to run one after another and you need the output of mapping1 as input of mapping2 then you can add this in Interface mapping one after the other with required Message Interface.
    Don't know if you can refer to a standard Graphical mapping in a Java mapping?
    Regards
    Vijaya

  • XI AF API call failed. Module exception: Java Mapping

    Hi Experts,
    I have faced a typical error for one of my interface. The Scenario is SOAP to SOAP and we are performing SOAP Lookup  before sending the data to Target web service. We are using one Java Mapping  'FileIns_lookupLoad.java --- com/fi/' and performing the SOAP Lookup from within the code. In the Lookup Communication channel we are using 'Axis' as message protocol and passing couple of values through Module Key parameters. We have same ESR and ID objects in Development, Quality and Production (as per Version ID and History).
    Now the problem is Lookup is failing only in Development but Quality and Production is working fine. I have replaced Quality CC URL with the development WSDL URL, but that worked fine. That means Development Web Service is good. We are getting the below error in Dev:
    <SAP:Stack>StreamTransformationException triggered by application mapping program com/fi/FileIns_lookupLoad; Look Up Failed</SAP:Stack>
    Trace : *
    <Trace level="1"
    type="T"> Some Thing Wrong in LookUpError when calling an adapter by using the communication channel CC_IN_SOAP_GEInsuranceLoadLookup1 (Party: , Service: BusService_GE, Object ID: 4214805c52893ef9b0b3f0ef0902fe9e) XI AF API call failed. Module exception: 'while trying to invoke the method org.apache.axis.types.URI.toString() of an object returned from com.sap.xi.XI.Message._30.QualifiedName.getNamespace()'. Cause Exception: 'while trying to invoke the method org.apache.axis.types.URI.toString() of an object returned from com.sap.xi.XI.Message._30.QualifiedName.getNamespace()'. </Trace>
      <Trace level="1" type="T">*** END APPLICATION TRACE ***</Trace>
      <Trace level="1" type="T">Java mapping com/fi/FileIns_lookupLoad has thrown a StreamTransformationException. Thrown: com.sap.aii.mapping.api.StreamTransformationException: Look Up Failed at com.fi.FileIns_lookupLoad.execute(FileIns_lookupLoad.java:282) at com.fi.FileIns_lookupLoad.transform(FileIns_lookupLoad.java:74) at com.sap.aii.ib.server.mapping.execution.JavaMapping.executeStep(JavaMapping.java:92) at com.sap.aii.ib.server.mapping.execution.Mapping.execute(Mapping.java:60) at com.sap.aii.ib.server.mapping.execution.SequenceMapping.executeStep.................................................
    ................................................................................<Trace level="1" type="T">Application mapping program com/fi/FileIns_lookupLoad throws a stream transformation exception: Look Up Failed Thrown: com.sap.aii.ib.core.mapping.execution.ApplicationException: Application mapping program com/fi/FileIns_lookupLoad throws a stream transformation exception: Look Up Failed at com.sap.aii.ib.server.mapping.execution.JavaMapping.executeStep(JavaMapping.java:95) at com.sap.aii.ib.server.mapping.execution.Mapping.execute(Mapping.java:60) at com.sap.aii.ib.server.mapping.execution.SequenceMapping.executeStep(SequenceMapping.java:40) at com.sap.aii.ib.server.mapping.execution.Mapping.execute
    I have already checked with Basis and as per them JDK and Java versions are identical in Dev, QAS and Prod. It seems something is wrong with 'XI AF API' which we are calling from the channel. If we totally ignore Lookup process and send direct data, it is working fine. Target CC is also using Axis.
    Sequence in CC: afreq ->xireq ->wssec2 ->xires ->afres
    For any more information please let me know.
    Thanks,
    Nabendu.

    Hi Anupam,
    The Java Mapping code is same in Dev , QAS and Prod. Also the versions of the JAR is same.
    Please find the code below.
    package com.fi;
    import java.util.HashMap;
    import com.sap.aii.mapping.api.AbstractTrace;
    import com.sap.aii.mapping.api.AbstractTransformation;
    import com.sap.aii.mapping.api.StreamTransformation;
    import com.sap.aii.mapping.api.StreamTransformationConstants;
    import com.sap.aii.mapping.api.MappingTrace;
    import com.sap.aii.mapping.api.StreamTransformationException;
    import com.sap.aii.mapping.api.DynamicConfiguration;
    import com.sap.aii.mapping.api.DynamicConfigurationKey;
    import com.sap.aii.mapping.api.TransformationInput;
    import com.sap.aii.mapping.api.TransformationOutput;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.util.*;
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.parsers.ParserConfigurationException;
    import javax.xml.transform.Result;
    import javax.xml.transform.Source;
    import javax.xml.transform.Transformer;
    import javax.xml.transform.TransformerConfigurationException;
    import javax.xml.transform.TransformerException;
    import javax.xml.transform.TransformerFactory;
    import javax.xml.transform.dom.DOMSource;
    import javax.xml.transform.OutputKeys;
    import javax.xml.transform.stream.StreamResult;
    import org.w3c.dom.*;
    import org.w3c.dom.views.AbstractView;
    import org.xml.sax.SAXException;
    import java.io.ByteArrayInputStream;
    import com.sap.aii.mapping.lookup.*;
    /*import com.sap.aii.utilxi.hmis.server.HmisEnvironment.Accessor;
    //import com.sap.aii.utilxi.lock.api.LockServiceException;
    //import com.pmintl.pppimes.RFCLookup.javamapping.*;
    //import java.io.FileInputStream;
    //import java.io.FileOutputStream;*/
    import java.text.DateFormat;
    import java.text.SimpleDateFormat;
    //import java.text.ParseException;
    import java.util.Date;
    import java.io.*;
    public class FileIns_lookupLoad extends AbstractTransformation{
            private Map param = null;
            private AbstractTrace trace = getTrace();
            String senderService = null;
           String inParamChannel = null;
           String inParamBusService = null;
              //3. Each JAVA Mapping using program 7.1 API must implement the method
              // transform(TransformationInput in, TransformationOutput out)
              // as oppose to execute Method in earlier version.
               public void transform(TransformationInput arg0, TransformationOutput arg1) throws StreamTransformationException {
              // TODO Auto-generated method stub
              //4. An info message is added to trace. An instance of trace of object is obtained by calling
              // the getTrace method of class AbstractTransformation
                    inParamChannel = arg0.getInputParameters().getString("COMM_CHANNEL");
                    inParamBusService = arg0.getInputParameters().getString("BUS_SERVICE");
                    getTrace().addInfo("Input Parameter: " + inParamChannel);
                    getTrace().addInfo("Input Parameter: " + inParamBusService);
                    this.execute(arg0.getInputPayload().getInputStream(),
                          arg1.getOutputPayload().getOutputStream());
              //5. Input payload is obtained by using arg0.getInputPayload().getInputStream()
          * @param args
         public static void main(String[] args) {
                // TODO Auto-generated method stub
         public void execute(InputStream in, OutputStream out)
                   throws StreamTransformationException {
              // TODO Auto-generated method stub
              try
                   //Get The Trace
    //               trace = (AbstractTrace)param.get(StreamTransformationConstants.MAPPING_TRACE );
                   trace = getTrace();
                  getTrace().addInfo("Java Mapping Started");
                   DocumentBuilderFactory ifactory = DocumentBuilderFactory.newInstance();
                   DocumentBuilder ibuilder = ifactory.newDocumentBuilder();
                   Document IDoc  = ibuilder.parse(in);
                   Document TDoc = ibuilder.newDocument();
                   String mrnVal = "";
                   trace.addInfo("Preparing Target Doc");
                   Element message = TDoc.createElementNS("urn:Medtronic.com:CATS_Patient_Transactions","n1:Mt_Insurance");
                   Node tRoot = TDoc.appendChild(message);
                   //trace.addInfo(tRoot.getNodeName());
                   Element sRoot = (Element)IDoc.getFirstChild();
                   //trace.addInfo(sRoot.getNodeName());
                   NodeList nl = sRoot.getChildNodes();
               // trace.addInfo("Len"+nl.getLength());
    ////               for(int i=0;i<nl.getLength();i++)
    //                    Node n1 = TDoc.importNode(nl.item(i), true);
    //                    trace.addInfo("Adding Child Nodes");
    //                    trace.addInfo(nl.item(i).getNodeName());
    //                    tRoot.appendChild(n1);
                   NodeList lmrn = sRoot.getElementsByTagName("Mrn");
                   if(lmrn != null)
                        Node n1 = TDoc.importNode(lmrn.item(0), true);
                        Element e1 = (Element)lmrn.item(0);
                        //trace.addInfo(e1.getNodeName());
                        mrnVal = e1.getTextContent();
                        tRoot.appendChild(n1);
                   NodeList lfsc = sRoot.getElementsByTagName("Fsc");
                   if(lfsc != null)
                        for(int i=0;i<lfsc.getLength();i++){
                             Element n1=TDoc.createElement(lfsc.item(i).getNodeName());
                             tRoot.appendChild(n1);
                             Node fieldch = TDoc.createElement("Fields");
                             n1.appendChild(fieldch);
                             NodeList chl = lfsc.item(i).getChildNodes();
                             trace.addInfo("len11"+chl.getLength());
                             for(int j=0;j<chl.getLength();j++){
                                  if(!chl.item(j).getNodeName().equals("FscNumber")&&!chl.item(j).getNodeName().equals("Priority")){
                                       if(chl.item(j).hasChildNodes()){
                                            trace.addInfo(chl.item(j).getNodeName());
                                       Element fscfield = TDoc.createElement("FSCField");
                                       fieldch.appendChild(fscfield);
                                       NodeList FUQl = chl.item(j).getChildNodes();
                                       for(int p =0;p<FUQl.getLength();p++){
                                            //trace.addInfo(" i: "+i+" J: "+j+" P: "+p);
                                            if(FUQl.item(p).getNodeName().equals("FUQNumber")){
                                                 //Node tFUQ = TDoc.createElement("FUQNumber");
                                                 //tFUQ.setTextContent(FUQl.item(p).getTextContent());
                                                 fscfield.setAttribute("FUQNumber", FUQl.item(p).getTextContent());
                                            if(FUQl.item(p).getNodeName().equals("Value")){
                                                 Node tVal = TDoc.createElement("Value");
                                                 tVal.setTextContent(FUQl.item(p).getTextContent());
                                                 fscfield.appendChild(tVal);
                                                 //Node tName = TDoc.createElement("Field");
                                                 //tName.setTextContent(chl.item(j).getNodeName());
                                                 fscfield.setAttribute("Field", chl.item(j).getNodeName());
    //                                   Node fuqch = chl.item(j).getFirstChild();
    //                                   Node valch = fuqch.getNextSibling();
    //                                   if(fuqch!=null){
    //                                        Node tFUQ = TDoc.createElement("FUQNumber");
    //                                        tFUQ.setTextContent(fuqch.getTextContent());
    //                                        fscfield.appendChild(tFUQ);
    //                                   if(valch!=null){
    //                                        Node tVal = TDoc.createElement("Value");
    //                                        tVal.setTextContent(valch.getTextContent());
    //                                        fscfield.appendChild(tVal);
    //                                        Node tName = TDoc.createElement("Filed");
    //                                        tName.setTextContent(chl.item(j).getNodeName());
    //                                        fscfield.appendChild(tName);
                                  else{
                                       //Node numch =TDoc.importNode(chl.item(j), true);
                                       //Element e1 =(Element)n1;
                                       if(chl.item(j).getNodeName().equals("FscNumber")){
                                            n1.setAttribute("Number", chl.item(j).getTextContent());
                                       if(chl.item(j).getNodeName().equals("Priority")){
                                            n1.setAttribute("Priority", chl.item(j).getTextContent());
                             //tRoot.appendChild(lfsc.item(0));
    //                         Element e1 = (Element)lfsc.item(0);
    //                         trace.addInfo(e1.getNodeName());
    //                         mrnVal = e1.getNodeValue();
    /////Start of Look Up Code////
                   //Preparing Input String
                   String lookUpRequest = "<LoadPatientFullInsuranceDetail><Mrn>"+mrnVal+"</Mrn></LoadPatientFullInsuranceDetail>";
                   trace.addInfo("Request");
                   trace.addInfo(lookUpRequest);
                        SystemAccessor acc;
                        Channel channel;
                        Payload lookupResult;     
                        try
                             channel = LookupService.getChannel(inParamBusService, inParamChannel);
                             trace.addInfo("Got the channel");
                             acc = LookupService.getSystemAccessor(channel);
                             trace.addInfo("Got The Channel and Accessor");
                             InputStream ist = new ByteArrayInputStream(lookUpRequest.getBytes());
                             XmlPayload payload = LookupService.getXmlPayload(ist);
                             if(acc != null){
                                  trace.addInfo("Got The Channel and Accessor");
                                  trace.addInfo("Executing The Webservice");
                                  lookupResult = acc.call(payload);
                                  trace.addInfo("End of Executing The Webservice");
                                  trace.addInfo(lookupResult.toString());
                             if(lookUpRequest!=null){
                                  trace.addInfo("Responce is not null");
                                  InputStream rist = lookupResult.getContent();
                                  Document lresDoc = ibuilder.parse(rist);
                                  Node n1 = lresDoc.getFirstChild();
                                  trace.addInfo(n1.getNodeName());
                                  if(n1.getNodeName().endsWith("LoadPatientFullInsuranceDetailResponse"))
                                       Node ch1 = n1.getFirstChild();
                                       trace.addInfo(ch1.getNodeName());
                                       NodeList lookupnl = ch1.getChildNodes();
                                       //trace.add
                                       for(int i=0;i<lookupnl.getLength();i++)
                                            Node n2 = TDoc.importNode(lookupnl.item(i), true);
                                            trace.addInfo("Adding Child Nodes");
                                            trace.addInfo(lookupnl.item(i).getNodeName());
                                            tRoot.appendChild(n2);
                                  else{
                                  throw new StreamTransformationException("Error in Look Up"+n1.getTextContent());
                                   //while(ch1.hasChildNodes() && !ch1.getNodeName().equals("FSCS")){
                             else{
                                  trace.addWarning("Responce is null");
                                 throw new LookupException();
                        catch(LookupException le)
                             trace.addWarning("Some Thing Wrong in LookUp"+le.getMessage());
                             throw new StreamTransformationException("Look Up Failed");                         
                           Transformer transformer = TransformerFactory.newInstance().newTransformer();
    //                       StreamResult reqResult = new StreamResult(new StringWriter());
                           DOMSource source = new DOMSource(TDoc);
                           Result result = new StreamResult(out);
                           transformer.transform(source,result);
              catch(StreamTransformationException ste)
               throw new StreamTransformationException(ste.getMessage());
              catch(Exception e){
                   trace.addInfo(e.getMessage());
              finally{

Maybe you are looking for