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

Similar Messages

  • 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

  • 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

  • BPM and own container variables and their usage in transform

    Hi folks,
    I have a question about the usage of own container variables within the transform step of a BPM.
    I want to know whether I can get the actual content of such a container variable within the mapping being done in the transform step.
    I have been looking into this forum upon related topic(s) but somehow they all seemed to go about being able to get standard values like messageID etc within the transform step and NOT about getting your own variables ... It is clear that getting those standard variables will not work directly ( not without actually getting them into an XML payload before entering the BPM) ...
    So basically I want to define global BPM variables, populate them with some content during BPM execution and then at some point reference those container variables in the mapping ( prob via java code ) in a transform step ...  Is that supported ? 
    Regards,
    Steven

    Hi,
    >>>So basically I want to define global BPM variables, populate them with some content during BPM execution and then at some point reference those container variables in the mapping ( prob via java code ) in a transform step ... Is that supported ?
    no, this is not possible
    you can only compare those varabiels with some of your message tags (in a loop step for example)
    Regards,
    michal

  • How to read container variable in UDF

    Hello expert,
    I have created a container variable(var_callerId) in an integrationprocess.
    In a mapping I want to read the container variable with an UDF.
    Can anyone send me the code for the UDF please ?
    I can't find the solution in any post message / blog.
    Thx for your help!
    Best regards,
    Juergen

    Hi navneet,
    thanks for your fast reply.
    Let me explain why I wanted to use container variables:
    (Perhaps there is a better way to fix the requirement)
    I've following IP
    Message Interface (input)
    <getData>
    <callerInfo>
    <callerID>SYSA</callerID>
    <SessionID>43545455545355</SessionID>
    <number>3434344334</number>
    </callerInfo>
    </getData>
    Then I have a mapping (<number>) to call a webservice.
    I get the data from the webservice.
    At last I will send the data back to the business System.
    But I need the both tags from the input interface (SessionID, callerID) again, to send it back.
    I tried a mapping  to map sessionID and callerID from the input interface  to the output interface, but it doesn't work.
    So I thought I can store the sessionID and callerID in a container variable and in a mapping I will get it back with an UDF.
    I think there should be a possiblility to get the stored value from the container variable inside the IP. But I don't find any solution.
    I don't understand your solution with the global container. How can I access to the container variable(IP).
    Thx for your help
    Best regards
    Juergen

  • 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

  • Error while assigning Payload to container variable, Activate SXI_Cache

    Hi experts,
    I have a BPM-Szenario. There is a ContainerOperation where I want to fill a Container Variable with a Payload variable. Unfourtunately I get an error in TA sxi_cache: "The value of expression "&.....&" cannot serve as the source of an Assignment.
    My question is, is it really unpossible to do this?
    By the way: After them my bpm in sxi_cache is blocked. Also if i delete the container operation it is a lot of luck to activate my bpm.
    My actions to activate the BPM are:
    IR - F7 = all is ok
    ID - Delete IP and Create the IP new
    SLD-Cache - Activate in IR and ID
    SXI_Cache - Delta and Full Cache Refresh
    TA SWWL - There are no error work items
    All actions do have no influence to the sxi_cache.
    Are there any ideas from the experts?
    Best
    Mathias

    Hello Mathias,
    How do you assign the container varaible? Are you sure, that your XPath-expression is correct? Is your target container a simple typed container?
    Best regards
    Joachim

  • How to collect JScrollPanes into a Container variable? (urgent...)

    Please help me in following problem:
    I can collect succesfully one JScrollPane into a Container variable allComponents and then show this Container in application window. However, I would like to collect several JScrollPanes into this same Container variable but it does not work. Should I use some kind of add command?
    I tried something like
    allComponents.add(jspane);
    but I got error code "variable allComponents might not have been initialized" allthough I have tried my best to initialize it.
    Thanks for your kind help!
    Snippets from my program:
    class SwingApplication implements ActionListener
    public Container createComponents()
    Container allComponents;
    jspane = new JScrollPane(panel);
    jspane2 = new JScrollPane(cards);
    allComponents = jspane; // THIS WORKS BUT I WOULD LIKE TO COLLECT BOTH jspane AND jspane2 WITH ADD COMMAND
    return allComponents;
    class DragImage
    { public static void main(String[] args)
    JFrame frame = new JFrame("SwingApplication");
    SwingApplication app = new SwingApplication();
    Container contents = app.createComponents();
    frame.getContentPane().add(contents, BorderLayout.CENTER);
    Message was edited by:
    wonderful123

    THanks for your interest!!
    Perhaps I give the whole source code
    The problem lies in the following place:
    allComponents = jspane;
    return allComponents;
    I would like to use some kind of command
    allComponents.add(jspane);
    but it does not seem to work. I get the error "variable allComponents might not be initialized".
    The program should print images in two rows. With my current knowledge i can only print one row of images.
    Thanks!
    import java.awt.*;
        import java.awt.event.*;
        import java.awt.datatransfer.*;
        import javax.swing.*;
    class SwingApplication implements ActionListener
                                            // extends JScrollPane
       private JScrollPane jspane;
       private JScrollPane jspane_n;
       private JPanel panel;
       private JLabel label;
       private Icon icon;
       private JPanel panel2;
       private JLabel label2;
       private Icon icon2;
       private JPanel panel_n;
       private JLabel label_n;
       private Icon icon_n;
       private JTextField testText;
       private int k;
        private static String labelPrefix = "Testing: ";
        private int numClicks = 0;
        final JLabel label_testing = new JLabel(labelPrefix + "nothing");
    JPanel cards; //a panel that uses CardLayout
        final String BUTTONPANEL = "JPanel with JButtons";
        final String TEXTPANEL = "JPanel with JTextField";
       public Container createComponents()
    Container allComponents;
         icon = new ImageIcon("kirjain_a.gif");
         label = new JLabel();
         label.setIcon(icon);
         icon2 = new ImageIcon("kirjain_b.gif");
         label2 = new JLabel();
         label2.setIcon(icon2);
         icon_n = new ImageIcon("numero_1.gif");
         label_n = new JLabel();
         label_n.setIcon(icon_n);
    label.setTransferHandler(new ImageSelection());              
    label2.setTransferHandler(new ImageSelection());
    label_n.setTransferHandler(new ImageSelection());
            MouseListener mouseListener = new MouseAdapter() {
              public void mousePressed(MouseEvent e) {
    JComponent sourceEvent = (JComponent)e.getSource();
    // Object sourceEvent = whatHappened.getSource();
    if (sourceEvent == label)
        { numClicks++;
            label_testing.setText(labelPrefix + numClicks);
    if (sourceEvent == label2)
    numClicks--;
            label_testing.setText(labelPrefix + numClicks);
                JComponent comp = (JComponent)e.getSource();
                TransferHandler handler = comp.getTransferHandler();
                handler.exportAsDrag(comp, e, TransferHandler.COPY);
           label.addMouseListener(mouseListener);
           label2.addMouseListener(mouseListener);  
           label_n.addMouseListener(mouseListener);  
         panel = new JPanel();
    // panel.setLayout(new GridLayout(1,3));
         panel.add(label);
         panel.add(label2);
         panel_n = new JPanel();
         panel_n.add(label_n);
    //Create the panel that contains the "cards".
            cards = new JPanel(new CardLayout());
            cards.add(panel_n, BUTTONPANEL);
            cards.add(panel_n, TEXTPANEL);
         panel.add(label_testing);
          jspane = new JScrollPane(panel);
          jspane_n = new JScrollPane(cards);
      //   jspane.setLayout(new GridLayout(3,2));      
      //   jspane.getViewport().add(panel);
      //   jspane_n.getViewport().add(cards);
      //    allComponents.add(panel, BorderLayout.PAGE_START);
      //    allComponents.add(cards, BorderLayout.CENTER);
      //     allComponents.add(jspane);
      //     allComponents.add(jspane_n);
         allComponents = jspane;
         return allComponents;
                                           //     label.addActionListener(this);
                                           //     k=0;
    public void actionPerformed(ActionEvent whatHappened)
      { Object sourceEvent = whatHappened.getSource();
        if (sourceEvent == label)
        { numClicks++;
            label_testing.setText(labelPrefix + numClicks);
    //    repaint();
    } // end class OwnPanel
    class CloserClass extends WindowAdapter
    { public void windowClosing(WindowEvent e)
       { System.exit(0);
    class DragImage
    { public static void main(String[] args)
           JFrame frame = new JFrame("SwingApplication");
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            SwingApplication app = new SwingApplication();
            Container contents = app.createComponents();
            frame.getContentPane().add(contents, BorderLayout.CENTER);
            //Display the window.
    //    addWindowListener(new CloserClass());
            frame.pack();
            frame.setVisible(true);
        } // end class DragImage

  • Intenal table  as container variable in the alert category

    Hi
    Is it possible  to create   internal table as Container Variable in the alert category. If it is possible how can we pass the data to this internal table in the Run time to the funtion module SALRT_CREATE_API.I have tried this to pass the data to the container parameter
    it_container ,but i was unable to achive it .If anyone has come across this please guide me .
    Thanks and Regards,
    Venkat

    You can use the Forms "From Clause Query" as the datasource for the data block. Then you can change the QUERY_DATA_SOURCE_NAME using set_block_property, so you can use any SQL statement you like. Of course you must name/alias the columns in a consistent manner so that the number of database items on the block matches those being queried.

  • Using Standard Container Variables in Email Alerts from BPM

    Dear All
    While creating alert categories from ALRTCATDEF we have a Long Text Tab where we can use Container  Variables like  SXMS_MSG_GUID ,SXMS_RULE_NAME, SXMS_ERROR_CAT , SXMS_ERROR_CODE etc create the mail contents.  We can also display the message passed by the BPM by using the variable
    ALERTDYNAMIC_SHORTTEXT , ALERTDYNAMIC_LONGTEXT .
    In my case when I call the alert category from the BPM , the message passed by the BPM is displayed through the ALERTDYNAMIC_LONGTEXT in the alert inbox , but I am not able to utilize the other container variables (like SXMS_MSG_GUID ,SXMS_RULE_NAME, SXMS_ERROR_CAT ) for displaying the messageid ,error category etc. Using these variables for alerts invoked from BPM results in Blank Values for all the container variables.
    If the alert is not invoked from BPM these variables are getting populated.
    My question is is there a way by which we can utilize these variables for Alerts thrown from BPM.
    regards
    Nilesh .

    hi check the below links for reference:
    http://help.sap.com/saphelp_nw04/helpdata/en/d0/d4b54020c6792ae10000000a155106/content.htm
    http://rant03.ranffm.de:50000/rwb_mdt/detailsservlet?objectName=name=is.00.rant03,type=XIIntegrationServer&rwb=true&XIDomain=domain.00.rant03&archive=false&selectMessage=%SXMS_MSG_GUID%
    note:reward points if solution found helpfull.....
    regards
    chandrakanth.k

  • XPATH Predicate for container variable of simple type in BPM

    Hi Experts,
    I have read various threads and blogs with this topic and as I couldn't get a clear view, hence I am raising it here. In my BPM, I am collecting idocs by means of a finite loop. I have used a receive step, container step(to append the idocs) and another container(to increment the counter_variable) in a loop. I want to run the loop for the condition: counter_variable<=3 whereas 'counter_variable' is a container variable of 'simple XSD type(XSD: integer)'.
    All the blogs and threads  have demonstrated like how to use the EX operator with container variable of type 'Abstract interface'. But how can i incorporate the above scenario for a container variable of simple xsd type ? Please share your ideas.
    Regards,
    Laawanya

    so this is what you need to do,
    1. in your loop have a container operation that will increment your simple integer variable each time a message come in.
    2. for your loop the condition will be, left operand (simple integer variable) /= (not equal) 3 (Constant)
    Ref: SAP BASIS (SWCV) -> http://sap.com/xi/XI/System/Patterns -> Integration Process -> BpmPatternCollectPayload
    the only difference here will be the loop condition to be altered as i have mentioned above.

  • Accessing container variable of BPM in Message Mapping function

    Hi,
    I have a scenario in BPM where i have a container variable that is used as a loop counter.I want to access that counter defined , every time when i go around the loop and perform certain actions based on that counter. so how can i access that variable in my message Mapping function.

    Hi Sudharshan,
    check these links, hope they give you the required information (i think there is some problem with SDN site, check these links after a while)
    Re: How to use Container Variable across Maps
    Container object in Message Mapping
    Copy value of container (abstract interface) to an other container
    Regards
    Vishnu

  • Container variables in User decision Step in BPM

    Hello,
    I am using User decision Step in BPM.
    When i use only text in "Title for Display" the BPM is activated successfully and Status in SXI_CACHE also shows 0.
    If I use container variables in "Title for Display" the BPM is activated successfully but status in SXI_CACHE shows 99.
    It shows the below error
    "Problem updating an integration process with object ID 073AF2C620F43E839B2903344DEE29BB. Symbol 'CE/KO' expected at position 1 in expression ''
    Please suggest.
    Thanks,
    Shabari

    Hi Shabari, did you follow the steps for declaration of variables as in [SAP help for user decisions|http://help.sap.com/saphelp_nwpi71/helpdata/en/42/c2a19fb4511d65e10000000a1553f6/content.htm]? How did you define your variable?
    Maybe discussion [in this thread|BPM activation Error in SXI_cache; can help, it is unanswered though.
    Regards, Martin

  • How to Access a BPM container variable in XI graphical  message mapping

    Hello XI BPM and Mapping experts,
    is it possible to access a BPM container variable from an graphical mapping?
    If yes, how ?
    We need this for the following scenario:
    IDOC to BPM.
    BPM  transforms and sends transformed IDOC to fileadapter
    If both steps are successful  a STATUS.SYSTAT01 IDOC should be send back to SAP-ISU with status 06.
    If one of these steps fails  the status in the SYSTAT01 should be set to 05. (Exception branch of block)
    We want to avoid to write 2 mapping programs for mapping the SYSTAT01.
    Instead we would like to use a BPM Container Variable which contains the status.
    In the mapping for the SYSTAT01 we want to use this Container Variable.
    Is this possible?
    Thanks for soon answers.
    Regards Marlies

    Hi Marlies,
       Is not possible to acces a BPM container variable from graphical mapping. For other hand, you can to use runtime variables for this purpose.
       You could create an abstract interface with a message type having a single node with the required value and using this message in other mapping.
    Best regards
    Ivá

  • 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

Maybe you are looking for