Runtime data type

Hello every body,
here is static declaration:
Data  var type C length 10.
i am trying to create a type at run time with following statement:
create data  var  type ( 'C' ).
the above statement will create a variable of type char with default length.
what if i want to specify the length (10)?
or in case of  P type how will i set value for decimal.

I agree with Sudheer..Field-Symbols are the best option and there are meant for the same.
Field-Symbols : <F>.
start-of-selection.
assign (var) to <F>.
After the above statement <F> has the value and type of variable VAR.
Considering your example...
assign (var) to <F>.
<F> = value.
should do the trick.
Regards
Anurag
Message was edited by: Anurag Bankley

Similar Messages

  • Creating runtime data types

    Hi
    I need to dynamically create input fields with specified lengths(so that user cannot enter values beyond this length).
    I do it like this.
    IWDAttributeInfo attributeInfo =
        nodeName
        .getNodeInfo()
        .addAttribute(attributeName,
           "ddic:com.sap.dictionary.string");
    IWDInpuField inputField =
       (IWDInpuField)viewHandle
                      .createElement
                      (IWDInputField.class,null);
    int length = getLengthFromSomeMethod();
    inputField.bindValue(attributeInfo);
    inputField.setLength(length);
    The input field added is of specified length, but still the user is able to enter value beyond this length. This i guess is due to the fact that attribute bound to the field is of type "ddic:com.sap.dictionary.string".
    Can i create data types at runtime so that i might add attributes with this data type to a node at run time?
    Is there any other way to solve this problem?

    kaushal,
    Try this:
    attributeInfo.getModifiableSimpleType()
      .setMaxLength(length);
    "Length" of InputField declares (average) width of control in characters.
    VS

  • Want to find the Data type of a variable at runtime ?

    Hi,
    I Want to find the Data type of a variable at runtime ?
    I think there is a function module... But i forgot ..... Can you please help me out.
    Points are rewarded immediately.

    hi,
    do this way
    REPORT ysantest LINE-SIZE 350.
    DATA : v_num TYPE n,
    v_type(2).
    DESCRIBE FIELD v_num TYPE v_type.
    WRITE : v_type.

  • Runtime conversion of a string value to a primitive data type in java

    can anyone of you give me an idea to convert a string value to a primitive data type during run time...i have the value and the type to which it has to be converted as String values...do you have any idea ,...pls share

    String recvalvalue = inputval;
                    String recvartype = inputtype;
                   if (recvartype.equals("int")){
                   value0 = Integer.parseInt(recvalvalue);
             else
             if (recvartype.equals("double")){
                    value1  = Double.parseDouble(recvalvalue);
             else
             if(recvartype.equals("float")){
              value2 = Float.parseFloat(recvalvalue);
             else
             if(recvartype.equals("Boolean")){
              value3 = Boolean.parseBoolean(recvalvalue);
             else
             if(recvartype.equals("char")){
               value4 = (char)recvalvalue.charAt(0);
            else
            if(recvartype.equals("String")){
              value5 = recvalvalue;
             else
             if(recvartype.equals("byte")){
               value6 = Byte.parseByte(recvalvalue);
                  //listA.add(6, value6);
                  //     listA.g = value6;
             else
              if(recvartype.equals("long")){
               value7 = Long.parseLong(recvalvalue);
             else
              if(recvartype.equals("short")){
              value8 = Short.parseShort(recvalvalue);
             } yes i can do this but the resultant value has to be assigned to a variable of a specific type which is here recvartype .....it has to be done dynamically automatically..if we know what type of data is that we can convert and assign to the type but we donot know when we run the program as the program will be supllied by someone and has to be executed

  • Issue when SelectOneChoice is used with Domain data type in JDev 11.1.2.0.0

    Hi,
    I am facing one issue while working with SelectOneChoice along with Custom Domain data type. Sample app to simulate the issue is available at http://www.filejumbo.com/Download/6FDF6ECF2922BD24
    Issue Details.
    Base view object’s attribute is of type CustomString, for which another static VO’s attribute is attached as LOV. LOV attribute is of type String. Because of this data type mismatch between LOV VO attribute and Base VO attribute, while working in screen, initially we were facing Class cast exception.
    Cannot convert <<LOV Attr. Val.>> of type class java.lang.String to class model.domain.common.CustomString This is not only for this type of SelectOneChoice but also for InputText field whose underlying VO attribute is of type CustomString (i.e. any Custom Domain type)
    On raising this in Jdeveloper forum, I came to know that adding a default oracle converter against the UI Component will take care of converting to respective data type. After added the converter for InputText and SelectOneChoice components, this issue got resolved. This was our lesson while working in Jdeveloper version 11.1.1.3.0. Converter we used,
    <f:converter converterId="oracle.genericDomain"/> When we try the same scenario in Jdev Version 11.1.1.4.0, without having the oracle converter itself, SelectOneChoice started working fine!! (i.e. it is able to set the base attribute with LOV attribute’s value but with proper base attribute’s domain data type). Anyhow, converter is required for InputText.
    When we try the same scenario in Jdeveloper new version 11.1.2.0.0, it started giving class cast exception when we don’t have oracle converter for SelectOneChoice. But by adding it, though it didn’t give such class cast exception message, though a selection is made in SelectOneChoice, VO attribute has not been updated with the new value. Instead it is updated with null value (Checked the setter method of view row impl by having break point) . Because of this, after a selection is made, when we try to read the attribute value from VO on button click, VO attribute always returns null.
    We have also tried our own converters but there is no change in the behavior.
    The above misbehavior can be tested either by having SOP programmatically or by refreshing the SelectOneChoice by giving its id as Partial trigger to itself with autosubmit set to true, so that the selected value will be reset to null irrespective of the selection made.
    For convenience, Issue details with Sample application is shared. Shared link : http://www.filejumbo.com/Download/6FDF6ECF2922BD24
    Shared folder contains
    1. Sample App developed on Jdev 11.1.1.4.0 to ensure it didn’t give this error.
    2. Sample App developed on Jdev 11.1.2.0.0 to simulate this error.
    3. Error details in a document.
    Can anybody have a look at this and tell me why this misbehavior and is it a bug? If so, any workaround available to continue the development?
    Thanks in Advance.
    Raghu
    Edited by: Raguraman on Sep 10, 2011 10:31 AM

    Sorry for the late reply John and Frank. Ya i did. Thank you.
    One more detail:
    I tested the behavior in Jdeveloper 11.1.2.0.0. The recent surprise is Select One Choice is behaving perfectly when it used in Grid layout and fail to work when it is form layout. I am getting surprised why behavior of component varies based on the way it refers the binding.
    for form layout,
    value=#{bindings.
    for grid layout,
    value=#{row.bindings.
    The bug details (#/title) are Bug 12968871 - RUNTIME CONVERSION FAILURE WHEN USING CUSTOM DOMAIN OBJECT VALIDATION IN EO
    Edited by: Raguraman on Sep 12, 2011 8:23 PM
    Edited by: Raguraman on Sep 12, 2011 8:31 PM

  • Difference b/w DATA TYPE and DATA OBJECT & differences b/w TYPE and LIKE

    hai
    can any one say the differences between Data type and Data Object.
    And also differences between TYPE and LIKE
    thanks
    Gani

    hi,
    _Data Types and Data Objects_
          Programs work with local program data – that is, with byte sequences in the working memory. Byte sequences that belong together are called fields and are characterized by a length, an identity (name), and – as a further attribute – by a data type. All programming languages have a concept that describes how the contents of a field are interpreted according to the data type.
          In the ABAP type concept, fields are called data objects. Each data object is thus an instance of an abstract data type. There are separate name spaces for data objects and data types. This means that a name can be the name of a data object as well as the name of a data type simultaneously.
    Data Types
       As well as occurring as attributes of a data object, data types can also be defined independently. You can then use them later on in conjunction with a data object. The definition of a user-defined data type is based on a set of predefined elementary data types. You can define data types either locally in the declaration part of a program using the TYPESstatement) or globally in the ABAP Dictionary. You can use your own data types to declare data objects or to check the types of parameters in generic operations.
         All programming languages distinguish between various types of data with various uses, such as ….. type data for storing or displaying values and numerical data for calculations. The attributes in question are described using data types. You can define, for example, how data is stored in the repository, and how the ABAP statements work with the data.
    Data types can be divided into elementary, reference, and complex types.
    a. Elementary Types
    These are data types of fixed or variable length that are not made up of other types.
    The difference between variable length data types and fixed length data types is that the length and the memory space required by data objects of variable length data types can change dynamically during runtime, and that these data types cannot be defined irreversibly while the data object is being declared.
    Predefined and User-Defined Elementary Data Types
    You can also define your own elementary data types in ABAP using the TYPES statement. You base these on the predefined data types. This determines all of the technical attributes of the new data type. For example, you could define a data type P_2 with two decimal places, based on the predefined data type P. You could then use this new type in your data declarations.
    b.  Reference Types
    Reference types are deep data types that describe reference variables, that is, data objects that contain references. A reference variable can be defined as a component of a complex data object such as a structure or internal table as well as a single field.
    c. Complex Data Types
    Complex data types are made up of other data types. A distinction is made here between structured types and table types.
    Data Objects
          Data objects are the physical units with which ABAP statements work at runtime. The contents of a data object occupy memory space in the program. ABAP statements access these contents by addressing the name of the data object and interpret them according to the data type.. For example, statements can write the contents of data objects in lists or in the database, they can pass them to and receive them from routines, they can change them by assigning new values, and they can compare them in logical expressions.
           Each ABAP data object has a set of technical attributes, which are fully defined at all times when an ABAP program is running (field length, number of decimal places, and data type). You declare data objects either statically in the declaration part of an ABAP program (the most important statement for this is DATA), or dynamically at runtime (for example, when you call procedures). As well as fields in the memory area of the program, the program also treats literals like data objects.
            A data object is a part of the repository whose content can be addressed and interpreted by the program. All data objects must be declared in the ABAP program and are not persistent, meaning that they only exist while the program is being executed. Before you can process persistent data (such as data from a database table or from a sequential file), you must read it into data objects first. Conversely, if you want to retain the contents of a data object beyond the end of the program, you must save it in a persistent form.
    Declaring Data Objects
          Apart from the interface parameters of procedures, you declare all of the data objects in an ABAP program or procedure in its declaration part. These declarative statements establish the data type of the object, along with any missing technical attributes. This takes place before the program is actually executed. The technical attributes can then be queried while the program is running.
         The interface parameters of procedures are generated as local data objects, but only when the procedure is actually called. You can define the technical attributes of the interface parameters in the procedure itself. If you do not, they adopt the attributes of the parameters from which they receive their values.
    ABAP contains the following kinds of data objects:
    a.  Literals
    Literals are not created by declarative statements. Instead, they exist in the program source code. Like all data objects, they have fixed technical attributes (field length, number of decimal places, data type), but no name. They are therefore referred to as unnamed data objects.
    b.  Named Data Objects
    Data objects that have a name that you can use to address the ABAP program are known as named objects. These can be objects of various types, including text symbols, variables and constants.
    Text symbols are pointers to texts in the text pool of the ABAP program. When the program starts, the corresponding data objects are generated from the texts stored in the text pool. They can be addressed using the name of the text symbol.
    Variables are data objects whose contents can be changed using ABAP statements. You declare variables using the DATA, CLASS-DATA, STATICS, PARAMETERS, SELECT-OPTIONS, and RANGESstatements.
    Constants are data objects whose contents cannot be changed. You declare constants using the CONSTANTSstatement.
    c.  Anonymous Data  Objects
    Data objects that cannot be addressed using a name are known as anonymous data objects. They are created using the CREATE DATAstatement and can be addressed using reference variables.
    d.  System-Defined Data Objects
    System-defined data objects do not have to be declared explicitly - they are always available at runtime.
    e.  Interface Work Areas
    Interface work areas are special variables that serve as interfaces between programs, screens, and logical databases. You declare interface work areas using the TABLES and NODESstatements.
    What is the difference between Type and Like?
    Answer1:
    TYPE, you assign datatype directly to the data object while declaring.
    LIKE,you assign the datatype of another object to the declaring data object. The datatype is referenced indirectly.
    Answer2:
    Type is a keyword used to refer to a data type whereas Like is a keyword used to copy the existing properties of already existing data object.
    Answer3:
    type refers the existing data type
    like refers the existing data object
    reward if useful
    thanks and regards
    suma sailaja pvn

  • Problem in F data type

    Hi experts...
    I am using F data type and it gets value 5.50000000000E+10.
    but I want value like 5.500.
    I don't want to use P data type.
    Please Help me.
    thanks in advance.

    Ankita,
    Try declaring it as type quann and check.
    Some additional info:-
    Type F values range from /- 2.2250738585072014E-308 to 1.7976931348623157E308, as well as the number 0, with an accuracy of at least 15 decimal places.
    You cannot enter floating point numbers directly in your programs. Instead, you must use text literals that can be interpreted as floating point numbers. You may use the following formats:
    Decimal numbers with or without sign, with or without decimal point. The form <mantissa> E<exponent>, where the mantissa is a decimal. The exponent may be specified either with or without sign. You may also use spaces before or after the number. Examples of text literals with "floating point numbers":
    '1', '-12.34567', '-765E-04', '1234E5', '12E34', '+12.3E-4', '1E160'.
    Use floating point arithmetic if you need a very large value range or you are making decimal calculations, but be aware of the following features of floating point arithmetic.
    Internally, the exponent and the mantissa of floating point numbers are stored separately, each in two parts. This can lead to unexpected results, despite the high degree of intrinsic accuracy. These occur mainly when performing conversions from and to type F.
    For example, the number 1.5 can be represented exactly in this notation, since 1.5 = 120 + 12**(-1), but the number 0.15 can only be represented approximately by the number 0,14999999999999999. If you round 0.15 up to 1 valid digit, the result is 0.1 rather than 0.2 as you would expect. On the other hand, the number 1.5E-12 is represented by the number 1.5000000000000001E-12, which would be rounded to 2E-12.
    Another example which actually occurred is the calculation of 7.27% of 73050 to an accuracy of 2 decimal places. The intermediate result 5.3107349999999997E+03, since the correct result, 5310.735, cannot be represented exactly in two parts with 53 bits. (If the hardware cannot represent a real number exactly, it uses the next representable floating point number. After rounding, you therefore get 5310.73 rather than 5310.74 as you would expect.
    The ABAP runtime system calculates commercially and not "numerically" like the underlying machine arithmetic. According to the rounding algorithm of the latter, the end digit 5 must always be rounded to the nearest even number (not the next largest number), i.e. from 2.5 to 2, 3.5 to 4.
    You should also note that multiplication using powers of 10 (positive or negative), is not an exact operation. For example, although 100.5 can be represented exactly in two parts, after the operation
    F = F / 100 * 100
    F has the value 100.49999999999999.
    As well as rounding errors, the restricted number of decimal places for the mantissa can lead to the loss of trailing digits. For example, 1 - 1.0000000000000001 results in zero.
    This means that you cannot rely on the last digits in floating point arithmetic. In particular, you should not usually test two floating point numbers for equality; instead, you should check whether the relative difference abs((a - b)/a) is less than a predefined limit, e.g. 10**(-7).
    K.Kiran.

  • Schema Data Type in SOAP Web Service while using Integration Gateway in SMP 3.0

    Hi Experts,
    I was working on Integration gateway component of SMP 3.0.3 where we can have oData services which connect to different data source from SMP and finally we have to consume from SMP. Here I have an SOAP Web service where there is Schema Data type which is an xml structure and because of that while doing the data modelling with Design time tools I am not able to map the properties as there aren't any as only the parent level Schema type is available in the SOAP Web Services. Please see the below image for reference :
    So now I have 2 inputs no problems for design as such then I have the schema for that which comes as a output response which is where I am facing the issue as we don't have that Data Structure itself so how are we going to map that. I have seen some thin possibilities with Custom Scripts with SMP SP06 where this will help us to process the request and response at runtime with JS/Groovy. So needed some lights on this schema data type on Integration Gateway component of SMP 3.0.3 which we are planning to upgrade to SP06 as well so it will be a good starting point for this as well
    Also have concerned my good friend Rakshit Doshi for this as well.
    Regards,
    Fenil.

    Hi All,
    Sorry for the late response guys was stuck somewhere else and so couldn't reply to this, see I have below response in SOAP UI
    There if we see we have the schema as the whole structure being defined under which we have all the child elements, am also posting the raw response from the soapUI below for better understanding
    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
       <soap:Body>
          <GetMSUserLoginDetailsResponse xmlns="http://tempuri.org/">
             <GetMSUserLoginDetailsResult>
                <xs:schema id="MemberDetails" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
                   <xs:element name="MemberDetails" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
                      <xs:complexType>
                         <xs:choice minOccurs="0" maxOccurs="unbounded">
                            <xs:element name="Table">
                               <xs:complexType>
                                  <xs:sequence>
                                     <xs:element name="RECID" type="xs:string" minOccurs="0"/>
                                     <xs:element name="FNAME" type="xs:string" minOccurs="0"/>
                                     <xs:element name="LNAME" type="xs:string" minOccurs="0"/>
                                     <xs:element name="CUSTNO" type="xs:decimal" minOccurs="0"/>
                                     <xs:element name="MEMTYP" type="xs:decimal" minOccurs="0"/>
                                     <xs:element name="MEMTYPENAME" type="xs:string" minOccurs="0"/>
                                     <xs:element name="CUSTTYP" type="xs:decimal" minOccurs="0"/>
                                     <xs:element name="EMAIL" type="xs:string" minOccurs="0"/>
                                     <xs:element name="MEMPASSWORD" type="xs:string" minOccurs="0"/>
                                     <xs:element name="ISDEBIT" type="xs:decimal" minOccurs="0"/>
                                     <xs:element name="PARENTID" type="xs:string" minOccurs="0"/>
                                     <xs:element name="CHILDOF" type="xs:string" minOccurs="0"/>
                                     <xs:element name="CUSTTYP1" type="xs:string" minOccurs="0"/>
                                     <xs:element name="ZONEID" type="xs:int" minOccurs="0"/>
                                     <xs:element name="EMAILFOOTERDETAIL" type="xs:string" minOccurs="0"/>
                                  </xs:sequence>
                               </xs:complexType>
                            </xs:element>
                            <xs:element name="Table1">
                               <xs:complexType>
                                  <xs:sequence>
                                     <xs:element name="ErrorCode" type="xs:string" minOccurs="0"/>
                                     <xs:element name="ErrorDesc" type="xs:string" minOccurs="0"/>
                                  </xs:sequence>
                               </xs:complexType>
                            </xs:element>
                         </xs:choice>
                      </xs:complexType>
                   </xs:element>
                </xs:schema>
                <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
                   <MemberDetails xmlns="">
                      <Table diffgr:id="Table1" msdata:rowOrder="0">
                         <RECID>97101-101-0000057069</RECID>
                         <FNAME>Fenil</FNAME>
                         <LNAME>Doshi</LNAME>
                         <CUSTNO>1042231</CUSTNO>
                         <MEMTYP>42</MEMTYP>
                         <MEMTYPENAME>Management</MEMTYPENAME>
                         <CUSTTYP>8</CUSTTYP>
                         <EMAIL>[email protected]</EMAIL>
                         <MEMPASSWORD>as</MEMPASSWORD>
                         <PARENTID>97101-101-0000057069</PARENTID>
                         <CUSTTYP1>Zone</CUSTTYP1>
                         <ZONEID>2</ZONEID>
                         <EMAILFOOTERDETAIL><![CDATA[<strong></strong><br />]]></EMAILFOOTERDETAIL>
                      </Table>
                      <Table1 diffgr:id="Table11" msdata:rowOrder="0">
                         <ErrorCode>100</ErrorCode>
                         <ErrorDesc>Login Successful.</ErrorDesc>
                      </Table1>
                   </MemberDetails>
                </diffgr:diffgram>
             </GetMSUserLoginDetailsResult>
          </GetMSUserLoginDetailsResponse>
       </soap:Body>
    </soap:Envelope>
    So we have the data but as a xml Structure which is nothing but schema and is my Eclipse while mapping while defining response type it gives me just an schema as the property.
    Regards,
    Fenil.

  • Message Data Type mapping

    Hello there,
      My scenario is SOAP-XI-SOAP.  After doing configuration, I was alble to send the message to server.  However, I was not able retrieve data at return.
      The following are two xml message that I got from server response and from XI.
    1. From SERVER response message.
    <ns1:doSpellingSuggestionResponse xmlns:ns1='urn:GoogleSearch' xmlns:SOAP='http://schemas.xmlsoap.org/soap/envelope/' SOAP:actor='http://schemas.xmlsoap.org/soap/encoding/' xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'><return xsi:type='xsd:string'>Yahoo!!!</return></ns1:doSpellingSuggestionResponse>
    2. From XI
    <ns:doSpellingSuggestionResponse xmlns:ns="http://xi.com/googlesearch"></ns:doSpellingSuggestionResponse>
      I believe there is something wrong with my data type definition at XI design.  I followed the example "How To… Use the XI 3.0 SOAP Adapter".
      Would anyone please tell me how to define Data Type at XI for data response?  Besides, does it have anything to do with Mapping Template.
      Please advise.
      Thank you very much.
    trith.

    Satish,
      I agree with you.  I saw the difference between the response message at the Message Mapping and Message response :
      At Message Mapping, the xml message is displayed as :
    <ns0:return xmlns:ns0="urn:GoogleSearch"/>
      At runtime, the message response is:
    <ns1:doSpellingSuggestionResponse xmlns:ns1='urn:GoogleSearch' xmlns:SOAP='http://schemas.xmlsoap.org/soap/envelope/' SOAP:actor='http://schemas.xmlsoap.org/soap/encoding/' xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'><return xsi:type='xsd:string'>Yahoo!!!</return></ns1:doSpellingSuggestionResponse>
      The wsdl external definition which I got from :
    http://api.google.com/GoogleSearch.wsdl
      If you said there is some problem with xsd, how I am supposed to fix that?  Would you please give me more hints?
      Thank you very much.
    trith.

  • The difference between FIELD-SYMBOL and normal DATA TYPE

    Dear experts,
    Please see the example below, both are output the same result.
    DATA: EXTERNAL_RECORD(4000),
          POSITION TYPE I,
          LENGTH TYPE N,
          ENTRY TYPE STRING.
    EXTERNAL_RECORD = '0005Smith0007Edwards0005Young'.
    DO.
      LENGTH = EXTERNAL_RECORD+POSITION(4).
      IF LENGTH = 0.
        EXIT.
      ENDIF.
      ADD 4 TO POSITION.
      MOVE EXTERNAL_RECORD+POSITION(LENGTH) TO ENTRY.
      WRITE ENTRY.
      ADD LENGTH TO POSITION.
      IF POSITION >= 4000.
        EXIT.
      ENDIF.
    ENDDO.
    --OR It can be written as--
    DATA: EXTERNAL_RECORD(4000),
          POSITION TYPE I,
          LENGTH TYPE N.
    FIELD-SYMBOLS <ENTRY>.
    EXTERNAL_RECORD = '0005Smith0007Edwards0005Young'.
    DO.
      LENGTH = EXTERNAL_RECORD+POSITION(4).
      IF LENGTH = 0.
        EXIT.
      ENDIF.
      ADD 4 TO POSITION.
      ASSIGN EXTERNAL_RECORD+POSITION(LENGTH) TO <ENTRY>.
      WRITE <ENTRY>.
      ADD LENGTH TO POSITION.
      IF POSITION >= 4000.
        EXIT.
      ENDIF.
    ENDDO.
    Is there any special circumstances we need to use FIELD-SYMBOL?
    Why is FIELD-SYMBOL is introduce in the first place?
    Kindly advice with example.
    Thanks in advance for those who can help me on this.

    HI,
    You can use field symbols to make the program more dynamic. In this example the name of a table control is substituted by a field symbol. Thus you cal call the form with any internal table, using the name of the table control as a parameter.
    Example
    form insert_row
    using p_tc_name.
    field-symbols <tc> type cxtab_control. "Table control
    assign (p_tc_name) to <tc>.
    insert 100 lines in table control
    <tc>-lines = 100.
    Field symbols allow you to:
    **     Assign an alias to a data object(for example, a shortened
            name for data objects structured through several hierarchies
            - <fs>-f instead of rec1-rec2-rec3-f)
    **     Set the offset and length for a string variably at runtime
    **     Set a pointer to a data object that you determine at runtime (dynamic ASSIGN)
    **     Adopt or change the type of a field dynamically at runtime
    **     Access components of a structure
    **     (from Release 4.5A) Point to lines of an internal table
            (process internal tables without a separate work area)
    Field symbols in ABAP are similar to pointers in other programming
    languages. However, pointers (as used in PASCAL or C) differ from ABAP
    field symbols in their reference syntax.
    The statement ASSIGN f to <fs> assigns the field f to field
    symbol <fs>. The field symbol <fs> then "points" to the
    contents of field f at runtime. This means that all changes to the
    contents of f are visible in <fs> and vice versa. You declare
    the field symbol <fs> using the statement FIELD-SYMBOLS: <fs>.
    Reference syntax
    Programming languages such as PASCAL and C use a dereferencing symbol
    to indicate the difference between a reference and the object to which
    it refers; so PASCAL would use p^ for a pointer instead of p, C would
    use *p instead of p. ABAP does not have any such dereferencing symbol.
    **     In PASCAL or C, if you assign a pointer p1 to a pointer p2,
    you force p1 to point to the object to which p2 refers (reference semantics).
    **     In ABAP, if you assign a field symbol <fs1> to a field
    symbol <fs2>, <fs1> takes the value of the data object to
    which <fs2> refers (value semantics).
    **     Field symbols in ABAP are always dereferenced, that is,
    they always access the referenced data object. If you want to
    change the reference yourself in ABAP, you can use the ASSIGN statement
    to assign field symbol <fs1> to field symbol <fs2>.
    Using field symbols
    You declare field symbols using the FIELD-SYMBOLS statement.
    They may be declared either with or without a specific type.
    At runtime you assign a field to the field symbol using the ASSIGN
    statement. All of the operations on the field symbol act on the field
    assigned to it.
    When you assign a field to an untyped field symbol, the field symbol
    adopts the type of the field. If, on the other hand, you want to assign
    a field to a typed field symbol, the type of the field and that of the
    field symbol must be compatible.
    A field symbol can point to any data object and from Release 4.5A,
    they can also point to lines of internal tables.
    The brackets (<>) are part of the syntax.
    Use the expression <fs> IS ASSIGNED to find out whether the field
    symbol <fs> is assigned to a field.
    The statement UNASSIGN <fs> sets the field symbol <fs> so
    that it points to nothing. The logical expression <fs>
    IS ASSIGNED is then false. The corresponding negative expression
    is IF NOT <fs> IS ASSIGNED.
    An unassigned field symbol <fs> behaves as a constant with
    type C(1) and initial value SPACE.
    MOVE <fs>
    TO dest     Transfers the initial value SPACE to the variable dest
    MOVE 'A' to <fs>     
    Not possible, since <fs> is a constant
    (runtime error).
    To lift a type restriction, use the CASTING addition in the
    ASSIGN statement. The data object is then interpreted as though
    it had the data type of the field symbol. You can also do this
    with untyped field symbols using the CASTING TYPE <type> addition.
    The danger with pointers is that they may point to invalid areas.
    This danger is not so acute in ABAP, because the language does not
    use address arithmetic (for example, in other languages, pointer p
    might point to address 1024. After the statement p = p + 10, it would
    point to the address 1034). However, the danger does still exist, and
    memory protection violations lead to runtime errors.
    A pointer in ABAP may not point beyond a segment boundary. ABAP does
    not have one large address space, but rather a set of segments.
    Each of the following has its own segment:
    *     All global data
    *     All local data
    *     Each table work area (TABLES)
    *     Each COMMON PART
    You should only let field symbols move within an elementary field or
    structure where ABAP allows you to assign both within the global data
    and beyond a field boundary.
    Rgds
    Umakanth

  • Generating a Web Service and Oracle DATE type

    Hi,
    I need to generate a Web Service from an EJB model based upon entities generated from the Oracle 11g database that contain DATE types.
    I realize that java.sql.Date may not be a supported JAX-RPC type but I would be VERY grateful for some instructions about the easiest way to solve this problem when generating the web service in JDeveloper 11g.
    The integrated WLS server log looks like this:
    <2009-apr-26 kl 23:13 CEST> <Error> <HTTP> <BEA-101216> <Servlet: "WSEE_SERVLET" failed to preload on startup in Web application: "/SessionFacadeBean".
    javax.xml.ws.WebServiceException: Unable to create JAXBContext
         at com.sun.xml.ws.model.AbstractSEIModelImpl.createJAXBContext(AbstractSEIModelImpl.java:158)
         at com.sun.xml.ws.model.AbstractSEIModelImpl.postProcess(AbstractSEIModelImpl.java:87)
         at com.sun.xml.ws.model.RuntimeModeler.buildRuntimeModel(RuntimeModeler.java:264)
         at com.sun.xml.ws.server.EndpointFactory.createSEIModel(EndpointFactory.java:322)
         at com.sun.xml.ws.server.EndpointFactory.createEndpoint(EndpointFactory.java:188)
         Truncated. see log file for complete stacktrace
    java.security.PrivilegedActionException: com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 1 counts of IllegalAnnotationExceptions
    java.sql.Timestamp does not have a no-arg default constructor.
         this problem is related to the following location:
              at java.sql.Timestamp
              at public java.sql.Timestamp oracle.Lan.getAterlamnadDatum()
              at oracle.Lan
              at public java.util.List ejbmodel.jaxws.QueryLanFindByNrResponse._return
              at ejbmodel.jaxws.QueryLanFindByNrResponse
    ..... and so on
    The entity bean i question looks like this:
    package oracle;
    import java.io.Serializable;
    import java.sql.Timestamp;
    import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.Id;
    import javax.persistence.JoinColumn;
    import javax.persistence.ManyToOne;
    import javax.persistence.NamedQueries;
    import javax.persistence.NamedQuery;
    @Entity
    @NamedQueries({
    @NamedQuery(name = "Lan.findAll", query = "select o from Lan o"),
    @NamedQuery(name = "Lan.FindByNr", query = "select o from Lan o where o.lanNr = :p_lanNr")
    public class Lan implements Serializable {
    @Column(name="ATERLAMNAD_DATUM")
    private Timestamp aterlamnadDatum;
    @Column(nullable = false)
    private Long demandcount;
    private Timestamp demanddate;
    @Column(name="EXEMPLAR_NR", nullable = false)
    private Long exemplarNr;
    @Column(nullable = false)
    private String isbn;
    @Id
    @Column(name="LAN_NR", nullable = false)
    private Long lanNr;
    @Column(nullable = false)
    private Long remindercount;
    private Timestamp reminderdate;
    @Column(name="TILLBAKA_DATUM")
    private Timestamp tillbakaDatum;
    @Column(name="UTLANAD_DATUM")
    private Timestamp utlanadDatum;
    @ManyToOne
    @JoinColumn(name = "PERSON_NR")
    private Lantagare lantagare;

    Hi All,
    When i'm developing EJB Webservice i am getting following error .. i think it doesn't support java.sql.Date; and java.sql.timestamp; types
    the error are as show in below please suggest me.
    [Running application oil on Server Instance IntegratedWebLogicServer...]
    [05:04:09 AM] ---- Deployment started. ----
    [05:04:09 AM] Target platform is (Weblogic 10.3).
    [05:04:09 AM] Retrieving existing application information
    [05:04:09 AM] Running dependency analysis...
    [05:04:09 AM] Deploying 2 profiles...
    [05:04:10 AM] Wrote EJB Module to C:\Documents and Settings\Administrator\Application Data\JDeveloper\system11.1.1.4.37.59.23\o.j2ee\drs\oil\oil_webservicesEJB.jar
    [05:04:10 AM] Wrote Enterprise Application Module to C:\Documents and Settings\Administrator\Application Data\JDeveloper\system11.1.1.4.37.59.23\o.j2ee\drs\oil
    [05:04:10 AM] Redeploying Application...
    <Jun 30, 2011 5:04:10 AM EDT> <Warning> <J2EE> <BEA-160195> <The application version lifecycle event listener oracle.security.jps.wls.listeners.JpsAppVersionLifecycleListener is ignored because the application oil is not versioned.>
    <Jun 30, 2011 5:04:10 AM EDT> <Warning> <Munger> <BEA-2156203> <A version attribute was not found in element webservices in the deployment descriptor in C:\Documents and Settings\Administrator\Application Data\JDeveloper\system11.1.1.4.37.59.23\o.j2ee\drs\oil\oil_webservicesEJB.jar/META-INF/webservices.xml. A version attribute is required, but this version of the Weblogic Server will assume that the JEE5 is used. Future versions of the Weblogic Server will reject descriptors that do not specify the JEE version.>
    <Jun 30, 2011 5:04:10 AM EDT> <Error> <HTTP> <BEA-101216> <Servlet: "WSEE_SERVLET" failed to preload on startup in Web application: "/oil-oil_webservices-webapp".
    javax.xml.ws.WebServiceException: Unable to create JAXBContext
         at com.sun.xml.ws.model.AbstractSEIModelImpl.createJAXBContext(AbstractSEIModelImpl.java:164)
         at com.sun.xml.ws.model.AbstractSEIModelImpl.postProcess(AbstractSEIModelImpl.java:94)
         at com.sun.xml.ws.model.RuntimeModeler.buildRuntimeModel(RuntimeModeler.java:281)
         at com.sun.xml.ws.server.EndpointFactory.createSEIModel(EndpointFactory.java:363)
         at com.sun.xml.ws.server.EndpointFactory.createEndpoint(EndpointFactory.java:202)
         Truncated. see log file for complete stacktrace
    Caused By: java.security.PrivilegedActionException: com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 1 counts of IllegalAnnotationExceptions
    java.sql.Timestamp does not have a no-arg default constructor.
         this problem is related to the following location:
              at java.sql.Timestamp
    >
    [05:04:11 AM] #### Deployment incomplete. ####
    #### Cannot run application oil due to error deploying to IntegratedWebLogicServer.
    [05:04:11 AM] Remote deployment failed
    [Application oil stopped and undeployed from Server Instance IntegratedWebLogicServer]
    Thanks in advance..
    Siva
    Edited by: Shankar on Jun 30, 2011 7:02 AM

  • Data Type Is Not Vailid for Input

    Hello,
    I'm new in (ABAP) WebDynpro and I have a problem with displaying data - particularly with HROBJECTs from our e-Recruiting system.
    In my WebDynpro-Component i read some data of candidates into my context. One table (with candidate-infos) which i save in my context includes a field which is datatype of HROBJECT. After I've read this infos into my itab, I bind this table to my context. All this works fine! But as soon as I bind this context to a table-ui-element in my layout, i get a error message "Data Type Is Not Valid for Input", when i start the application.
    If I delete the binding with the attribute which is a HROBJECT, it works.
    Runtime Errors         UNCAUGHT_EXCEPTION
    Exception              CX_WDR_CONVERSION_EXCEPTION
    Information on where terminated
        Termination occurred in the ABAP program "CL_WDR_CONVERSION_UTILS=======CP" -
         in "IF_WD_CONVERSION_UTILS~TO_STRING".
        The main program was "SAPMHTTP ".
        In the source code you have the termination point in line 138
        of the (Include) program "CL_WDR_CONVERSION_UTILS=======CM00G".
        The termination is caused because exception "CX_WDR_CONVERSION_EXCEPTION"
         occurred in
        procedure "IF_WD_CONVERSION_UTILS~TO_STRING" "(METHOD)", but it was neither
         handled locally nor declared
        in the RAISING clause of its signature.
        The procedure is in program "CL_WDR_CONVERSION_UTILS=======CP "; its source
         code begins in line
        1 of the (Include program "CL_WDR_CONVERSION_UTILS=======CM00G ".
    136     WHEN cl_abap_typedescr=>typekind_struct1    "'u'     " structure
    137     OR   cl_abap_typedescr=>typekind_struct2.   "'v'.    " structure
    >>>>       RAISE EXCEPTION TYPE cx_wdr_conversion_exception exporting textid = cx_wdr_conversion_
    139 *      raise exception type cx_wdr_conv_unsupported exporting type_name = l_type.
    Please Help.
    Thanks

    now i've tried it with a independent candidate node (without) supply funciton. =>
    The same error: "Data Type Is Not Vailid for Input"
    Here's the code of my supply-function:
    (probably not the best coding - but it works until i want to display a hro.)
    METHOD get_cand_info .
      DATA: lr_cdcy                    TYPE REF TO cl_hrrcf_candidacy_bl,
            lr_cand                    TYPE REF TO cl_hrrcf_candidate_bupa_bl,
            stru_requisitions          TYPE if_componentcontroller=>element_requisitions ,
            lt_h_cdcy_list             TYPE rcf_t_list_candidacies_x,
            ls_h_cdcy_list             TYPE rcf_s_list_candidacies_x,
            lt_cdcy_list               TYPE if_componentcontroller=>elements_candidate,
            ls_cdcy_list               TYPE if_componentcontroller=>element_candidate,
            lt_addr                    TYPE rcf_t_addressdata_bp,
            ls_addr                    TYPE rcf_s_addressdata_bp,
            lt_email                   TYPE rcf_t_emaildata_bp,
            ls_email                   TYPE rcf_s_emaildata_bp.
    * get all declared attributes
      parent_element->get_static_attributes(
        IMPORTING
          static_attributes = stru_requisitions ).
      CALL METHOD cl_hrrcf_candidacy_bl=>get_instance
        RECEIVING
          return = lr_cdcy.
      CALL METHOD cl_hrrcf_candidate_bupa_bl=>get_instance
        RECEIVING
          return = lr_cand.
    * Hole Kandidatur-Informationen der Kandidaten
      TRY.
          lr_cdcy->get_candidacy_list_x(
            EXPORTING
              ps_req_hrobject  = stru_requisitions-hrobject
    *    ps_cand_hrobject =
    *    ps_appl_hrobject =
    *    p_exclude_draft  = 'x'
            IMPORTING
              pt_candidacies_x = lt_h_cdcy_list
        CATCH cx_hrrcf .
      ENDTRY.
    * Ergänzen der Informationen mit BusinessPartner-Infos
      LOOP AT lt_h_cdcy_list INTO ls_h_cdcy_list.
        TRY.
            lr_cand->get_contact_data(
              EXPORTING
                ps_cand_hrobject = ls_h_cdcy_list-cand_hrobject
              IMPORTING
                pt_addressdata   = lt_addr
    *    pt_telefondata   =
    *    pt_faxdata       =
                pt_emaildata     = lt_email
          CATCH cx_hrrcf .
        ENDTRY.
        READ TABLE lt_addr INDEX 1 INTO ls_addr.
        READ TABLE lt_email INDEX 1 INTO ls_email.
        MOVE-CORRESPONDING ls_h_cdcy_list TO ls_cdcy_list.
        ls_cdcy_list-postcode1 = ls_addr-postl_cod1.
        ls_cdcy_list-city1 = ls_addr-city.
        ls_cdcy_list-email = ls_email-e_mail.
        APPEND ls_cdcy_list TO lt_cdcy_list.
      ENDLOOP.
      CALL METHOD node->bind_table
        EXPORTING
          new_items = lt_cdcy_list.
    ENDMETHOD.

  • Integration Repository: change XSD type in data types

    Hi,
    we created data types for our interface where we used the XSD type float and integer. We built on that Message types and Message interfaces and used them as abstract types in a BPM scenario.
    During our test phase we encountered errors with these XSD types and found out that it is better to switch the XSD type to string to get correct values.
    However the changes in XSD types are obviously only visible in the Integration Repository. XI creates on Application Server side in the XML Object Type Builder an object which doesn't notice this change. And because of that we get still errors.
    So does anyone know how to get this XML Object Type changed? We don't want to delete everything and create new message types?
    Thanks in advance,
    Christina

    Hi Christina,
    First go to SXI_CACHE -> Refresh the cache.
    Also check for the Repository Cache Refresh/Notifciations..
    You mean you have changed the xsd in the External Definition ...
    If so , just go to Message Interfaces and just select the External definition once again and activate the same.
    If you change the Data types then , if there is a change in field length/type then try to redo/reselect the datat types for the message types and activate once again.
    For BPM just change something.. and activate once again..
    Also check this blog- to activate Runtime version of the BPM
    /people/krishna.moorthyp/blog/2005/11/28/inactive-integration-process-ip-at-run-time
    Hope this helps,
    Regards,
    Moorthy
    Message was edited by: Krishna Moorthy P

  • Findind Data type of a variable in Run Time

    Hi Experts,
        I am trying to find the data type of variable in runtime with "DESCRIBE FIELD" statement.
        but it always shows data type C by default. i have written this code.....
        DATA: w_value TYPE d.
        DESCRIBE FIELD p_value TYPE w_value.
       My requirement is that if  i pass a variable of any type(like date, time , char, Integer , Decimal etc.) from selection screen i  will   give the correct data type of variable.
    Please let me know how to acheive this problem.
    Regards,
    Shri

    Hey Raj,
    In this code it always ask a date type variable.
    Still my problem i snot getting solve.
    check the below one which might give u a fair idea
    DATA: Desc_object         TYPE ref to cl_abap_typedescr.
    Parameters:   p_char           TYPE char10 ,
                  p_date           TYPE d,
                  p_int            type i.
    Field-symbols : <any_type> type any.
    START-OF-SELECTION.
      If p_char is not initial.
         assign p_char to <any_type>.
      elseIf p_date is not initial.
         assign p_date to <any_type>.
      elseif p_int is not initial.
         assign p_int to <any_type>.
      endif.
    IF <any_type>  is assigned.
      desc_object = cl_abap_typedescr=>describe_by_data( <any_type> ).
      WRITE: / desc_object->absolute_name.
      WRITE: / desc_object->type_kind.
    ENDIF.
    The Catch lies in assigning the variables to field symbol. I think you already have that part of code
    Edited by: A J Raj on Dec 9, 2009 7:12 PM

  • Wrong data type when writing XML file

    We are trying to write an XML file from ODI but we get the following error:
    ODI-1217: Fallo de la sesión CMT_PAQ_CREA_XML (15001) con código de retorno 8000.
    ODI-1226: Fallo en el paso WRITE_XML_SCHEMA después de 1 intento(s).
    ODI-1232: Fallo en la ejecución del procedimiento WRITE_XML_SCHEMA.
    ODI-1228: Fallo en la tarea WRITE_XML_SCHEMA (Procedimiento) en el destino XML conexión CMTInCaMo.
    Caused By: java.sql.SQLException: Could not save the file D:\ODI\oracledi\XMLFiles\Cuentas11g.xml because a class java.sql.SQLException occurred and said: java.sql.SQLException: java.sql.SQLException: Wrong data type: type: <b>NUMERIC (2) expected: INTEGER value: 301000000232</b>
         at com.sunopsis.jdbc.driver.xml.SnpsXmlFile.writeToFile(SnpsXmlFile.java:740)
         at com.sunopsis.jdbc.driver.xml.SnpsXmlConnection.internalExecute(SnpsXmlConnection.java:713)
         at com.sunopsis.jdbc.driver.xml.SnpsXmlPreparedStatement.executeUpdate(SnpsXmlPreparedStatement.java:111)
         at com.sunopsis.sql.SnpsQuery.executeUpdate(SnpsQuery.java:665)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSql.executeUpdate(SnpSessTaskSql.java:3218)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSql.execStdOrders(SnpSessTaskSql.java:1785)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTaskTrt(SnpSessTaskSql.java:2805)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTask(SnpSessTaskSql.java:2515)
         at com.sunopsis.dwg.dbobj.SnpSessStep.treatAttachedTasks(SnpSessStep.java:537)
         at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java:449)
         at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java:1954)
         at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor$2.doAction(StartSessRequestProcessor.java:322)
         at oracle.odi.core.persistence.dwgobject.DwgObjectTemplate.execute(DwgObjectTemplate.java:224)
         at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor.doProcessStartSessTask(StartSessRequestProcessor.java:246)
         at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor.access$0(StartSessRequestProcessor.java:237)
         at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor$StartSessTask.doExecute(StartSessRequestProcessor.java:794)
         at oracle.odi.runtime.agent.processor.task.AgentTask.execute(AgentTask.java:114)
         at oracle.odi.runtime.agent.support.DefaultAgentTaskExecutor$2.run(DefaultAgentTaskExecutor.java:83)
         at java.lang.Thread.run(Thread.java:619)
    The datastores have valid records but when we try to write them in the XML file it didn't work.
    ¿Can somebody help us?

    Thanks, let me give you an update:
    The datatype of the element is defined as follows:
              <xs:element name="AcctNo" minOccurs="1" maxOccurs="1">
                   <xs:simpleType>
                        <xs:restriction base="xs:string">
                             <xs:maxLength value="60"></xs:maxLength>
                        </xs:restriction>
                   </xs:simpleType>
              </xs:element>
    The ODI reverse ingeneering has created the column as VARCHAR(255). I think this ok, because XML driver doesn't takes in account the xsd element defined length.
    We have checked the XSD and is valid.
    In the other hand, I must say that we have created an interface that is loading data into the corresponding datastore without any problem but we couldn't generate an XML file from it.
    Any other advice?

Maybe you are looking for