Mapping and global container?

I have to map single different field IN_F1 to three output fields..
1) map the input field value IN_F1 to output field value OUT_F1
2)
a) based on the INPUT field value , conditionally map incremental numbers to OUT_F2. For example, if IN_F1 is 'X', OUT_F2 will be '01' and second time around I will increment it to '02'.
b) Same condition as 2a, but move the incremented value from OUT_F2 to OUT_F3 in different node.
I am planning to set global container in step 2a. And then use  that global container in step 2b to  fill OUT_F3. My question is will steps 2a and 2b always follow the order? Since my field OUT_F3 occurs in node after OUT_F2, 2a should always get executed first. Is this assumption right?
I am actually invoking standard BAPI.. Would it be better to do all this steps in XI to fill std. BAPI structure or create a custom RFC to do this?

Hi,
>>>>Since my field OUT_F3 occurs in node after OUT_F2, 2a should always get executed first. Is this assumption right?
yes
you can also get all OUT_F2 in an advanced function
and put then in a global array which you'll just
use in a new andanved function to fill OUT_F3
Regards,
michal

Similar Messages

  • Java doc for container ,global container.

    Hi ,
    Can somebody tell where I can get the javadoc for container and global container.
    THnks

    Hi,
    You can view the the source code also provided if you have proper Decompiler tools.
    I have used a tool to open <b>aii_mt_rt.jar</b> and found the following for <b>Global Container</b>.
    Global container:
    package com.sap.aii.mappingtool.tf3.rt;
    import java.util.Map;
    public interface GlobalContainer
        public void setParameter(String string, Object object);
        public Object getParameter(String string);
        public Map getParameters();
    For Container:
    package com.sap.aii.mappingtool.tf.rt;
    import com.sap.aii.mapping.api.AbstractTrace;
    public interface Container
        public Object getParameter(String string);
        public void setParameter(String string, Object object);
        public AbstractTrace getTrace();
        public GlobalContainer getGlobalContainer();
    Hope this helps.
    Regards,
    Ananth

  • Trace not showing Global container variable at mapping test time.

    Hi Folks ,
    I have a scenario file to Proxy scenario. At mapping time I am doing a lookup inside a UDF using JCO connections.
    Lookup is taking 2 fields(ex X an dY) as input and coming up with couple of fields in output.
    Output fileds I am storing in global container and want to access in further mapping .
    I am using trace to see variable values at mapping tijme
    Surprisingly :
    1. For a particular "X" field in Input, No output fields are coming at trace . On testing it end to end I can see fields getting populated at run time at lookup table . but not getting reflected at mapping trace . what could be the possible cause ?
    2.  For few input fields like "Z" . It is showing all the output values at Trace. But when I go and place a value in lookup table for the same Input field "Z" . this new value is not coming up at trace Level while rest of teh values are coming up. Can anyone hint where I am going wrong  ?
    End to end Debugging sahows values populating and being sent across . Where I need to look at ?
    Regards ,
    Santosh

    Hi Horia ,
    By trace do you mean display queue or running the mapping completely in the ESR ?
    --->I am talking about running the mapping at IR and getting the values of trace by using messagetype.traceinfo() in UDF functionality. I am working on Pi 7.0
    Regards ,
    Santosh

  • Global Container in Java Class of Interface Mapping

    I have written a Java Class that implements the StreamTransformation interface for use in an Interface Mapping. I would like to cache information read from a file between message processing calls of this mapping.
    It appears that maybe the GlobalContainer object can be used to perform this caching. How do I access the GlobalContainer object from a class that implements StreamTransformation?
    The examples all show container.getGlobalContainer() method call to get access to this object. However container is not a variable in this interface. Any ideas on how to do this?
    Thanks,
    Jay

    Hi Jay,
    if you want to link data from different messages you must use BPM, you cannot do this with GlobalContainer because it is instantiated at the begin of the mapping and is flushed at the end of the mapping (e.g. graphical mapping).
    2 files for the same scenario will use 2 different instances of the same message mapping program and they will not share the container.
    The container is shared inside the same instance of the mapping program.
    So it is shared for example between two UDF in the same mapping
    So if you are using Java mapping you do not need to use the global container, you can use an Object to store data, but keep in mind that all this data will be lost at the end of the mapping.
    Hope it helps,
    Kind Regards,
    Sergio

  • Display entity-attributes and global-attributes in the same screen

    Hi,
    I have a question about entity.
    Is it possible to display in the same screen, entity-attributes and global-attributes?
    thanks
    Rosalia

    Hi Rosalia,
    You can only display attributes from the current entity and the entity or entities that it is contained by (the parent entities).
    So if you had the following data model
    Global
    ..the person
    ...the income
    the person is contained by global.
    the income is contained by the person (which is contained by global).
    If you want to create a person-level question screen, you can display global attributes on that screen by using subsitution like %global_field_1%. You cannot, however, input global attributes on that screen (ONLY attributes belonging to the person)
    If you want to create an income-level question screen, you can display attributes from the person such as "tell us about %person_name%'s income..." as well as global attributes. Again, you cannot input person or global attributes on that screen (ONLY attributes belonging to the income)
    However it only works from child-to-parent containment relationships! You cannot have a global question screen which loops through the person instances and displays attributes from the person, or from the income out-of-the-box.
    We have managed to implement this using custom controls.
    You can map individual attributes back up to the parent level, and then display them,
    such as
    the first person's name = InstanceValueIf(the people, the person's name, the person's id = 1)
    the first person's name is now a global attribute and can be displayed on global question screens.
    Hope this helps!
    Ben

  • Exchanging data between interface mapping and message mapping possible?

    Hi,
    please have a look at my interface mapping:
    source message -
    >
    mapping programs
    1. Java mapping
    2. XSL mapping
    3. message mapping
    > target message
    in my scenario a Java Class (1) is called for the interface mapping. There, some information ist read from the xml structure. Next, a xslt mapping (2) takes place that strips some information. The remaining data is passed to the message mapping (3)
    The reason for this is that the source message consists of a xml message inside an xml message.
    I am looking for a way to access the informationen gained in step 1 (Java class) in the message mapping (step 3). I was hoping that the global container (used by user-defined function within message mapping) is accessible from the java mapping, but I could not find out how.
    Anybody with some ideas how to pass information from step 1 to step 3? I cannot put the Information in the xml that is passed to the message mapping, because the schema of the inner xml cannot be changed.
    Thanks very much, best regards,
    Wolfgang

    Hi Wolfgang!
    I have used the "Dynamic Configuration" section in the XI Message header for this issue. You could write something into the Dynamic Configuration Section in step 1 (Java-Mapping) and read it out again in steps 2 or 3. You could use a section for a adapter you are not using in your interface for the real receiver. So if you have a File-Receiver Adapter at the "end" you could use some section of the e.g. SOAP adapter not to interfere with your receiver-adapter when using Dynamic Configuration Settings there ...
    See also: http://help.sap.com/saphelp_nw04/helpdata/de/43/09b16006526e72e10000000a422035/content.htm
    or
    http://help.sap.com/saphelp_nw04/helpdata/de/43/0a7d1be4e622f3e10000000a1553f7/content.htm
    Best regards,
    Andi

  • Concept of Global Container or Global Variable

    Hi friends,
    My Scenario is from JMS to SOAP.
    I need to store some data when it comes to XI from JMS.
    When the response comes back from SOAP I need to add these fields and send back to JMS.
    Can I do this Scenario without using BPM ?
    Is there any concept like Global Container which I can use it in different Message mappings?
    Thanks and regards,
    Jose

    Hi,
    This object enables you to cache the values that you want to read again when you next call any user-defined function in the same message mapping. Note that the sequence in which user-defined functions are called is predefined. It depends on the position of the target fields that the function was assigned to
    On details of global container refer these.
    /people/sap.user72/blog/2005/10/01/xi-new-features-in-sp14
    http://help.sap.com/saphelp_nw2004s/helpdata/en/75/8e0f8f3b0c2e4ea5f8d8f9faa9461a/frameset.htm
    /people/michal.krawczyk2/blog/2005/03/04/globalcontainer--in-graphical-mapping-xi

  • Accessing Global Container

    Dear Experts,
    I have an RFC  to FILE Scenario and used BPM to meet the requirements.
    There are 2 graphical mappings - mapping1 before the BPM and mapping2 (transformation) within the BPM.
    I have saved a parameter in the global container in mapping1 but unable to extract the same in mapping2. Any idea?
    UDF in mapping1:
    GlobalContainer gc1 = container.getGlobalContainer();
    String gdata1 = va2 + "_" + var3;
    gc1.setParameter("gdata",gdata1);
    UDF in mapping2:
    GlobalContainer gc2 = container.getGlobalContainer();
    String gdata2 = (String) gc2.getParameter("gdata");
    Thanks and Regards,
    Rana Brata De

    Hi Rana
    Refer the following statement from SAP Help stating that the values only available in same message mapping.
    This object enables you to cache the values that you want to read again when you next call any user-defined function in the same message mapping.
    GlobalContainer Object - Enterprise Services Repository - SAP Library
    If you want to pass the value, you can either add additional fields in your structures or use DynamicConfiguration (has limit of 200 characters). Since you are using BPM (is it ccBPM or NW BPM?), I'm not sure if DC attributes can be passed into a BPM an accessible.
    Any particular reason to do the 2nd mapping within the BPM? You can also do it out of the BPM after all the necessary BPM processing.
    Rgds
    Eng Swee

  • Global Container Variable

    Hi
    Give me idea on Global Container variable in Graphical mapping.
    Thanx in Advance

    Hi
    Ref this
    /people/sravya.talanki2/blog/2005/12/21/use-this-crazy-piece-for-any-rfc-mapping-lookups
    http://help.sap.com/saphelp_nw04/helpdata/en/95/bb623c6369f454e10000000a114084/content.htm
    Design and Configuration [original link is broken]
    Thanks
    Sridhar

  • FixValues and Global Variable

    hi,
    Is there a functionality which does exactly like FixValues but stores the value thorugh out the mapping?
    I have a requirement where i have to map 2 different values to other values but i have to repeat this for all the fields using FixValue instead if there would be a Global Variable i could use that instead.
    Any ideas.
    Thanks,
    KP

    Hi Tirumal,
    For your requirement you can define a HashMap in Java Sections Tab of Graphical mapping and refer the values from UDF.
    Steps
    1. Goto MessageMapping (Design TAB)-> Edit JAVA Sections (Found on top-right side)
    2. Declare a HashMap in Global variables section.
        Eg.
    HashMap materialNumMap = null;
    3. Initialize the same variable and fill some values.
        Eg.
    materialNumMap = new HashMap();
                materialNumMap.put("MAT-01","10001");
                materialNumMap.put("MAT-02","10002"); 
                materialNumMap.put("MAT-03","10003");
                materialNumMap.put("MAT-04","10004");
    4. Write UDF to retrieve value from Global container
    public void chkExists(String materialNUM,ResultList result,Container container){
      String valueFrmMap = (String)materialNumMap.get(materialNUM);
      return valueFrmMap;
    Hope this solves your problem.
    Regards,
    Ananth

  • Receiver determination step in the BPM and multiline container

    i have made a file2file scenario where:
    there is a BPM,
    the BPM has a send step which contains a receive step,
    a transformation that mapps the incomin message to two messages(Split-messgae case),
    and then a FORK step which sends the two messges to through 2 SEND steps to the intended receiver services.
    It didnt work......and i followed a blog->  /people/sudharshan.aravamudan/blog/2005/12/01/illustration-of-multi-mapping-and-message-split-using-bpm-in-sap-exchange-infrastructure   ............... which suggested to have a
    "receiver-determination" step in the BPM before the SEND step.... it says that this
    "receiver-determination" step will put the message in a MULTILINE container..
    i m confused bout this step ........ can anybody explain.....
    please help

    HI,
    In receiver determination step selctthe multi line container element.in container editor create the one element with type as receiver and select the check box.
    A Receiver Determination step returns set of receivers configured for the output abs interfaces in the directory and puts it into receiver which is a multiline container receiver element
    Regards
    Chilla

  • What is the diffrence between  map and map.entry in core java

    what is the diffrence between map and map.entry in core java . where it will be use ful. any one give one example plz.

    A Map contains Map.Entry's
    e.g.
            Map map = new LinkedHashMap(8);
            map.put(new Integer(1), "one");
            map.put(new Integer(2), "two");
            final Iterator iterator = map.entrySet().iterator();
            while (iterator.hasNext()) {
                Map.Entry entry = (Map.Entry) iterator.next();
                System.out.println("key=" + entry.getKey() + ", value=" + entry.getValue());
            }

  • "receiver-determination" step and multiline container

    i have made a file2file scenario where:
    there is a BPM,
    the BPM contains a receive step,
    a transformation that mapps the incomin message to two messages(Split-messgae case),
    and then a FORK step which sends the two messges to through 2 SEND steps to the intended receiver services.
    It didnt work......and i followed a blog-> /people/sudharshan.aravamudan/blog/2005/12/01/illustration-of-multi-mapping-and-message-split-using-bpm-in-sap-exchange-infrastructure ............... which suggested to have a
    "receiver-determination" step in the BPM before the SEND step.... it says that this
    "receiver-determination" step will put the message in a MULTILINE container..
    i m confused bout this step ........ can anybody explain.....
    please help

    Receiver Determination step will return all receivers that are configured in Integration Directory, for that particular message interface, having the BPM as the sender service.
    So, more than one receiver may return. Hence you need to define the receiver container as a multiline container.
    Here you go with explanations- for Receiver Determinations in BPM-
    http://help.sap.com/saphelp_nw04/helpdata/en/11/13283fd0ca8443e10000000a114084/content.htm

  • Global Container

    Hi all,
    I am trying to understand the concept of Global Container.
    i have referred to the following blog by Michal
    <a href="/people/michal.krawczyk2/blog/2005/03/04/globalcontainer--in-graphical-mapping-xi:///people/michal.krawczyk2/blog/2005/03/04/globalcontainer--in-graphical-mapping-xi
    I have created the Second UDF 'getContainer'.
    But, while testing I am getting the following error:
    RuntimeException in Message-Mapping transformation: Exception:[java.lang.NullPointerException] in class com.sap.xi.tf._MM_TEST_IN_ method getContainer$[]
    Code that i am writing in getContainer is as follows:
    <b>GlobalContainer globalContainer = container.getGlobalContainer();
    String[] b = (String[]) globalContainer.getParameter("our_number");
    for (int i=0; i<b.length; i++)
    result.addValue(b<i>);
    }</b>
    getContainer function does not have any input parameters.
    Kindly, provide me some guidance about where am I getting wrong.
    Thanks & Regards,
    Nilima Rodrigues

    Hi Nilima,
    Hi Nilima,
       //write your code here
    GlobalContainer globalContainer1 = container.getGlobalContainer();
    String[] b = (String[]) globalContainer1.getParameter("our_number");
    String str_result = "";
    if( (b != null)  ) {
      int a1 = Integer.parseInt(b[0]);
      int cnt = Integer.parseInt(counter);
      int ans = a1;
      str_result = String.valueOf(ans);
    return  str_result;
    Note counter is a arguement for value based...
    Map Now like this
    use COUNTER standard function --> UDF getContainer --> then target field..
    this will work..
    regards,
    sridhar
    Message was edited by:
            sridhar reddy kondam

  • Throw exception in Java mapping and handle this in BPM

    Hi,
    I'll use a Java mapping in a BPM transform step. Is it possible to throw an exception inside this Java mapping and handle this in a BPM exception handler?
    thanks and regards
    Verena

    Hi Verena,
    In a BPM transformation step, I think you can throw exceptions only for system errors.
    Let me explain with an example, one of the ways to handle your scenario:
    Lets assume your Java Mapping fails then you can trap that exception in your Java mapping and compose an XML message which indicates that an error has occurred.
    say for e.g.
    <intermediateStructure>
    <SatusDocument>
    <StatusCode>ERROR</StatusCode>
    <ErrCode>123</ErrCode>
    <ErrDesc><!populate the thrown exception details></ErrDesc>
    </StatusDocument>
    <Payload>
    <!contains actual XML message with data>
    </Payload>
    </intermediateStructure>
    if Java mapping is Successful, you can compose the XML message as follows:
    <intermediateStructure>
    <SatusDocument>
    <StatusCode>SUCCESS</StatusCode>
    <ErrCode>0</ErrCode>
    <ErrDesc></ErrDesc>
    </StatusDocument>
    <Payload>
    <!contains actual XML message with data>
    </Payload>
    </intermediateStructure>
    You can use BPM switch operation to switch to different processing branches say for e.g. "error" branch or "success" branch by examining the value of <StatusCode> tag.
    Hope it helps !
    Regards,
    Sridhar

Maybe you are looking for

  • Problems syncing, iTunes says iPod is synced to another PC

    Hi, As stated above I'm having problems syncing my iPod touch 5G. It's been a few months since I synced and backed up to my PC but when I connected the iPod to iTunes yesterday, after doing an initial sync, it warned me that the iPod was synced to an

  • How to set a bind variable into a vo query from the current vo ?

    I would like to exclude from my list of values defined in a view object the already referenced items in the current view object content. Let's say i have dept and emp with a many to many relationships, I would like that the already existing dept for

  • My number reads blocked, or unidentified

    my number shows up as blocked, unidentified, or a different number from a different area code when i call a cell phone from my online number. This was not the case until I reactivated my number. Some landlines that do not receive calls from unidentif

  • Connection from ONE VM to multiple X-displays?

    Hallo, is it possible to display AWT/Swing components on multiple X11 displays (not screens) from ONE virtual machine? Each display has its own name/ip-address. Thanx

  • CAPTURING FROM DVC PRO INTO iMOVIE

    I am feeding a DVC pro deck with SDI out into the firewire port on my new mac. I can see the video in imovie capture window, but cannot actually capture footage (either by selecting import or hitting the space bar). No clips are captured. I have rebo