Mapping Problem . or help in UDF

Hi...
      I am having problem in mapping.
I am having 3 messages in the source structure and 1 message in the target structure. 3:1 mapping.
Source Messages:
Message1: Warehouse Details(plant name,warehouselocation)
Message2:Supplier Details(suppid,suppname,leadtime,matname,cost)
Message3:Input(matname,plant,unit,item,itemname,ReqQty,OrderQty,Cost,suppid,suppname,leadtime,date,warehouseloc)
Target Message:
Output
If the Availability field in Message3 !=0, then it should map warehouseloc of message 1 to the Output mesage. or else it should map 0 to the warehouse and map message 2 items to the output message.
Source messages are 0:unbounded.
Could you please help me out in this issue. or else can you please tell how to write the userdefined function for that.
Below is the structure.
Source Message:
<?xml version="1.0" encoding="UTF-8"?>
<ns0:Messages xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge">
   <ns0:Message1>
      <ns1:getWareHouseDetailsResponse xmlns:ns1="http://DefaultNamespace">
         <getWareHouseDetailsReturn>
            <Plant>
               <plantName/>
               <wareHouseLocation>W001</wareHouseLocation>
            </Plant>
         </getWareHouseDetailsReturn>
      </ns1:getWareHouseDetailsResponse>
   </ns0:Message1>
   <ns0:Message2>
      <ns2:GetPreferredSuppliersResponse xmlns:ns2="http://tempuri.org/">
         <ns2:GetPreferredSuppliersResult>
            <ns2:Supplier>
               <ns2:SupplierId>S001</ns2:SupplierId>
               <ns2:SupplierName>TRW</ns2:SupplierName>
               <ns2:LeadTime>1111</ns2:LeadTime>
               <ns2:MaterialName>M001</ns2:MaterialName>
               <ns2:Cost>1000</ns2:Cost>
            </ns2:Supplier>
         </ns2:GetPreferredSuppliersResult>
      </ns2:GetPreferredSuppliersResponse>
   </ns0:Message2>
   <ns0:Message3>
      <ns3:MT_Output xmlns:ns3="http://BlockTest">
         <Material>
            <Matname>M001</Matname>
            <Plant>P001</Plant>
            <Unit>KG</Unit>
            <Item/>
            <Itemname/>
            <ReqQty>5</ReqQty>
            <AvailQty>0</AvailQty>
            <Cost/>
            <Suppid/>
            <Supname/>
            <LeadTime/>
            <Date>12.05.2008</Date>
            <OrderQty>0</OrderQty>
            <WarehouseLoc/>
         </Material>
         <Material>
            <Matname>M002</Matname>
            <Plant>P002</Plant>
            <Unit>PC</Unit>
            <Item/>
            <Itemname/>
            <ReqQty>5</ReqQty>
            <AvailQty>5000</AvailQty>
            <Cost/>
            <Suppid/>
            <Supname/>
            <LeadTime/>
            <Date>12.05.2008</Date>
            <OrderQty>0</OrderQty>
            <WarehouseLoc/>
         </Material>
         <Pcost/>
         <Tcost/>
         <Ocost/>
      </ns3:MT_Output>
   </ns0:Message3>
</ns0:Messages>
Target Message:
<?xml version="1.0" encoding="UTF-8"?>
<ns0:Messages xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge">
<ns0:Message1>
<ns3:MT_Output xmlns:ns3="http://BlockTest">
<Material>M001</Material>
<Plant>P001</Plant>
<Unit>KG</Unit>
<Item></Item>
<Itemname></Itemname>
<ReqQty>5</ReqQty>
<AvailQty>0</AvailQty>
<Cost>1000</Cost>
<Suppid>S001</Suppid>
<Supname>TRW</Supname>
<LeadTime>1111</LeadTime>
<Date>12.05.2008</Date>
<OrderQty>0</OrderQty>
<WarehouseLoc>0</WarehouseLoc>
</Material>
<Material>M002</Material>
<Plant>P002</Plant>
<Unit>KG</Unit>
<Item></Item>
<Itemname></Itemname>
<ReqQty>5</ReqQty>
<AvailQty>0</AvailQty>
<Cost>1000</Cost>
<Suppid/>
<Supname/>
<LeadTime/>
<Date>12.05.2008</Date>
<OrderQty>0</OrderQty>
<WarehouseLoc>W001</WarehouseLoc>
</Material>
</ns3:MT_Output>
</ns0:Message1>
</ns0:Messages>
Edited by: leelaratnam morampudi on Oct 14, 2008 1:13 PM

I think there is no need to use UDF, you can achive this by using IF function.
to make your mapping simple, in your message mapping on MT_Output, right click your mouse and click on duplicate subtree. you will now have two structure in your target.
first one is for if AvailQty != 0 then warehouseloc of message 1 to the Output mesage
and second one is for if AvailQty = 0 now map 0 to the warehouse and map message 2 items to the output message.
try this and let us know if you face any issues.

