How to build a wsdl which can cater dynamically to number of attachments

We have a WebService client that calls a Webservice on the Server.
When the client calls the webservice , it passes the SOAP message(Header,Body & MIME attachments)and these attachments vary in number based on different business requirements.
We know how to build WSDL for server with static number of attachments,but no clue on how to build a wsdl which can cater dynamically to number of attachments comming from client request.
- thanks in advance

Hello,
We may have multiple approaches here depending of :
- which version of the product you are using
- what are your clients in term of stack, and API they are willing to use
- which encoding did you use for your WS (swa, swaRef or dime)
So for my answer I am documenting how to do it on OracleAS 10gR3 (10.1.3), using swaRef approach.
The easiest way is to exchange array of binary data and describle that in the WSDL, so in my case the WSDL element that is used will look like that:
<element name="filesResponseElement">
<complexType>
<sequence>
<element name="result" type="ns1:swaRef" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</complexType>
</element>
This will generate from the Java code an array of AttachmentPart[].
Regards
Tugdual Grall

Similar Messages

  • How to create a structure which can hold a dynamic table as a field in DDIC

    Hi ,
           I am designing a solution for a problem and have a unique requirement.  I need to create a structure which can hold a field where dynamic table data can be stored.  Let me illustrate with an example :
    My structure  ( say  Z_output_struc ) will have the fields
    Table_name  Table_Data
    My function module will have a table type of the above structure, so in effect ,my output can have multiple table names and related to each of them, there will be table data of that table name. The issue is how do I configure this in DDIC ?
    I tried creating table_data as "Type ref to Data"  but was stuck  inside the func module when I tried to transfer data to this.
    Any pointers as to how to think about this differently ? 
    Best Regards,
    Girish

    Hi Girish,
    you start directly from the ref to data. You assign it to a field symbol and cast this to the type of the destination of your select. So you can directly add the reference to the cache:
    I hope this example helps a bit (I took a form instead of a function module as it is easier to add here and used an hr table as kna1 is empty on my test system):
    REPORT  z_rwe_99_dyn_tab_cache.
    * type definition
    TYPES:
      BEGIN OF _s_cache,
        table TYPE        tabname16,
        cache TYPE REF TO data,
      END   OF _s_cache,
      _t_cache TYPE STANDARD TABLE OF _s_cache.
    * data declaration
    DATA:
      lv_table     TYPE tabname16,
      lv_condition TYPE string,
      lt_cache     TYPE _t_cache.
    * define table and condition
    lv_table     = 'HRP1000'.
    lv_condition = 'plvar = ''01'' and otype = ''S'' and objid = ''50000016'''.
    * get the result of a single table into the cache
    PERFORM get_dyn_table USING
                            lv_table
                            lv_condition
                          CHANGING
                            lt_cache.
    * form to read a single table
    FORM get_dyn_table USING
                         iv_table     TYPE tabname16
                         iv_condition TYPE string
                       CHANGING
                         ct_cache     TYPE _t_cache.
      FIELD-SYMBOLS:
        <lt_table> TYPE ANY TABLE.
      DATA:
        ls_cache TYPE        _s_cache,
        lr_data  TYPE REF TO data.
      CREATE DATA lr_data TYPE STANDARD TABLE OF (iv_table).
      ASSIGN lr_data->* TO <lt_table>.
      SELECT * FROM (iv_table) INTO TABLE <lt_table>
        WHERE
          (iv_condition).
      ls_cache-table = lv_table.
      ls_cache-cache = lr_data.
      APPEND ls_cache TO ct_cache.
    ENDFORM.                    "get_dyn_table
    If you have more questions just give another post.
    Best Regards
    Roman

  • How to create a material which can be used in T-Codes VAO1 & MB1C create

    Hello Experts,
    How can I create a material which can be used to create a sales order and can be used to create inventory using VAO1 and MB1C T-Codes respectively.
    What are the configurations that I need to take care of, while creating it?
    I need to create a material which can be used in the whole sales cycle(sales order,goods issue,billing and etc).
    Please Help,
    Thanks in Advance,
    Suma

    Hi
    Thanks for your fast replies.. I have created a new material and was able to create inventory thru MB1C. But I was not able to generate a goods delivery(VL01N) and billing document(VF01)  for the sales order.
    Error: No schedule lines due for delivery up to the selected date
    Message no. VL248
    Diagnosis
    There are no schedule lines due for the given order item up to the date chosen.
    System Response
    The system does not create a delivery item for this order item.
    Procedure
    Check whether the order item to be delivered contains confirmed schedule lines.
    If this is the case, set the selection date further into the future if you still want to create a delivery for this item.
    Please suggest,
    Tanks,
    Suma
    Edited by: Suma B on Sep 23, 2008 3:55 PM

  • How to create one procedure which can drop and create materialized view

    Hi,
    I want to create one pl/sql procedure which can first drop materialized view CATEGORY_PK and after that create same materialized view CATEGORY_PK.
    programme is as follows:
    DROP MATERIALIZED VIEW CATEGORY_PK;
    CREATE MATERIALIZED VIEW CATEGORY_PK REFRESH FORCE WITH PRIMARY KEY AS
    SELECT cav1.ownerid AS categoryid, p.uuid AS productid ,p.domainID AS productdomainid,pav.stringvalue AS NAME
         ,pav2.stringvalue AS ID, pav3.stringvalue AS SHORT
    FROM product p, product_av pav, catalogcategory_av cav1, catalogcategory_av cav2,product_av pav2,product_av pav3
    WHERE
    cav1.NAME = 'PRODUCT_BINDING_ATTRIBUTE' AND
    cav2.NAME = 'PRODUCT_BINDING_VALUE' AND
    cav1.ownerid = cav2.ownerid AND
    p.uuid = pav.ownerid AND
              p.uuid = pav2.ownerid AND
              p.uuid = pav3.ownerid AND
    pav.NAME = cav1.stringvalue AND
              pav2.NAME = cav1.stringvalue AND
              pav2.NAME = cav1.stringvalue AND
    pav.stringvalue = cav2.stringvalue AND
              pav2.stringvalue = cav2.stringvalue AND
              pav3.stringvalue = cav2.stringvalue
    UNION
    SELECT catalogcategoryid AS categoryid, productid, repdomainid AS productdomainid,pav1.stringvalue AS NAME
         ,pav2.stringvalue AS ID, pav3.stringvalue AS SHORT
    FROM productcategoryassignment ,product_av pav1,product_av pav2,product_av pav3
         WHERE pav1.ownerid=productid
         AND pav2.ownerid=productid
         AND pav3.ownerid=productid
         AND pav1.NAME='name'
         AND pav2.NAME='productID'
         AND pav3.NAME='shortDescription';

    user498566 wrote:
    I want to create one pl/sql procedure which can first drop materialized view CATEGORY_PK and after that create same materialized view CATEGORY_PK.That sounds like a waste of time and resources. What do you hope to achieve by this? A refresh? If so, a simple refresh of the old materialized view will do.
    If you truly want to continue this road, you'll have to use the EXECUTE IMMEDIATE command to execute DDL commands from within PL/SQL.
    Regards,
    Rob.

  • HT1766 how to find the icon which can be moved around the screen with "siri, favorites,home device"?

    I'd like tohave the moving icon which contains siri,favorites,home and ddevice, you can move it around on the ipad screen. It's a small round one,but becomes square when it is bigger. so where to find it and how to install it?

    Try Settings>General>Accessibility>Assistive Touch
    ~Lyssa

  • How to create dummy pricture which can be used for chart in msword

    I want to create a chart in template,but have problem with creating dummy picture , is there any one could tell me how to create a dummy picture in msword. Thanks

    First create a chart.
    Now right click on chart > format picture > web
    copy the code.
    now you may delete it.
    insert a picture which you want.
    right click > format picture > web
    paste the code.
    done.

  • How to build and executable which will include Advantech DAQ vi's. Have Advantech USB 4750

    I'm using Advantech USB 4750 hardware and Advantech DAQ VIs. It is working perfectly on the developing machine. Now i'm trying to create an executable. cant get the executable to talk to the DAQ. I already installed the USB 4750 driver and runtime engine in the machine I will be running my executable. How do I incorporate the Advantech DAQ VIs to my executable. They are showing as dependancies on the Project exlporer. Need some help on this.

    Hello DiracDeltaForce,
    Besides Travis-E recommendations on this post, I wanted to show you these links:
    Building an Installer (Windows) - LabVIEW 2012 Help
    http://zone.ni.com/reference/en-XX/help/371361J-01/lvhowto/build_installer/
    Building a Stand-Alone Application - LabVIEW 2012 Help
    http://zone.ni.com/reference/en-XX/help/371361J-01/lvhowto/building_a_stand_alone_app/
    Hope you find them useful.
    Regards
    Ernesto
    Applications Engineer
    National Instruments 

  • How to create a Choice which can be selected thru keyboard ?

    Hi,
    I am using java.awt.Choice to display all the states in US, Canada and Mexico in that order. I need to make this list selectable using key board. ie, if i press A, it should first go to AL , then to AK etc. I have added the following code in the class which extends from Choice so that it i type A , it will go to AL. But subsequent key types for the same letter are not recognised.Please provide some pointers on how to do this.
    protected void processEvent(AWTEvent evt)
    super.processEvent(evt);
    if( evt instanceof KeyEvent)
    char ch = ((KeyEvent)evt).getKeyChar();
    Character c = new Character(ch);
    if(!Character.isLetterOrDigit(ch))
    return;
    for(int i =0; i < getItemCount(); i++)
    if( getItem(i).substring(0,1).equalsIgnoreCase(c.toString()))
    select(i);
    break;
    Thanks in advance.

    thanks, it worked.
    posting the whole code.
         protected void processEvent (AWTEvent evt)
              super.processEvent(evt);
    if( evt instanceof KeyEvent && evt.getID() == KeyEvent.KEY_PRESSED)
    char ch = ((KeyEvent)evt).getKeyChar();
    Character c = new Character(ch);
    if(!Character.isLetterOrDigit(ch))
    return;
                   int ind = 0;
                   if(getSelectedItem().toUpperCase().startsWith(c.toString().toUpperCase()))
                        ind = getSelectedIndex()+1;
                   boolean matchfound = false;
                   for(int i = ind; i < getItemCount(); i++)
                   if( getItem(i).toUpperCase().startsWith(c.toString().toUpperCase()))
                             matchfound = true;
    select(i);
    break;
                   if(!matchfound)
                        for(int i = 0; i < getItemCount(); i++)
                             if( getItem(i).toUpperCase().startsWith(c.toString().toUpperCase()))
                                  select(i);
                                  break;
         }

  • In JS, how to save a bookmark which can open in main, not sidebar?

    I did lots of search on the web. People have been struggling with this problem for many years.
    The scenario:
    My standard_weight.php takes height parameter either from $_GET or from $POST. The web page has a form to let users type in height.
    Control-D can save the location, but not the height.
    My page is too simple to ask users to create an account and save profile.
    So I want to provide a link users can click and bookmark the current page with height.
    <pre><nowiki><script language="JavaScript1.2" type="text/javascript">
    function CreateBookmarkLink() {
    title = "my ideal weight";
    height = function_to_get_current_height_value();
    url = "http://my.site.com/standard_weight.php?height=" + height ;
    if (window.sidebar) { // Mozilla Firefox Bookmark
    window.sidebar.addPanel(title, url,"");
    } else if( window.external ) { // IE Favorite
    window.external.AddFavorite( url, title);
    } else if(window.opera && window.print) { // Opera Hotlist
    alert("Sorry, your browser doesn't support this function." );
    return false ;
    if (window.external) {
    document.write('<a onClick ="javascript:CreateBookmarkLink();">Add to Favorites</a>');
    } else if (window.sidebar) {
    document.write('<a onClick ="javascript:CreateBookmarkLink();">Bookmark Page</a>');
    } else if (window.opera && window.print) {
    document.write('<a onClick ="javascript:CreateBookmarkLink();">Add Bookmark</a>');
    </script>
    </nowiki></pre>
    When the link is clicked , a dialog will pop up and the user can save the bookmark.
    The problem is that when the bookmark is opened, it is in sidebar. The bookmark property has the check for "Load this bookmark in the sidebar."
    Asking users to clear the check is not a friendly solution.
    Is there anyway to get around this problem?
    If you google this topic, you can find that people has been struggling with this for long time. I guess that they just end up with saying "sorry, your browser doesn't support this function." on Firefox.
    Best wishes to Firefox !

    There are two Bugs related to a feature like that; one was WONTFIX'd and the other is still open.<br />
    https://bugzilla.mozilla.org/show_bug.cgi?id=66248 <br />
    https://bugzilla.mozilla.org/show_bug.cgi?id=214530
    ''(Please don't comment in that Bug report unless you can provide a patch to fix the problem.)''
    https://bugzilla.mozilla.org/page.cgi?id=etiquette.html

  • How to create a program which can be installed as NT service?

    I wrote a server program using LW/CVI 5.5. I want to install it on NT/2000
    OS and running as NT/2000 services. I know SRVANY.EXE can do this, but I
    want to one step do this using INSTSRV.EXE or using install utility to modify
    registry keys.
    Thanks.

    Hi
    Thanks for your fast replies.. I have created a new material and was able to create inventory thru MB1C. But I was not able to generate a goods delivery(VL01N) and billing document(VF01)  for the sales order.
    Error: No schedule lines due for delivery up to the selected date
    Message no. VL248
    Diagnosis
    There are no schedule lines due for the given order item up to the date chosen.
    System Response
    The system does not create a delivery item for this order item.
    Procedure
    Check whether the order item to be delivered contains confirmed schedule lines.
    If this is the case, set the selection date further into the future if you still want to create a delivery for this item.
    Please suggest,
    Tanks,
    Suma
    Edited by: Suma B on Sep 23, 2008 3:55 PM

  • How to create a text which can support more than 500 chars ?

    Hi all:
        In my interactive form, I have one text, the value inside this text is longtext, the length will be more than 500 chars.
        My problem is now , if there is more than 100 chars, there will be duplicated chars in this text.
        Can I make this text support overlap ? when the value have too many chars, it will display in next row ? is it possible ?

    Hi,
    The 2 points are compulsory for multiline display.
    Could you please let me know the following things.
    1. Is that field is wrapped by any position content subform.If this is the case, try making flow content.
    2. Is there any field below the text field and the 2 fields are wrapped in position content, In this case also make the subform as flow content.
    Refer the example form FP_TEST_01 in SFP transaction.Check the subform and field properties.
    Make a backup before making changes.
    Thanks and Regards,
    Pavan Meda

  • How to add a SwingComponent to a Scene which can resize dynamically ?

    Hello,
    I would like to add a custom swing component to a Scene (am using SwingComponent.wrap(..) approach) however I would like to know how to enable dynamic resizing of my component when my JavaFX scene is resized by the user ?
    any info appreciated,
    -A

    I am going to have to award myself the Duke points. Surprising no one replied to this..
    Anyway for anyone looking at this in future here is how I solved this problem:
    Used the excellent Grid layout from JFXtras project allowing the following:
    import org.jfxtras.scene.layout.Grid;
    import org.jfxtras.scene.layout.GridConstraints;
    import org.jfxtras.scene.layout.Row;Then my Stage was set like this (obviously this applies to any component) - I was just looking for Swing:
    Stage {
        title: "JavaFX Dynamic Resize Layout"
        resizable: true
        var theScene: Scene;
        scene:
        theScene = Scene {
            content: [
                Grid {
                    width: bind theScene.width
                    height: bind theScene.height
                    rows: [
                        Row {
                            cells: [
                                Cell {
                                    hgrow: GridConstraints.ALWAYS
                                    vgrow: GridConstraints.ALWAYS
                                    halign: GridConstraints.HFILL
                                    valign: GridConstraints.VFILL
                                    content:swingComponent
    }Simple really....
    Edited by: AlanOL on Feb 23, 2009 12:49 AM

  • Build Labview Application which loads functions dynamically

    I am not sure if this is possible for executables, but it works pretty well in the LabVIEW development mode.
    I have a LabVIEW program which calls some functions (sub-functions) dynamically. In the develop mode, the sub-functions are in separate *.llb files. When a subfunction is selected from the menu of the main LabVEIW program, the main application searches a particular location/directory for a particular *.llb file; if the *.llb is found, it loads the vi and runs it, if not, it tells the user that the function is not available. The advantage of doing this is that I can add/remove/modify these sub-functions simply by puting in or taking out the *.llb file from that directory without causing any problem on the main program.
    Would it be possible to do the same if I buid an LabVIEW executable application (I mean build/compile the main application first, and then add/remove functions by putting/removing some files in a directory)? If yes, then I can distribute new functions to users without having to re-compile the whole thing.
    Thanks.
    Ian

    Hello Andrew,
    When Using LOader method, there are a few things to take care of. It is not so terrible when you know what and why. Consider this If you change your executable, You have to rebuild and then you realize there was a small spelling mistake or a control was not aligned. Doing a double check is sometimes as important as good programming.
    1. Path Issues - These you will have whether you build executable or release it as a library. This happens if you use relative path.
    2. Use of native labview Vi's in your code - When the code changes, You want to distribute the new LLB. Well Use Save with Options and Choose "Application Distribution" Select "Entire Hierarchy", "Include Vi.lib Files" And "Runtime Menu" and "External Routines" If you want your App protected. Click Remove Diagrams. Again Make sure you don't lose your Original file if you choose this. All this saves the whole App as LLB.
    Then your Loader has to call your Main Vi dynamically. How difficult is the path Issue to Call One Main Vi in a Vi Library. There is no Licensing Issue here as LV itself gives you this option.
    I have used this method for a couple of 200 Vis or more Applications and constantly updated by changing the llb file without any hassle.
    Good Luck!
    Mache

  • RFC WHICH CAN USE DYNAMIC SQL AS INPUT AND SHOW COMPLETE DATA FOR TABLE

    Hi Expert,
    I am trying to create a FM like RFC_READ_TABLE. In this table we put table name and the field name for which we write a query and option for query we get the out put only for that field in this case.
    My requirement is very similar to this. But here i want to enter any table name and in option i want to write dynamic sql query for any filed of table then i want data based on this so that it will display the entire table entries.
    Like TABNAMELIKE     EKKO
    OTHERCON     bukrs_k = 3000.
    Based on this selection it has to show the entire table fields.
    To make this easy to understand i made a custom FM which are getting data from table or view and i select any field and put query it will show the result.
    FUNCTION ZDYNSQL_EKKO_EKPO.
    ""Local Interface:
    *"  IMPORTING
    *"     VALUE(ERNAMLIKE) TYPE  CHAR15 OPTIONAL
    *"     VALUE(OTHERCON) TYPE  CHAR50 OPTIONAL
    *"  TABLES
    *"      VALUE STRUCTURE  V_EKKO_EKPO
    *TABLES : V_EKKO_EKPO, EKKO, EKPO.
    DATA: STR_WHERE TYPE TABLE OF EDPLINE.
    DATA: STR_LINE TYPE EDPLINE.
    *CONCATENATE 'EBELN LIKE''' EBELNLIKE '%''' INTO STR_LINE.
            CONCATENATE 'ERNAM LIKE ''' ERNAMLIKE '%''' INTO STR_LINE.
            IF OTHERCON <> '            '.
            CONCATENATE STR_LINE 'AND' OTHERCON '            ' INTO STR_LINE SEPARATED BY SPACE.
            ENDIF.
          APPEND STR_LINE TO STR_WHERE.
          SELECT * FROM  V_EKKO_EKPO INTO CORRESPONDING FIELDS OF TABLE VALUE WHERE (STR_WHERE).
    ENDFUNCTION.
    Now here is sample code of exact requirement.
    FUNCTION ZDYNSQL_TABLE_READ.
    ""Local Interface:
    *"  IMPORTING
    *"     VALUE(TABNAMELIKE) TYPE  DD02L-TABNAME
    *"     VALUE(OTHERCON) TYPE  CHAR80 OPTIONAL
    *"  TABLES
    *"      VALUE STRUCTURE  DD02L
    DATA: STR_WHERE TYPE TABLE OF EDPLINE.
    DATA: STR_LINE TYPE STRING.
            CONCATENATE 'TABNAME LIKE ''' TABNAMELIKE '%' 'DD02L' 'TABNAME' INTO STR_LINE.
            IF OTHERCON <> '            '.
            CONCATENATE STR_LINE 'AND' OTHERCON '            ' INTO STR_LINE SEPARATED BY SPACE.
            ENDIF.
          APPEND STR_LINE TO STR_WHERE.
          SELECT * FROM DD02L INTO CORRESPONDING FIELDS OF TABLE VALUE WHERE (STR_WHERE).
    ENDFUNCTION.
    In this i put table name as EKKO and put sql query as bukrs_k = 3000 it provide a short dump.
    How can i solve this problem. Please provide some input or modification
    Thanks And Regards
    Ranjeet Singh

    Hi Kris,
    I tried to make sample using that link you provide to me. How can i declare Global Interface in FM and in import parameter references like "REFERENCE(I_INTERFACE_CHECK) DEFAULT SPACE".
    Also it uses a function-pool.
    Let me tell you about my exact requirement about FM.
    I want in import parameter input as any SAP Table name like
    TABNAME TYPE EKKO
    OPTIONS TYPE CHAR80
    I want my output to be stored in TABLES attributes as per the table name entered in import parameter. In import parameter Table name can be any one of SAP tables and Option based on that particular table. Like if i go with table EKKO and put OPTIONS as
    ebelp = 4 then TABLES attributes Tab  contains all the relevant data for input.
    Is there any way with the help of that i can put my data into internal tables. I tried to put in TABLES as VALUE LIKE ANY but it shows that generic are not allowed. Can you provide some sample on this.
    I also getting exceptions like CX_SY_DYNAMIC_OSQL_SEMANTICS, SAPSQL_INVALID_FIELDNAME.
    Waiting for your valuable reply.
    Thanks And Regards
    Ranjeet Singh

  • Are there some API which can turn a integer number to a char?

    for example ,convert 1 to '1',
    thanks

    Hi, try this:
    public class int2char
      public static void main(String[] args)
        int d=8;
        String s=Integer.toString(d);
        char c=s.charAt(0);
        System.out.println(c);
    }

Maybe you are looking for

  • How to show 2 lines in report from 2 other servers scom 2012

    hello i want to create 2 report in one report. ex availability report of 2 servers in one chart can i do this or it is impossible?

  • What's wrong with my iPhone 3Gs?

    Last night i went to a party and my phone was working and had 43% battery. After about two hours i pulled my phone out to see what the time was. And it wouldn't turn on. I pushed both buttons a million times. and nothing happened. I thought that it w

  • Simple solution to getting advanced features working on iWeb 1.1

    I've been rather frustrated with the problems with iWeb 1.1, but after a couple of hours of experimenting, I now have a solution and theory about the problem. For a quick summary, scroll to the bottom of the post. I have a site with a small blog a fe

  • Handle to a BPM task in UWL

    Hello UWL Experts, This is a follow up thread to the question that I have already posted in BPM forum [Handle to a Task in BPM;. The attempt here is to check if this issue could be simply solved in the context of UWL / rather than BPM. Here goes the

  • I mac g5 hard drive booting issues

    My problem is this, i just tried to upgrade from tiger to snow lep, the installer got stuck so i siwthced it off and concealed defeat and went to do a full format job, once i deleted all the files i formatted to guid so the hard drive would be bootab