SOAP lookups from withing message mapping

Hi
   We are doing a call to a webservice from within a udf in a message mapping using the SOAP API described in one of the blogs in SDN. We are using a soap receiver communication channel to make this webservice call -
We see activity on the communication channel monitoring - indicating that there is a call going out and a response coming back from the webservice. But there are no details shown on the payload in communication channel monitoring. We do not see this webservice lookup as a message on the adapter engine either ?
Is there any place from within XI runtime environment we can get a hold of the message going out to webservice call and the return from webservice ?  We are facing problems in the webservice not doing the required action desired and hence this question on visibility of the call to the webservice.
Thanks in advance for your time.

My udf is basically makes a call to the webserservice lookup method ( line - CallCentralMonitoring.LogToCentralMonitoring( "IN130.10", "COMPLETED"); ) - the definition of CallCentralMonitoring class is given below after the udf
UDF
String adapter = "RECEIVE_FusionDBLookUpRequest";
Channel channel = null;
boolean retry = false;
int noOfRetries = 0;
String sqlQuery = new String("");
DataBaseAccessor accessor = null;
DataBaseResult resultSet = null;
String parameterValue = new String("");
MappingTrace trace = container.getTrace();
// Build the Query String
//sqlQuery = "select * from CTL_BusinessRules with (nolock) where parameter_key = '" + parameterKey + "'";
sqlQuery = "exec uspCTL_GetBusinessRule '" + parameterKey + "'";
do
     try
          //trace.addInfo( "SQL query is: " + sqlQuery);
          // Determine a channel, as created in the Configuration
          channel = LookupService.getChannel(businessService,adapter);
          // Get a system accessor for the channel. As the call is being made to a DB, a DatabaseAccessor is obtained.
          accessor = LookupService.getDataBaseAccessor(channel);
          //trace.addInfo( "Successfully obtained the system accessor..." );
          // Execute Query and get the values in resultset
          resultSet = accessor.execute(sqlQuery);
          Iterator rows = resultSet.getRows();
          //trace.addInfo( "Executed query successfully..." );
          while( rows.hasNext() )
               Map rowMap = (Map)rows.next();
               parameterValue =  rowMap.get("CHARACTER_VALUE").toString();
               //trace.addInfo( "Parameter Value is: " + parameterValue );
          retry = false;
          CallCentralMonitoring.LogToCentralMonitoring( "IN130.10", "COMPLETED");
          return parameterValue;
     catch( Exception ex )
          //trace.addInfo( ex.toString() );
          if ( noOfRetries < 3 )
               retry = true;
               noOfRetries++;
          else
               retry = false;
               CallCentralMonitoring.LogToCentralMonitoring( "SD152.01", "Error");
               ExceptionThrower.fire( "Database connectivity error: " + ex.toString() );
     finally
          try
               if ( accessor != null ) accessor.close();
          catch( Exception e )
               ExceptionThrower.fire("Error closing accesor: " + e.getMessage() );
               //return e.getMessage();
} while( retry );
return null;
Class CallCentralMonitoring
package com.xxxxx.xi.mapping.udf;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import com.sap.aii.mapping.lookup.Channel;
import com.sap.aii.mapping.lookup.LookupException;
import com.sap.aii.mapping.lookup.LookupService;
import com.sap.aii.mapping.lookup.Payload;
import com.sap.aii.mapping.lookup.SystemAccessor;
import com.sap.aii.mapping.lookup.XmlPayload;
public class CallCentralMonitoring {
     public static void LogToCentralMonitoring (String MON_EISLDCTLID, String MON_MsgStatus)  {
          String soapXML = new String("");
          /* Pass the Business System and Communication Channel as  input to the getChannel().
          /* BS_SOAPLOOKUP – Business System*CC_Webservice_SOAP_CURRENCY_CONVERTOR – Receiver SOAP Adapter */
          Channel channel = null;
          try {
               channel = LookupService.getChannel( "EI_CentralMonitoringServives", "Receive_SOAP_TrackingServiceWS" );
          } catch (LookupException e) {
               // TODO Auto-generated catch block
               e.printStackTrace();
          SystemAccessor accessor = null;
          try {
               accessor = LookupService.getSystemAccessor(channel);
          } catch (LookupException e) {
               // TODO Auto-generated catch block
               e.printStackTrace();
          /* Construct the SOAP Request Message using the InputParameters */          
          soapXML = "<LogToCentralMonitoring xmlns=\"http://xxxxx.EI.CentralMonitoring\"> <loggingData> <MON_EISLDCTLID>"
           + MON_EISLDCTLID
           + "</MON_EISLDCTLID><MON_ProgramID>"
           + MON_EISLDCTLID
           + "</MON_ProgramID><MON_ProcessID>"
           + MON_EISLDCTLID
           + "</MON_ProcessID><MON_ClientAlert>"
           + "N"
           + "</MON_ClientAlert><MON_MsgStartTimeStamp>"
           + "03/30/2007 10:00:00"
           + "</MON_MsgStartTimeStamp><MON_MsgEndTimeStamp>"
           + "03/30/2007 10:00:01"
           + "</MON_MsgEndTimeStamp><MON_MsgStatus>"
           + MON_MsgStatus
           + "</MON_MsgStatus><MON_MsgStatusDescription>"
           + MON_MsgStatus
           + "</MON_MsgStatusDescription> </loggingData> </LogToCentralMonitoring>";
          InputStream inputStream = new ByteArrayInputStream(soapXML.getBytes());
          XmlPayload payload = LookupService.getXmlPayload(inputStream);
          Payload soapOutPayload = null;
          /The SOAP call is made here and the response obtained is in the soapOutPayload./
          try {
               soapOutPayload = accessor.call(payload);
          } catch (LookupException e) {
               // TODO Auto-generated catch block
               e.printStackTrace();
     }//end LogToCentralMonitoring
}//end class

Similar Messages

  • Problem with message mapping ...

    Hello,
    I have problem with message mapping. I implemented SOAP-to-RFC scenario. The source message is of type http://sntcz.cz/xmlns/holidays:MT_Holiday, the target message of type urn:sap-com:document:sap:rfc:functions:Z_GET_SUPERIOR. But some error is still generated in Request Message Mapping step:
    com.sap.aii.utilxi.misc.api.BaseRuntimeException: RuntimeException in Message-Mapping transformation: Cannot produce target element /ns1:Z_GET_SUPERIOR/USR. Check xml instance is valid for source xsd and target-field mapping fulfills requirements of target xsd at com.sap.aii.mappingtool.tf3.AMappingProgram.start(AMappingProgram.java:403) at com.sap.aii.mappingtool.tf3.Transformer.start(Transformer.java:142) at com.sap.aii.mappingtool.tf3.AMappingProgram.execute(AMappingProgram.java:102) at .....
    This is XSD definition of source message:
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://sntcz.cz/xmlns/holidays" targetNamespace="http://sntcz.cz/xmlns/holidays">
    <xsd:element name="MT_Holiday" type="DT_Holiday" />
    <xsd:complexType name="DT_Holiday">
    <xsd:annotation>
    <xsd:appinfo source="http://sap.com/xi/TextID">
    030495e1742f11dd963600301875333b
    </xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
    <xsd:element name="SinceDay" type="xsd:string">
    <xsd:annotation>
    <xsd:appinfo source="http://sap.com/xi/TextID">
    fba049b067aa11dd8be6eee20abb2a3f
    </xsd:appinfo>
    </xsd:annotation>
    </xsd:element>
    <xsd:element name="SinceMounth" type="xsd:string">
    <xsd:annotation>
    <xsd:appinfo source="http://sap.com/xi/TextID">
    fba293a067aa11dda311eee20abb2a3f
    </xsd:appinfo>
    </xsd:annotation>
    </xsd:element>
    <xsd:element name="SinceYear" type="xsd:string">
    <xsd:annotation>
    <xsd:appinfo source="http://sap.com/xi/TextID">
    fba293a167aa11dd9b4eeee20abb2a3f
    </xsd:appinfo>
    </xsd:annotation>
    </xsd:element>
    <xsd:element name="UntilDay" type="xsd:string">
    <xsd:annotation>
    <xsd:appinfo source="http://sap.com/xi/TextID">
    fba293a267aa11ddc352eee20abb2a3f
    </xsd:appinfo>
    </xsd:annotation>
    </xsd:element>
    <xsd:element name="UntilMounth" type="xsd:string">
    <xsd:annotation>
    <xsd:appinfo source="http://sap.com/xi/TextID">
    fba293a367aa11ddc33aeee20abb2a3f
    </xsd:appinfo>
    </xsd:annotation>
    </xsd:element>
    <xsd:element name="UntilYear" type="xsd:string">
    <xsd:annotation>
    <xsd:appinfo source="http://sap.com/xi/TextID">
    fba293a467aa11dda8cfeee20abb2a3f
    </xsd:appinfo>
    </xsd:annotation>
    </xsd:element>
    <xsd:element name="UserId" type="xsd:string">
    <xsd:annotation>
    <xsd:appinfo source="http://sap.com/xi/TextID">
    fba293a567aa11dd9698eee20abb2a3f
    </xsd:appinfo>
    </xsd:annotation>
    </xsd:element>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:schema>
    This is XSD definition of target message:
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:sap-com:document:sap:rfc:functions" targetNamespace="urn:sap-com:document:sap:rfc:functions">
    <xsd:element name="Z_GET_SUPERIOR">
    <xsd:complexType>
    <xsd:all>
    <xsd:element name="USR" type="xsd:string" minOccurs="0" />
    </xsd:all>
    </xsd:complexType>
    </xsd:element>
    </xsd:schema>
    It's strange that if I use Message Mapping Test it works fine. But in pipeline not.
    Do you have any idea where could be the problem?
    Thank you in advance!
    Best regard,
    Zbynek

    Hi,
    To know the correct error Take the Inbound Payload from MONI and Test it in Mapping Test TAB. then u will come to know the exact error.
    Procedure to take the Payload
    goto MONI-Double click on MessageInbound Message ( CENTRAL ) --Payloads ---Double click on MainDocument ( application/xml ) -Just Right Click on the second window-View Source
    then now Copy this and paste it in Mapping Test and Execute.
    REgards
    Seshagiri

  • Get the mapping values from one message mapping into another message mappin

    Hi All,
    I created two graphical message mappings. In first message mapping i created one user defined function and set one global container parameter and I need to use this parameter in my second message mapping user defined function. But the global container parameters can be used in different user defined functions in same message mapping. So is there any way to use the values which are set in one message mapping into another message mapping. If yes, please help me how to get?

    Hi Koteswara rao,
      As you said global container parameters from first message mapping are not accessible from second message mapping program.
    i haven't faced situation like this.but, if you have some unmapped field in target message in first message mapping,you can put global variables data in that unmapped field.
    anyway the output of first message mapping would be input for 2nd messages mapping,so you can access global data(unmapped field filled with global data in 1st MM) from 2nd mapping program..
    Cheers,
    Jag

  • How to do this with message mapping in PI  ?

    Hi All,
    Field 1 = 100 characters having values in  first fifty characters and last 50 characters blank . I need to remove all the first 50 characters with blank and pass 100 blank characters .How to do this with message mapping
    Thanks

    Adding to that, since usually a tab = 8 spaces. What you can do is to open notepad, press tab 4 times. Copy it and paste 3 times, afterwards press space 4 more times and you get 100 spaces.
    Regards,
    Mark

  • RFC Lookup's in message mapping fail with RuntimeException for no reason

    Hi guys,
    We have developed interfaces that execute a lot of RFC's from Message Mapping, by making use of RFC Lookup API.
    In ID, in the corresponding RFC Receiver Communication Channel we have set the number of maximum connections to 100.
    However, when a big number of Idocs with lots of items is sent to XI some messages fail in XI because mapping fails with a runtime exception that is not correct, since there is a return value found from the execution of the RFC function. And when I am testing the mapping in Test mode of XI IR, the mapping is executed successfully.
    Do you think that by increasing the maximum number of connections in Communication Channel, it will take effect?
    Evaggelos

    Hi Evaggelos,
    DECREASE, may be til 10.
    Regards,
    Udo

  • Upgrading from XI/PI7.0 to 7.1 having problems with message mapping

    Hello,
    We are in the process over the past week of testing our XI/PI functionality after upgrading our 7.0 XI/PI environment to PI7.1; in particular several maps that were accessible in 7.0 will not open or diaplay in 7.1 complaining of a missing node in the mapping structure. Currently working with SAP on a possible fix but wanted to know if anyone else has done a true migration on top of an existing XI/PI7.0 system and experiencing similar issues (note: the maps can execute in the runtime environment but we can't display the maps source within message mapping; this also does not occur for all maps and there is no clear consistant theme to those that can be displayed and those that can't).
    The lattest issue just encountered related to message mapping is that in test mode of a map (that can be displayed) attempting to display the data queue for the mapped elements are blank no data being displayed giving an error noting that the source text of object message mapping: name of the map; has syntax errors, java area import line x, package ibm.com.xi.mapping does not exist/ import ibm.com.xi.mapping UDF:
    Has anyone upgraded from PI7.0 to 7.1 and experienced errors with existing maps that worked ok (ans still work in our QX/PRD systems) in their 7.0 envirinment but encountereing strange errors once upgrated to 7.1?
    Thanks
    Dereck Purnell
    NewellRubbermaid

    Here is the solution we received from SAP to address the issue, there were several mapping related issues we started havng from maps that worked in our 7.0 system prior to the upgrade to PI 7.1. I will try to encorporate the solutions in this response.
    a) From Customer to SAP
    1. We are unable to open some massage mapping, it is throwing
    exception
    2. Number Format functions throw exception.
    But following issue is still unresolved:
    3. When we display message queue, it throws exception
    ***) 05.02.2009 - 12:34:33 CET - Reply by SAP     
    The patch has been released at the Service Marketplace.
    Please update the scas described in the note 1264871.
    The "FormatNum" function issue has also been taken care in this patch.
    Please go through the Note 1264871 for other behaviour changes after
    upgrade. Let us know if you need any further help.
    Regards,
    B) From Customer to SAP
    04.02.2009 - 00:23:44 CET - Info for SAP
    We discovered another issue with mapping.
    For some of the mappings, we are unable to display mapping queue. When
    we execute, Interface mapping and Massage mapping, it works fine. But
    display queue throws exception. Itu2019s not able to recognize libraries
    used from dependent software component.
    Please find document "Display Mapping Queue Issue" providing example
    problem.
    25.02.2009 - 07:05:28 CET - *Reply by SAP*     
    Thank you for your update. I wanted to check with "CopyValue"
    function's index. It has to take an input integer and the problem that
    found while debugging the opening of your mapping is that the input
    was empty thus causing the exception.
    I was going to suggest the intended use of "CopyValue" function.
    When the input to "copyValue" is a constant, "copyValue" is totally
    not necessary. Thus constant can be directly mapped to other function.
    When the input is a node with values in context, you can treat one of
    values say input[0] to used in mapping by using CopyValue[0].
    But please make sure that input[0] will always produce a value.
    Note 877964 will describe in detail on Copyvalue usage.
    I am marking this Message as complete. Please confirm.

  • Is is possibel to do an RFC Lookup from The Graphical Mapping?

    Greetings,
    While doing a message mapping I need to get the value from R3 system using an RFC, is it is possible ?

    Hi
    we can do by using rfc look ups
    Lookup in mapping is the feature provided by SAP to lookup the data in the target R/3 or DB systems with the API provided.
    You need to write UDF in order to implement the API's provided by SAP.Consider the below example
    VendorNumber-UDF--CURR
    The scenario is legacy to SAP. The legacy system doesn't provide the currency details. But the target field need's to be populated with currency value.
    "The business rules says there are values maintained in SAP Table where if you pass VendorNumber it will return thr currency to you"
    So what you can do? You can write UDF implementing SAP Provided API's and do a lookup in the SAP System and get back the currency value and populate them in CURR field.
    I hope it clears a bit.
    Please find the below blogs
    DB Lookup: /people/siva.maranani/blog/2005/08/23/lookup146s-in-xi-made-simpler
    RFC Lookup:https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/a03e7b02-eea4-2910-089f-8214c6d1b439
    There are three types of look ups u can do
    RFC look up
    SOAP look up
    JDBC look up
    What is Lookup and why we need:
    Within an XI mapping it is a common requirement to be able to perform data lookups on-the-fly. In particular, there may be a need to look up some data that is maintained in an R/3 application.
    In the error handling topic we have seen the different validations which need to be performed on file. This can be done through Lookup.
    Some use cases:
    • Look up material number from table MARA.
    • Look up cost center budget.
    • Look up employee information.
    • Look up unit-of-measure (UOM) information from table t006a.
    • Lookup for raising an alert.
    The purpose of the lookup may be:
    • To perform application-level validation of the data, before sending it to the backend.
    • To populate fields of the XML document with some additional data found in the backend application.
    This is a form of value transformation.
    The "value mappings" offered by XI are not adequate in this case, since the data would have to be manually entered in the Integration Directory.
    There are two ways in which we can do lookup:
    • Call lookup method from GUI mapping.
    • Call lookup method from XSLT mapping.
    Lookup method from GUI mapping can be called using any of the following ways.
    • RFC lookup using JCO (without communication channel)
    /people/sravya.talanki2/blog/2005/12/21/use-this-crazy-piece-for-any-rfc-mapping-lookups
    • RFC lookup with communication channel.
    /people/alessandro.guarneri/blog/2006/03/27/sap-xi-lookup-api-the-killer
    • Lookup using JDBC adapter.
    /people/siva.maranani/blog/2005/08/23/lookup146s-in-xi-made-simpler
    /people/sap.user72/blog/2005/12/06/optimizing-lookups-in-xi
    • CSV file lookup.
    /people/sundararamaprasad.subbaraman/blog/2005/12/09/making-csv-file-lookup-possible-in-sap-xi
    Lookups with XSLT - https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/8e7daa90-0201-0010-9499-cd347ffbbf72
    /people/sravya.talanki2/blog
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/05a3d62e-0a01-0010-14bc-adc8efd4ee14
    DB lookup - /people/siva.maranani/blog/2005/08/23/lookup146s-in-xi-made-simpler
    SOAP Lookup - /people/bhavesh.kantilal/blog/2006/11/20/webservice-calls-from-a-user-defined-function
    You can refer to these links.
    /people/alessandro.guarneri/blog/2006/03/27/sap-xi-lookup-api-the-killer Absolute stealer.
    /people/siva.maranani/blog/2005/08/23/lookup146s-in-xi-made-simpler
    For Java APIs and also here you can map that how many types of lookups are possible in XI.
    http://help.sap.com/javadocs/NW04/current/pi/com/sap/aii/mapping/lookup/package-summary.html

  • Creation of CDATA with message mapping

    Hello all,
    Is everyone absolutely sure that a cdata string cannot be created in the middle of an xml file using message mapping? 
    I have tried doing the XSL map in other blogs I even tried writing a whole XSL map in xml spy - yet xi complains about not finding this class file and that class file.  I'm having a hard time believing that this is so hard to do in XI - especially when Microsoft web service implementation seem to long for data crammed into a string ( in my experience ).
    Any help is GREATLY appreciated.
    Thank you!!!
    Scott

    Hi Scott,
             Pls follow the following steps to insert XML string into a single element:
    Create a xsl file with the following data:
    <?xml version='1.0' ?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" <i><b>NSpace</b></i>>
    <xsl:template match="/">
    <namespace:name1>
    <xsl:text disable-output-escaping="yes"><![CDATA[<![CDATA[]]></xsl:text><xsl:copy-of select="<b>//namespace:name</b>"/><xsl:text disable-output-escaping="yes"><![CDATA[]]]]></xsl:text><xsl:text disable-output-escaping="yes"><![CDATA[>]]></xsl:text>
    </namespace:name1>
    </xsl:template>
    </xsl:stylesheet>
    In the above code I have removed xmlns:p2="http://frik.bcc.com.pl" which is not needed.
    Also you have to put '<b>//</b>' before the target element from where you want to start creating XML string over here it is <b>name</b>. And <b>name1</b> is the element you want to store the XML string in.
    So anything in the element <b>name</b> will be stored in <b>name1</b>
    Regarding the <b>namespace:</b> To find out the namespace test your message mapping between the source and the target without adding XSLT mapping. After testing click on <b>'SCR'</b> tab present on top of the target window. There you will see <b>ns1: or ns2:</b> attached to each element. Replace <b>namespace</b> in the above code with <b>ns1: or ns2:</b>.  And replace <b>NSpace</b> in the above XSL Header with the namespace in the SCR of test map.
    So the final XSL file will look like that:
    <?xml version='1.0' ?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" <i><b>xmlns:ns1="http://sap.com/xi/HR"</b></i>>
    <xsl:template match="/">
    <<b>ns1:</b>name1>
    <xsl:text disable-output-escaping="yes"><![CDATA[<![CDATA[]]></xsl:text><xsl:copy-of select="<b>//ns1:name</b>"/><xsl:text disable-output-escaping="yes"><![CDATA[]]]]></xsl:text><xsl:text disable-output-escaping="yes"><![CDATA[>]]></xsl:text>
    </<b>ns1:</b>name1>
    </xsl:template>
    </xsl:stylesheet>
    Dont forget to put '//' before the target element.
    This should work. Or pls put the source and target xml struct and we will assist you further.
    Regards,
    Ashish

  • Problem with Message-Mapping: Loop over Elements possible?

    Hi all,
    I want do create a Message-Mapping for an IDoc-to-File Scenario. In the Source Structure there are some Elements which can appear more than once (1..unbounded). I need a mechanism which loops over these elements and search for specified values. From the Element which contains an element with this specified value the mapping should write a value in the target structure.
    Here a simple example (source structure) for better understanding:
    <root>
       <invoice>
          <number> 10 </number>
          <sum> 200.00 </sum>
       </invoice>
       <invoice>
          <number> 20 </number>
          <sum> 150.00 </sum>
       </invoice>
       <invoice>
          <number> 30 </number>
          <sum> 120.00 </sum>
       </invoice>
    </root>
    Now the duty of the Mapping should be to search in the elements <invoice> for the number 30. And then the sum of the invoice with the number 30 should be written in a field of the target structure.
    I tried it out with a constant togehter with an equalsS-function and an ifWithoutElse-function, but it is working only then, if the invoice with the number 30 has the first position in the root context.
    Can anybody help me? Thanks
    With kind regards
    Christopher

    Hi,
    Write a UDF to sum the required values and map to target node.
    See while writing the UDF select the type as queue.
    number -- removecontext-UDF targetnode
    sum----removecontext--/
    number abd sum or the two inputs
    in UDF
    int nsum = 0;
    for(int i;i < number.length;i++){
      if number(i).equals("30") then
         nsum = nsum + valueOf(sum(i));
    result.addValue(nsum); // convert the nsum into string
    Regsrds
    Chilla

  • Using Jco calls from the message mapping

    can any body tell me how can we use JCO call in a message mapping if posssible with an example
    thanks and regards
    sandeep

    Hi,
    Refer the below code and weblog:
    ?     RFC lookup using JCO (without communication channel)
          /people/sravya.talanki2/blog/2005/12/21/use-this-crazy-piece-for-any-rfc-mapping-lookups
    Notes:
    ?     Ensure that the function module is RFC-enabled.
    ?     Ensure that the parameters are passed by value and not by reference (mandatory for RFC-enabled function modules).
    IN UDF:
    Import Parameters:
    com.sap.mw.jco.*
    Code:
    Public String UOMLookup(String resultFieldName, Container container)
    JCO.Repository mRepository;
    // Change the logon information to your own system/user
    JCO.Client mConnection = JCO.createClient(
        "800", // SAP client
        "xilookup", // userid
        "test", // password
        "EN", // language
        "tsphl850", // host name
        "00" ); // system number
    // connect to SAP
    mConnection.connect();
    // create repository
    mRepository = new JCO.Repository( "SAPLookup", mConnection );
    // Create function
    JCO.Function function = null;
    IFunctionTemplate ft = mRepository.getFunctionTemplate("Z_SFLIGHT_DETAILS");
    function = ft.getFunction();
    // Obtain parameter list for function
    JCO.ParameterList input = function.getImportParameterList();
    // Pass function parameters
    input.setValue(resultFieldName, "UOMCODE" );
    mConnection.execute( function );
    String ret = function.getExportParameterList().getString( "UOMTEXT" );
    mConnection.disconnect();
    return ret;

  • Need Help with Message Mapping in PI 7.1 - JDBC to IDOC

    I have an outgoing SQL function that sends multiple rows of data for use in creating an IDOC in ECC. I am trying to key the creation of new IDOCs (already did the maxOccurs trick to the IDOC definition) based on a field in the JDBC return data...
    JDBC Message Format...
    SEGNAM - TRANS_ID - MATERIAL - VKORG...ETC
    MARA -  00001 - 1234 - <space> - ...
    MARC -  00001 - 1234 - VK01 - ...
    MARA - 00002 - 9876 - <space> - ...
    MAKT - 00002 - 9876 - <space> - material description - ...
    Each time there is a new TRANS_ID, I need to indicate a new IDOC in the message mapping. I have tried all kinds of combinations of TRANS_ID --> dropContext --> splitValue and TRANS_ID --> collapseContext --> splitValue, but nothing has worked.
    Has anyone done this kind of message map (without any BPM please)?
    Thanks,
    Nathan

    Hello Nathan,
    For this one, you have to play with contexts.
    row 1 SEGNAM = MARA, TRANS_ID = 1, MATNR = 123...
    row 2 SEGNAM = MARC, TRANS_ID = 1, MATNR = 123, WERKS = PL01...
    row 3 SEGNAM = MARA, TRANS_ID = 2, MATNR = 987
    This also depends on the occurrence of the parent node. example, if I want MATNR to be populated, the logic would be like
    ex:
    IDOC1..unbounded) (The logic is the already provided in an earlier response)
    -->MATNR (1..1)
    MATNR --------> removeContext ----------------> FormatByExample --> MATNR
    TRANS_ID --> removeContext --> splitByValue:ValueChange --> /
    If the rows are not in order of trans_id, then you need to incorporate sorting into the logic above.
    Hope this helps,
    Mark

  • Issue with message mapping.

    HI All,
    I am working on a JDBC-XI-RFC scenario.
    I have two data types, two message types and two message interfaces.
    now, i have created the message mapping and mapped the fields of both sender and reciever message types.
    To test with sample data now, if i press the "test" tab, in the right side, i can see the "Instance" with the sender message type and its fields.
    Later i entered the values to test the sample.
    Affter this move, i am not able to see anything in the right side of the screen (RESULT)...
    What might be the reason for this....???
    Please help me......
    Regards
    Pavan

    Hi Pavan,
    Start Transformation button is used to execute the object. Its on the left hand bottom of the scrren, near to Trace Level you will find a button named "Start Transformation". Click on this and you will get the output once the transformation is complete.
    There is some problem in the Sender message mapping named: sender_mm | http://jdbcrfcns
    Please check where is the problem.
    Regards,
    Subhasha

  • Problems with message mapping in XI

    Hi,
    I'm having a problem with my message mapping . I get the error
    "Cannot produce target element /ns0:GovTalkMessage/ns0:Body/ns1:IRenvelope. Check xml instance is valid for source xsd and target-field mapping fulfills requirements of target xsd"
    Can you please tell me how I can resolve this error?
    Regards,
    Aditi Naik

    Hi,
    The source structure is:
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://www.govtalk.gov.uk/taxation/EOY/08-09/1" xmlns="http://www.govtalk.gov.uk/CM/envelope" targetNamespace="http://www.govtalk.gov.uk/CM/envelope">
    <xsd:import namespace="http://www.govtalk.gov.uk/taxation/EOY/08-09/1" />
    <xsd:element name="IDAuthentication">
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element name="SenderID" type="xsd:string" minOccurs="0" form="qualified" />
    <xsd:element name="Authentication" maxOccurs="unbounded" form="qualified">
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element name="Method" form="qualified">
    <xsd:simpleType>
    <xsd:restriction base="xsd:string">
    <xsd:enumeration value="clear" />
    <xsd:enumeration value="MD5" />
    <xsd:enumeration value="W3Csigned" />
    </xsd:restriction>
    </xsd:simpleType>
    </xsd:element>
    <xsd:element name="Role" type="xsd:string" minOccurs="0" form="qualified" />
    <xsd:element name="Value" type="xsd:string" minOccurs="0" form="qualified" />
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    <xsd:element name="GovTalkMessage">
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element name="EnvelopeVersion" type="xsd:string" form="qualified" />
    <xsd:element name="Header" form="qualified">
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element name="MessageDetails" form="qualified">
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element name="Class" form="qualified">
    <xsd:simpleType>
    <xsd:restriction base="UnicodeNameString">
    <xsd:maxLength value="32" />
    <xsd:minLength value="4" />
    </xsd:restriction>
    </xsd:simpleType>
    </xsd:element>
    <xsd:element name="Qualifier" form="qualified">
    <xsd:simpleType>
    <xsd:restriction base="xsd:string">
    <xsd:enumeration value="request" />
    <xsd:enumeration value="acknowledgement" />
    <xsd:enumeration value="response" />
    <xsd:enumeration value="poll" />
    <xsd:enumeration value="error" />
    </xsd:restriction>
    </xsd:simpleType>
    </xsd:element>
    <xsd:element name="Function" minOccurs="0" form="qualified">
    <xsd:simpleType>
    <xsd:restriction base="xsd:string">
    <xsd:enumeration value="list" />
    <xsd:enumeration value="read" />
    <xsd:enumeration value="delete" />
    <xsd:enumeration value="add" />
    <xsd:enumeration value="submit" />
    </xsd:restriction>
    </xsd:simpleType>
    </xsd:element>
    <xsd:element name="TransactionID" form="qualified">
    <xsd:simpleType>
    <xsd:restriction base="xsd:string">
    <xsd:minLength value="0" />
    <xsd:maxLength value="32" />
    <xsd:pattern value="[0-9A-F]{0,32}" />
    </xsd:restriction>
    </xsd:simpleType>
    </xsd:element>
    <xsd:element name="AuditID" form="qualified">
    <xsd:simpleType>
    <xsd:restriction base="xsd:string">
    <xsd:minLength value="0" />
    <xsd:maxLength value="32" />
    <xsd:pattern value="[A-F0-9]{0,32}" />
    </xsd:restriction>
    </xsd:simpleType>
    </xsd:element>
    <xsd:element name="CorrelationID" form="qualified">
    <xsd:simpleType>
    <xsd:restriction base="xsd:string">
    <xsd:minLength value="0" />
    <xsd:maxLength value="32" />
    <xsd:pattern value="[0-9A-F]{0,32}" />
    </xsd:restriction>
    </xsd:simpleType>
    </xsd:element>
    <xsd:element name="ResponseEndPoint" minOccurs="0" form="qualified">
    <xsd:complexType>
    <xsd:simpleContent>
    <xsd:extension base="xsd:string">
    <xsd:attribute name="PollInterval" type="xsd:integer" default="2" />
    </xsd:extension>
    </xsd:simpleContent>
    </xsd:complexType>
    </xsd:element>
    <xsd:element name="Transformation" minOccurs="0" form="qualified">
    <xsd:simpleType>
    <xsd:restriction base="xsd:string">
    <xsd:enumeration value="XML" />
    <xsd:enumeration value="HTML" />
    <xsd:enumeration value="text" />
    </xsd:restriction>
    </xsd:simpleType>
    </xsd:element>
    <xsd:element name="GatewayTest" type="xsd:integer" minOccurs="0" form="qualified" />
    <xsd:element name="GatewayTimestamp" type="xsd:dateTime" minOccurs="0" form="qualified" />
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    <xsd:element name="SenderDetails" minOccurs="0" form="qualified">
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element ref="IDAuthentication" minOccurs="0" />
    <xsd:element name="X509Certificate" minOccurs="0" form="qualified">
    <xsd:simpleType>
    <xsd:restriction base="xsd:base64Binary" />
    </xsd:simpleType>
    </xsd:element>
    <xsd:element name="EmailAddress" minOccurs="0" form="qualified">
    <xsd:simpleType>
    <xsd:restriction base="xsd:string">
    <xsd:maxLength value="129" />
    <xsd:minLength value="3" />
    <xsd:pattern value="[A-Za-z0-9\.\-_]{1,64}@[A-Za-z0-9\.\-_]{1,64}" />
    </xsd:restriction>
    </xsd:simpleType>
    </xsd:element>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    <xsd:element name="GovTalkDetails" form="qualified">
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element name="Keys" minOccurs="0" form="qualified">
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element name="Key" minOccurs="0" maxOccurs="unbounded" form="qualified">
    <xsd:complexType>
    <xsd:simpleContent>
    <xsd:extension base="xsd:token">
    <xsd:attribute name="Type" type="UnicodeNameString" use="required" />
    </xsd:extension>
    </xsd:simpleContent>
    </xsd:complexType>
    </xsd:element>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    <xsd:element name="TargetDetails" minOccurs="0" form="qualified">
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element name="Organisation" minOccurs="0" maxOccurs="unbounded" form="qualified">
    <xsd:simpleType>
    <xsd:restriction base="xsd:string">
    <xsd:minLength value="1" />
    <xsd:maxLength value="64" />
    </xsd:restriction>
    </xsd:simpleType>
    </xsd:element>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    <xsd:element name="GatewayValidation" minOccurs="0" form="qualified">
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element name="Processed" form="qualified">
    <xsd:simpleType>
    <xsd:restriction base="xsd:string">
    <xsd:enumeration value="no" />
    <xsd:enumeration value="yes" />
    </xsd:restriction>
    </xsd:simpleType>
    </xsd:element>
    <xsd:element name="Result" form="qualified">
    <xsd:simpleType>
    <xsd:restriction base="xsd:string">
    <xsd:enumeration value="pass" />
    <xsd:enumeration value="fail" />
    </xsd:restriction>
    </xsd:simpleType>
    </xsd:element>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    <xsd:element name="ChannelRouting" minOccurs="0" maxOccurs="unbounded" form="qualified">
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element name="Channel" form="qualified">
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element name="URI" type="xsd:anyURI" minOccurs="0" form="qualified" />
    <xsd:element name="Name" type="xsd:string" minOccurs="0" form="qualified" />
    <xsd:element name="Product" type="xsd:string" minOccurs="0" form="qualified" />
    <xsd:element name="Version" type="xsd:string" minOccurs="0" form="qualified" />
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    <xsd:element name="ID" minOccurs="0" maxOccurs="unbounded" form="qualified">
    <xsd:complexType>
    <xsd:simpleContent>
    <xsd:extension base="xsd:string">
    <xsd:attribute name="Type" type="xsd:string" use="required" />
    </xsd:extension>
    </xsd:simpleContent>
    </xsd:complexType>
    </xsd:element>
    <xsd:element name="Timestamp" type="xsd:dateTime" minOccurs="0" form="qualified" />
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    <xsd:element name="GovTalkErrors" minOccurs="0" form="qualified">
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element name="Error" maxOccurs="unbounded" form="qualified">
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element name="RaisedBy" type="xsd:string" form="qualified" />
    <xsd:element name="Number" type="xsd:integer" minOccurs="0" form="qualified" />
    <xsd:element name="Type" form="qualified">
    <xsd:simpleType>
    <xsd:restriction base="xsd:string">
    <xsd:enumeration value="fatal" />
    <xsd:enumeration value="recoverable" />
    <xsd:enumeration value="business" />
    <xsd:enumeration value="warning" />
    </xsd:restriction>
    </xsd:simpleType>
    </xsd:element>
    <xsd:element name="Text" type="xsd:string" minOccurs="0" maxOccurs="unbounded" form="qualified" />
    <xsd:element name="Location" type="xsd:string" minOccurs="0" maxOccurs="unbounded" form="qualified" />
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    <xsd:element name="GatewayAdditions" minOccurs="0" form="qualified">
    <xsd:complexType>
    <xsd:sequence>
    <xsd:any namespace="##local" processContents="strict" />
    </xsd:sequence>
    <xsd:anyAttribute namespace="##local" processContents="strict" />
    </xsd:complexType>
    </xsd:element>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    <xsd:element name="Body" minOccurs="0" form="qualified">
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element ref="ns1:IRenvelope" />
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    <xsd:simpleType name="UnicodeNameString">
    <xsd:restriction base="xsd:string">
    <xsd:pattern value="[\p\p_\-\(\)\{\}]*" />
    </xsd:restriction>
    </xsd:simpleType>
    </xsd:schema>
    The target structure is:
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://www.govtalk.gov.uk/taxation/EOY/08-09/1" xmlns="http://www.govtalk.gov.uk/CM/envelope" targetNamespace="http://www.govtalk.gov.uk/CM/envelope">
    <xsd:import namespace="http://www.govtalk.gov.uk/taxation/EOY/08-09/1" />
    <xsd:element name="IDAuthentication">
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element name="SenderID" type="xsd:string" minOccurs="0" form="qualified" />
    <xsd:element name="Authentication" maxOccurs="unbounded" form="qualified">
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element name="Method" form="qualified">
    <xsd:simpleType>
    <xsd:restriction base="xsd:string">
    <xsd:enumeration value="clear" />
    <xsd:enumeration value="MD5" />
    <xsd:enumeration value="W3Csigned" />
    </xsd:restriction>
    </xsd:simpleType>
    </xsd:element>
    <xsd:element name="Role" type="xsd:string" minOccurs="0" form="qualified" />
    <xsd:element name="Value" type="xsd:string" minOccurs="0" form="qualified" />
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    <xsd:element name="GovTalkMessage">
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element name="EnvelopeVersion" type="xsd:string" form="qualified" />
    <xsd:element name="Header" form="qualified">
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element name="MessageDetails" form="qualified">
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element name="Class" form="qualified">
    <xsd:simpleType>
    <xsd:restriction base="UnicodeNameString">
    <xsd:maxLength value="32" />
    <xsd:minLength value="4" />
    </xsd:restriction>
    </xsd:simpleType>
    </xsd:element>
    <xsd:element name="Qualifier" form="qualified">
    <xsd:simpleType>
    <xsd:restriction base="xsd:string">
    <xsd:enumeration value="request" />
    <xsd:enumeration value="acknowledgement" />
    <xsd:enumeration value="response" />
    <xsd:enumeration value="poll" />
    <xsd:enumeration value="error" />
    </xsd:restriction>
    </xsd:simpleType>
    </xsd:element>
    <xsd:element name="Function" minOccurs="0" form="qualified">
    <xsd:simpleType>
    <xsd:restriction base="xsd:string">
    <xsd:enumeration value="list" />
    <xsd:enumeration value="read" />
    <xsd:enumeration value="delete" />
    <xsd:enumeration value="add" />
    <xsd:enumeration value="submit" />
    </xsd:restriction>
    </xsd:simpleType>
    </xsd:element>
    <xsd:element name="TransactionID" form="qualified">
    <xsd:simpleType>
    <xsd:restriction base="xsd:string">
    <xsd:minLength value="0" />
    <xsd:maxLength value="32" />
    <xsd:pattern value="[0-9A-F]{0,32}" />
    </xsd:restriction>
    </xsd:simpleType>
    </xsd:element>
    <xsd:element name="AuditID" form="qualified">
    <xsd:simpleType>
    <xsd:restriction base="xsd:string">
    <xsd:minLength value="0" />
    <xsd:maxLength value="32" />
    <xsd:pattern value="[A-F0-9]{0,32}" />
    </xsd:restriction>
    </xsd:simpleType>
    </xsd:element>
    <xsd:element name="CorrelationID" form="qualified">
    <xsd:simpleType>
    <xsd:restriction base="xsd:string">
    <xsd:minLength value="0" />
    <xsd:maxLength value="32" />
    <xsd:pattern value="[0-9A-F]{0,32}" />
    </xsd:restriction>
    </xsd:simpleType>
    </xsd:element>
    <xsd:element name="ResponseEndPoint" minOccurs="0" form="qualified">
    <xsd:complexType>
    <xsd:simpleContent>
    <xsd:extension base="xsd:string">
    <xsd:attribute name="PollInterval" type="xsd:integer" default="2" />
    </xsd:extension>
    </xsd:simpleContent>
    </xsd:complexType>
    </xsd:element>
    <xsd:element name="Transformation" minOccurs="0" form="qualified">
    <xsd:simpleType>
    <xsd:restriction base="xsd:string">
    <xsd:enumeration value="XML" />
    <xsd:enumeration value="HTML" />
    <xsd:enumeration value="text" />
    </xsd:restriction>
    </xsd:simpleType>
    </xsd:element>
    <xsd:element name="GatewayTest" type="xsd:integer" minOccurs="0" form="qualified" />
    <xsd:element name="GatewayTimestamp" type="xsd:dateTime" minOccurs="0" form="qualified" />
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    <xsd:element name="SenderDetails" minOccurs="0" form="qualified">
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element ref="IDAuthentication" minOccurs="0" />
    <xsd:element name="X509Certificate" minOccurs="0" form="qualified">
    <xsd:simpleType>
    <xsd:restriction base="xsd:base64Binary" />
    </xsd:simpleType>
    </xsd:element>
    <xsd:element name="EmailAddress" minOccurs="0" form="qualified">
    <xsd:simpleType>
    <xsd:restriction base="xsd:string">
    <xsd:maxLength value="129" />
    <xsd:minLength value="3" />
    <xsd:pattern value="[A-Za-z0-9\.\-_]{1,64}@[A-Za-z0-9\.\-_]{1,64}" />
    </xsd:restriction>
    </xsd:simpleType>
    </xsd:element>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    <xsd:element name="GovTalkDetails" form="qualified">
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element name="Keys" minOccurs="0" form="qualified">
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element name="Key" minOccurs="0" maxOccurs="unbounded" form="qualified">
    <xsd:complexType>
    <xsd:simpleContent>
    <xsd:extension base="xsd:token">
    <xsd:attribute name="Type" type="UnicodeNameString" use="required" />
    </xsd:extension>
    </xsd:simpleContent>
    </xsd:complexType>
    </xsd:element>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    <xsd:element name="TargetDetails" minOccurs="0" form="qualified">
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element name="Organisation" minOccurs="0" maxOccurs="unbounded" form="qualified">
    <xsd:simpleType>
    <xsd:restriction base="xsd:string">
    <xsd:minLength value="1" />
    <xsd:maxLength value="64" />
    </xsd:restriction>
    </xsd:simpleType>
    </xsd:element>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    <xsd:element name="GatewayValidation" minOccurs="0" form="qualified">
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element name="Processed" form="qualified">
    <xsd:simpleType>
    <xsd:restriction base="xsd:string">
    <xsd:enumeration value="no" />
    <xsd:enumeration value="yes" />
    </xsd:restriction>
    </xsd:simpleType>
    </xsd:element>
    <xsd:element name="Result" form="qualified">
    <xsd:simpleType>
    <xsd:restriction base="xsd:string">
    <xsd:enumeration value="pass" />
    <xsd:enumeration value="fail" />
    </xsd:restriction>
    </xsd:simpleType>
    </xsd:element>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    <xsd:element name="ChannelRouting" minOccurs="0" maxOccurs="unbounded" form="qualified">
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element name="Channel" form="qualified">
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element name="URI" type="xsd:anyURI" minOccurs="0" form="qualified" />
    <xsd:element name="Name" type="xsd:string" minOccurs="0" form="qualified" />
    <xsd:element name="Product" type="xsd:string" minOccurs="0" form="qualified" />
    <xsd:element name="Version" type="xsd:string" minOccurs="0" form="qualified" />
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    <xsd:element name="ID" minOccurs="0" maxOccurs="unbounded" form="qualified">
    <xsd:complexType>
    <xsd:simpleContent>
    <xsd:extension base="xsd:string">
    <xsd:attribute name="Type" type="xsd:string" use="required" />
    </xsd:extension>
    </xsd:simpleContent>
    </xsd:complexType>
    </xsd:element>
    <xsd:element name="Timestamp" type="xsd:dateTime" minOccurs="0" form="qualified" />
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    <xsd:element name="GovTalkErrors" minOccurs="0" form="qualified">
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element name="Error" maxOccurs="unbounded" form="qualified">
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element name="RaisedBy" type="xsd:string" form="qualified" />
    <xsd:element name="Number" type="xsd:integer" minOccurs="0" form="qualified" />
    <xsd:element name="Type" form="qualified">
    <xsd:simpleType>
    <xsd:restriction base="xsd:string">
    <xsd:enumeration value="fatal" />
    <xsd:enumeration value="recoverable" />
    <xsd:enumeration value="business" />
    <xsd:enumeration value="warning" />
    </xsd:restriction>
    </xsd:simpleType>
    </xsd:element>
    <xsd:element name="Text" type="xsd:string" minOccurs="0" maxOccurs="unbounded" form="qualified" />
    <xsd:element name="Location" type="xsd:string" minOccurs="0" maxOccurs="unbounded" form="qualified" />
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    <xsd:element name="GatewayAdditions" minOccurs="0" form="qualified">
    <xsd:complexType>
    <xsd:sequence>
    <xsd:any namespace="##local" processContents="strict" />
    </xsd:sequence>
    <xsd:anyAttribute namespace="##local" processContents="strict" />
    </xsd:complexType>
    </xsd:element>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    <xsd:element name="Body" minOccurs="0" form="qualified">
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element ref="ns1:IRenvelope" />
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    <xsd:simpleType name="UnicodeNameString">
    <xsd:restriction base="xsd:string">
    <xsd:pattern value="[\p\p_\-\(\)\{\}]*" />
    </xsd:restriction>
    </xsd:simpleType>
    </xsd:schema>

  • Severe Problem With Message Mapping

    Hi,
    I have got a message mapping which results in the following XML:
    <?xml version="1.0" encoding="UTF-8"?>
    <ns14:expost_generation xmlns:ns14="http://mywebsite.xsd">
      <timeStamp>2006-03-15T15:27:16</timeStamp>
      <source name="xyz">
        <generation date="abc" value="def" />
        <generation date="abc" value="def" />
        <generation date="abc" value="def" />
      </source>
    </ns14:expost_generation>
    My problem is that I have to suppres the ns14 prefix. The opening tag should be: <expost_generation xmlns="http://mywebsite.xsd">
    The closing tag: </expost_generation>
    Does anybody know how to achieve this?
    Kind regards,
    Heiko

    Hi Heiko,
    on the level of the expost_generation-Tag the two definitions you gave are logically equivalent. Hence, no software consuming the XMLs should prefer one style.
    However, when we look at the subelements there is a great difference.
    In the xml you posted first all subelements (timeStamp, source,...) lie in no namespace.
    On the other hand when you declare the tag expost_generation as you described afterwards (with a default namespace declaration) and then proceed as in the first example, then all the subelements will lie in this namespace, too (unless you again reset the default namespace in all these elements).
    I assume that the Schema you use in the Message Mapping describes a document with only the root being namespace qualified but the service consuming the document expects a document with all tags being namespace qualified.
    Greetings
    Stephan

  • Help with Message Mapping - Context Change

    I need help with the following message mapping.  I am filtering by EMP_STAT in the Message Mapping.  I have this working for the ROW structures, but I can get the HEADER/REC_COUNT field to calculate.  I can do just a record count of ROW and get it to work, but I can't get it to work with the filter EMP_STAT = 'REG' added.  I get a context error.  Could someone send me the mapping code.
    Sender XML----
    <RECORD>
    <ROW>
    <EMPLOYEE>111</EMPLOYEE>
    <EMP_STAT>REG</EMP_STAT>
    </ROW>
    <ROW>
    <EMPLOYEE>222</EMPLOYEE>
    <EMP_STAT>PT</EMP_STAT>
    </ROW>
    <ROW>
    <EMPLOYEE>333</EMPLOYEE>
    <EMP_STAT>REG</EMP_STAT>
    </ROW>
    </RECORD>
    Receiver XML----
    <RECORD>
    <HEADER>
    <REC_COUNT>2</REC_COUNT>
    </HEADER>
    <ROW>
    <EMPLOYEE>111</EMPLOYEE>
    <EMP_STAT>REG</EMP_STAT>
    </ROW>
    <ROW>
    <EMPLOYEE>333</EMPLOYEE>
    <EMP_STAT>REG</EMP_STAT>
    </ROW>
    </RECORD>

    Hello,
    You can use this mapping
    For REC_COUNT:
    EMP_STAT -> equalsS: constant:REG -> ifWithoutElse -> removeContext -> count -> REC_COUNT
                                     EMPLOYEE -> /
    For ROW:
    EMP_STAT -> equalsS: constant:REG -> ifWithoutElse -> removeContext -> ROW
                                     EMPLOYEE -> /
    For EMPLOYEE:
    EMP_STAT -> equalsS: constant:REG -> ifWithoutElse -> removeContext -> SplitByValue -> EMPLOYEE
                                     EMPLOYEE -> /
    For EMP_STAT:
    Constant: REG -> EMP_STAT
    Hope this helps,
    Mark

Maybe you are looking for

  • Adobe Flash Player not working in Adobe Connect only on Tablet PC

    When logging into Adobe Acrobat Connect Pro on a Tablet PC, the following message is observed. Flash Player 9.0.0.0 or above is required Adobe Acrobat Connect Pro requires the Flash Player browser plugin, version 9.0.0.0 or above. Please download and

  • Problem when printing a PDF file

    I am currently using Pagemaker 7 and after I create a PDF file and then email it to my client, the image shrinks when they print it out on their printer. If I print that same PDF file on my printer it does not shrink. Can anyone explain why this happ

  • Opening photos in album

    Hey guys, I have a question about opening photos in album... Photos taken with Z1 camera are great, but there is a great difference when I try to open a photo in album from full list of photos (just clicking on one), or swiping photos from one to ano

  • Can I use my us account in India

    Can I use my us account in India? And where to buy?

  • SAProuter configuration error

    Hello Experts, I have installed SAP ERP 6.0 SR3 on windows server 2003 64bit and done post installation steps. For SAProuter configuration, I have followed below steps. 1. Downloaded .CAR file and extract into "user/sap/saprouter/ " folder. 2. Create