Passing an object betweeen screens

Hi all,
I have a (main application) screen which displays a list of lets say product items so that user can select one and display it in another JFrame where he/she can edit info and save it. (this means sending it back to the previsous screen - that is the main screen)
Could anyone help me with this problem or give me some hints?
Thanks,

How are you trying to do this in general ?
You really need to be thinking along the lines of using the MVC (Model-View-Controller) approach that is built into Swing. In other words, build an object which simply encapsulates your data model (the list of items, in your case). Use the facilities offered by ListModel and ListSelectionModel. You then build two further separate objects which represent the two different views of your list (frames, panels, whatever they happen to be), and make these views 'listeners' to changes in the data. In that way, whenever changes occur to the actual data (whoever makes those changes), events get fired off to the views which are listening for those changes, and the views automagically update themselves in sync.
Sorry if I'm telling you something you already know. But if not, there's loads of Swing tutorials that tell you how to do this. E.g., take a look at:
http://java.sun.com/products/jfc/tsc/articles/architecture/
Hope I've understood correctly what you are trying to do.

Similar Messages

  • Passing data to multiple screens through SAP webgui;

    Hello, I'm working on building an application that requires me to pass data to multiple screens of a SAP transaction (IW31) through SAP webgui.  The requirement is to enter the required information in the initial screen, "Header data" screen and in the "Object Data" screen. I'm using the below URL to launch the webgui:
    http://myserver:8001/sap/bc/gui/sap/its/webgui/!?sap-client=800&sap-user=xxx&sap-password=yyy&sap-language=EN&transaction=iw31%20CAUFVD-EQUNR=20006001&AUFPAR-PM_AUFART=PM01&CAUFVD-GSBER=0001&OKCODE=/00&CAUFVD-ILART=103&~OKCODE==IOLU
    This is failing with the following error message:
    *Flow control: Entry SAPLCOIH, IOLU, A0, *   , *   , * is missing in T185*
    I also noticed that if I stop at the point where I enter information in the initial screen and enter into the header data page using the below URL, it is working fine. The URL used is
    http://myserver:8001/sap/bc/gui/sap/its/webgui/!?sap-client=800&sap-user=xxx&sap-password=yyy&sap-language=EN&transaction=iw31%20CAUFVD-EQUNR=20006001&AUFPAR-PM_AUFART=PM01&CAUFVD-GSBER=0001&OKCODE=/00
    Can anyone please explain what is incorrect in the URL I'm passing?
    Thanks in advance

    Hi Vijay,
    Thank you for your prompt response but I do not understand your answer or perhaps I am not makig myself clear.
    Let me explain the current process:
    1) Z program collects data and exports to Memory ID 'TEST01'.
    2) Z program calls SAP program
    3) SAP program calls User Exit '001' and data is read from Memory ID 'TEST01'.
    4) SAP program collects some of the data and then executes SAP FM to continue processing.
    5) SAP FM Executes User Exit for FM and data is read from Memory ID 'TEST01'.
    6) SAP FM returns completed data back to SAP main program.
    7) Z Program collects results from SAP program.
    New process:
    1) Z program collects data and exports to Memory ID 'TEST01'. Data now includes filter for CC.
    2) Z program calls SAP program
    3) SAP program calls User Exit '001' and data is read from Memory ID 'TEST01'.
    4) SAP program collects some of the data and then executes SAP FM IN PARALLEL PROCESSING to continue processing.
    5) SAP FM Executes User Exit for FM and an attempt to read data is read from Memory ID 'TEST01' fails.
    6) SAP FM returns completed data back to SAP main program.
    7) Z Program collects results from SAP program.
    The dilemma is how to capture the proper CC filter in the FM exit when SAP is unable to read the data from memory ID 'TEST01'. I guess I can understand this since the tasks are executed in separate sessions and servers from the one that started the program since we are using a server group.
    Perhaps I am missing something with respect to exporting to memory IDs?
    Thanks.

  • Passing an object accross classes.

    Hi all,
    I'm trying to declare an object in one class and then pass that instance over to a second class, when I try to run my code I get "Debugger stopped on uncompileable source code" error!
    I'm working with a series of JFrames, starting with a "welcome" screen and a "next" button:
        Order[] Order = new Order[99];
        int OrderNumber = 0;
        public void actionPerformed(ActionEvent event) {
            Object source = event.getSource();
            if (source == btnNext){
                OrderNumber++;
                Order[OrderNumber] = new Order();
                Name Name = new Name(Order[OrderNumber]);
                Name.show();
                this.hide();
        }This sets up a new order and passes the object over to the next JFrame class.
    The user enters some information into some text fields which is then stored in the object instance:
        Order Order;
        Customer[] Customer = new Customer[99];
        int CustomerNumber = 0;
        Name(Order Order) {
            SetupUI();
            this.Order = Order;
        public void actionPerformed(ActionEvent event) {
            Object source = event.getSource();
            if (source == btnNext) {
                CustomerNumber++;
                Order.Customer[CustomerNumber] = new Customer();
                Order.Customer[CustomerNumber].SetName(txtName.toString());
                Order.Customer[CustomerNumber].SetTable(txtTable.toString());
                FirstCourseUI Menu = new FirstCourseUI(Order, Customer[CustomerNumber]);
                Menu.show();
                this.hide();
            }This seems to work fine, the object is passed over and I can commit the information to it. But this too uses the same method to send the objects over to the next JFrame, which should in turn begin adding some items for the customer:
        Order Order = new Order();
        Customer Customer = new Customer();
        FirstCourse FirstCourse = new FirstCourse();
        FirstCourseUI(Order Order, Customer Customer) {
            this.Order = Order;
            this.Customer = Customer;
            SetupUI();
        public void actionPerformed(ActionEvent event) {
            Object source = event.getSource();
            if(source == btnAdd) {
                String selectedItem = (String)lstMenu.getSelectedValue();
                Customer.AddItem(1, selectedItem);       // PROGRAM STOPS HERE
        }And this is where I run into problems, here is the AddItem method
        public void AddItem(int course, String item)
            int i = 0;
            switch(course)
                case 0:     // Drinks
                    break;
                case 1:     // First Course
                    while(FirstCourse[i] != null) {
                        i++;
                    FirstCourse[i] = item;
                    break;
                case 2:     // Second Course
                    break;
                case 3:     // Third Course
                    break;
                default:
                    break;
            }As far as I can tell, this should work fine. I don't think the method itself is broken, the program just never gets to that point!
    Any Ideas?
    P.S. Sorry about the lack of comments in there, bad practice I know :\

    Problem solved!
    On the second JFrame where the user enters their name and table number, I was creating an object array of Customer - but my order class already has a Customer array! I was then passing over the wrong object array when the "Next" button was pressed.
        Order Order;
        int CustomerNumber = 0;
        Name(Order Order) {
            SetupUI();
            this.Order = Order;
        public void actionPerformed(ActionEvent event) {
            Object source = event.getSource();
            if (source == btnNext) {
                CustomerNumber++;
                Order.Customer[CustomerNumber] = new Customer();
                Order.Customer[CustomerNumber].SetName(txtName.toString());
                Order.Customer[CustomerNumber].SetTable(txtTable.toString());
                CoursesUI Menu = new CoursesUI(Order, Order.Customer[CustomerNumber]);
                Menu.show();
                this.hide();
        }It seems to be functioning correctly now :) Thanks for taking the time to look over it steve.
    Regards -

  • Trying to pass and object variable to a method

    I have yet another question. I'm trying to display my output in succession using a next button. The button works and I get what I want using test results, however what I really want to do is pass it a variable instead of using a set number.
    I want to be able to pass the object variables myProduct, myOfficeSupplies, and maxNumber to method actionPerformed so they can be in-turn passed to the displayResults method which is called in the actionPerformed method. Since there is no direct call to actionPerformed because it is called within one of the built in methods, I can't tell it to receive and pass those variables. Is there a way to do it without having to pass them through the built-in methods?
    import javax.swing.JToolBar;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JTextArea;
    import javax.swing.JScrollPane;
    import javax.swing.JPanel;
    import java.net.URL;
    import java.awt.BorderLayout;
    import java.awt.Dimension;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    public class Panel extends JPanel implements ActionListener
         protected JTextArea myTextArea;
         protected String newline = "\n";
         static final private String FIRST = "first";
         static final private String PREVIOUS = "previous";
         static final private String NEXT = "next";
         public Panel( Product myProduct, OfficeSupplies myOfficeSupplies, int maxNumber )
                 super(new BorderLayout());
              int counter = 0;
                 //Create the toolbar.
                 JToolBar myToolBar = new JToolBar( "Still draggable" );
                 addButtons( myToolBar );
                 //Create the text area used for output.
                 myTextArea = new JTextArea( 450, 190 );
                 myTextArea.setEditable( false );
                 JScrollPane scrollPane = new JScrollPane( myTextArea );
                 //Lay out the main panel.
                 setPreferredSize(new Dimension( 450, 190 ));
                 add( myToolBar, BorderLayout.PAGE_START );
                 add( scrollPane, BorderLayout.CENTER );
              myTextArea.setText( packageData( myProduct, myOfficeSupplies, counter ) );
              setCounter( counter );
         } // End Constructor
         protected void addButtons( JToolBar myToolBar )
                 JButton myButton = null;
                 //first button
                 myButton = makeNavigationButton( FIRST, "Display first record", "First" );
                 myToolBar.add(myButton);
                 //second button
                 myButton = makeNavigationButton( PREVIOUS, "Display previous record", "Previous" );
                 myToolBar.add(myButton);
                 //third button
                 myButton = makeNavigationButton( NEXT, "Display next record", "Next" );
                 myToolBar.add(myButton);
         } //End method addButtons
         protected JButton makeNavigationButton( String actionCommand, String toolTipText, String altText )
                 //Create and initialize the button.
                 JButton myButton = new JButton();
                     myButton.setActionCommand( actionCommand );
                 myButton.setToolTipText( toolTipText );
                 myButton.addActionListener( this );
                   myButton.setText( altText );
                 return myButton;
         } // End makeNavigationButton method
             public void actionPerformed( ActionEvent e )
                 String cmd = e.getActionCommand();
                 // Handle each button.
              if (FIRST.equals(cmd))
              { // first button clicked
                          int counter = 0;
                   setCounter( counter );
                 else if (PREVIOUS.equals(cmd))
              { // second button clicked
                   counter = getCounter();
                      if ( counter == 0 )
                        counter = 5;  // 5 would be replaced with variable maxNumber
                        setCounter( counter );
                   else
                        counter = getCounter() - 1;
                        setCounter( counter );
              else if (NEXT.equals(cmd))
              { // third button clicked
                   counter = getCounter();
                   if ( counter == 5 )  // 5 would be replaced with variable maxNumber
                        counter = 0;
                        setCounter( counter );
                      else
                        counter = getCounter() + 1;
                        setCounter( counter );
                 displayResult( counter );
         } // End method actionPerformed
         private int counter;
         public void setCounter( int number ) // Declare setCounter method
              counter = number; // stores the counter
         } // End setCounter method
         public int getCounter()  // Declares getCounter method
              return counter;
         } // End method getCounter
         protected void displayResult( int counter )
              //Test statement
    //                 myTextArea.setText( String.format( "%d", counter ) );
              // How can I carry the myProduct and myOfficeSupplies variables into this method?
              myTextArea.setText( packageData( product, officeSupplies, counter ) );
                 myTextArea.setCaretPosition(myTextArea.getDocument().getLength());
             } // End method displayResult
         * Create the GUI and show it.  For thread safety,
         * this method should be invoked from the
         * event dispatch thread.
         public void createAndShowGUI( Product myProduct, OfficeSupplies myOfficeSupplies, int maxNumber )
                 //Create and set up the window.
                 JFrame frame = new JFrame("Products");
                 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                 //Add content to the window.
                 frame.add(new Panel( myProduct, myOfficeSupplies, maxNumber ));
                 //Display the window.
                 frame.pack();
                 frame.setVisible( true );
             } // End method createAndShowGUI
         public void displayData( Product myProduct, OfficeSupplies myOfficeSupplies, int maxNumber )
              JTextArea myTextArea = new JTextArea(); // textarea to display output
              JFrame JFrame = new JFrame( "Products" );
              // For loop to display data array in a single Window
              for ( int counter = 0; counter < maxNumber; counter++ )  // Loop for displaying each product
                   myTextArea.append( packageData( myProduct, myOfficeSupplies, counter ) + "\n\n" );
                   JFrame.add( myTextArea ); // add textarea to JFrame
              } // End For Loop
              JScrollPane scrollPane = new JScrollPane( myTextArea ); //Creates the JScrollPane
              JFrame.setPreferredSize(new Dimension(350, 170)); // Sets the pane size
              JFrame.add(scrollPane, BorderLayout.CENTER); // adds scrollpane to JFrame
              JFrame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); // Sets program to exit on close
              JFrame.setSize( 350, 170 ); // set frame size
              JFrame.setVisible( true ); // display frame
         } // End method displayData
         public String packageData( Product myProduct, OfficeSupplies myOfficeSupplies, int counter ) // Method for formatting output
              return String.format( "%s: %d\n%s: %s\n%s: %s\n%s: %s\n%s: $%.2f\n%s: $%.2f\n%s: $%.2f\n%s: $%.2f",
              "Product Number", myOfficeSupplies.getProductNumber( counter ),
              "Product Name", myOfficeSupplies.getProductName( counter ),
              "Product Brand",myProduct.getProductBrand( counter ),
              "Number of Units in stock", myOfficeSupplies.getNumberUnits( counter ),
              "Price per Unit", myOfficeSupplies.getUnitPrice( counter ),
              "Total Value of Item in Stock is", myOfficeSupplies.getProductValue( counter ),
              "Restock charge for this product is", myProduct.restockingFee( myOfficeSupplies.getProductValue( counter ) ),
              "Total Value of Inventory plus restocking fee", myOfficeSupplies.getProductValue( counter )+
                   myProduct.restockingFee( myOfficeSupplies.getProductValue( counter ) ) );
         } // end method packageData
    } //End Class Panel

    multarnc wrote:
    My instructor has not been very forthcoming with assistance to her students leaving us to figure it out on our own.Aren't they all the same! Makes one wonder why they are called instructors. <sarcasm/>
    Of course it's highly likely that enough information was imparted for any sincere, reasonably intelligent student to actually figure it out, and learn the subject in the process.
    And if everything were spoonfed, how would one grade the performance of the students? Have them recite from memory
    public class HelloWorld left-brace
    indent public static void main left-parenthesis String left-bracket right-bracket args right-parenthesis left-brace
    And everywhere that Mary went
    The lamb was sure to go
    db

  • How to resolve a Lenovo PC that will not pass the Lenovo Splash screen with no access to Windows

    Here is my problem and here is the solution!!!
    My B540 Ideacentre would not pass the Lenovo splash screen. The only operational keys I had was F1 (BIOS) and F12 (BIOS options). F2 went to a light blue screen so no chance of even a one key recovery. Warrenty had expired four and a half months ago. I contacted Lenovo and after the guy told me to try F2 twice he said it was a HDD or other hardware failure and would cost around £200 maybe and also would take about two weeks. 
    AT THIS POINT YOU SHOULD NOT BE ANGRY FRUSTRATED OR PANIC. REMAIN CALM AND STOP AND THINK WHAT ACTUALLY WAS HAPPENING WHEN YOU LAST USED YOUR PC.
    For me I remembered Windows had auto downloaded 8.1 and was asking me to install. Also my keyboard had lost shift W T Y keys. This told me that it was not a hardware issue but a software issue and perhaps from this update. My HDD was not clicking or beeping and this PC has a 2TB Seagate Barracuda which has a good reputation. Luckly for me I also have a Seagate external expansion 2TB and a 500MB expansion which was the HDD from my old HP Touchsmart which I converted into an external hard drive by buying a HDD enclosure with cooling fan and all leads from eBay for £25 and this is where the solution is.
    If you can create an expansion drive so easily and access the HDD then why cant I do it with the HDD from my Ideacentre and of course you can. So first unplug your PC or laptop. Next remove the cover and unclip the HDD (which is easy with the B540. See user instructions). Next I removed my HP HDD from the enclosure and fitted my Ideacentre HDD in its place. Next you need a laptop or another PC. Switch it on and then connect your HDD to the laptop or PC via highspeed USB cable. My laptop is running Windows 7 Ultimate and of course has all the repair tools required. When the software has loaded you may get a box that will have two options. The first will ask you if you want to repair your files and the second to scan for bad sectors and to attempt repair recovery of sectors. Tick both boxes and click start. This is a long slow process but worth the wait. Nine hours later my HDD was ready. I connected my Seagate expansion to my laptop and moved all new files that I had not backed up. So at this point you should create a folder and move all your photos music videos documents etc to it. This can take upto three hours if you have never backed up before and are moving everything. Once completed I shut everything down and replaced the HDD into my Ideacentre. Make sure do not have any external devices connected such as expansions external drives headphones etc. Connect the power and switch on. The Ideacentre booted up and there was a pause at the splash screen then it went to a black screen and then by the miracle of logical thinking I was at my lock screen. I was never so glad to see the map of my home land "Ukraine". After jumping up and down with joy I then went in and all was as normal but to be sure I went into safemode and started a complete restore. This is the option where you completely format your HDD and restore as new. It takes a long time but it is the best option because you do not want this to happen again. When this has completed and you are in Windows do not wait a moment longer by playing with your photos or creating your desktop picture. Go to create a recovery drive (use a 32GB stick) and after that also make a copy to disc. Next go to command prompt (cmd) Admin and change a setting by typing bcdedit /set {default} bootmenupolicy legacy. This will now enable your F8 key to boot straight into safemode just incase you need to in the future. It will slow boot time a little but better to be able to get in to Windows than not at all for the sake of a few seconds. 
    Well I hope this helps someone out there and I know you may think its a lot to do but it is not. Ask a friend to borrow a laptop or PC and perhaps a HDD encloser. The rest is just time but when you see your lock screen you will not care trust me. 
    Cлава Україні!!! Героям слава!!!

    I thought this was the method I used before but I followed through it and it was a horrific fail.  "Operating system not found".  Can anyone help?
    http://superuser.com/questions/421402/how-to-create-a-bootable-usb-windows-os-us ing-mac-os-x
    Steps To Achieve Victory
    Download the ISO you want to use
    Open Terminal (in /Applications/Utilities)
    Convert .iso to .img using hdiutil:
    hdiutil convert -format UDRW -o /path/to/target.img /path/to/source.iso
    Rename if OS X gave it a .dmg ending:
    mv /path/to/target.img.dmg path/to/target.img
    Type diskutil to get a list of currently connected devices
    Insert USB drive you want to use
    Run diskutil again to see what your USB stick gets assigned eg - /dev/disk3
    Run diskutil unmountDisk /dev/diskN (where N is the number assigned to your USB stick, in previous example it would be 3)
    Run sudo dd if=/path/to/target.img of=/dev/diskN bs=1m (if you get an error, replace bs=1m with bs=1M
    Run diskutil eject /dev/diskN and remove your USB stick
    The USB stick will now be ready to use
    Also similarly described here: http://www.tomshardware.co.uk/answers/id-1733410/creating-microsoft-bootable-usb -mountain-lion.html#.

  • Problem in passing data from 1 screen to another using BBP_DOC_CHANGE_BADI.

    Hi Experts,
    i am new to the SRM, i am facing problem in passing data from one screen to another.
    my requirement is that when we select one shopping cart and press the PROPOSE SOURCES OF SUPPLY button, we will fetch all the contracts that are attached to the shopping cart.
    we have implemented a BADI implementation of BBP_SOS_BADI (method BBP_SOS_CHECK) for passing some changed values to the contracts of the shopping cart into the popup screen that is displayed when we press PROPOSE SOURCES OF SUPPLY button and when we select any contract and press ASSIGN ONLY button in the popup screen the badi BBP_DOC_CHANGE_BADI is triggered.
    i have implemented another BADI implementation of BBP_DOC_CHANGE_BADI for fetching the selected contract and pass the values to another screen, but the problem is that when we select one contract and press the assign only button we are fetching the wrong contract number ( that is in the BADI method BB_SC_CHANGE parameter IT_ITEM we are fetching the wrong contract), if we again do the same procedure for the second time we are getting the correct contract.
    i am unable to understand why we are getting the wrong contract in the first time( that is we are getting contract other than the selected one).
    as per my understanding i think when we are passing data to the popup screen using BBP_DOC_CHANGE_BADI we are not updating the shopping cart with the changed data.
    can anyone tell me how we can update the SHOPPING CART with the changed contracts data, i have used BBP_PD_SC_UPDATE, BBP_PD_SC_SAVE and other shopping cart FM but nothing is happening.
    Thanks
    Tanveer

    Hello,
    What version of SRM are you on?  Have you check for OSS Notes?  I have had trouble with BBP_DOC_CHANGE_BADI but it was because of other issues.  The BADI works pretty well and it is called almost every time something happens to the shopping cart.
    I have noticed that sometimes that values are not changed til the second calling of the BADI.  I have yet understand why but I think it has to do with prompt processing. Usually, we train our requisitioners to click the 'Check'  button to flush things out.
    I don't know if I was helpful.... another thought.... could there be an error caught by BBP_DOC_CHECK_BADI that is preventing change in BBP_DOC_CHANGE_BADI?
    Regards, Dean.

  • Passing complex object from bpel process to web service

    I have deployed my web service on apache axis.The wsdl file looks like as follows,
    <?xml version="1.0" encoding="UTF-8" ?>
    - <wsdl:definitions targetNamespace="http://bpel.jmetro.actiontech.com" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://bpel.jmetro.actiontech.com" xmlns:intf="http://bpel.jmetro.actiontech.com" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    - <wsdl:types>
    - <schema targetNamespace="http://bpel.jmetro.actiontech.com" xmlns="http://www.w3.org/2001/XMLSchema">
    <import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
    - <complexType name="ADLevelBpelWS">
    - <sequence>
    <element name="adLevelStr" nillable="true" type="xsd:string" />
    <element name="id" type="xsd:int" />
    </sequence>
    </complexType>
    - <complexType name="TransResultWS">
    - <sequence>
    <element name="description" nillable="true" type="xsd:string" />
    <element name="id" type="xsd:long" />
    <element name="responseType" type="xsd:int" />
    <element name="status" type="xsd:boolean" />
    </sequence>
    </complexType>
    - <complexType name="NamespaceDataImplBpelWS">
    - <sequence>
    <element name="ADLevel" nillable="true" type="impl:ADLevelBpelWS" />
    <element name="appdataDef" nillable="true" type="apachesoap:Map" />
    <element name="description" nillable="true" type="xsd:string" />
    <element name="name" nillable="true" type="xsd:string" />
    </sequence>
    </complexType>
    - <complexType name="CreateSharedNamespaceBpelWS">
    - <sequence>
    <element name="actor" nillable="true" type="xsd:string" />
    <element name="comment" nillable="true" type="xsd:string" />
    <element name="from" nillable="true" type="xsd:string" />
    <element name="namespaceData" nillable="true" type="impl:NamespaceDataImplBpelWS" />
    <element name="priority" type="xsd:int" />
    <element name="processAtTime" nillable="true" type="xsd:dateTime" />
    <element name="replyTo" nillable="true" type="xsd:string" />
    <element name="responseRequired" type="xsd:boolean" />
    </sequence>
    </complexType>
    </schema>
    - <schema targetNamespace="http://xml.apache.org/xml-soap" xmlns="http://www.w3.org/2001/XMLSchema">
    <import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
    - <complexType name="mapItem">
    - <sequence>
    <element name="key" nillable="true" type="xsd:string" />
    <element name="value" nillable="true" type="xsd:string" />
    </sequence>
    </complexType>
    - <complexType name="Map">
    - <sequence>
    <element maxOccurs="unbounded" minOccurs="0" name="item" type="apachesoap:mapItem" />
    </sequence>
    </complexType>
    </schema>
    </wsdl:types>
    + <wsdl:message name="createNamespaceRequest">
    <wsdl:part name="createNs" type="impl:CreateSharedNamespaceBpelWS" />
    </wsdl:message>
    - <wsdl:message name="createNamespaceResponse">
    <wsdl:part name="createNamespaceReturn" type="impl:TransResultWS" />
    </wsdl:message>
    - <wsdl:portType name="JMetroWebService">
    - <wsdl:operation name="createNamespace" parameterOrder="createNs">
    <wsdl:input message="impl:createNamespaceRequest" name="createNamespaceRequest" />
    <wsdl:output message="impl:createNamespaceResponse" name="createNamespaceResponse" />
    </wsdl:operation>
    </wsdl:portType>
    - <wsdl:binding name="NAMESPACEWITHMAPSoapBinding" type="impl:JMetroWebService">
    <wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" />
    - <wsdl:operation name="createNamespace">
    <wsdlsoap:operation soapAction="" />
    - <wsdl:input name="createNamespaceRequest">
    <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://bpel.jmetro.actiontech.com" use="encoded" />
    </wsdl:input>
    - <wsdl:output name="createNamespaceResponse">
    <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://bpel.jmetro.actiontech.com" use="encoded" />
    </wsdl:output>
    </wsdl:operation>
    </wsdl:binding>
    - <wsdl:service name="JMetroWebServiceService">
    - <wsdl:port binding="impl:NAMESPACEWITHMAPSoapBinding" name="NAMESPACEWITHMAP">
    <wsdlsoap:address location="http://localhost:7001/axis/services/NAMESPACEWITHMAP" />
    </wsdl:port>
    </wsdl:service>
    </wsdl:definitions>
    My NamespaceDataObjectImplBpelWS object contains element appDataDef which is of type java.util.Map.My bpel wsdl file is as below,
    <?xml version="1.0"?>
    <definitions name="NsWithMap"
    targetNamespace="http://bpel.jmetro.actiontech.com"
    xmlns:tns="http://bpel.jmetro.actiontech.com"
    xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"
    xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:apachesoap="http://xml.apache.org/xml-soap"
    >
    <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    TYPE DEFINITION - List of services participating in this BPEL process
    The default output of the BPEL designer uses strings as input and
    output to the BPEL Process. But you can define or import any XML
    Schema type and us them as part of the message types.
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
    <types>
         <schema targetNamespace="http://bpel.jmetro.actiontech.com" xmlns="http://www.w3.org/2001/XMLSchema">
         <import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
              <element name="createNamespace" type="tns:CreateSharedNamespaceBpelWS"/>
              <element name="transResult" type="tns:TransResultWS"/>
              <complexType name="TransResultWS">
                   <sequence>
                        <element name="description" type="string" />
                        <element name="id" type="long" />
                        <element name="responseType" type="int" />
                        <element name="status" type="boolean" />
              </sequence>
              </complexType>
              <complexType name="ADLevelBpelWS">
                   <sequence>
                        <element name="adLevelStr" type="string" />
                        <element name="id" type="int" />
                   </sequence>
              </complexType>
              <complexType name="NamespaceDataImplBpelWS">
                   <sequence>
                        <element name="ADLevel" type="tns:ADLevelBpelWS" />
                        <element name="description" type="string" />
                        <element name="name" type="string" />
                        <element name="appdataDef" type="apachesoap:Map" />
                   </sequence>
              </complexType>
              <complexType name="CreateSharedNamespaceBpelWS">
                   <sequence>
                        <element name="namespaceData" type="tns:NamespaceDataImplBpelWS" />
              </sequence>
              </complexType>
         <element name="desc" type="string"/>
         </schema>
         <schema targetNamespace="http://xml.apache.org/xml-soap" xmlns="http://www.w3.org/2001/XMLSchema">
                   <import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
                        <complexType name="mapItem">
                             <sequence>
                                  <element name="key" type="string" />
                                  <element name="value" type="string" />
                        </sequence>
                        </complexType>
                        <complexType name="Map">
                             <sequence>
                             <element maxOccurs="unbounded" minOccurs="0" name="item" type="apachesoap:mapItem" />
                             </sequence>
                        </complexType>
              </schema>
    </types>
    <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    MESSAGE TYPE DEFINITION - Definition of the message types used as
    part of the port type defintions
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
    <message name="NsWithMapRequestMessage">
    <part name="payload" element="tns:createNamespace"/>
    </message>
    <message name="NsWithMapResponseMessage">
    <part name="payload" element="tns:transResult"/>
    </message>
    <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    PORT TYPE DEFINITION - A port type groups a set of operations into
    a logical service unit.
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
    <!-- portType implemented by the NsWithMap BPEL process -->
    <portType name="NsWithMap">
    <operation name="initiate">
    <input message="tns:NsWithMapRequestMessage"/>
    </operation>
    </portType>
    <!-- portType implemented by the requester of NsWithMap BPEL process
    for asynchronous callback purposes
    -->
    <portType name="NsWithMapCallback">
    <operation name="onResult">
    <input message="tns:NsWithMapResponseMessage"/>
    </operation>
    </portType>
    <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    PARTNER LINK TYPE DEFINITION
    the NsWithMap partnerLinkType binds the provider and
    requester portType into an asynchronous conversation.
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
    <plnk:partnerLinkType name="NsWithMap">
    <plnk:role name="NsWithMapProvider">
    <plnk:portType name="tns:NsWithMap"/>
    </plnk:role>
    <plnk:role name="NsWithMapRequester">
    <plnk:portType name="tns:NsWithMapCallback"/>
    </plnk:role>
    </plnk:partnerLinkType>
    </definitions>
    I am trying to set this map data using java code ,
         HashMap procADMap1 = new HashMap(5);
                   PropertyTypeWS pType = new PropertyTypeWS();
                   pType.setTypeIndex(2);     
              AppdataDefImplWS appData1 = new AppdataDefImplWS();
              appData1.setName("Project");
              appData1.setType(pType);
              appData1.setMaxSize(400);
              appData1.setLOB(false);
         appData1.setDefaultValue("Project Default value");
              procADMap1.put(appData1.getName(), appData1);
              setVariableData("request","createNs","/createNs/namespaceData/appdataDef",procADMap1);     
    Then I am passing request object to the method which I want to invoke from bpel process.
    I am able to deploy the application but when I do post message I am getting following exception,
    NamespaceWithMap (createNamespace) (faulted)
    [2004/09/09 18:35:54] "{http://schemas.oracle.com/bpel/extension}bindingFault" has been thrown. Less
    faultName: {{http://schemas.oracle.com/bpel/extension}bindingFault}
    messageType: {{http://schemas.oracle.com/bpel/extension}RuntimeFaultMessage}
    code: {Server.userException}
    summary: {org.xml.sax.SAXException: SimpleDeserializer encountered a child element, which is NOT expected, in something it was trying to deserialize.}
    detail: {null}
    Is there any other way to handle Map type in bpel process?
    Thanks in advance,
    Sanjay

    Thanks for the quick reply.Actually the web service is already deployed on the server.What I want to do is use existing wsdl file of the deployed web service and invoke the method of the same using oracle PM.
    If I remove element which uses apachesoap:Map type it just works fine also I am getting the complex object returned by the web service method.But when I try to set appDataDef which is of type apachesoap:Map(Axis conversion for java.util.Map and it uses namespace xmlns:apachesoap="http://xml.apache.org/xml-soap") I am getting the error.
    Can you give me some direction to use this exising wsdl file to set map object or it is not possible.

  • Pass Value from one screen to another screen filter Parameter

    Hi i am developing LightSwitch HTML client using VS 2013
    need some ideas for,
    I am having one browse screen for eg please refer the below,
    BrowseEmployee 
    ID
    Name
    Age
    1
    Srikanth
    25
    2
    Ashok
    25
    when i click on any row, it will lead to another screen (Not to the same entity View screen). In the another screen i am going to show with the lot of details,
    ViewResourceAllocation
    ID
    Name
    Role
    Allocation
    1
    Srikanth
    Developer
    0.5
    1
    Srikanth
    Architect
    0.5
    2
    Ashok
    Tester
    0.6
    2
    Ashok
    Manager
    0.4
    and in this screen i am pulling from SQL view entity, this will have ID field which is common to the previous screen (BrowseEmployee)
    Now my question is,
    1. If i click the ID 1 employee in the 1st screen here i need to show only the Employee ID 1 details alone.
    2. Even i tried to pass the value as parameter to the filters in the second screen, nothing is working out.
    so it will be convenient if i pass the value as filter parameter to the other screen. 
    Can anyone please tell me how to sort out this issue ?
    thanks!

    Hi Srikanth,
    For this issue, you need pass parameter to another screen, this will help you,
    See:
    How to Open a Open Another Screen (with or without Parameters) 
    Best regards,
    Angie
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • How to pass an object as method parameter

    Hi Guys
    I was testing a simple program and was trying to pass an object to a method but it didnt seem to work and I couldnt find out WHY.
    I am posting the code so please let me know who can i make my method ADD_EMPLOYEE work so that when i pass an object of LCL_EMPLOYEE, it updates I_EMPLOYEE_LIST.
    *& Report:  ZOO_HR_SAMPLE_1
    *& Author:  Avinash Pandey
    *& Date:    25.03.2009
    *& Description: Concepts of OO in ABAP
    REPORT  zoo_hr_sample_1.
    *&       Class LCL_EMPLOYEE
           Local class
    CLASS lcl_employee DEFINITION.
    Public section
      PUBLIC SECTION.
    Data type
        TYPES:
          BEGIN OF t_employee,
            no  TYPE i,
            name TYPE string,
            wage TYPE i,
         END OF t_employee.
    Method
        METHODS:
          constructor
            IMPORTING im_employee_no TYPE i
                      im_employee_name TYPE string
                      im_wage TYPE i,
            add_employee
             IMPORTING im_employee TYPE REF TO lcl_employee,
           display_employee_list,
           display_employee,
           get_no EXPORTING ex_no TYPE i,
           get_name EXPORTING ex_name TYPE string,
           get_wage EXPORTING ex_wage TYPE i.
      Class methods are global for all instances
        CLASS-METHODS: display_no_of_employees.
    Protected section
      PROTECTED SECTION.
      Class data are global for all instances
        CLASS-DATA: g_no_of_employees TYPE i.
        CLASS-DATA: i_employee_list TYPE TABLE OF t_employee.
    Private section
      PRIVATE SECTION.
       CLASS-DATA: i_employee_list TYPE TABLE OF t_employee.
        DATA: g_employee TYPE t_employee.
    ENDCLASS.               "LCL_EMPLOYEE
    *&       Class (Implementation)  LCL_EMPLOYEE
           Text
    CLASS lcl_employee IMPLEMENTATION.
    Class constructor method
      METHOD constructor.
        g_employee-no = im_employee_no.
        g_employee-name = im_employee_name.
        g_employee-wage = im_wage.
        g_no_of_employees = g_no_of_employees + 1.
      ENDMETHOD.                    "constructor
    Method
      METHOD display_employee.
        WRITE:/ 'Employee', g_employee-no, g_employee-name.
      ENDMETHOD.                    "display_employee
    Method
      METHOD get_no.
        ex_no = g_employee-no.
      ENDMETHOD.                    "get_no
    Method
      METHOD get_name.
        ex_name = g_employee-name.
        WRITE: / 'Name is:' , ex_name.
      ENDMETHOD.                    "get_no
    Method
      METHOD get_wage.
        ex_wage = g_employee-wage.
      ENDMETHOD.                    "get_no
    Method
      METHOD add_employee.
      Adds a new employee to the list of employees
        DATA: l_employee TYPE t_employee.
        l_employee-no = im_employee->get_no.
        l_employee-name = im_employee->get_name.
        l_employee-wage = im_employee->get_wage.
        APPEND l_employee TO i_employee_list.
      ENDMETHOD.                    "add_employee
    Method
      METHOD display_employee_list.
      Displays all employees and there wage
        DATA: l_employee TYPE t_employee.
        WRITE: / 'List of Employees'.
        LOOP AT i_employee_list INTO l_employee.
          WRITE: / l_employee-no, l_employee-name, l_employee-wage.
        ENDLOOP.
      ENDMETHOD.                    "display_employee_list
    Class method
      METHOD display_no_of_employees.
        WRITE: / 'Number of employees is:', g_no_of_employees.
      ENDMETHOD.                    "display_no_of_employees
    ENDCLASS.               "LCL_EMPLOYEE
    REPORT
    DATA: g_employee1 TYPE REF TO lcl_employee,
          g_employee2 TYPE REF TO lcl_employee.
    START-OF-SELECTION.
    Create class instances
      CREATE OBJECT g_employee1
        EXPORTING
          im_employee_no   = 1
          im_employee_name = 'John Jones'
          im_wage          = 20000.
      CREATE OBJECT g_employee2
        EXPORTING
          im_employee_no   = 2
          im_employee_name = 'Sally Summer'
          im_wage          = 28000.
    Call methods
      CALL METHOD g_employee1->display_employee.
      CALL METHOD g_employee1->add_employee
        EXPORTING
          im_employee = g_employee1.
      CALL METHOD g_employee1->get_name.
      CALL METHOD g_employee2->display_employee.
      CALL METHOD g_employee2->display_no_of_employees.
    The error I am getting is:
    Field GET_NO/GET_NAME/GET_WAGE is unknown.
    Please help me out on this.
    Thanks a lot you people

    hi.
    The following parts of your program were changed.
    The result is OK?.
    *(1)change
    CLASS lcl_employee DEFINITION.
    Public section
    PUBLIC SECTION.
    display_employee,
    *get_no EXPORTING ex_no TYPE i,
    *get_name EXPORTING ex_name TYPE string,
    *get_wage EXPORTING ex_wage TYPE i.
    get_no returning value(ex_no) TYPE i,
    get_name returning value(ex_name) TYPE string,
    get_wage returning value(ex_wage) TYPE i.
    *(2)change
    CLASS lcl_employee IMPLEMENTATION.
    Method
    METHOD add_employee.
    Adds a new employee to the list of employees
    DATA: l_employee TYPE t_employee.
    *l_employee-no = im_employee->get_no.
    *l_employee-name = im_employee->get_name.
    *l_employee-wage = im_employee->get_wage.
    l_employee-no   = im_employee->get_no( ).
    l_employee-name = im_employee->get_name( ).
    l_employee-wage = im_employee->get_wage( ).
    APPEND l_employee TO i_employee_list.
    ENDMETHOD. "add_employee
    Result List
    Employee          1  John Jones
    Name is: John Jones
    Name is: John Jones
    Employee          2  Sally Summer
    Number of employees is:          2

  • How to Pass Java Objects between Web Dynpro and Java SAP iViews

    Basically I have an SAP web dynpro iView that I do stuff with and I want to pass an object to another iView which is just a regular Java iView. From what I've read and tried, I can't just stick something in the session object and hope that the Java iView can pull it down the other end. I had a dream that it was possible (seriously).
    Anyway, are there any possible solutions around? Please advice and share you throughts. I will try to dream about it again tonight and see if its really gonna work this time.
    thanks for your help in advance

    There is no easy way you can pass objects other than those supported by express such as String, map, list etc.
    Though not advised, you can create a class with static variables to handle the storage of such java objects during transition between form and workflow. You will need to somehow identify the objects uniquely .

  • Passing CURR value to screen using PARAMETER ID's

    Hi all,
    I need to pass a value which is of type CURR to a screen field which is of type DEC using parameter id. As of release 6.10 only character-type field is expected to pass to screen fileds. I tried converting the CURR field to char type and pass the same to screen field,but didnt work as in the screen filed it expects some value with typr DEC.
    Thanks in advance!

    Hi Rob,
    while debugging the code i can see the values of pid in SAP memory, but when i run the program to display those values on the screen field with type DEC,it kicks me out of the system.I commented that part of code and exceuted the program and then it went fine so i am for sure that it goes wrong at this part of the code.
    Regards,
    Sireesha
    Edited by: Sireesha on Sep 24, 2010 11:37 AM

  • Branching to DMS doc from SAP object trans screen(newly createdobject link)

    Hi
    I have created a new document type and been able to attach a new sap object to that DMS document and view it in the object link of that document in CV02n, Cv03N. My problem is how to display the document from sap object screen (vice versa is always possible)
    For standard object already available such linking is provided by SAP
    (like in mm03->Extras->Document data) but I have added a new SAP object say OIGV. How to browse to ducument data from o4v2, o4v3 transaction. Is there any generic strategy for enhancing each and every SAP object transaction screen to branch to its linked DMS document
    With best of regards
    Saurav Choudhury

    Hi Sai,
    regarding your description I would kindly ask you to go to transaction DC10 and mark a document type where the necessary object is linked under 'Define object links'. Choose the right object and display its details by double-click. Then you will see the field 'Create document' where you have to enter a value '1' (using transaction) or '2' (simple creation). Please enter a value and flag the 'Additional function' checkbox too.
    Based on your description I'm sure that you are using the 'simple creation' mode for this kind of object type in the DMS customizing. Please note that for the simple creation of documents mandatory fields (if set in customizing) cannot be filled and this will lead to error messages.
    Please note that the value "1" for the creation of documents is used to enable a user to simple attache a word file on object side without going to the transaction CV01n. Therefore the system behaviour is different then creating a document by CV01n and attaching a word file to it.
    However, you can change the behaviour how the document is created from equipment master transaction if you change the customizing in transaction DC10 like this:
    If you maintain the value "2" for creation of documents, the user is put to transaction CV01n for the creation of document info records. So maybe this would solve the issue.
    Best regards,
    Christoph

  • How can I pass an object to a function by value?

    Hi
    I have a function with an argument. this argument is an object. I don't want to alter this object. But java passes this object by reference and some fields in this object are altered after function return.
    How can I pass this object by value and keep my original data unbroken?
    thanks for any help

    a.toraby wrote:
    I have a function with an argument. this argument is an object. I don't want to alter this object. But java passes this object by reference and some fields in this object are altered after function return.
    How can I pass this object by value and keep my original data unbroken?How you approach it is likely to depend on how much control you have over the code in question. If it's legacy code and has been badly designed, there's probably very little you can do to protect existing code short of a complete refactoring.
    What you could do as an interim measure is:
    1. Create an immutable wrapper to your existing mutable class.
    2. Create new methods that replicate the existing ones, but take the immutable class instead.
    3. Deprecate the old methods.
    This won't break client code, but they will now get warnings when they compile and you can add documentation to point them to the new class/methods.
    If you are in control of the code (especially if you're still in the design stages), you've got several options:
    1. As Dr.Clap says, make your class immutable (probably best).
    2. If this isn't possible, create mutable and immutable variants of your class. This is often best achieved by hanging them both from an interface.
    Winston

  • Passing html object in a JSP to another JSP

    Below, I have a jsp page I want to pass the object name "BP" and all its values to a jsp in another jsp page. I can't use the session object can I? The html the jsp creates is within a form.
    I know the request.getParameter("BP") doesn't work because it must be a string.
    out.println("<form name=myform action='RevUpdate.jsp' method=post>");
    out.println("<PRE><Center><TABLE border = '5'>");
    for (int i=0; i < vBP.size(); i++)
    out.println("<TR><TD><font size='4'>" + ((Fetch_BP_RevLetter)vBP.elementAt(i)).getBP() + "</font></TD><TD><font size='4'><input type='text' size='3' maxlength='2' name='BP' value='" + ((Fetch_BP_RevLetter)vBP.elementAt(i)).getItemRev() + "'/></font></TD></TR>");
    out.println("</Center></Table>");
    out.println("<input type='submit' value='Save'><INPUT TYPE='Button' VALUE='Back' onClick='history.go(-1)'>");
    out.println("</Center>");
    out.println("</form>"); //END OF myform
    HttpSession sessionid = request.getSession(false);
    sessionid.invalidate();

    request.setAttribute()

  • How to pass an object as a parameter

    how do you pass an object as a parameter? (what type should it be ?)

    Well you can use a [url http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html]String
    Or you can take a [url http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Double.html]Double
    And you can pass [url http://java.sun.com/j2se/1.4.2/docs/api/java/awt/Event.html]Events
    and get yourself in trouble
    and you can use a [url http://java.sun.com/j2se/1.4.2/docs/api/java/awt/Frame.html]Frame
    or maybe take a [url http://java.sun.com/j2se/1.4.2/docs/api/java/util/List.html]List
    but some will use [url http://java.sun.com/j2se/1.4.2/docs/api/java/util/Collection.html]Collection
    depends you your direction
    so if you need to know
    if you should use a [url http://java.sun.com/j2se/1.4.2/docs/api/java/util/Map.html]Map
    then this is what to do
    just browse the [url http://java.sun.com/j2se/1.4.2/docs/api/]API

Maybe you are looking for

  • Lost "purchased on" playlist during io5 update. Can it be recovered and if so where can i find it?

    My daughter updated her itouch for the first time in months [I've been telling her to do it regularly]. After the io5 upgrade completed, she discovered that her touch, and the itunes library, does not show the playlist "Purchased on E's itouch". Is t

  • Mass activity run to fill tables FKKMAKO,FKKMAZE,FKKMACTIVITIES

    Dear All, As per help.sap.com, it is mentioned that we need to do mass activity run for filling these Dunning tables(FKKMAKO,FKKMAZE,FKKMACTIVITIES). It is not mentioned the mass activity run names to fill these tables. Please help me , what are the

  • Time of range

    Hello I have a need, and I have a infobjeto having a range of time, and placed in the query designer that infobjeto line level so that it can be displayed in the report the number of transactions that are there for each time range, but I run the repo

  • Live Distribution

    HI, I have used .NET with Oracle previously, but now want to migrate to an ADF based solution for web developed data input forms. I am looking for some advice; - 1. What is the simplest and most robust way to allow access via the Web for ADF for in-h

  • IBook doesn't load CD's/DVD's at all

    Can someone please give me some advise? I loaded my iBook today and found that iChat was no more! When I click to load it a question mark appears over it and it does not load at all. When I checked for it in Applications it isn't in there either. Som