Similar Messages

  • MESSAGE MAPPING PROBLEM PLS HELP

    hi forum i have a problem in message mapping...
    i have a file to file scenario...with a BPM..
    the components are:
    1. one outbound async MI:->   MI_OA_fileSender
    2. one abstract async MI:->   MI_AA_fileSender
    the above two has messsage structure as:
    <ns0:MT_sourceFile xmlns:ns0="http://zpoc.com.test/rana3">
       <recordset> 1...1
          <record>  1..unbound
             <batch_num/> 1..1
             <quantity/>  1..1
          </record>
       </recordset>
    </ns0:MT_sourceFile>
    3. one abstract async MI: -> MI_AA_fileDestination
    4. one inbound async MI:-> MI_IA_fileDestination..
    the above two has messsage structure as:
    <?xml version="1.0" encoding="UTF-8"?>
    <ns0:MT_destinationFile xmlns:ns0="http://zpoc.com.test/rana3">
       <recordset> 1..1
          <record> 1..unbound
             <rec_number/> 1...1
             <qty/> 1...1
          </record>
       </recordset>
    </ns0:MT_rana3_destinationFile>
    inside the BPM i m doing a simple one to one interface mapping between MI_AA_fileSender and MI_AA_fileDestination AND then use a send step to send it to receiver service. But inside the graphical editor, for the message maaping in the interface mapping, i change the target structure a bit by duplicating <rec_number> making it:
    <?xml version="1.0" encoding="UTF-8"?>
    <ns0:MT_destinationFile xmlns:ns0="http://zpoc.com.test/rana3">
       <recordset> 1..1
          <record> 1.. unbound
             <rec_number/> 0..1
             <rec_number/> 0..1 //did right click   and "duplicate sub-tree, so it becomes 0...0"
             <qty/>
          </record>
       </recordset>
    </ns0:MT_destinationFile>
    But i dont change the original structure of MT_destinationFile.
    Now in the resultant file in the receiver side i recive two <rec_number> tags....
    but since i didnt change the original structure of MT_destinationFile.....but i only made a change in the mapping by duplicating the node <rec
    _number>(right click and done "duplicate sub tree").............SHOULD IT NOT THROW AN ERROR
    Message was edited by:
            sudeep dhar
    Message was edited by:
            sudeep dhar

    >.............SHOULD IT NOT THROW AN ERROR
    Not necessarily.
    See, XI won't realize, by default, a schema validation in your messages. If you want a validation, you'll have to implement one, as described in
    http://help.sap.com/saphelp_nw2004s/helpdata/en/c4/e1343e8c7f6329e10000000a114084/frameset.htm
    However, for some particular steps in BPM, I have observed that an invalid XML will some times result in a error in BPM execution. In particular, if you have switch steps, container operation steps and/or correlations where you use a particular field of that message, it may throw some exception when you have an invalid xml. Also, I have observed some errors with conditional receiver determination for invalid messages.
    As a best practice, if you have any kind of dependency on a particular message inside your system (like switches, container operations, correlations, condition in receiver or interface determination etc), it is a good idea to implement a schema validation.
    Also, if you do want to create a thrustable scenario, you might want to perform schema validation for all your output messages.
    Regards,
    Henrique.

  • N8 map problem PLEASE HELP!!!

    i don't know why my device and ovi suite are giving me this issue. i did a delete data and restore after having issues with bubbles and sleeping screen, when they were in beta form. also something else was causing the phone to run slowly, i don't know what it was. after the delete and restorel, i re-installed the firmware 014.002. now everytime i plug in my mobile to my computer and i try to re-install the maps i get a message saying that i need to update my old maps. the thing is, i don't have any maps on the phone. i'm using Maps version 3.06 if that helps. i even tried delete data and restore, and re-installing the firmware again to see if that would help, but no success.
    please somebody help me. i sold my GPS unit and was using the N8 as a replacement. it was doing an awesome job up until now. also i tried contacting nokia about the problem and their tech support seems to have reading problems and they keep telling me to do the steps i already did....

    @wickedrandom
    Whilst I would only ever advocate a "three key reset" upon S^3 device as a last resort due to erasure of data upon Mass memory amongst other issues, there is obviously something corrupted upon your device perhaps due to UDP = User Data Preservation feature which has not been cleared by your attempts so far.
    It maybe that re-installation of complete software at a Nokia Care Point may be required to resolve this issue, which would also restore regional mapping included upon E:\ Mass memory.
    Happy to have helped forum with a Support Ratio = 42.5

  • N95 maps problem plz help me

    please any body can solve my problem?
    i have n95
    when i open gps application
    then on the screen globe is not showning and no maps are showing on screen
    only city names are showed
    and after the closing of map application in apst there are type on screen
    saving maps and data
    but now nothing typed
    plz help me

    i am using latest firm ware
    and using old maps application bcoz new beta 2.0 not showing my accurate position in pakistan
    if i am in my city
    the maps application shows u r 10 km from your city
    but old version give me accurate position...

  • Blackberry 8520 map problem PLEASE HELP ME!!!!!!

    My blackberry map was deleted during the updating the version.I can not download the software with blackberry desktop software,it gives me error..I am in Belarus now,How can I download  BB MAP with desktop software? or is there any other way to download it ?
    note:İn Belarus blackberry bis service doesnt service..
    thanks for your helping from now on.... waiting for replies.

    I don't recall a "download' screen in the Desktop Software.
    It should allow you to INSTALL, if you have the operating system file itself already installed to your PC.
    Do you?
    Also, have you tried using the BlackBerry AppWorld to download BlackBerry Maps?
    1. If any post helps you please click the below the post(s) that helped you.
    2. Please resolve your thread by marking the post "Solution?" which solved it for you!
    3. Install free BlackBerry Protect today for backups of contacts and data.
    4. Guide to Unlocking your BlackBerry & Unlock Codes
    Join our BBM Channels (Beta)
    BlackBerry Support Forums Channel
    PIN: C0001B7B4   Display/Scan Bar Code
    Knowledge Base Updates
    PIN: C0005A9AA   Display/Scan Bar Code

  • Axis Type Mapping problem,please help!!!

    i want to try out the encoding subsystem of axis,so i write an interface like this:
    public interface BookStore {
        public Book[] getAllBooks();
    }I use the Java2WSDL to generate the wsdl file and WSDL2Java to generate the client/server side bindings ,of course i implemented the BookStoreSOAPBindingImpl class,then use the deploy.wsdd file to deploy the service to axis.the deploy.wsdd is like this:
    <!-- Use this file to deploy some handlers/chains and services -->
    <!-- Two ways to do this: -->
    <!-- java org.apache.axis.client.AdminClient deploy.wsdd -->
    <!-- after the axis server is running -->
    <!-- or -->
    <!-- java org.apache.axis.utils.Admin client|server deploy.wsdd -->
    <!-- from the same directory that the Axis engine runs -->
    <deployment
    xmlns="http://xml.apache.org/axis/wsdd/"
    xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
    <!-- Services from BookStoreService WSDL service -->
    <service name="BookStore" provider="java:RPC" style="rpc" use="encoded">
    <parameter name="wsdlTargetNamespace" value="urn:bookstore"/>
    <parameter name="wsdlServiceElement" value="BookStoreService"/>
    <parameter name="wsdlServicePort" value="BookStore"/>
    <parameter name="className" value="axis.typemapping.collection.BookStoreSoapBindingSkeleton"/>
    <parameter name="wsdlPortType" value="BookStore"/>
    <parameter name="typeMappingVersion" value="1.2"/>
    <parameter name="allowedMethods" value="*"/>
    <typeMapping
    xmlns:ns="urn:bookstore"
    qname="ns:Book"
    type="java:axis.typemapping.collection.Book"
    serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
    deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
    encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
    />
    <typeMapping
    xmlns:ns="urn:bookstore"
    qname="ns:ArrayOfBook"
    type="java:axis.typemapping.collection.Book[]"
    serializer="org.apache.axis.encoding.ser.ArraySerializerFactory"
    deserializer="org.apache.axis.encoding.ser.ArrayDeserializerFactory"
    encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
    />
    </service>
    </deployment>
    As you could see, the necessary ser/deser factories are declared.
    and i checked the http://locahost:8080/axis page and found the service is just right there in the list.
    Then i wrote the client like this:
    import axis.typemapping.collection.*;
    import org.apache.axis.client.Call;
    import org.apache.axis.client.Service;
    import org.apache.axis.encoding.XMLType;
    import javax.xml.namespace.QName;
    import javax.xml.rpc.ParameterMode;
    public class Client
        public static void main(String [] args)
            try {     
                String endpointURL ="http://localhost:8080/axis/services/BookStore";
                String textToSend;
                Service  service = new Service();
                Call     call    = (Call) service.createCall();
                call.setTargetEndpointAddress( new java.net.URL(endpointURL) );
                call.setOperationName( new QName("urn:bookstore", "getAllBooks") );
                Object[] ret =(Object[])call.invoke( new Object[] {  } );
                System.out.println("book name:"+(Book)ret[0]);
                System.out.println("book name:"+(Book)ret[1]);
            } catch (Exception e) {
                System.err.println(e.toString());
    }But when i execute the client i got the following exception:
    org.xml.sax.SAXException: No deserializer defined for array type {urn:bookstore}
    BookAs you can see,it is the problem that the Book[] can't be deserialized!
    but in the deploy.wsdd the deserializer is declared,so what i have missed?and how to solve this problem please?
    best regards:)

    Some systems are fussy about the method names and some require indexed accessors for array items. I would suggest starting with an implementation like
    public class BookStore {
        private Book[] books = ...;
        public Book[] getBooks() {return books};
        public void setBooks(Book[] books) {this.books = books};
        public Book getBooks(int j) {return books[j]};
        public void setBooks(Book book, int j) {this.books[j] = book};
    }-- Frank

  • Mapping Problem Please help me

    After deploying my Mapping script I get the following messages:
    PL-SQL: ORA-00942 Table or view doesn't exist.
    and consequently I can't deploy and run my script. Does anybody have any idea. I have installed the OWB runtime and repository properly.
    Regards,
    Amirali

    Check from the Backend using TOAD or SQL+ to see if the Table or View actually exists.. If not then you will have to create it and import the same again. Hope this helps

  • Mysterious Key mapping problem.  Help!

    I discovered a very strange behavior regarding the output of my Apple Bluetooth keyboard. In all apps that I know of, the default keyboard shortcut for 'Save' is command (apple) 's' (we all know that, of course).
    However the command being output when I press those 2 particular keys is command (apple) 'c' for 'Cut'. Everything else about the keyboard functions properly.
    When I check to see what the output is in the 'keyboard and mouse' system preferences I am seeing the correct output when I press those 2 keys.
    According to the preferences, this combination is set as the default (in fact I selected 'restore defaults' just to be sure). Also, the 'International' preferences is set correctly at 'English/Roman'.
    Any ideas? This is a default function and the odd behavior doesn't make sense at all.
    **By the way, this only happens when "I" am logged in; not when other users are logged in. So I know there must be some setting only related to my login (perhaps in the 'user/Library' folder). But I have no clue where to look. Any ideas?

    Something in your ~/Users/ [username]/ Library/ Preferences folder would appear to be the culprit. From the filenames, I'd guess at com.apple.KeyboardViewerServer.plist but upon opening System Preferences> Keyboard and Mouse just now and changing one of the keyboard shortcuts, the timestamps point to ~/Users/ [username]/ Library/ Preferences/ com.apple.universalaccess.plist. Try moving your copy to the Desktop, then logging out and back in to see if that properly restores the defaults. You can try the same move to Desktop / logout trick on Bluetooth preferences in the your user account's Librbary/ Preferences folder.

  • Mapping Problem ORDERS Idoc to Edifact

    Hi,
    I have a mapping problem with the IDOC ORDERS:
    I get the IDOC with several E1EDP01. Each E1EDP01 has several E1EDPT1, where i want only the first one (which I get over the TDID value). Each E1EDPT1 has min. 1 E1EDPT2.
    Now I have to map each field TDLINE from first two E1EDPT2 of the first E1EDPT1 to the Edifact fields /LIST/S_UNB/S_UNH/G_SSG25/S_LIN/S_IMD[1]/C_C273/D_7008 (from the first E1EDPT2) and, if a second E1EDPT2 exists in /LIST/S_UNB/S_UNH/G_SSG25/S_LIN/S_IMD[1]/C_C273/D_7008_2.
    I use following UDF:
    //a = TDLINE
    //b = Number of entry in the List
    int pos =Integer.parseInt(b[0]);
    if ( pos < a.length )
    result.addValue(a[pos]);
    else
    result.addValue(ResultList.SUPPRESS);
    Unfortunatly, I think becaus of the context problems (not every E1EDPT1 has two E1EDPT2), it's not working. Could somebody help me with this problem?
    Thanks in advance
    Dominic

    Dear Dominic ,
    I had same problem when I was trying to do the same thing for FTX segment.
    Your UDF is fine but you don't need else condition.
    //a = TDLINE
    //b = Number of entry in the List
    int pos =Integer.parseInt(b[0]);
    if ( pos < a.length )
    result.addValue(a[pos]);
    for C_C273 assigned contant value and
    D_7008 assigned TDLINE but change the context to E1EDPT1
    and for D_7008_2
    TDLINE(context to E1EDPT1 )
                                                      ====>UDF====>D_7008_2
    Contant(=1)
    It should work becasue my map is working fine. If not let me know error message.
    Thanks
    Shubhankar

  • How to pass dynamic values to value mapping? please help!

    Hi Experts,
           I have requirement where I am using email adapter to send emails. Now the "To" email address is different for different environment. In other words:
    DEV - [email protected]
    TEST - [email protected]
    PROD - [email protected]
    When the XI code is migrated to TEST environment the email address will be [email protected] and in production it will be [email protected]
    Similarly, there are many more environments.
    Now to handle this I have decided to use value mapping where Agency refers to the type of environment.
    Now my problem is how do I use it in message mapping.
    I have wriiten a java function that returns me the type of environment. But now how to use this value for value mapping. I mean when using value mapping in message mapping we hardcode the agency (environment type).
    Is it possibel to specify a variable in value mapping for agency. The variable will be populated by java function before connecting to value mapping?
    Please help!
    Thanks
    Gopal

    Hi Gopal,
    why don't you use a "if" after your UDF. Depending on the return parameter of the UDF you call different value mappings?
    Regards Mario

  • Google maps and google help not loading anymore! help!

    Google maps and google help aren't loading since I've updated firefox. Works in Chrome no problem. Tried everything listed here: https://support.mozilla.com/en-US/kb/Error%20loading%20web%20sites, re-installed flash, cleared cache, etc... what am I missing?

    Anyone have any ideas?

  • Mapping problem with compressed key update record (target format)...

    Hi Guys,
    Getting below error while replication from Source to target. Source table is having NOT NULL Column, but on target replicat process giving error about some NULL value ??
    How to overcome this issue, any idea...
    2011-08-04 10:35:04 INFO OGG-00995 Oracle GoldenGate Delivery for Oracle, rmastrk.prm: REPLICAT RMASTRK starting.
    2011-08-04 10:35:05 INFO OGG-00996 Oracle GoldenGate Delivery for Oracle, rmastrk.prm: REPLICAT RMASTRK started.
    2011-08-04 10:35:06 WARNING OGG-00869 Oracle GoldenGate Delivery for Oracle, rmastrk.prm: OCI Error ORA-01407: cannot update ("INFRA"."CUST"."CODE") to NULL (status = 1407), SQL <UPDATE "INFRA"."CUST" SET "ORD_ID" = :a2,"DP_ID" = :a3,"EXCHNG_CODE" = :a4,"ORD_QTY" = :a5,"ORD_PRICE" = :a6,"CODE" = :a7,"MKRT_CODE" = :a8,"CHANN>.
    2011-08-04 10:35:06 WARNING OGG-01004 Oracle GoldenGate Delivery for Oracle, rmastrk.prm: Aborted grouped transaction on 'INFRA.CUST', Database error 1407 (ORA-01407: cannot update ("INFRA"."CUST"."SCRP_CODE") to NULL).
    2011-08-04 10:35:06 WARNING OGG-01003 Oracle GoldenGate Delivery for Oracle, rmastrk.prm: Repositioning to rba 44132192 in seqno 68708.
    2011-08-04 10:35:06 *WARNING OGG-01154 Oracle GoldenGate Delivery for Oracle, rmastrk.prm: SQL error 1407 mapping INFRA.CUST to INFRA.CUST OCI Error ORA-01407:* *cannot update ("INFRA"."CUST"."SCRP_CODE") to NULL (status = 1407), SQL <UPDATE "INFRA"."CUST" SET "ORD_ID" = :a2,"DP_ID" = :a3,"EXCHNG_CODE"=:a4,"ORD_QTY"*
    *= :a5,"ORD_PRICE" = :a6,"SCRP_CODE" = :a7,"MKRT_CODE" = :a8,"CHANN>.*
    2011-08-04 10:35:06 WARNING OGG-01003 Oracle GoldenGate Delivery for Oracle, rmastrk.prm: Repositioning to rba 44132192 in seqno 68708.
    2011-08-04 10:35:06 ERROR OGG-01296 Oracle GoldenGate Delivery for Oracle, rmastrk.prm: Error mapping from INFRA.CUST to INFRA.CUST.
    2011-08-04 10:35:06 ERROR OGG-01668 Oracle GoldenGate Delivery for Oracle, rmastrk.prm: PROCESS ABENDING.
    Oracle GoldenGate Delivery for Oracle process started, group RMASTRK discard file opened: 2011-08-04 10:35:05
    Current time: 2011-08-04 10:35:06
    Discarded record from action ABEND on error 1407
    OCI Error ORA-01407: cannot update ("INFRA"."CUST"."SCRP_CODE") to NULL
    (status = 1407), SQL <UPDATE "INFRA"."CUST" SET "ORD_ID" = :a2,"MKRT_CODE" = :a8,"CHANN>
    Aborting transaction on ./dirdat/pm beginning at seqno 68708 rba 44132192
    error at seqno 68708 rba 44132192
    Problem replicating INFRA.CUST to INFRA.CUST
    *Mapping problem with compressed key update record (target format)...*
    ORD_QTY = 500
    ORD_PRICE = 37430
    SCRP_CODE =
    MKRT_CODE = N
    Oracle GoldenGate Delivery for Oracle process started, group RMASTRK discard file opened: 2011-08-
    04 10:35:05
    Current time: 2011-08-04 10:35:06
    Discarded record from action ABEND on error 1407
    OCI Error ORA-01407: cannot update ("INFRA"."CUST"."SCRP_CODE") to NULL
    (status = 1407), SQL <UPDATE "INFRA"."CUST" SET "ORD_ID" = :a2,"MKRT_CODE" = :a8,"CHANN>
    Aborting transaction on ./dirdat/pm beginning at seqno 68708 rba 44132192
    error at seqno 68708 rba 44132192
    Problem replicating INFRA.CUST to INFRA.CUST
    Mapping problem with compressed key update record (target format)...
    ORD_QTY = 500
    ORD_PRICE = 37430
    SCRP_CODE =
    MKRT_CODE = N
    Any inputs / help would be appreciated.
    Regards,
    Manish

    The SCRP_CODE column has a NOT NULL constraint. The ORA-01407 error is telling you that you cannot update or set a value for this column to null because of the constraint. This has absolutely nothing to do with an index. You can use a marker/sentinel value in lieu of using NULL. For a numeric field, where everything is positive, a negative value (-1) can be decoded as meaning null. For a character field, a code such as NA can represent NULL.
    This also has nothing to do (directly) with GoldenGate failing because of this error. The underlying SQL statement will fail everywhere, regardless of the tool or application. It is not a case of failing only in GoldenGate.

  • Problem Please help me.....Let me know the area to look for it

    Problem Please help me.....Let me know the area to look for it I am a DBA..Thanks in advance to let me know the cause and the area to look and fix it...
    Server Error in '/' Application.
    Problem with SAP/BAPI. SAP.Connector.RfcCommunicationException: Connect to message server failed Connect_PM MSHOST=prddb01.lamrc.com, R3NAME=PRD, GROUP=Prod HR PRD LOCATION CPIC (TCP/IP) on local host ERROR service 'sapmsPRD' unknown TIME Wed May 04 08:59:06 2005 RELEASE 620 COMPONENT NI (network interface) VERSION 36 RC -3 MODULE ninti.c LINE 428 DETAIL NiPServToNo SYSTEM CALL getservbyname COUNTER 1 at SAP.Connector.SAPConnection.ThrowRfcException(RFC_ERROR_INFO_EX rfcerrInfo, Encoding encoding, String languangeCode) at SAP.Connector.SAPConnection.Open() at SAP.Connector.SAPClient.RfcInvoke(String method, Object[] methodParamsIn) at SAP.Connector.SAPClient.SAPInvoke(String method, Object[] methodParamsIn) at SoftwareKeySAPG.SAPProxy1.Z_Bapi_Load_Kpi_Region(ZSOFT_KPI_REGIONS_MTable&amp; Kpi_Regions, ZSOFT_PROD_TYPETable&amp; Prod_Type) at SoftwareKeySAPG.SAPGSK.LoadKPIRegion(DataSet dsProduct)
    Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
    Exception Details: System.Web.Services.Protocols.SoapException: Problem with SAP/BAPI. SAP.Connector.RfcCommunicationException: Connect to message server failed Connect_PM MSHOST=prddb01.lamrc.com, R3NAME=PRD, GROUP=Prod HR PRD LOCATION CPIC (TCP/IP) on local host ERROR service 'sapmsPRD' unknown TIME Wed May 04 08:59:06 2005 RELEASE 620 COMPONENT NI (network interface) VERSION 36 RC -3 MODULE ninti.c LINE 428 DETAIL NiPServToNo SYSTEM CALL getservbyname COUNTER 1 at SAP.Connector.SAPConnection.ThrowRfcException(RFC_ERROR_INFO_EX rfcerrInfo, Encoding encoding, String languangeCode) at SAP.Connector.SAPConnection.Open() at SAP.Connector.SAPClient.RfcInvoke(String method, Object[] methodParamsIn) at SAP.Connector.SAPClient.SAPInvoke(String method, Object[] methodParamsIn) at SoftwareKeySAPG.SAPProxy1.Z_Bapi_Load_Kpi_Region(ZSOFT_KPI_REGIONS_MTable&amp; Kpi_Regions, ZSOFT_PROD_TYPETable&amp; Prod_Type) at SoftwareKeySAPG.SAPGSK.LoadKPIRegion(DataSet dsProduct)
    Source Error:
    An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
    Stack Trace:
    [SoapException: Problem with SAP/BAPI.
    SAP.Connector.RfcCommunicationException: Connect to message server failed
    Connect_PM MSHOST=prddb01.lamrc.com, R3NAME=PRD, GROUP=Prod HR PRD
    LOCATION CPIC (TCP/IP) on local host
    ERROR service 'sapmsPRD' unknown
    TIME Wed May 04 08:59:06 2005
    RELEASE 620
    COMPONENT NI (network interface)
    VERSION 36
    RC -3
    MODULE ninti.c
    LINE 428
    DETAIL NiPServToNo
    SYSTEM CALL getservbyname
    COUNTER 1
    at SAP.Connector.SAPConnection.ThrowRfcException(RFC_ERROR_INFO_EX rfcerrInfo, Encoding encoding, String languangeCode)
    at SAP.Connector.SAPConnection.Open()
    at SAP.Connector.SAPClient.RfcInvoke(String method, Object[] methodParamsIn)
    at SAP.Connector.SAPClient.SAPInvoke(String method, Object[] methodParamsIn)
    at SoftwareKeySAPG.SAPProxy1.Z_Bapi_Load_Kpi_Region(ZSOFT_KPI_REGIONS_MTable&amp; Kpi_Regions, ZSOFT_PROD_TYPETable&amp; Prod_Type)
    at SoftwareKeySAPG.SAPGSK.LoadKPIRegion(DataSet dsProduct)]
    System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall) +1503
    System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters) +218
    SoftwareKeyUI.InstalledBaseDataWS.InstalledBaseData.LoadKPIRegionMulti(DataSet products)
    SoftwareKeyUI.InstalledBaseDataAccess.LoadKPIRegionMulti(DataSet products)
    SoftwareKeyUI.InstalledBase.GetRegionDetails(Int32 userId, String product, String regionType)
    SoftwareKeyUI.FilteredAccess.GetRegionDetails(Int32 userId, String product, String regionType)
    SoftwareKeyUI.search.LoadRegionDetails()
    SoftwareKeyUI.search.regionType_SelectedIndexChanged(Object sender, EventArgs e)
    System.Web.UI.WebControls.ListControl.OnSelectedIndexChanged(EventArgs e) +108
    System.Web.UI.WebControls.DropDownList.System.Web.UI.IPostBackDataHandler.RaisePostDataChangedEvent() +26
    System.Web.UI.Page.RaiseChangedEvents() +115
    System.Web.UI.Page.ProcessRequestMain() +1099

    Hi
    You should make a mapping for the service sapmsPRD in your /etc/services file (On Windows: C:WINDOWSSYSTEM32DRIVERSETCservices). If your instance number is 00 you will have to add the following entry:
    sapmsPRD      3600/tcp
    Good luck!
    René van Es

  • Mapping problem - Shaded areas in the wrong place

    Hey experts,
    I`ve already contacted you on this issue a few days ago. I created a query, which executes a few key figures mapped to the postalcode.
    I tried to let me display this query on the web, using the WAD. The shapefiles were uploaded correctly, for the contours of the country and the postalcode areas are displayed accurately.
    At the first sight, I thought a performance problem could be the challenge. But I did not find any information on that. On my last post, i received one answer, that I had to adjust the sort order. But that did not bring any results either!
    At the moment, it looks more like a mapping problem in the dBase File to me. How can a proper mapping be achieved? I tried to just add a SAPBWKEY column, like it is proposed here: http://help.sap.com/saphelp_nw04/helpdata/en/3b/7c92ec1bed374ee0000800091c1b0e/content.htm.
    An extract of my dBase-File schematically looks like this:
    0country, 0Postalcod, SAPBWKEY
    DE            48900          DE/48900 (for it is a composite attribute)
    The mapping seems to work in a rather random way, because the shaded areas are at least displayed somewhere on the map, but not where they supposed to be, e. g. one district of south Germany in the far north and so on.
    Did you have any similar issues in the past or any tips for a solution?
    Thanks&regards
    Marcus

    Sorry, I guess this is just a bug in some programs including firefox:
    https://bugzilla.mozilla.org/show_bug.cgi?id=314279

  • Java Error in RFC Lookup in XSLT Mapping usinf Java helper class

    Hi All,
    I am doing RFC Lookup in XSLT Mapping using Java Helper class.
    The Lookup works fine when called one RFC at a time However my requirement is I want to do 2 Lookups.
    Both Lookups works when done individually however when I call both lookups in one mapping I get following error "javax.xml.transform.TransformerException: DOMSource whose Node is null."
    Following is the code I have written in XSLT for the lookup:
         <xsl:template name="Lookup_1">
              <xsl:param name="STDPN"/>
                   <rfc:RFC_READ_TABLE>
                        <QUERY_TABLE>KNA1</QUERY_TABLE>
                        <OPTIONS><item><TEXT>
                                  <xsl:value-of select="$STDPN"/>
                             </TEXT></item>
                        </OPTIONS>
                        <FIELDS>
                             <item>
                                  <FIELDNAME>KUNNR</FIELDNAME>
                             </item>
                        </FIELDS>
                   </rfc:RFC_READ_TABLE>
              </xsl:variable>
              <xsl:variable name="response" xmlns:lookup="java:urn.mt.pi" select="lookup:execute($request, 'BS_D, 'cc_RfcLookup', $inputparam)"/>
              <xsl:element name="STDPN">
                   <xsl:value-of select="$response//DATA/item/WA"/>
              </xsl:element>
         </xsl:template>
         <xsl:template name="Lookup_2">
              <xsl:param name="BELNR"/>
                   <xsl:variable name="Query">AGMNT = '<xsl:value-of select="$BELNR"/>'</xsl:variable>
                   <xsl:variable name="request1">
                        <rfc:RFC_READ_TABLE>
                             <QUERY_TABLE>ZTABLE</QUERY_TABLE>
                             <OPTIONS><item><TEXT>
                                  <xsl:value-of select="$Query"/>
                                  </TEXT></item>
                             </OPTIONS>
                             <FIELDS>
                                  <item>
                                       <FIELDNAME>KUNAG</FIELDNAME>
                                  </item>
                             </FIELDS>
                        </rfc:RFC_READ_TABLE>
                   </xsl:variable>
                   <xsl:variable name="response1" xmlns:lookup="java:urn.mt.pi" select="lookup:execute($request1, 'BS_D','cc_RfcLookup', $inputparam)"/>
                   <xsl:element name="BELNR">
                        <xsl:value-of select="$response1//DATA/item/WA"/>
                   </xsl:element>
         </xsl:template>
    My Question: Am I doing anything wrong? Or Is it possible to call multiple lookups in one XSLT?
    Thanks and Regards,
    Atul

    Hi Atul,
    I had the same problem like you had.
    The main Problem is that with the example code the request variable is created as NodeList object. In XSLT a variable is somekind of a constant and can't be changed. As the request object is empty after the first request the programm fails at the following line:
    Source source = new DOMSource(request.item(0));
    So I've created a workaround for this problem.
    In the call of the template I've put the request as a parameter object at the template call:
    <xsl:with-param name="req">
    <rfc:PLM_EXPLORE_BILL_OF_MATERIAL xmlns:rfc="urn:sap-com:document:sap:rfc:functions">
      <APPLICATION>Z001</APPLICATION>
      <FLAG_NEW_EXPLOSION>X</FLAG_NEW_EXPLOSION>
      <MATERIALNUMBER><xsl:value-of select="value"/></MATERIALNUMBER>
      <PLANT>FSD0</PLANT>
      <VALIDFROM><xsl:value-of select="//Recordset/Row[name='DTM-031']/value"/></VALIDFROM>
      <BOMITEM_DATA/>
    </rfc:PLM_EXPLORE_BILL_OF_MATERIAL>
    </xsl:with-param>
    With this change the request will be provided as a String object and not as a NodeList object.
    Afterwards the RfcLookup.java has to be changed to the following:
    package com.franke.mappings;
    import java.io.ByteArrayInputStream;
    import java.io.ByteArrayOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.PrintWriter;
    import java.io.StringWriter;
    import java.util.Map;
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.transform.Source;
    import javax.xml.transform.Transformer;
    import javax.xml.transform.TransformerFactory;
    import javax.xml.transform.dom.DOMSource;
    import javax.xml.transform.stream.StreamResult;
    import org.w3c.dom.Document;
    import org.w3c.dom.Node;
    import org.w3c.dom.NodeList;
    import com.sap.aii.mapping.lookup.Channel;
    import com.sap.aii.mapping.api.StreamTransformationConstants;
    import com.sap.aii.mapping.api.AbstractTrace;
    import com.sap.aii.mapping.lookup.RfcAccessor;
    import com.sap.aii.mapping.lookup.LookupService;
    import com.sap.aii.mapping.lookup.XmlPayload;
    * @author Thorsten Nordholm Søbirk, AppliCon A/S
    * Helper class for using the XI Lookup API with XSLT mappings for calling RFCs.
    * The class is generic in that it can be used to call any remote-enabled
    * function module in R/3. Generation of the XML request document and parsing of
    * the XML response is left to the stylesheet, where this can be done in a very
    * natural manner.
    * TD:
    * Changed the class that request is sent as String, because of IndexOutOfBound-exception
    * When sending multiple requests in one XSLT mapping.
    public class RfcLookup {
         * Execute RFC lookup.
         * @param request RFC request - TD: changed to String
         * @param service name of service
         * @param channelName name of communication channel
         * @param inputParam mapping parameters
         * @return Node containing RFC response
         public static Node execute( String request,
                 String service,
                 String channelName,
                 Map inputParam)
              AbstractTrace trace = (AbstractTrace) inputParam.get(StreamTransformationConstants.MAPPING_TRACE);
              Node responseNode = null;
              try {
                  // Get channel and accessor
                  Channel channel = LookupService.getChannel(service, channelName);
                  RfcAccessor accessor = LookupService.getRfcAccessor(channel);
                   // Serialise request NodeList - TD: Not needed anymore as request is String
                   /*TransformerFactory factory = TransformerFactory.newInstance();
                   Transformer transformer = factory.newTransformer();
                   Source source = new DOMSource(request.item(0));
                   ByteArrayOutputStream baos = new ByteArrayOutputStream();
                   StreamResult streamResult = new StreamResult(baos);
                   transformer.transform(source, streamResult);*/
                    // TD: Add xml header and remove linefeeds for the request string
                    request = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"+request.replaceAll("[\r\n]+", ""); 
                    // TD: Get byte Array from request String to send afterwards
                    byte[] requestBytes = request.getBytes();
                   // TD: Not used anymore as request is String
                    //byte[] requestBytes = baos.toByteArray();
                    trace.addDebugMessage("RFC Request: " + new String(requestBytes));
                    // Create input stream representing the function module request message
                    InputStream inputStream = new ByteArrayInputStream(requestBytes);
                    // Create XmlPayload
                    XmlPayload requestPayload =LookupService.getXmlPayload(inputStream);
                    // Execute lookup
                    XmlPayload responsePayload = accessor.call(requestPayload);
                    InputStream responseStream = responsePayload.getContent();
                    TeeInputStream tee = new TeeInputStream(responseStream);
                    // Create DOM tree for response
                    DocumentBuilder docBuilder =DocumentBuilderFactory.newInstance().newDocumentBuilder();
                    Document document = docBuilder.parse(tee);
                    trace.addDebugMessage("RFC Response: " + tee.getStringContent());
                    responseNode = document.getFirstChild();
              } catch (Throwable t) {
                   StringWriter sw = new StringWriter();
                   t.printStackTrace(new PrintWriter(sw));
                   trace.addWarning(sw.toString());
              return responseNode;
         * Helper class which collects stream input while reading.
         static class TeeInputStream extends InputStream {
               private ByteArrayOutputStream baos;
               private InputStream wrappedInputStream;
               TeeInputStream(InputStream inputStream) {
                    baos = new ByteArrayOutputStream();
                    wrappedInputStream = inputStream;
               * @return stream content as String
               String getStringContent() {
                    return baos.toString();
              /* (non-Javadoc)
              * @see java.io.InputStream#read()
              public int read() throws IOException {
                   int r = wrappedInputStream.read();
                   baos.write(r);
                   return r;
    Then you need to compile and upload this class and it should work.
    I hope that this helps you.
    Best regards
    Till

Maybe you are looking for

  • FA Acquisition - 21151: error while posting asset document: '100000006'

    Hi All, When I was performing the FA Acquisition for a fixed asset code, the above error message prompt. I am using SAP B1 8.8 PL 15. Before this error appear, I was able to perform all other transactions like FA Acq, Credit Note, Retirement and depr

  • Problem while creating credit memo request using BAPI

    HI, I am trying to create credit memo request using the BAPI_SALESDOCU_CREATEFROMDATA1.. I am getting the error as " No customer master data is available for the customer". But the customer exists in the KNA1 table. What is the mistake i hv done.. th

  • Error 805a0194 When trying to download App

    i am unable to download the navigation app and get the error code 805a0194. I have restarted the phone which is a Lumia 620 purchased only a day ago. A full reset has not helped. The reason I purchased a Nokia was for the navigation. Is there anythin

  • Adobe Support Program

    this problem is not solved Case #0185212610 Updated Monday, March 3, 2014 1:11:19 PM PST Opened Monday, February 24, 2014 2:38:41 PM PST Status Withdrawn Product Design and Web Prem CS6 Support contract Adobe Support Program Subject not able to use i

  • Cocoppa wont open links!!

    Okay so whenever i use the app cocoppa, i click on the "use this icon" bar. it leads me to safari but once its loaded all it is is a plain white safari screen. IM GETTING FRUSTRATED WHAT DO I DO?!?!