Expression must return the interface type

<b>Dear XI experts,</b>
My scenario is ;
The input parameter for the RFC is send through a file and the response from the RFC comes into XI which is then written into a File (dummy). Finally I want to have Transformation(Message Mapping to IDoc) and send to Target system.
The diagram of the following is shown below;
http://photos1.blogger.com/blogger/3087/1595/1600/6.jpg
I am getting Error in Transformation Step, <b>EXPRESSION MUST RETURN THE INTERFACE TYPE <Target message>. </b>
<b>
Pls advice, Anybody ??</b>

Hi Faith,
->This error occurs when the interface mentioned in the interface mapping and in the container difference.
->Here in your case the target Message Interface in the Interface Mapping and the Interface of the container <b>modify</b> are different. Do check that.
Hope this helps.
Regards,
Jesse.

Similar Messages

  • Expression must return the interface type in Transformation Step in BPM

    hi,
    We are getting below while activating the IP,
    Expression must return the interface type SI_Send_AA
    Expression must return the interface type SI_Get_AA
    No semantic errors found
    We have a Transformation Step in BPM,
    In OM, Source is SI_Send_AA and Target is SI_Get_AA
    Also Container variable points to  the same Abstract SI's.
    Few Thread's for Same are error are:
    Error in  BPM
    expression must return the interface type
    Transformation step in ccBPM scenario
    Error while compiling Business Process
    Even after checking these i am getting this Exception.
    Please Help!
    Thanks,
    Mayank

    Also Container variable points to the same Abstract SI's
    Are you sure that you are using Abstract Message Interfaces only and that these are referring to relevant container variables.
    Normally it happens that there is some mis-match between the message types/ interfaces that we use in the mapping and that we use in the BPM.
    If still not solved, then delete the Transformation step --> save --> activate......then again Edit the BPM to include the Transformation Step.
    Regards,
    Abhishek.

  • BPM "Expression must return multiline value"

    Hi
    i was Creating a scenario file to file Message Split using BPM. in that i have done all the IR part and after that i created integration process.but when i m check this Integration process, i got an error like "Expression must return multiline value" it display into Receiver Determination.
    Can somebody who help me...
    regards
    Bhaumik

    check for the following:
    1. in your messages tab in MM and IM you have changed the occurance for the multiple message.
    2. Do a f7 on your BPM and confirm it is error free.
    3. chk your transformation step have you given the correct container variable there ? (chk for the correct multiline or non-multiline interface)
    4. recheck wherever the multiline container is used (in case of 1:N or N:1 u need to have the multiline option)
    also has your process made an exit from the BPM ?
    Message was edited by: Shabarish Vijayakumar

  • Must have the same type and the same length

    hi experts,
    DELIVERY_PLANT  data type STRING    //from proxy class, can't be changed
          BEGIN OF ty_citem,
              article type matnr,
              werks   type werks,
           END OF ty_citem,
    LOOP AT it_items INTO lv_item.
        lv_citem-article = lv_item-article.
        lv_citem-werks = lv_item-DELIVERY_PLANT.
        APPEND lv_citem TO GT_citem.
        clear lv_citem.
      ENDLOOP.
    SELECT matnr werks
           from marc
           into table GT_marc
           for all entries in GT_citem
           where matnr = GT_citem-article  and werks = GT_citem-werks.
    error message here:When you use the addition "FOR ALL ENTRIES IN itab", the fields "WERKS"
    and "GIT_CITEM-WERKS" must have the same type and the same length.

    Hi,
    You know for statement FOR ALL ENTRIES in where clause data type and length should be match.
    As per my understanding ,here GT_citem-werks is a string. But you know data type of WERKS_D is char with lencth 4.
    Use the below select statement.
    SELECT matnr werks
           from marc
           into table GT_marc
           for all entries in GT_citem
           where matnr = GT_citem-article  and werks = GT_citem-werks+0(4).
    Thanks.
    Subhankar

  • Error - The file must match the template type. Upload one file per language

    hi,
    Error - The file must match the template type. Upload one file per language and territory combination.
    i am getting above error while registering RTF template in oracle application e -business suite using XML publisher admistrator responsibility.
    My work :
    i generated xml output using concurrent program.
    for this i used standard PO report,
    the executable name: POXPRPOP.
    i designed the template using MS Office word (for RTF template)
    for this :
    <?start: body?>
    <? for-each: G_Headers?>
    VENDOR:
    <?POH_VENDOR_NAME?>
    <?POH_VENDOR_COUNTRY?>
    PURCHASEORDER NO.
    <?POH_PO_NUM?>
    SHIP TO:
    <?C_COMPANY?>
    <?POH_SHIP_ADDRESS_LINE1?>
    <?POH_SHIP_COUNTRY?>
    BILL TO:
    <?C_COMPANY?>
    <?POH_BILL_ADDRESS_LINE1?>
    <?POH_BILL_COUNTRY?>
    <?end for-each?>
    <?end body?>
    saved this file as "Purchasing.rtf" on desk top
    i registered data definition
    name:purchase order data definition.
    code : short name of concurrent program.
    i try to create template Or register the template in oracle e-business suite.
    name: purchasing template
    code: concurrent program short name
    type : RTF.
    file : browse from desk top (purchasing.rtf)
    language:english
    territory: US.
    but i am getting above error
    could any one help to come out of this problem.
    thank you
    regarding,
    sai krishna@cavaya

    Hi,
    I am getting the error as
    The file must match the template type. Upload one file per language and territory combination.
    I have checked the template name. It doesn't exist already. Please help me.
    Thanks in Advance,
    Jeganathan

  • The interface type is valid, but the specified interface number is not configured

    Hi
    I'm all new to using LabVIEW, which I have to use for a project. I'm trying to make a setup with a Keithley 2000 multimeter and an Agilent U2722A SMU. But I can't figure out how to get these instruments to communicate with LabVIEW. I can see and send commands to the Keithley 2000, but not the Agilent U2722A, with Agilent Connection Expert. But when I use LabVIEW I can't see any of them, and if I use the drivers I've found with "NI Instrument Driver Finder - Configure Search" I pops up with an error message saying
    "Error -1073807195 occurred at VISA Open in Keithley 2000.lvlib:Initialize.vi->Keithley 2000 Read Multiple.vi?            
    Possible reason(s):
    VISA:  (Hex 0xBFFF00A5) The interface type is valid, but the specified interface number is not configured.?"
    I've read all the threads I could find about this problem, but none of them helped. I've checked that the NiVi488.dll is checked in MAX under the VISA options. When I open the VISA Interactive Control I see an ASRL1>>ASRL1::INSTR and ASRL10>>ASRL10::INSTR. I don't know why it says ASRL, when I'm using an USB/GPIB interface, but the Keithley 2000 have 10 as the address. (the Agilent U2722A is connected directly by USB)
    Assume I know nothing.
    Thanks

    I'm using the GPIB-USB-HS. I also used this on the development PC when I exported the hardware configuration.
    This shows up in my MAX config and when I scan instruments, all of them show up. I can query them in MAX no problem.
    My installer includes all the .exe's from my project. As I said, I've done this with my previous 2009 installer without any issue. I upgraded my installer since I upgraded my project for version 2013. The error only happens when I run my code.
     

  • Having an inherited function return the derived type instead of the base type

    I am writing two classes in C#:
    A Matrix class
    that represents a general Matrix with n-by-m dimensions
    A SquareMatrix class
    that inherits from Matrix and
    has the constraint of being n-by-n
    The reason I designed it this way is because square matrices support additional specific operations like calculating the determinant or the inverse, so being able to guarantee that those functions are avaliable with the specific type you're using are nice things
    to have. Additionally it would support all the regular Matrix operations and can be used as a Matrix
    I have a function in Matrix called getTranspose().
    It calculates the transpose of the Matrix and returns it as a new Matrix
    I inherited it in SquareMatrix,
    but because the transpose of a square matrix is guaranteed to be square matrix, I also want it to return a SquareMatrix
    I am unsure about the best way to do this.
    I can re-implement the function in SquareMatrix,
    but that would be code duplication because it's essentially the same calculation
    I can use implicit typecast operators, but if I understand correctly that would cause unnecessary allocations (upcast SquareMatrix to Matrix,
    create a new Matrix as
    the transpose, create a new SquareMatrix during
    typecasting and throw away the tranposed Matrix)
    I can use explicit typecast operators, but it would be stupid to have to typecast the transpose of a SquareMatrix explicitly,
    and it also has the same problem of the implicit operator with unnecessary allocations
    Is there another option? Should I change the design of having SquareMatrix inherit
    from Matrix?
    This problem also applies to operators. It seems that I have to either implement typecasting operators which might cost in performance, or have to re-implement the same code.

    Inheritance not helping to eliminate repetition and typecasts is often a sign that generics would help. You can do something like:
    public T getTranspose<T>()
    // or non-member function
    T getTranspose<T>(T input)
    I haven't fully worked it out, but it seems it might get awkward on the calling side. I know C# does some inference with generic methods, but I don't know C#, so I'm not familiar with the details. That might be the way you have to go, though, if you want
    full compile-time type checking with the least amount of repetition in the implementation.
    Another option would be to create private helper functions, then pass in the result type you want, for the helper to populate, like:
    public SquareMatrix getTranspose() {
    SquareMatrix result = new SquareMatrix();
    transposeHelper(result);
    return result;
    This gives you more boilerplate on the implementation side, but at least it isn't full repetition.
    A third option is just to check if the result is square in the Matrix implementation, and return a
    SquareMatrix if it is, like:
    public Matrix getTranspose() {
    Matrix result;
    if (resultIsSquare())
    result = new SquareMatrix();
    else
    result = new Matrix();
    // calculate result
    return result;
    This has the advantage of not needing any implementation at all for getTranspose() in
    SquareMatrix, but at the expense of requiring type checking of the return value at the call site. It also works for cases like multiplying two non-square matrices that happen to give a square result. You give up most compile-time type checking,
    though.
    If your application happens to mostly require run-time instead of compile-time type checking anyway, you might as well just give up the different types and throw an exception if you call a method that a non-square matrix doesn't support. I believe this is
    the approach most existing libraries take, especially since there are other conditions than being non-square that can cause methods like
    inverse() to fail.
    Speaking of libraries, there are a lot of good ones out there for matrix math, that are already heavily tested and optimized. Don't reinvent the wheel if you don't have to.

  • WCF returning "The content type text/html of the response message does not match the content type of the binding (application/soap+xml; charset=utf-8)"

    I have a WCF service I am trying to run on a new installation of 64-bit Windows Server 2008 IIS. Although it runs fine on Windows 2003 IIS, it is throwing the error in the thread title, which appears to be a server config issue, but I am not sure. Googling and searching the MSDN forums did not turn up a solution. I tried running WCF Logging, but that didn't help either.
    Does anyone have any suggestions on how to solve this probelm?
    Here is the error:
    The content type text/html of the response message does not match the content type of the binding (application/soap+xml; charset=utf-8). If using a custom encoder, be sure that the IsContentTypeSupported method is implemented properly. The first 1024 bytes of the response were: '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
    <title>500 - Internal server error.</title>
    <style type="text/css">

    I have the same issue on Windows 7 machine. The service works fine using a SoapUI client but a .Net client faisl to get a response.
    Hi,
    I have a WCF service which works perfectly when using SoapUI but throws error in my .Net client.
    {"The content type text/html; charset=UTF-8 of the response message does not match the content type of the binding (text/xml; charset=utf-8). If using a custom encoder, be sure that the IsContentTypeSupported method is implemented properly. The first
    1024 bytes of the response were: '<HTML><HEAD><link rel=\"alternate\" type=\"text/xml\" href=\"http://xyz.mysite.com/ysa/Broker.svc?disco\"/><STYLE type=\"text/css\">#content{ FONT-SIZE: 0.7em;
    PADDING-BOTTOM: 2em; MARGIN-LEFT: 30px}BODY{MARGIN-TOP: 0px; MARGIN-LEFT: 0px; COLOR: #000000; FONT-FAMILY: Verdana; BACKGROUND-COLOR: white}P{MARGIN-TOP: 0px; MARGIN-BOTTOM: 12px; COLOR: #000000; FONT-FAMILY: Verdana}PRE{BORDER-RIGHT: #f0f0e0 1px solid; PADDING-RIGHT:
    5px; BORDER-TOP: #f0f0e0 1px solid; MARGIN-TOP: -5px; PADDING-LEFT: 5px; FONT-SIZE: 1.2em; PADDING-BOTTOM: 5px; BORDER-LEFT: #f0f0e0 1px solid; PADDING-TOP: 5px; BORDER-BOTTOM: #f0f0e0 1px solid; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e5e5cc}.heading1{MARGIN-TOP:
    0px; PADDING-LEFT: 15px; FONT-WEIGHT: normal; FONT-SIZE: 26px; MARGIN-BOTTOM: 0px; PADDING-BOTTOM: 3px; MARGIN-LEFT: -30px; WIDTH: 100%; COLOR: #ffffff; PADDING-TOP: 10px; FONT-FAMILY: Tahoma; BACKGROUND-COLOR: #003366}.intro{MARGIN-LEFT: -15px}</STYLE><TITLE>Broker
    Service</TITLE></HEAD><BODY><DIV id=\"content\"><P class=\"head'."}
    I have the same service hosted on my local machine and when I point to the local service I can execute the operation with no issues. The message encoding is Soap11. I tried changing to Soap12 but I get exact same error. Any ideas greatly appreciated.
    I do have windows Activation Features installed and I am using .Net Framework 4.
    Thanks
    Sofia Khatoon

  • "The type of the expression must be an array type but it resolved to..."

    I have a Customer class.
    I have a CustomerDataHelper class that has a method that creates a Customer[][] , populates it with 10 Customers and returns it.
    public static Customer[] getCustomerData(){
    return new Customer[]{
    new Customer(10 ,"Hoertz", "Richard", "123 Main St.", "San Antonio",
                                  "TX", "78230"),
    new Customer(20, "Smith", "John", "258 Austin Blvd", "Austin",
                                  "TX", "78501"),
    }               In main I'm calling the method in CustomerDataHelper, getCustomerData, and populating Customer[] cst.
    public static void main(String[] args) {
    Customer[] cst = getCustomerData();     
    for(int i = 0; i < cst.length; i++){
    int j = 0;
    if (cst[i][j]== 20 || cst[i][j] == 50 || cst[i][j]== 80
    || cst[i][j]==100)
    System.out.println(cst);
    j++;
    My problem is my if statement, it gives me the error message listed in my Subject line for each cst[][]. It resolves it just fine in the for statement and the stdout statement, but not the if statement.
    Can someone please explain?

    You declare cst as an array of Customers, but then you access it like
    cst[i][j] as if it was a double array of somethings.
    Possibly you mean something likecst.getId() == 20
    where getId() is some method of the Customer that returns whatever
    that number argument in the Customer constructor is.

  • "File Dialog" Express VI returns the wrong path when the user selects the desktop

    In labview 8.0.1 with Windows
    XP, the File Dialog Express VI seems to return something other than the path
    selected by the user when configured to browse for folders (or files and
    folders) and the user selects the desktop.
    I can't determine exactly when it works and when it fails, but it always seems
    to fail if the user selects the desktop from the places bar (the shortcuts on
    the left side of the dialog) or from the drop-down menu at the top of the
    dialog and then clicks the "Current Folder" button to dismiss the
    dialog.  In this case it always returns whatever path is wired to the
    "Start Path" terminal.
    If the user navigates to the desktop with the "Up One Level" button
    or by selecting the actual desktop directory under Documents and Settings, the
    correct path is returned.
    If the user selects a file before clicking the desktop icon, then clicks
    "Current Folder" the correct path is returned.
    If the user clicks the desktop icon, clicks open, then clicks "Current
    Folder" the correct path is returned.
    It's possible to work around this bug in most cases by setting the start path
    to the desktop.
    Has anyone seen this behavior before?
    Can anybody verify this behavior by running the attached VI?
    In the past, when I've reported issues like this I've received responses from
    NI engineers that basically said "Thanks, but we already knew
    that".  Is there anywhere that users can search the list of known
    bugs and avoid wasting time tracking down issues that are already understood by
    NI?
    Thanks,
    Adam Brewster
    Attachments:
    File Dialog Test.vi ‏39 KB

    I'm on 8.2 and I can't get it to fail no matter how I select the desktop. I haven't tried it in 8.0, but I imagine that if this really is a bug, they did know about it and fixed it with 8.2. If this causes a real problem for you, I would suggest upgrading if you can.

  • JFormattedTextField getValue() is returning the wrong type

    So this is a very strange I've found in my ever-growing project I've been working on. I have four text boxes set up. Essentially, one is the total, the second is part_one, the third part_two, and the last the_rest.
    They've all been declared and initialized identically, e.g.:
    JFormattedTextField total = new javax.swing.JFormattedTextField(java.text.NumberFormat.getCurrencyInstance(Locale.US));
    JFormattedTextField part_one = new javax.swing.JFormattedTextField(java.text.NumberFormat.getCurrencyInstance(Locale.US));
    JFormattedTextField part_two = new javax.swing.JFormattedTextField(java.text.NumberFormat.getCurrencyInstance(Locale.US));
    JFormattedTextField the_rest = new javax.swing.JFormattedTextField(java.text.NumberFormat.getCurrencyInstance(Locale.US));the_rest is supposed to auto update as any of the other three are changed (the_rest = total - part_one - part_two)
    However, I'm having issues updating the text boxes, as I am getting a ClassCastException when trying to calculate the_rest:
    float calculated = calculateTheRest((Float)total.getValue(), (Float)part_one.getValue(), (Float)part_two.getValue());
    the_rest.setValue(calculated);And my calculateTheRest() function:
    private float calculateTheRest(Float total, Float part_one, Float part_two) {
            if(total == null)
                total = 0.0f;
            if(part_one== null)
                part_one = 0.0f;
            if(part_two== null)
                part_two = 0.0f;
            return total - (first + second);
    }What am I doing wrong here?
    Edited by: GranoblasticMan on Sep 16, 2008 7:49 AM
    Fixed typos... was hand-retyping this, not copy-and-pasting.
    Edited by: GranoblasticMan on Sep 16, 2008 7:51 AM
    And the exact error message I'm getting is:
    Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: java.lang.Long

    For the time being, I've changed my calculateTheRest() function:
            private float calculateTheRest(Object total, Object part_one, Object part_two) {
            if(total == null)
                total = new Float(0.0f);
            if(part_one == null)
                first = new Float(0.0f);
            if(part_two == null)
                second = new Float(0.0f);
            return convertToFloat(total) - (convertToFloat(part_one) + convertToFloat(part_two));
    private float convertToFloat(Object o) {
            if(o instanceof Number)
                return ((Number)o).floatValue();
            return Float.NaN;   
    }But I'm still wondering why this would happen. Do FormattedTextFields not actually store decimal values?

  • How parse the wsdl types?

    Hi, I have created a wsdl parser with the wsdl4j that return the interface of my web service. If, for example, this is a part of my wsdl file:
    <definitions name="TemperatureService"
    targetNamespace="http://www.xmethods.net/sd/TemperatureService.wsdl">
    <message name="getTempRequest">
    <part name="zipcode" type="xsd:string"/>
    </message>
    <message name="getTempResponse">
    <part name="return" type="xsd:float"/>
    </message>
    <portType name="TemperaturePortType">
    <operation name="getTemp">
    <input message="tns:getTempRequest"/>
    <output message="tns:getTempResponse"/>
    </operation>
    </portType>
    my parser return this:
    public Interface TemperatureService {
    public float getTemp(String zipcode);
    Now if I have a wsdl file more detailed in which there are an input or output message that have a complex type element, how I can return the structure of this complex type element? For example, if I have this message and this complexType:
    <types>
    <xsd:schema targetNamespace="http://www.capeclear.com/GlobalWeather.xsd" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <xsd:import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
    <xsd:complexType name="Direction">
    <xsd:complexType name="Station">
    <xsd:sequence>
    <xsd:element maxOccurs="1" minOccurs="1" name="icao" nillable="true" type="xsd:string"/>
    <xsd:element maxOccurs="1" minOccurs="1" name="wmo" nillable="true" type="xsd:string"/>
    <xsd:element maxOccurs="1" minOccurs="1" name="iata" nillable="true" type="xsd:string"/>
    <xsd:element maxOccurs="1" minOccurs="1" name="elevation" type="xsd:double"/>
    <xsd:element maxOccurs="1" minOccurs="1" name="latitude" type="xsd:double"/>
    <xsd:element maxOccurs="1" minOccurs="1" name="longitude" type="xsd:double"/>
    <xsd:element maxOccurs="1" minOccurs="1" name="name" nillable="true" type="xsd:string"/>
    <xsd:element maxOccurs="1" minOccurs="1" name="region" nillable="true" type="xsd:string"/>
    <xsd:element maxOccurs="1" minOccurs="1" name="country" nillable="true" type="xsd:string"/>
    <xsd:element maxOccurs="1" minOccurs="1" name="string" nillable="true" type="xsd:string"/>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:schema>
    </types>
    <message name="getStationResponse">
    <part name="return" type="xsd:Station"/>
    </message>
    how can I return this:
    class Station{
    String icao;
    String wmo;
    String iata;
    double elevation;
    The structure of the class is not important, I would obtain the internal variables (icao, wmo, iata, ...).
    Anyone can help me? Thanks!!!!
    Andrea

    Hi,
    i also have a similar problem.
    I am looking to parser which give me all parameters (and types) to given method. Best way in java vector.
    My parser give me this all information if I have simple wsdl file, but when using dificult wsdl file with this elements
    <xsd:element maxOccurs="1" minOccurs="1" name="icao" nillable="true" type="xsd:string"/>
    <xsd:element maxOccurs="1" minOccurs="1" name="wmo" nillable="true" type="xsd:string"/>
    <xsd:element maxOccurs="1" minOccurs="1" name="iata" nillable="true" type="xsd:string"/>
    I getting only unparsed xml file part..
    Anybody know how resolve this problem?

  • The interface .... cannot define an initializer

    Why I can't do it:
    public interface Constants
       java.util.HashMap BASE_HOLDERS = new java.util.HashMap();
       static
          BASE_HOLDERS.put("key1", "value2");
          BASE_HOLDERS.put("key2", "value3");
    and receive: The interface Constants cannot define an initializer?
    I don't want to have class (only interface). May you give me and advice?

    That said, interface constants are an anti-pattern, if that's the route the OP is heading...
    Effective Java - Joshua Bloch, Chapter 4, Item #17: Use interfaces only to define types.
    The constant interface pattern is a poor use of interfaces. That a class uses some constants internally is an implementation detail. Implementing a constant interface causes this implementation detail to leak into the class's exported API. It is of no consequence to the users of a class that the class implements a constant interface. In fact, it may even confuse them. Worse, it represents a commitment: if in a future release the class is modified so that it no longer needs to use the constants, it still must implement the interface to ensure binary compatibility. If a nonfinal class implements a constant interface, all of its subclasses will have their namespaces polluted by the constants in the interface.
    In summary, interfaces should only be used to define types. They should not be used to export constants.
    ~

  • Deep DDIC-Structure - Method to get the Comp.Type of a sub-structure

    Dear colleagues,
    thought the subsequent piece of coding might be helpful for the following problem:
    In DDIC you have created a deep/nested Structure e.g. a complete Business Document representation like
    s_doc_header type struct_doc_header
         (incl.) item  type tab_item
            (incl) party type tab_party etc.
    Now for some purpose you need to access somewhere a sub-part of this structure, e.g. the party-part. You only know (dynamically) the component name "party", but need for dynamic access also the Component Type ("tab_party") (in order to make use of  a "CREATE DATA lr_reftodata TYPE (determined_comp_type)." )
    The following piece of coding should help to query any start component type (here "struct_doc_header") for its embedded components.
    Its a recursive use of features provided by the very nice class(set) of cl_abap_structdescr.
    I implemented it as a static method.
    When doing so, you need to ensure, that the TYPE-GROUP "ABAP" is linked to the class (class properties --> forward declarations),
    Let me know if you find it useful.
    And apologies in advance, if the same problem was already posted in the forum. I did only a rough search before due to a lag of ideas for appropriate search-strings ...
    Best regards,
    Rudy
    Signature:
    Importing:
    IV_COMPNAME     TYPE ABAP_COMPNAME
    IV_START_STRUCTR     TYPE KOMP_TYPE
    Exporting/returning
    EV_DDIC_STRUCT     TYPE KOMP_TYPE
    METHOD search_deep_ddic_by_comp.
    * Description      -------------------------------------------
    *  Methods looks into a deep DDIC-Structure and returns the
    *  corresponding TYPE
    *  Prerequsite for usage: Structures component names are unique.
    * Local Data Defintions --------------------------------------
    * Locals -----------------------------------------------------
    * TYPES:
      DATA: lv_compname                 TYPE abap_compname.
      DATA: lt_componenttable           TYPE abap_component_tab.
      DATA: lv_relative_name            TYPE string.
      DATA: lv_ddic_header                  TYPE x030l.
      DATA: lv_ddic_struct              TYPE komp_type.
      DATA: lv_start_struct             TYPE komp_type.
    * supporting
      DATA: lv_lines                    TYPE i.
      DATA: lv_message                  TYPE string.
      DATA: lt_selopt                   TYPE sesf_selection_parameters_tab.
      DATA: ls_selopt                   TYPE sesf_selection_parameter.
    * References -------------------------------------------------
      DATA: lo_struct_descr             TYPE REF TO cl_abap_structdescr.
      DATA: lo_type_descr               TYPE REF TO cl_abap_typedescr.
    * Field-Symbols ----------------------------------------------
      FIELD-SYMBOLS:
            <fs_struct_descr_component> TYPE abap_componentdescr.
      lo_struct_descr ?= cl_abap_structdescr=>describe_by_name( p_name = iv_start_structr ).
      IF lo_struct_descr IS BOUND.
    *   get all sub-structures/components of iv_start_structr
        CALL METHOD lo_struct_descr->get_components
          RECEIVING
            p_result = lt_componenttable.
        lv_compname = iv_compname.
        READ TABLE lt_componenttable ASSIGNING <fs_struct_descr_component>
                                               WITH KEY  name = lv_compname.
        IF sy-subrc = 0.
    *     matching component found - search for DDIC structure
          CALL METHOD <fs_struct_descr_component>-type->get_relative_name
            RECEIVING
              p_relative_name = lv_relative_name.
          ASSERT lv_relative_name IS NOT INITIAL.
          CASE <fs_struct_descr_component>-type->type_kind.
            WHEN 'u' OR 'v'. "structure
              ev_ddic_struct = lv_relative_name.
              RETURN.
            WHEN 'h'. "table type - derive the line type
              lo_type_descr ?= cl_abap_datadescr=>describe_by_name( p_name = lv_relative_name ).
              CALL METHOD lo_type_descr->get_ddic_header
                RECEIVING
                  p_header = lv_ddic_header.
              IF sy-subrc = 0.
                ev_ddic_struct   = lv_ddic_header-refname.
                RETURN.
              ELSE.
                "error
              ENDIF.
            WHEN OTHERS.
              "error
          ENDCASE.
        ELSE.
    *     go deeper into structure and look into each sub-structure via recursion
          LOOP AT lt_componenttable ASSIGNING <fs_struct_descr_component>.
            CALL METHOD <fs_struct_descr_component>-type->get_relative_name
              RECEIVING
                p_relative_name = lv_relative_name.
            ASSERT lv_relative_name IS NOT INITIAL.
            CASE <fs_struct_descr_component>-type->type_kind.
              WHEN 'u' OR 'v'. "structure
              WHEN 'h'. "table type - derive the line type
                lo_type_descr ?= cl_abap_datadescr=>describe_by_name( p_name = lv_relative_name ).
                CALL METHOD lo_type_descr->get_ddic_header
                  RECEIVING
                    p_header = lv_ddic_header.
                IF sy-subrc = 0.
                  lv_relative_name = lv_ddic_header-refname.
                ELSE.
                  "error
                ENDIF.
              WHEN OTHERS.
                EXIT. "next loop, investigate only struct and table
            ENDCASE.
    *        lv_compname     = <fs_struct_descr_component>-name.
            lv_start_struct = lv_relative_name.
            CALL METHOD /scmtms/cl_ddic_utility=>search_deep_ddic_by_comp
              EXPORTING
                iv_compname      = iv_compname
                iv_start_structr = lv_start_struct
              IMPORTING
                ev_ddic_struct   = lv_ddic_struct.
            IF lv_ddic_struct IS NOT INITIAL.
              ev_ddic_struct = lv_ddic_struct.
              EXIT.
            ENDIF.
          ENDLOOP.
        ENDIF.
      ENDIF.
    ENDMETHOD.

    Using command:
    ASSIGN COMPONENT idx OF STRUCTURE struc TO <fs>.
    For example:
    DESCRIBE FIELD pi_output TYPE pi_output COMPONENTS lv_columns. "For number of columns
    DO lv_columns TIMES.
    ASSIGN COMPONENT SY-INDEX OF
    STRUCTURE (name of structure) TO <l_fs_output>. "<l_fs_output> - field of structure
    DESCRIBE FIELD <l_fs_output>... "with other options.
    ENDDO.

  • No implementing class registered for the interface

    Hello,
    I know that I'm not the first one posting this problem, but I can't find an appropriate solution for my problem. When I execute the FlightSeatAvailabilityCheck scenario I got the following error:
    Unable to check flight availability.       
    Error Type:      XI system error
    Error Details:      No implementing class registered for the interface (type ifmmessif, name FlightSeatAvailabilityQuery_Out, namespace http://sap.com/xi/XI/Demo/Agency )
    I have to say that I accidently deleted the proxy but I have recreated and activated the concerning proxy (CO_SXIDAG_FSA_QUERY) and still get the error. I read in this thread: XI 3.0 Demo: Unable to check flight availability: XI System Error that it would help to create a RFC in sm59. Why do I have to do this although I'm using proxies?
    And does it make a difference in which client I create and activate the proxies?
    Regards
    Marc

    i tried following solution also from old messages in SDN -
    Go to SXMB_ADM.
    Execute Integration Engine
    EDIT-> Change Global configuration data
    Select the Role of Business System is Integration Server
    Again started getting error-PROXY_NOT_ALLOWED_ON_IS:
    Proxy calls are not permitted on sender or receiver side on the IS (client)</SAP:Stack>
    But again  one of the messages in SDN suggests to change Global configuration data,
    EDIT-> Change Global configuration data
    Select the Role of Business System is Application system.
    it seems it's going in loop....

Maybe you are looking for

  • How to get an accounting document number from an Invoice number

    Dear All, I have a requirement where I need to know which accounting document is created against a  particular invoice. As we know that in the document flow of invoice we can see the Accounting document also. But to develop the report I need to pick

  • How to find out Database version from SQLplus ?

    Which command do I have to type in sqlplus in order to get the underlying database version?

  • Read in XML file and spit out specific element

    Hi all i wonder if someone could give me a hand. I've got some code (below) which reads in an xml file and spits out the contents of the file. Thats fine and dandy, however what i want to be able to do is specify which element to spit out, which i'm

  • Photo in iMovie

    I try to drag and drop them from Finder into a special Clip Folder. Did this before...but in iPhoto. Now I like to use my downloaded pictures.... they are in Finder. Also made a Clip Folder...but its not working....drag and drop doesn't work.... and

  • ASUS UL30 Elantech touchpad jitter/jumping

    I've been running Arch x86_64 for over a year on this laptop, and recently had to send it back for  (dropped it).  I think they simply replaced the laptop instead of just replacing the shell, so it may actually have a different touchpad or a hardware