LookupService.getChannel

Hi Group,
In Message Mapping UDF we are using lookup service with hard coding Business system and CC in the arguements.
Channel channel = LookupService.getChannel("Alert_Dev_BS","Alert_Call_Receiver_CC" );
it is working fine in development environment.
when we transport this to quality environment getting java exception because of hard coding development business system and cc.Business system Alert_Dev_BS targeted to Alert_QA_BS  in quality,we created communication channel Alert_Call_Receiver_CC under business system Alert_QA_BS still its not working.
Both Quality and Dev SLD's are in sync each other,even we tried assigning development Business system (and  created cc with same name) in quality enviornment,but still its not working.
Any sugeestions.
P.Swe are using CTS transport mechanism

Hi,
B'cos ur Business System is hardcoded in mapping, Alert_Dev_BS is not converted into Alert_QA_BS using target groups.Target Grps will only work for Business Systems.
Get the landscape dynamically and construct your Business system name. [Alert_<Landscape>_BS]. Below are 2 options:
1) <Landscape> can be a Value mapping parameter depfined as Dev, QA, Prd.
2) <Landscape> can be baed on ur SID or Exchange profile params
Regards,
Siva Maranani

Similar Messages

  • Soap LookupService with Decentralized Adapter Engine

    Hi Experts,
    I would like to use a Decentralized adapter engine with the Lookup Service on PI 7.1 , but when try to use that, it doesn't work, because Lookup Service is default configure to use Central adapter only. I would like how to set a decentralize adapter.
    How to do a Soap Lookup using a Decentral adapter?
    Now, I use the following:
    Channel channel = LookupService.getChannel("BC_SF_***","CC**");
    SystemAccessor accessor = null;
    accessor = LookupService.getSystemAccessor(channel);
    Thanks in advance.
    Fernando Pena.

    You define in the communication channel, which adapter engine should be used, not in the mapping.

  • PI 7.11 - LookupException

    Hi,
    I'm using a RFC Lookup in a Java Mapping. In PI 7.0 it was working fine. Now we use the Mapping in our PI 7.11 Testsystem and I get following LookupException:
    The channel with object ID bde7c594d5023c38913437978a558708 could not be found in the Integration Server Java Cache. Check if the channel exists in the Integration Builder Directory and execute a refresh of the Java Cache...
    The Channel name and Business Service Name are correct. If I look in the Integration Builder, my Communication Channel has a different ID as the one above in the exception.
    I did a complete restart, the error afterwards was all the same. How can I refresh the cache for the ID's?
    Thanks in advance
    Michael
    Edited by: Michael Buchli on Aug 9, 2010 9:52 AM
    As i invoked a Cache Update for the Communication Channel in Edit-CacheUpdate in Integration Builder, i got following message:
    Content of object 'Communication Channel * | BS_... | CC_IN_RFC... (DirContext)' on selected cache instance does not match the content of the object in the Integration Directory; the cache instance has not been informed of the change

    Hi
    I've refreshed all caches in the PI system and restartet it many times. Always with the same result:
    The channel with object ID bde7c594d5023c38913437978a558708 could not be found in the Integration Server Java Cache. Check if the channel exists in the Integration Builder Directory and execute a refresh of the Java Cache.
    I get the channel information with the Java method LookupService.getChannel() and when i print out the channel information into the trace, i got following:
    CC_xy (Party: , Service: BS_xyz, Object ID: bde7c594d5023c38913437978a558708)
    The exception will be thrown at LookupService.getRfcAccessor(channel).
    1. The Business System is valid and works for several Integration Scenarios.
    2. The Communication Channel is valid and works for several Integration Scenarios.
    3. The Remote Bapi worked under PI 7.0 with the equal Java Mapping.
    Any suggestion for further debuggings or traps?
    Thanks
    Michael

  • Need Help in writing a UDF

    Hi,
    Please help in writing a UDF for these fields in mapping, which I need for the object Iu2019m doing currently.
    The fields are like this:
    1)         batch_no = "TRUNC((GetMaxObjid('x_txn_sap_parts')-POWER(2,28))/5000)+1",
    2)         lot_id = "TRUNC((GetMaxObjid('x_txn_sap_parts')-POWER(2,28))/500)+1",
    3)        How to use JDBC connection factory class in the UDF.
    Some logic I can provide which I know i.e. Power (2, 28) means 2 to the power of 28 (2 multiplied 28 times), Trunc means truncate, X_TXN_SAP_Parts is a database table.The Target fields are Batch_no, lot_id & Objid.Actually, objid is mapped initially to a source field i.e. Object ID and in this function it is only being used for the calculation of the batch_no.
    Thanks in Advance,
    Sreedhar.

    Hi,
    Following with my query I've tried to use this code but still I'm unable to execute the mapping.
    import java.util.*;
    import com.sap.aii.mapping.lookup.*;
    import com.sap.aii.mapping.lookup.*;
    DataBaseAccessor accessor = null;
    DataBaseResult JDBCOutPayload = null;
    String BusinessSystem="clarify_dev_bizsys";
    //give your business system having channel name
    String CommunicationChannel="JDBC_TO_CDEV";
    //give your channel name
    String InputPayload= " select X_TXN_PRE_SITE_XFACE.nextval from dual;";
    //give your sql query
    try {
    Channel channel =
    LookupService.getChannel(BusinessSystem,CommunicationChannel);
    accessor = LookupService.getDataBaseAccessor(channel);     
    DataBaseResult resultSet = accessor.execute(InputPayload);
         for(Iterator rows = resultSet.getRows();rows.hasNext();){  
         Map rowMap = (Map)rows.next();
         Object cValue = rowMap.get("batchno");
    //field name of field required , as in database
          catch (Exception e) {}
          finally {
                  if (accessor != null)
                  accessor.close();
           result.addValue((String)cValue);
    --> I don't know what are the parameters to be used and how to be used in the UDF because this is the first time I'm writing a UDF.
    --> The problem in using this query is that both OBJID & BatchNo. are on the target side and the value for the OBJID is retrieved by a SELECT query from the database.
    Kindly help me how to resolve this query of mine.
    Thanks in Advance.
    Sreedhar.

  • Message Mapping error in UDF

    I am receiving errors when trying to activate my MM.  I believe the issues are in one of two UDF's.  These UDF's do work in another MM without error.  Below are the error's and UDF's.
    ERRORS:
    Activation of the change list canceled Check result for Message Mapping MM_WPDBBY_WPDBBY01_TO_POS_WAWAFILE | http://wawa.com/xi/erp/pos:  Starting compilation  Source code has syntax error:  /usr/sap/XID/DVEBMGS00/j2ee/cluster/server0/./temp/classpath_resolver/Map5420e070cabe11dcab4b00306ef38da9/source/com/sap/xi/tf/_MM_WPDBBY_WPDBBY01_TO_POS_WAWAFILE_.java:3291: cannot resolve symbol symbol : variable container location: class com.sap.xi.tf._MM_WPDBBY_WPDBBY01_TO_POS_WAWAFILE_ map = container.getTransformationParameters(); ^ /usr/sap/XID/DVEBMGS00/j2ee/cluster/server0/./temp/classpath_resolver/Map5420e070cabe11dcab4b00306ef38da9/source/com/sap/xi/tf/_MM_WPDBBY_WPDBBY01_TO_POS_WAWAFILE_.java:3293: cannot return a value from method whose result type is void return constant; ^ 2 errors
    UDF's:
    public String getSender(Container container){
    String constant;
    java.util.Map map;
    // get constant map
    map = container.getTransformationParameters();
    constant = (String) map.get (StreamTransformationConstants.SENDER_SERVICE);
    return constant;
    IMPORTS:  com.sap.xi.mapping.parse.dom.;javax.xml.parsers.;java.io.;com.sap.aii.mapping.lookup.;org.w3c.dom.*;
    public String getSeqNum(String fileType,String objNum,String Sender,Container container){
    String request = "<ns0:ZRFC_NUMBER_GET_NEXT xmlns:ns0=\"urn:sap-com:document:sap:rfc:functions\"><NR_RANGE_NR>" + fileType + "</NR_RANGE_NR><OBJECT>" + objNum + "</OBJECT><QUANTITY/></ns0:ZRFC_NUMBER_GET_NEXT>";
    InputStream isRequest = new ByteArrayInputStream(request.getBytes());
    SystemAccessor accessor = null;
    String num  = null;
    try{
         // 1. Determine a channel.
         Channel channel = LookupService.getChannel(Sender, "R_RFC_ERP");
         // 2. Get a system accessor for the channel.
         accessor = LookupService.getSystemAccessor(channel);
         // 3. Create a payload according to the data type which the adapter expects.
         //    Use service.getBinaryPayload() for binary payload,
         //    and service.getTextPayload() for text payloads.
         Payload payload = LookupService.getXmlPayload(isRequest);
         // 4. Execute lookup.
         Payload response = accessor.call(payload);
         //Parse response
         DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
         DocumentBuilder builder = factory.newDocumentBuilder();
         InputStream resStream = response.getContent();
         Document doc = builder.parse(resStream);
         Element sequence = doc.getDocumentElement();
         NodeList number = sequence.getElementsByTagName("NUMBER");
         //Extract Number
         num = DOMUtil.getSimpleElementText((Element) number.item(0));
    } catch (Exception e) {
         return e.getMessage();
    } finally {
         try {
              if (accessor != null) accessor.close();
         } catch (Exception e) {
              return e.getMessage();
    GlobalContainer gc = container.getGlobalContainer();
    gc.setParameter("Num", num);
    return num;
    Any help is appreciated.
    Regards,
    Darrell

    Fauver,
    Just to narrow down the problem first remove the first udf and only use the 2nd user defined function. Also in the 2nd udf you have to change this line:
    try{
    // 1. Determine a channel.
    Channel channel = LookupService.getChannel(Sender, "R_RFC_ERP");
    In the above line instead of Sender you use the business service or business system where R_RFC_ERP RFC communication channel is created in Integration Directory. So you are hardcoding it first.
    Once you have done this changes do save and test it once again. If this works then you can change back to original and your first udf needs to be checked.
    Regards,
    ---Satish

  • RFC lookup error

    Hi all,
    I am doing an RFC lookup to increment counter. I am facing a problem.
    I followed the code written by Michael. https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/a03e7b02-eea4-2910-089f-8214c6d1b439
    My udf is as shown below: -
    String content = "";
    MappingTrace importanttrace;
    importanttrace = container.getTrace();
    java.util.Map param = container.getTransformationParameters();
    String MSGID = (String) param.get (StreamTransformationConstants.MESSAGE_ID);
    // filling the string with our RFC-XML (with values)
    String m="<?xml version="1.0" encoding="UTF-8"?><ns0:_-GLB_-ZGT_RFBIBL00_COUNTER xmlns:ns0="urn:sap-com:document:sap:rfc:functions"><IM_V_FILENAME>CA10.NCH.FCIPAY04</IM_V_FILENAME><IM_V_MSGID>"MSGID"</IM_V_MSGID><IM_V_WRNO>DEVWR0001725</IM_V_WRNO></ns0:_-GLB_-ZGT_RFBIBL00_COUNTER>";
    importanttrace.addWarning("Input value is  "+m);
    RfcAccessor accessor = null;
    ByteArrayOutputStream out = null;
    try
    // 1. Determine a channel (Business system, Communication channel)
    Channel channel = LookupService.getChannel(receiverBS,"CC_RFC_RCV_AMS_R3F_DEVWR001725");
    // 2. Get a RFC accessor for a channel.
    accessor = LookupService.getRfcAccessor(channel);
    // 3. Create a xml input stream representing the function module request message.
    InputStream inputStream = new ByteArrayInputStream(m.getBytes());
    // 4. Create xml payload
    XmlPayload payload = LookupService.getXmlPayload(inputStream);
    // 5. Execute lookup.
    Payload result = accessor.call(payload);
    InputStream in = result.getContent();
    out = new ByteArrayOutputStream(1024);
    byte[] buffer = new byte[1024];
    for (int read = in.read(buffer); read > 0; read = in.read(buffer)) {
    out.write(buffer, 0, read);
    content = out.toString();
    catch(LookupException e)
    importanttrace.addWarning("Error while lookup " + e.getMessage() );
    catch(IOException e)
    importanttrace.addWarning("Error " + e.getMessage() );
    finally
    if (out!=null) {
    try {
    out.close();
    } catch (IOException e) {
    importanttrace.addWarning("Error while closing stream " + e.getMessage() );
    // 7. close the accessor in order to free resources.
    if (accessor!=null) {
    try {
    accessor.close();
    } catch (LookupException e) {
    importanttrace.addWarning("Error while closing accessor " + e.getMessage() );
    //returning the result u2013 RFC-XML.response
    if ((content.substring(143,150)).equals("NOENTRY"))
    ExceptionThrower.generate("INVALID INPUT DEVWR NUMBER OR ID" );
    return "Nothing";
    else
    return (content.substring(143,155));
    The problem i am facing is that, i am not able to pass the IM_V_MSGID parameter to the function module.
    The other 2 parameters i can pass. that is IM_V_FILENAME and IM_V_WRNO.
    i am able to extract the message ID using
    java.util.Map param = container.getTransformationParameters();
    String MSGID = (String) param.get (StreamTransformationConstants.MESSAGE_ID);
    and displayed it in SXI_MONITOR trace also using importanttrace.addWarning("Input value is  "+m);
    i got the correct MSGID in the trace.But the problem is that this value is not getting passed to the FM. Cos the table is supposed to increment the counter whenever the MSGID value changes.
    I tried hardcoding the MSGID value to 'abc' or '123' like values but the same thing happended. The counter will not increment. The FM is working perfectly when i run it and change the MSGID values manually.
    Thanks
    Pratichi

    Hi,
    We have done this by creating an FM in XI ABAP stack:
    FUNCTION Z_ZBXI_GET_PRE_MSG_ID.
    ""Local Interface:
    *"  IMPORTING
    *"     VALUE(I_CURRMSGID) TYPE  CHAR40
    *"  EXPORTING
    *"     VALUE(E_PREMSGID) TYPE  CHAR40
    DATA: lv_currmsgid type SXMSPMAST-MSGGUID,
          lv_parentmsgid LIKE SXMSPMAST-PARENTMSG,
          lv_premsgid LIKE SXMSPMAST-MSGGUID.
    lv_currmsgid = i_currmsgid.
    select single PARENTMSG from SXMSPMAST into lv_parentmsgid where MSGGUID = lv_currmsgid.
    e_premsgid = lv_parentmsgid.
    ENDFUNCTION.
    You need to call this FM through RFC lookup UDF in your mapping.
    Let me know if it works for you.
    Regards,
    Shweta

  • Error in while calling a Soap Adapter using the UDF

    hi,
    i am trying to make a call to Soap Adapter using a UDF.
    The code of the UDF is as follows :
    InputStream isPayloadStream = null;
    AbstractTrace trace= container.getTrace();
    String sService="Business Component";
    String sChannelName="Soap Channel(Sender)";
    SystemAccessor accessor=null;
    trace.addInfo("entered UDF");
    StringBuffer sb = new StringBuffer(" ");
    trace.addInfo("creating the reference file");
    sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
    sb.append("<ns0:MT_123082_UDF xmlns:ns0=\"http//infosys.com/pi/projects/png/n1\">\n");
    sb.append("<INTERCHANGECONTRLNOS>" + var1 + "</INTERCHANGECONTRLNOS>");
    sb.append("<PGPARTNERID>"var2"</PGPARTNERID>""\n""</ns0:MT_123082_UDF>");
    trace.addInfo("trigerring the SOAP channel ");
    try{
    Channel channel = LookupService.getChannel(sService,sChannelName);
    accessor = LookupService.getSystemAccessor(channel);
    isPayloadStream = new ByteArrayInputStream((sb.toString()).getBytes());
    trace.addInfo("creating the xml payload ");
    XmlPayload payload = LookupService.getXmlPayload(isPayloadStream);
    Payload result=accessor.call(payload);
    catch (Exception e){
    trace.addInfo(e.getMessage());
    finally{
    if ( accessor !=null) {
    accessor.close();
    return " ";
    The above code is throwing an error while end to end testing.
    the scenario is such,while graphical mapping a UDF will be used, which will create an Xml payload, and send this payload to another SOAP to file scenario.
    The error in the sxmb_moni is:  "Error when calling an adapter by using the communication channel CC_123085_UDF_SOAP_OUT (Party: , Service: BC_123082_REMADV_D96A, Object ID: fa9c6ee15efc30c68ec34b08034d87d1) XI AF API call failed. Module exception: 'failed to set up the channel fa9c6ee15efc30c68ec34b08034d87d1'. Cause Exception: 'Channel stopped by administrative task.'."
    Please can anyone suggest how this error can be rectified.
    regards,
    Meenakshi

    Hi,
    i have checked the communication channel and the XML. The following error occurs everytime i try to run the scenario.
    Error:
    Error when calling an adapter by using the communication channel CC_123082_UDFRECEIVER_SOAP_IN (Party: , Service: BC_123082_REMADV_D96A, Object ID: 2a895589066d30d4b2686e9d3a8d4c8d) XI AF API call failed. Module exception: 'SOAP Error'. Cause Exception: 'SOAP: response message contains an error XIAdapter/HTTP/ADAPTER.HTTP_EXCEPTION - HTTP 400 Bad Request'
    Please let me know how this error can be resolved.
    Regards,
    Meenakshi

  • Calling a Stored Procedure From Database Using XI.

    Hi,
    Please help in writing a UDF for these fields in mapping, which I need for the object Iu2019m doing currently.
    The fields are like this:
    1) batch_no = "TRUNC((GetMaxObjid('x_txn_sap_parts')-POWER(2,28))/5000)+1",
    2) lot_id = "TRUNC((GetMaxObjid('x_txn_sap_parts')-POWER(2,28))/500)+1",
    3) How to use JDBC connection factory class in the UDF.
    Some logic I can provide which I know i.e. Power (2, 28) means 2 to the power of 28 (2 multiplied 28 times), Trunc means truncate, X_TXN_SAP_Parts is a database table.The Target fields are Batch_no, lot_id & Objid.Actually, objid is mapped initially to a source field i.e. Object ID and in this function it is only being used for the calculation of the batch_no.
    I've tried to use this code but still I'm unable to execute the mapping.
    import java.util.*;
    import com.sap.aii.mapping.lookup.*;
    import com.sap.aii.mapping.lookup.*;
    DataBaseAccessor accessor = null;
    DataBaseResult JDBCOutPayload = null;
    String BusinessSystem="clarify_dev_bizsys";
    //give your business system having channel name
    String CommunicationChannel="JDBC_TO_CDEV";
    //give your channel name
    String InputPayload= " select X_TXN_PRE_SITE_XFACE.nextval from dual;";
    //give your sql query
    try {
    Channel channel =
    LookupService.getChannel(BusinessSystem,CommunicationChannel);
    accessor = LookupService.getDataBaseAccessor(channel);
    DataBaseResult resultSet = accessor.execute(InputPayload);
    for(Iterator rows = resultSet.getRows();rows.hasNext();){
    Map rowMap = (Map)rows.next();
    Object cValue = rowMap.get("batchno");
    //field name of field required , as in database
    catch (Exception e) {}
    finally {
    if (accessor != null)
    accessor.close();
    result.addValue((String)cValue);
    --> I don't know what are the parameters to be used and how to be used in the UDF because this is the first time I'm writing a UDF.
    --> The problem in using this query is that both OBJID & BatchNo. are on the target side and the value for the OBJID is retrieved by a SELECT query from the database.
    Kindly help me how to resolve this query of mine.
    Thanks in Advance.
    Sreedhar.

    Hi,
    The scenario is like I've to get a field (OBJID) value after using a SELECT statement from the database and use the same value for calculating another field values which is BATCHNO & LOTID.
    OBJID, BATCHNO and LOTID are from the same database.
    Thats all I was provided as the input.
    Do let me know if you need anymore information. I'll try to give as much input to the extent I know.
    Sreedhar.

  • UDF For Retrieving the Tax Code based on PO

    Hi all,
    Mine is a file to Idoc scenario.
    I wrote a FM to retrieve the Tax Code based on PO .
    Created the udf which directly gets the Taxcode from the r/3 with out importing in to the imported objects,is this correct i never tried this before.
    Find the UDF for the Same.
    final String    CHANNEL_NAME = "GeneratedReceiverChannel_RFC",
         VALNOTFOUND = "VALUE_NOT_FOUND",
         SAPRFCNS = "urn:sap-com:document:sap:rfc:functions",
         TAG_FM = "Z_P_INT012_RFC_LOOKUP",
         TAG_TAX_CODE = "T_TAX_CODE",
         TAG_TAX_CODE_P = "TAX_CODE";
    AbstractTrace trace = container.getTrace();
              DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
              DocumentBuilder builder = null;
              factory.setNamespaceAware(false);
              factory.setValidating(false);
              try {
                   builder = factory.newDocumentBuilder();
              } catch (Exception e) {
                   trace.addWarning("Error creating DocumentBuilder - " + e.getMessage());
              Document docReq = null;
              try {
                   // Building up RFC Request Document
                   docReq = builder.newDocument();
                   Node root = docReq.appendChild(docReq.createElementNS(SAPRFCNS, TAG_FM));
                   Node nodeTbOpt = root.appendChild(docReq.createElement(TAG_TAX_CODE));
                   for (int i = 0; i < pernr.length; i++) {
                        Node nodeTbOptItem = nodeTbOpt.appendChild(docReq.createElement("item"));
                        nodeTbOptItem.appendChild(docReq.createElement(TAG_TAX_CODE_P)).appendChild(docReq.createTextNode(TAX_CODE<i>));
              } catch (Exception e) {
                   trace.addWarning("Error while building RFC Request  - " + e);
              trace.addInfo("RFC Request XML: " + docReq.toString());
                                                    //trace.addWarning("RFC Request XML: " + docReq.toString());
              // Lookup
              Payload load = null;
              try {
                   Channel channel = LookupService.getChannel(receiver[0], CHANNEL_NAME);
                   RfcAccessor accessor = LookupService.getRfcAccessor(channel);
                   InputStream is = new ByteArrayInputStream(docReq.toString().getBytes());
                   XmlPayload payload = LookupService.getXmlPayload(is);
                   load = accessor.call(payload);
              } catch (LookupException e) {
                   trace.addWarning("Error during lookup - " + e);
              // Parsing RFC Response Document
              Document docRsp = null;
              try {
                   docRsp = builder.parse(load.getContent());
              } catch (Exception e) {
                   trace.addWarning("Error when parsing RFC Response - " + e.getMessage());
              trace.addInfo("RFC Response XML: " + docRsp.toString());
                                                    //trace.addWarning("RFC Response XML: " + docRsp.toString());
              try {
                   NodeList res = docRsp.getElementsByTagName("item");
                   for(int i=0;i<res.getLength();i++){
                        NodeList itemNodes = res.item(i).getChildNodes();
                        Map itemMap = new HashMap();
                        for(int j=0;j<itemNodes.getLength();j++){
                             itemMap.put(itemNodes.item(j).getNodeName(), itemNodes.item(j).getFirstChild().getNodeValue());
                        rows.add(itemMap);
                                                            catch (Exception e) {
                   trace.addWarning("Result value not found in DOM - " + e);
                   result.addValue("true");
    Error:
    16:24:08 Start of test
    Source code has syntax error:  /usr/sap/XD1/DVEBMGS30/j2ee/cluster/server0/./temp/classpath_resolver/Map283041f0edf311dd960b0003bacd2461/source/com/sap/xi/tf/_MM_INT012_INVOICE_DET_.java:598: 'class' or 'interface' expected public void TaxValues$(String[] a,String[] b,ResultList result,Container container){ ^ /usr/sap/XD1/DVEBMGS30/j2ee/cluster/server0/./temp/classpath_resolver/Map283041f0edf311dd960b0003bacd2461/source/com/sap/xi/tf/_MM_INT012_INVOICE_DET_.java:618: 'class' or 'interface' expected } ^ /usr/sap/XD1/DVEBMGS30/j2ee/cluster/server0/./temp/classpath_resolver/Map283041f0edf311dd960b0003bacd2461/source/com/sap/xi/tf/_MM_INT012_INVOICE_DET_.java:619: 'class' or 'interface' expected ^ 3 errors  Source code has syntax error:  /usr/sap/XD1/DVEBMGS30/j2ee/cluster/server0/./temp/classpath_resolver/Map283041f0edf311dd960b0003bacd2461/source/com/sap/xi/tf/_MM_INT012_INVOICE_DET_.java:598: 'class' or 'interface' expected public void TaxValues$(String[] a,String[] b,ResultList result,Container container){ ^ /usr/sap/XD1/DVEBMGS30/j2ee/cluster/server0/./temp/classpath_resolver/Map283041f0edf311dd960b0003bacd2461/source/com/sap/xi/tf/_MM_INT012_INVOICE_DET_.java:618: 'class' or 'interface' expected } ^ /usr/sap/XD1/DVEBMGS30/j2ee/cluster/server0/./temp/classpath_resolver/Map283041f0edf311dd960b0003bacd2461/source/com/sap/xi/tf/_MM_INT012_INVOICE_DET_.java:619: 'class' or 'interface' expected ^ 3 errors
    16:24:11 End of test.

    Hi Potharaju,
    Why don't you try this, that really works:
    If you are using PI 7.1:
    http://help.sap.com/saphelp_nwpi71/helpdata/en/33/1ec6ced273493a993a80c2301c03da/frameset.htm
    If you are using XI 3.0, PI 7.0
    https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/a03e7b02-eea4-2910-089f-8214c6d1b439
    Try with these.
    Regards,
    Juan

  • Issue in standard RFCLookup using SALERT_CREATE

    Hello Experts,
    I'm trying to call FM salert_create using standard RFCLookup but my problem is:
    Though i pass all the input values, Alert is getting created only with one value.
    Below are my Queue values
    but the alert is getting created only with the first value "Dummy Message".
    so this means that the FM is called only with the first value.
    could you please help?

    Hi Glory
    Write an UDF and pass all the input values in a single queue. Then inside the UDF write the code for RFC look up.
    Use a for loop to populate the item node. I think that will work.
    Sample code
    java.util.Map map;
    try {
    String msgid;
    map = container.getTransformationParameters();
    msgid = (String) map.get(StreamTransformationConstants.MESSAGE_ID);
    Channel channel = LookupService.getChannel("XXXCLNT100","CC_RFC_R_PI");
    RfcAccessor accessor = LookupService.getRfcAccessor(channel);
    String rfcXML= "<ns0:SALERT_CREATE xmlns:ns0=\"urn:sap-com:document:sap:rfc:functions\">"+
          "<IP_ALIAS/>"+
          "<IP_APPLICATION_GUID/>"+
          "<IP_CAT>ALERT_TEST_UDF</IP_CAT>"+
          "<IP_XML_CONTAINER/>"+
          "<IT_CONTAINER>"+
             "<item>"+
                "<ELEMENT>ZCUSTOMER</ELEMENT>"+
                "<TAB_INDEX>0</TAB_INDEX>"+
                "<ELEMLENGTH>20</ELEMLENGTH>"+
                "<TYPE>C</TYPE>"+
                "<VALUE>"+pnum+"</VALUE>"+
             "</item>"+
               "<item>"+
                "<ELEMENT>ZMSGID</ELEMENT>"+
                "<TAB_INDEX>1</TAB_INDEX>"+
                "<ELEMLENGTH>70</ELEMLENGTH>"+
                "<TYPE>C</TYPE>"+
                "<VALUE>"+msgid+"</VALUE>"+
             "</item>"+
          "</IT_CONTAINER>"+
        "</ns0:SALERT_CREATE>";
    InputStream inputStream =new ByteArrayInputStream(rfcXML.getBytes());
    XmlPayload payload = LookupService.getXmlPayload(inputStream);
    Payload rfcOutPayload = accessor.call(payload);
    throw new  StreamTransformationException ( " Message Mapping Failed because of invalid Customer number");
    catch(Exception e)
      throw new RuntimeException("Exception while checking for Distribution channel : "+e);

  • Need help on RFC look up in PI 7.0

    Dear experts ,
    I am working on Jdbc to Abap Proxy  scenario where i need to perform a RFC Look up . I have searched in SCN  and found some help ful blogs, but still need more information in below points.
    My requirement is need to fetch Cost Center (KOSTL) by taking Personal number(PERNR)  as Input parameter.
    1) Do we have to create and import the RFC into PI ?
    2) Do we need to create a UDF ? If yes, Kindly provide some useful links.
    Thanks in Advance,
    Mohammed

    Hi indrajit,
      i had written :  java.util.Map map;" in the import secion of UDF. but still i am getting the following errors
    Source code has syntax error:  /usr/sap/XD1/DVEBMGS00/j2ee/cluster/server0/./temp/classpath_resolver/Map2d519647b0c211e39616000000844522/source/com/sap/xi/tf/_MM_RMF_TO_SAP_.java:3: cannot resolve symbol symbol : class map location: interface java.util.Map import com.sap.aii.mappingtool.tf3.*;import com.sap.aii.mappingtool.tf3.rt.*;import java.util.*;import java.io.*; import java.lang.reflect.*;import java.util.Map.map; ^ /usr/sap/XD1/DVEBMGS00/j2ee/cluster/server0/./temp/classpath_resolver/Map2d519647b0c211e39616000000844522/source/com/sap/xi/tf/_MM_RMF_TO_SAP_.java:257: cannot resolve symbol symbol : class RfcAccessor location: class com.sap.xi.tf._MM_RMF_TO_SAP_ RfcAccessor accessor = null; ^ /usr/sap/XD1/DVEBMGS00/j2ee/cluster/server0/./temp/classpath_resolver/Map2d519647b0c211e39616000000844522/source/com/sap/xi/tf/_MM_RMF_TO_SAP_.java:262: cannot resolve symbol symbol : class Channel location: class com.sap.xi.tf._MM_RMF_TO_SAP_ Channel channel = LookupService.getChannel(BS_SAP_R3,CC_RFC_LOOK_UP_CRMNEXT); ^ /usr/sap/XD1/DVEBMGS00/j2ee/cluster/server0/./temp/classpath_resolver/Map2d519647b0c211e39616000000844522/source/com/sap/xi/tf/_MM_RMF_TO_SAP_.java:262: cannot resolve symbol symbol : variable BS_SAP_R3 location: class com.sap.xi.tf._MM_RMF_TO_SAP_ Channel channel = LookupService.getChannel(BS_SAP_R3,CC_RFC_LOOK_UP_CRMNEXT); ^ /usr/sap/XD1/DVEBMGS00/j2ee/cluster/server0/./temp/classpath_resolver/Map2d519647b0c211e39616000000844522/source/com/sap/xi/tf/_MM_RMF_TO_SAP_.java:262: cannot resolve symbol symbol : variable CC_RFC_LOOK_UP_CRMNEXT location: class com.sap.xi.tf._MM_RMF_TO_SAP_ Channel channel = LookupService.getChannel(BS_SAP_R3,CC_RFC_LOOK_UP_CRMNEXT); ^ /usr/sap/XD1/DVEBMGS00/j2ee/cluster/server0/./temp/classpath_resolver/Map2d519647b0c211e39616000000844522/source/com/sap/xi/tf/_MM_RMF_TO_SAP_.java:262: cannot resolve symbol symbol : variable LookupService location: class com.sap.xi.tf._MM_RMF_TO_SAP_ Channel channel = LookupService.getChannel(BS_SAP_R3,CC_RFC_LOOK_UP_CRMNEXT); ^ /usr/sap/XD1/DVEBMGS00/j2ee/cluster/server0/./temp/classpath_resolver/Map2d519647b0c211e39616000000844522/source/com/sap/xi/tf/_MM_RMF_TO_SAP_.java:264: cannot resolve symbol symbol : variable LookupService location: class com.sap.xi.tf._MM_RMF_TO_SAP_ accessor = LookupService.getRfcAccessor(channel); ^ /usr/sap/XD1/DVEBMGS00/j2ee/cluster/server0/./temp/classpath_resolver/Map2d519647b0c211e39616000000844522/source/com/sap/xi/tf/_MM_RMF_TO_SAP_.java:268: cannot resolve symbol symbol : class XmlPayload location: class com.sap.xi.tf._MM_RMF_TO_SAP_ XmlPayload payload = LookupService.getXmlPayload(inputStream); ^ /usr/sap/XD1/DVEBMGS00/j2ee/cluster/server0/./temp/classpath_resolver/Map2d519647b0c211e39616000000844522/source/com/sap/xi/tf/_MM_RMF_TO_SAP_.java:268: cannot resolve symbol symbol : variable LookupService location: class com.sap.xi.tf._MM_RMF_TO_SAP_ XmlPayload payload = LookupService.getXmlPayload(inputStream); ^ /usr/sap/XD1/DVEBMGS00/j2ee/cluster/server0/./temp/classpath_resolver/Map2d519647b0c211e39616000000844522/source/com/sap/xi/tf/_MM_RMF_TO_SAP_.java:270: cannot resolve symbol symbol : class Payload location: class com.sap.xi.tf._MM_RMF_TO_SAP_ Payload result = null; ^ /usr/sap/XD1/DVEBMGS00/j2ee/cluster/server0/./temp/classpath_resolver/Map2d519647b0c211e39616000000844522/source/com/sap/xi/tf/_MM_RMF_TO_SAP_.java:275: cannot resolve symbol symbol : class DocumentBuilderFactory location: class com.sap.xi.tf._MM_RMF_TO_SAP_ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); ^ /usr/sap/XD1/DVEBMGS00/j2ee/cluster/server0/./temp/classpath_resolver/Map2d519647b0c211e39616000000844522/source/com/sap/xi/tf/_MM_RMF_TO_SAP_.java:275: cannot resolve symbol symbol : variable DocumentBuilderFactory location: class com.sap.xi.tf._MM_RMF_TO_SAP_ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); ^ /usr/sap/XD1/DVEBMGS00/j2ee/cluster/server0/./temp/classpath_resolver/Map2d519647b0c211e39616000000844522/source/com/sap/xi/tf/_MM_RMF_TO_SAP_.java:276: cannot resolve symbol symbol : class DocumentBuilder location: class com.sap.xi.tf._MM_RMF_TO_SAP_ DocumentBuilder builder = factory.newDocumentBuilder(); ^ /usr/sap/XD1/DVEBMGS00/j2ee/cluster/server0/./temp/classpath_resolver/Map2d519647b0c211e39616000000844522/source/com/sap/xi/tf/_MM_RMF_TO_SAP_.java:277: cannot resolve symbol symbol : class Document location: class com.sap.xi.tf._MM_RMF_TO_SAP_ Document document = builder.parse(in); ^ /usr/sap/XD1/DVEBMGS00/j2ee/cluster/server0/./temp/classpath_resolver/Map2d519647b0c211e39616000000844522/source/com/sap/xi/tf/_MM_RMF_TO_SAP_.java:278: cannot resolve symbol symbol : class NodeList location: class com.sap.xi.tf._MM_RMF_TO_SAP_ NodeList list = document.getElementsByTagName("I_KOSTL"); // The lookupValue is available as WA tag in the response ^ /usr/sap/XD1/DVEBMGS00/j2ee/cluster/server0/./temp/classpath_resolver/Map2d519647b0c211e39616000000844522/source/com/sap/xi/tf/_MM_RMF_TO_SAP_.java:279: cannot resolve symbol symbol : class Node location: class com.sap.xi.tf._MM_RMF_TO_SAP_ Node node = list.item(0); ^ /usr/sap/XD1/DVEBMGS00/j2ee/cluster/server0/./temp/classpath_resolver/Map2d519647b0c211e39616000000844522/source/com/sap/xi/tf/_MM_RMF_TO_SAP_.java:283: cannot resolve symbol symbol : variable returnValue location: class com.sap.xi.tf._MM_RMF_TO_SAP_ returnValue = node.getNodeValue(); ^ /usr/sap/XD1/DVEBMGS00/j2ee/cluster/server0/./temp/classpath_resolver/Map2d519647b0c211e39616000000844522/source/com/sap/xi/tf/_MM_RMF_TO_SAP_.java:290: cannot resolve symbol symbol : class LookupException location: class com.sap.xi.tf._MM_RMF_TO_SAP_ } catch (LookupException e) { ^ 18 errors
    so can you please explain, how can i import those files.

  • In XI mapping, how to get number from a number_range object in SAP R/3

    HI All,
    I have a scenario where I need to read a Number_range object  in SAP R/3 or ABAP XI and retreive the current number.
    I need to use this number during the message mapping.
    (I read about JCO and RFC, but am a little confused about how-to and what is the correct approach)
    Just to let you know, I do not want to pass this number in the original IDOC coming from IDOC, so I need this lookup.
    Scenario:
    In MM, make a call to SAP.
    Get the latest number from SNRO( number-range object)
    Use this number in mapping.
    Any help pointers, greatly appreciated.
    Many thanks
    Shirin

    Shrin,
    Please find the parameters you need to specify while creating UDF
    Imports:javax.xml.transform.stream.StreamResult;com.sap.aii.mapping.lookup.;javax.xml.transform.dom.DOMSource;javax.xml.parsers.DocumentBuilder;java.io.;javax.xml.parsers.;org.w3c.dom.;org.xml.sax.;javax.xml.transform.;
    The Template for RFC Lookup
    String content = "";
    MappingTrace importanttrace;
    importanttrace = container.getTrace() ;
    //Filling the string with our RFC-XML (With Values)
    String m = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><ns0:<Function Module name>xmlns:ns0=\"urn:sap-com:document:sap:rfc:functions\"></ns0:ZFI_GET_RUNID> ";
    RfcAccessor accessor = null;
    ByteArrayOutputStream out = null;
    try
    //1. Determine a channel (Business System, Communication channel)
    Channel channel = LookupService.getChannel("<Business System Name>","Communication channel name");
    //2. Get a RFC accesor for a channel.
    accessor = LookupService.getRfcAccessor(channel);
    //3. Create a xml input stream representing the FM request message.
    InputStream inputstream = new ByteArrayInputStream(m.getBytes());
    //4. Create xml Payload
    XmlPayload payload  =  LookupService.getXmlPayload(inputstream);
    //5. Execute Lookup
    Payload result = accessor.call(payload);
    InputStream in = result.getContent();
    //This are the extra step which i dont know what it mean
    //out = new ByteArrayOutputStream(1024);
    //byte[] buffer = new byte[1024];
    //for (int read = in.read(buffer); read > 0; read = in.read(buffer))
    //out.write(buffer,0,read);
    //content = out.toString();
    try {
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    DocumentBuilder builder = factory.newDocumentBuilder();
    Document document = builder.parse(in);
    NodeList list = document.getElementsByTagName( "REsult" );
    Node node = list.item(0);
    if (node  != null)
         node = node.getFirstChild();
         if (node  != null)
              content = node.getNodeValue();
    } catch (Exception e) {
    importanttrace.addWarning("Error while closing accesor" + e.getMessage());
    catch (LookupException e)
    importanttrace.addWarning("Error While lookup" + e.getMessage());
    //This exception is not to be catch at this step as there is no try step before this
    //catch (IOException e)
    //importanttrace.addWarning("Error" + e.getMessage());
    finally
    if(out!=null)
      try{
           out.close();
    } catch (IOException e) {
    importanttrace.addWarning("Error while closing system" + e.getMessage());
    //7. close the accessor in order to free resources
    if (accessor!=null) {
    try{
          accessor.close();
    } catch (Exception e) {
    importanttrace.addWarning("Error while closing accesor" + e.getMessage());
    return content;
    Have mentioned in genric  where u need to specify the communication channel name, business service etc.,
    Moreover there is a field result, which is the output returned from the FM

  • Error in User defined function for jdbc lookup

    I am getting th error as follows "Method TestJDBCAPI$ with 2 arguments not found in class com.sap.xi.tf._JLU_MM_" when i a m testing in message mapping

    //write your code here
    String Query = " ";
    Channel channel = null;
    DataBaseAccessor accessor = null;
    DataBaseResult resultSet = null;
    //Build the Query String
    Query = "Select role from login where username = " + username[0] + " and password = " + password[0] ;
    try{
    //Determine a channel as created in the configuration
    channel = LookupService.getChannel("JLU_BUSS","JLU_chan");
    //  Get a system accessor for a channel.As the call is being made to the database an database accessor is obtained.
    accessor = LookupService.getDataBaseAccessor(channel);
    // Execute the Query and get the values in the resultSet.
    resultSet = accessor.execute(Query);
    for(Iterator rows = resultSet.getRows();rows.hasNext();)
    Map rowMap = (Map)rows.next();
    result.addValue((String)rowMap.get("role"));
    catch(Exception ex){
    result.addValue(ex.getMessage());
    Above is my udf.My logic is that for the given username and password it should select the corresponding role from the database.

  • Soap lookup in PI7.31 message mapping

    Hi All,
    I have a soap lookup created in UDF in PI message mapping
    I am taking material id from the source structure and use it as input parameter for the lookup webservice
    Here is the UDF code which takes material number and returns the internal id
    AbstractTrace trace = container.getTrace();
    String matintid = "";
    try {
    //instance the channel to invoke the service.
    Channel channel = LookupService.getChannel("BS_Bus","CC_SearchLookup");
    SystemAccessor accessor = LookupService.getSystemAccessor(channel);
    // The Request message in XML. THIS IS THE LOOKUP SERVICE
      String SOAPxml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><searchTM_MATERIAL>xmlns:ns0=\"MDM_MAT_Search_MDM"><query><criteria><fTX_MATERIAL><constraint><value>"
    +a
    + "</value><expressionOperator>equals</expressionOperator></constraint></fTX_MATERIAL></criteria></query><reposInfo><repositoryName>REP_MATERIALS</repositoryName><serverName>mdm6765</serverName></reposInfo></searchTM_MATERIAL>";
    InputStream inputStream =new ByteArrayInputStream(SOAPxml.getBytes());
    XmlPayload payload = LookupService.getXmlPayload(inputStream);
    Payload SOAPOutPayload = null;
    //The response will be a Payload. Parse this to get the response field out.
    SOAPOutPayload = accessor.call(payload);
    /* Parse the SOAPPayload to get the SOAP Response back.  */
    InputStream inp = SOAPOutPayload.getContent(); 
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); 
    /* Create DOM structure from input XML */ 
    DocumentBuilder builder = factory.newDocumentBuilder(); 
    Document document = builder.parse(inp);
    NodeList matlist = document.getElementsByTagName("tM_MATERIAL");
    Element material = (Element) matlist.item(0);
    NodeList recidlist = material.getElementsByTagName("recordIdentification");
    Element recidnode = (Element)recidlist.item(0);
    matintid = recidnode.getNodeValue();
    trace.addInfo("matnid is" + matintid);
    } catch (Exception e) {
    trace.addWarning("Error" + e);  }
    trace.addInfo("Service XXX success executed");
    return matintid;
    This is giving a java null point error
    Errorjava.lang.NullPointerException: while trying to invoke the method org.w3c.dom.Element.getElementsByTagName(java.lang.String) of a null object loaded from a local variable at slot 16
    Any idea whats going on? I am able to get response for the webservice using SOAP UI 
    And here is the soap input and output in SOAP UI execution
    Input
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:MDM_MAT_Search_MDM" xmlns:urn1="urn:com.sap.mdm.ws.beans.mdt_mat_search_mdm_in" xmlns:urn2="urn:com.sap.mdm.ws.beans" xmlns:urn3="urn:com.sap.mdm.core.beans">
       <soapenv:Header/>
       <soapenv:Body>
          <urn:searchTM_MATERIAL>
             <urn:query>
                <!--Optional:-->
                <urn1:criteria>
                     <!--Optional:-->
                   <urn1:fTX_MATERIAL>
                      <urn2:constraint>
                         <!--Optional:-->
                         <urn2:value>12345</urn2:value>
                         <!--Optional:-->
                         <urn2:expressionOperator>equals</urn2:expressionOperator>
                      </urn2:constraint>
                   </urn1:fTX_MATERIAL>
                </urn1:criteria>
             </urn:query>
             <urn:reposInfo>
                <urn3:repositoryName>REP_MATERIALS</urn3:repositoryName>
                <urn3:serverName>mdm1234</urn3:serverName>
             </urn:reposInfo>
          </urn:searchTM_MATERIAL>
       </soapenv:Body>
    </soapenv:Envelope>
    Output:
    <SOAP-ENV:Envelope xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
       <SOAP-ENV:Body xmlns:rpl="urn:MDM_MAT_Search_MDM">
          <rpl:searchTM_MATERIALResponse xmlns:rn0="java:sap/standard" xmlns:rn1="urn:com.sap.mdm.ws.beans" xmlns:rn2="http://schemas.xmlsoap.org/soap/encoding/" xmlns:rn3="urn:com.sap.mdm.core.base" xmlns:rn4="urn:com.sap.mdm.ws.beans.mdt_mat_search_mdm_in" xmlns:rn5="urn:com.sap.mdm.core.beans">
             <rpl:Response>
                <rn1:executionStatus>
                   <rn1:status>OK</rn1:status>
                   <rn1:description>Search/Retrieve done successfully</rn1:description>
                   <rn1:dataObject>Records 1..1 of 1 found</rn1:dataObject>
                </rn1:executionStatus>
                <rn4:tM_MATERIAL>
                  <rn4:fTX_MATERIAL>12345</rn4:fTX_MATERIAL>    
                 <rn4:recordIdentification>
                       <rn4:internalID>1267</rn4:internalID>
                    </rn4:recordIdentification>
           </rn4:tM_MATERIAL>
             </rpl:Response>
          </rpl:searchTM_MATERIALResponse>
    Thx
    mike

    Hi Mike,
    What I suspect is, you get a null pointer exception because the XML tag name which you are trying to retrieve, has a namespace. Could you please instead try to use:
    getElementsByTagNameNS(java.lang.String namespaceURI, java.lang.String localName)
              Returns a NodeList of all the Elements with a given local name and namespace URI in document order.
    Let us know if it works.
    Regards,
    Shweta

  • XML parsing in UDF

    Hi everyone!
    First, I must say that I don't know anything about java/XML programming(I'm sorry)!
    I'm just looking for some guiding lights for the following;
    In the Message Mapping (IB), I'm trying to do a RFC Lookup to R/3 using a BAPI call.  I followed Michal Krawczyk's "Mapping lookups - RFC API:
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/a03e7b02-eea4-2910-089f-8214c6d1b439
    And now I need to parse the XML response and retrieve a value from it!
    I would like to know if the following portion of code is ok and wheere should I put it?
    Code:
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    // Create DOM structure
    DocumentBuilder builder = factory.newDocumentBuilder();
    Document document = builder.parse(content);
    // Lets find my tag
    NodeList list = document.getElementsByTagName("Number");
              Node node = list.item(0);
              if (node != null) {
                   node = node.getFirstChild();
              if (node != null) {
                   tagValue = node.getNodeValue();
    Thanks a lot for your help!

    Thank you for the links!!!
    I've consulted all of them and when I try to run the code, I'm getting the following message:
    unreported exception org.xml.sax.SAXException; must be caught or declared to be thrown document = builder.parse(result.getContent());
    Could you help me fix that issue?
    Here's the code in question
    String m = "<?xml version="+"1.0" "encoding=""UTF-8""?>"
    "<ns0:BAPI_CUSTOMER_FIND""xmlns:ns0=""urn:sap-com:document:sap:rfc:functions>"+"<RESULT_TAB></RESULT_TAB><SELOPT_TAB><item><COMP_CODE>1000</COMP_CODE><TABNAME>KNA1</TABNAME><FIELDNAME>SORTL</FIELDNAME><FIELDVALUE>004258</FIELDVALUE></item></SELOPT_TAB></ns0:BAPI_CUSTOMER_FIND>";
    RfcAccessor accessor = null;
    ByteArrayOutputStream out = null;
    importanttrace = null;
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    DocumentBuilder builder = null;
    factory.setNamespaceAware(false);
    factory.setValidating(false);
    Document document = null;
    try
              builder = factory.newDocumentBuilder();
              } catch (Exception e) {
                   importanttrace.addWarning("Error creating DocumentBuilder -" + e.getMessage());
                   return null;
    try
              //1. Determine a channel (Business system, Communication channel).
              Channel channel = LookupService.getChannel ("BS_FSCM_AR_CLNT100","CC_RFC_TEST");
              //2. Get a RFC accessor for a channel.
              accessor = LookupService.getRfcAccessor(channel);
              //3. Create a xml input stream representing the function module request message.
              InputStream inputStream = new ByteArrayInputStream(document.toString().getBytes());     
              //4. Create xml payload.
              XmlPayload payload = LookupService.getXmlPayload(inputStream);
              //5. Execute lookup.
              Payload result = accessor.call(payload);
              document = builder.parse(result.getContent());
              //InputStream in = result.getContent();
              out = new ByteArrayOutputStream(1024);
              byte [] buffer = new byte[1024];
              for (int read = inputStream.read(buffer); read > 0; read = inputStream.read(buffer)) {
                   out.write(buffer, 0, read);
              content = out.toString();
    Thanks for your help!

Maybe you are looking for

  • Pre9 Crashes and Memory

    Hello, I am 90% done with a video that is about 20 minutes long. It contains video and photo images. I cannot complete the project because PrE keeps crashing I believe due to memory. My machine is XP with 4GB RAM. I took the steps recommended. All my

  • ERROR: browser.tabs.onTop not working now, my reason for using Firefox gone forever now?

    In the latest FF, setting the browser.tabs.onTop has no effect. I believe this is completely wrong step in UI because thinking of the user's focus: - The web page is the 'topmost' content having user's focus for the most of the time - The next are th

  • HP Photosmart Pro B9180 - Printing photos on Hi Gloss paper.

    I am a professional photographer and I have an application that requires perfect glossy prints.  When I compared the prints that are output of the B9180 to the prints I have done at the professional studio,  there is no comparison.  The professionall

  • No option where to install XP

    I have Leopard on my mini and formatted my drive for XP. When the XP install gets to the blue screen asking where to install, I do not get the options where to install mentioned in the BootCamp instructions, I just get Windows asking what to do (inst

  • Accessing Runtime Information - ERROR - HELP

    Hi all, I am trying to access the runtime MBean with the sample code given in the WebLogic online document Here is the part of the code try {             System.out.println("\n----Trying to access runtime mbean \n"); mbeanSet = home.getMBeansByType("