Invalid data type conversions

what are the invalid data type conversions in ABAP ???
Moderator message: please search for available information/documentation.
Edited by: Thomas Zloch on Mar 10, 2012 6:01 PM

No Amanda,
The values that I see in message monitor are also those that comes to XSLT programs as input.
I investigated our problem a little further myself:
1) XI always converts messages into XML format - this everybody knows.
2) In XI documentation it is declared that XI uses ISO 8601 for DATE type formatting. That's why you see dates in format YYYY-MM-DD in XML data in message monitoring.
3) The appearance of those decimal values are not that obvious for me. If XI uses ABAP transformation for message content then applies the rules for converting ABAP data types into XML. For this there is a SAP document 'ABAP - XML mapping' from TechEd2004. This document seems to describe how ABAP data types are handled by XML transformation.
Anyway, we currently need to play with decimal values in XSLT mapping programs inside XI:
a) add leading 0 integer if source value < 1
RFC returns 0.123 -> XI converts to XML '.123' -> XSLT mapper should return '0.123' ->SOAP response returns '0.123'
b) add decimal point and trailing zeros
RFC returns 0.000 -> XI converts to XML '0' -> XSLT mapper should return '0.000' ->SOAP response return '0.000'
With dates, the problem is actually on documenting mapping rules when writing interface specifications. If you would write an EAI-solution-independent conversion rule (RFC/date->SOAP/char) for date field it could sound like: YYYYMMDD -> dd.mm.yyyy. This works semantically between these systems but would not work for XI-developer, because he get YYYY-MM-DD from the RFC.
Additionally the decimal type conversion requirements in XSLT mapping programs probably only applies XI and are therefore not reusable in other EAI environments.
I would be glad if somebody would still have further comments for this data type conversion issue.
br: Kimmo

Similar Messages

  • The priority of different data type conversion

    Hi All,
    I want to know the priority of data type conversion rule. if in an expression, I have several kind of data type( I, P, F,N..).
    Then finaly, all the data object will convert to which data type?
    I don't know the priority of data conversion.
    E.g.   data a type i. data b type p. data c type f.
             a = b + c.
    or    data d type p, data e type f.
          if ( d > f ).
    Then who will convert to who's type?
    Thanks and Regards.
    Aaron

    For expressions, the right term in SAP is "calculation type", it's explained here : [abap help - determining the calculation type|http://help.sap.com/abapdocu_70/en/ABENARITH_TYPE.htm]. SAP takes the "biggest" type of all variables in the expression. It can be I, P or F (smallest is I, biggest is F).
    Conditions are handled differently, just using data type conversion (see link given above by Abhishek), SAP converts from smallest to biggest type (in your case, it converts P to F and compares the two F variables).

  • Need Help with data type conversion

    Hello People,
    I am new to java, i need some help with data type conversion:
    I have variable(string) storing IP Address
    IPAddr="10.10.103.10"
    I have to call a library function which passes IP Address and does something and returns me a value.
    The problem I have is that external function call in this library excepts IP Address in form of a byte array.
    Here is the syntax for the function I am calling through my program
    int createDevice (byte[] ipAddress).
    now my problem is I don't know how to convert the string  IPAddr variable into a byte[] ipAddress to pass it through method.

    Class InetAddress has a method
    byte[]      getAddress() You can create an instance using the static method getByName() providing the IP address string as argument.

  • ORDImageSignature Invalid data type in Oracle 8i

    hi there,
    i have just started working on Intermedia, i am using Oracle 8i. i have configured the intermedia and executed the ordwebutl.sql file. all othe media data types are working perfectly like, ORDAudio, ORDImage,ORDVideo, but the ORDIMageSIgnature is not working at all. when i use it as data type in any table it says Invalid data type. which means oracle 8i is not recognizing ORDImageSIgnature at all. plz help me as soon as possible. Thanks in advance.

    The ordimagesignature is not something you can see or hear. It is strictly binary metadata about the image, used only to compare images to each other.
    What are you trying to do?
    Larry

  • Invalid data type

    I have the following code working perfectly fine:
    CREATE TYPE mytype IS TABLE OF INT;
    SELECT * FROM TABLE(mytype(1,2));
    When I declare the type in a package, however, I get invalid data type. For example,
    CREATE OR REPLACE mypackage AS
    TYPE mytype IS TABLE OF INT;
    END mypackage;
    SELECT * FROM TABLE(mypackage.mytype(1,2));
    I need to include the type in a package because I have a function in the same package that will take the nested table as in parameter.
    YS

    When you need to select from a type, that type has to be created as a SQL type.
    This is true in SQL
    Re: how to use a collection in procedure
    And in a stored procedure
    Re: Passing an array to an Oracle stored procedure

  • Data error (invalid data type 17) in a Remote Function Call

    Hi,
    I am passing 2 select-option tables to RFC.
    Tables have structures -
       Table1  SIGN(C1)
                   OPTION(C2)
                   HIGH(C6)
                   LOW(C6)
       Table2  SIGN(C1)
                   OPTION(C2)
                   HIGH(C20)
                   LOW(C20)
    At the destination side, I have created two table types which have same structure.
    But when I call the RFC , program terminates with error - "Data error (invalid data type 17) in a Remote Function Call"
      Not able to understand the reason for this error. Please help.
    Thanks,
    Sujeet

    Hi,
    check out this example
    [LINK|http://abap.googlar.eu/viewtopic.php?f=5&t=28]
    You have several ranges that you can use like RANGE_AUF.
    Function example:
    FUNCTION zexemple.
    *"*"Interface local:
    *"  IMPORTING
    *"     REFERENCE(R_HORA) TYPE  FLAG
    *"     REFERENCE(R_DIA_1) TYPE  FLAG
    *"     REFERENCE(P_IDOC) TYPE  FLAG
    *"  EXPORTING
    *"     REFERENCE(MSG) TYPE  CHAR255
    *"  TABLES
    *"      T_OIFSPBL STRUCTURE  OIFSPBL
    *"      SL_PBLNR STRUCTURE  RANGE_PBLNR
    *"      SL_MATNR STRUCTURE  RANGE_MATNR
    *"      SL_HORA STRUCTURE  RANGE_UZEIT
    *"      T_ERROS STRUCTURE  ZARSTRING
    ENDFUNCTION.
    Report:
    SELECT-OPTIONS: sl_pblnr FOR oirbpblb-pblnr,
                                  sl_matnr FOR a361-matnr.
    ~
    Final question:
    You are passing the values using TABLES and not IMPORTING right?

  • Data type conversion JCO To ABAP( Double to DEC)

    Hi,
      I want to update a field having data type as DEC with length 11 in APO system using JCO.Whatever i give as input is not getting reflected in APO system. Instead i get some different value.
    It seems that there is some data type conversion for that field..
    Thanks
    Archana

    if(tableName.equals("BAPI10001LOCPRDVERS2"))
                                                           table.appendRow();
                                                           //System.out.println("getting inside table "+tableName);
                                                           table.setValue("SOP112","PRODUCT");
                                                           table.setValue("SCMTEST111","LOCATION");
                                                           table.setValue("1001","LOCTYPE");
                                                           table.setValue("SCMTEST111","LOCATION_INT");
                                                           table.setValue("000","PLANNING_VERSION");
                                                           table.setValue("5000","SAFETY_DAYS_SUPPLY");//this is the field having problem
                                                           table.setValue("5","SAFETY_STOCK");
                                                           table.setValue(" ","SAFTY_STOCK_CALC_METHOD");
                                                           table.setValue("5.00","OPENING_PERIOD");
                                                           table.setValue("15","FORECAST_HORIZON");
                                                           table.setValue(("20000"),"VMI_PROM_LEAD_TIME");
                                                           table.setValue("0","MINIMUM_LOT_SIZE");
                                                           table.setValue(bd1,"TARGET_DAYS_SUPPLY");

  • Data type conversion from packed to numeric

    Hi Experts,
    i have a question on data type conversion. My requirement is:
    i have fields of type packed decimal in my internal table itab. I need to convert the values of packed decimal fields in itab to numeric type.
    Example:
    Data: begin of itab occurs 0,
                ebeln like ekko-ebeln,
                ebelp like ekpo-ebelp,
                menge(15) type p decimals 2,
                netpr(15) type p decimals 2,
              end of itab. 
    if itab-menge has a value of 2.00, i need to convert that value to '         200'.  Right justified.
    if itab-netpr has a value of 1,234.56, i need to convert that to '         123456'.
    The above internal table itab is passed to the Function module GUI_DOWNLOAD and the itab data is downloaded to a text file.
    Please let me know how to acheive this objective.

    Hi ,
    You can use
    SPLIT at '.' into v1 v2
    concatenate v1 v2 into vv1.
    REPORT ZDN_TEST_001 .
    data: lv_var1(15) type p decimals 2 value '123.00'.
    data: lv_var2(15) type p decimals 5 value '123.12121'.
    data: lv_varc1(15) type c.
    data: lv_varc2(15) type c.
    data: lv_varc1d(2) type c.
    data: lv_varc2d(5) type c.
    data: lv_varc11(15) type c.
    data: lv_varc21(15) type c.
    write:/ lv_var1.
    write:/ lv_var2.
    *1)write & REPLACE.
    write lv_var1 to lv_varc1.
    write lv_var2 to lv_varc2.
    REPLACE '.' WITH SPACE INTO lv_varc1.
                 CONDENSE lv_varc1 NO-GAPS.
    REPLACE '.' WITH SPACE INTO lv_varc2.
                 CONDENSE lv_varc2 NO-GAPS.
    write:/ lv_varc1.
    write:/ lv_varc2.
    *2)split & concatinate
    write lv_var1 to lv_varc1.
    write lv_var2 to lv_varc2.
    split lv_varc1 at '.' into lv_varc1 lv_varc1d.
    concatenate lv_varc1 lv_varc1d into lv_varc11.
    split lv_varc2 at '.' into lv_varc2 lv_varc2d.
    concatenate lv_varc2 lv_varc2d into lv_varc21.
    write:/ lv_varc11.
    write:/ lv_varc21.

  • How to avoid oracle implicit data type conversion

    Hello,
    i have a query like below..
    SELECT EMP_NUM
    FROM EMPLOYEE
    WHERE EMP_NUM=SOURCE_EMP_NUM;
    1. My SOURCE_EMP_NUM data type is varchar2.
    2. My table EMP_NUM data type is number.
    3. In one case my SOURCE_EMP_NUM value '00000123'
    4. I have an entry in table for EMP_NUM as 123.
    5. In this case my query is success and giving me row for 123, which i don't want it should compare with leading zeros. But due to oracle implicit conversion the comparision getting passed.
    6. I have an index for this column, so i can't use "like" operator...
    Can somebody help me.....
    Thanks in adv....

    HI,
    Just see this :---
    SQL> select * from emp where deptno=00020;---------deptno is number, 00020 is number and its true
    EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
    7369 SMITH CLERK 7902 17-DEC-80 800 20
    7566 JONES MANAGER 7839 02-APR-81 2975 20
    7788 SCOTT ANALYST 7566 19-APR-87 3000 20
    7876 ADAMS CLERK 7788 23-MAY-87 1100 20
    7902 FORD ANALYST 7566 03-DEC-81 3000 20
    SQL> select * from emp where to_char(deptno)=00020;=-------------deptno is character type and 00020 is number so still it is leaving 0000 from 20 as it number and has no impact,
    EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
    7369 SMITH CLERK 7902 17-DEC-80 800 20
    7566 JONES MANAGER 7839 02-APR-81 2975 20
    7788 SCOTT ANALYST 7566 19-APR-87 3000 20
    7876 ADAMS CLERK 7788 23-MAY-87 1100 20
    7902 FORD ANALYST 7566 03-DEC-81 3000 20
    SQL> select * from emp where to_char(deptno)='00020';---now both are character and no row is selected.
    no rows selected
    So you can avoid the implicit conversion according to the requirements and in this case we are usin to_char function to avoid this.
    Regards,
    Navneet

  • Data type conversion issues between Oracle and SQL Server

    Hi there, I am using Heterogeneous Services to insert into a SQL Server database. I am running into an issue between data types regarding Oracle's VARCHAR2 and trying to insert that into a SQL Server MONEY data type. I tried using the TO_NUMBER() function to convert my VARCHAR2 to a number, but that didn't seem to help.
    Does anyone have any advice on how to work around this??
    Thanks for any help,
    ivalum21

    ORA-02047: cannot join the distributed transaction in progress
    ORA-06512: at "MY_PACKAGE_NAME", line 263
    ORA-28500: connection from ORACLE to a non-Oracle system returned this message:
    [Generic Connectivity Using ODBC]DRV_Execute: DB_ODBC_ENGINE (1645): ;
    [Microsoft][ODBC SQL Server Driver][SQL Server]Disallowed implicit conversion
    from data type varchar to data type money, table 'tableA',
    column 'total_amount'. Use the CONVERT function to run this query. (SQL
    State: 37000; SQL Code: 260)
    ORA-02063: preceding 2 lines from SQLSERVER_LINK
    ORA-06512: at "RCDTPUMP.CAMPUSCALL_DATAPUMP_UNI", line 875
    ORA-06512: at "RCDTPUMP.CAMPUSCALL_DATAPUMP_UNI", line 791
    ORA-06512: at "RCDTPUMP.CAMPUSCALL_DATAPUMP_UNI", line 1156
    ORA-06512: at line 1
    That is what I get when I take out the TO_NUMBER()
    Message was edited by:
    ivalum21

  • New user for java (Data type conversion)

    Hi all, I'm the newer from JAVA, just start to learn it few weeks before, there have some problem about me.
    I want to konw how to change the data type ??For example, if I have a string call year and store the char "1", how can I change that field to int type ?
    Thanks very much

    You should have a link to, or download, the API docs. You can see them on line at:
    http://java.sun.com/j2se/1.3/docs/api/index.html
    Look up the class Integer. It has a static method, parseInt() which takes a String argument and returns an int.. Since it is static, you can do the following:
    int value = Integer.parseInt(your_string);
    Then, to make it robust, you can put try/catch around it and catch NumberFormatException if you need to do error checking.

  • Moving Values to fields of different data types- Conversion

    I'm having trouble figuring out how to move a value from a field of a <b>char type</b> to a field of <b>structure RSDSSELOPT</b> type in a different itab.
    I'll show you what I have so far.
    DATA: BEGIN OF ITABAPI OCCURS 0,
          SEARCHFLD LIKE ZDOLTARC03-SEARCHFLD,
          VALUE LIKE ZDOLTARC03-VALUE,
          END OF ITABAPI.
    DATA: BEGIN OF ITAB_GO occurs 0,
             FIELDNAME LIKE RSDSTABS-PRIM_FNAME,
             SELOPT_T TYPE RSDS_SELOPT_T,
          END OF ITAB_GO.
      LOOP AT ITABAPI.
         MOVE: ITABAPI-SEARCHFLD TO ITAB_GO-FIELDNAME,
               <b>ITABAPI-VALUE TO ITAB_GO-SELOPT_T.</b>
         APPEND ITAB_GO.
      ENDLOOP.
    As an alternative I tried feeding the value into ITAB_GO-selopt_t-low, but breaking down the structure that far may be beyond the capabilities of the processor.
    If anyone knows a way to feed a char value into the structure field please help.
    N L

    Hi Natasha,
    my advice is: don't try to do it in just step. Instead,
    DATA: LT_RANGE TYPE TABLE OF RSDSSELOPT WITH HEADER LINE.
    LOOP AT ITABAPI.
       MOVE: ITABAPI-SEARCHFLD TO ITAB_GO-FIELDNAME.
       CLEAR: LT_RANGE.
       REFRESH: LT_RANGE.
       LT_RANGE-SIGN = 'I'.
       LT_RANGE-OPTION = 'EQ'.
       LT_RANGE-LOW = ITABAPI-VALUE.
       APPEND LT_RANGE.
       ITAB_GO-SELOPT_T[] = LT_RANGE[].  
       APPEND ITAB_GO.
    ENDLOOP.
    Pls let us know if it helped. BR,
    Alvaro

  • Data Type Conversion... Help...

    Hi... As per my requirement , i need to fetch last three days partition records from the below listed tables i.e EMP and DEPT and purge it.
    But i thought LAST_ANALYZED column will fetch correctly; but it isn't.
    Moreover the requirement is to fetch using HIGH_VALUE column which has LONG datatype.
    So please help, how can i do my conversion from LONG() datatype and compare with SYSDATE or anyother logic to calculate last 3 days?
    Query:
    SELECT      dtp.partition_name,dtp.table_name
    FROM dba_tab_partitions dtp
    WHERE dtp.table_name IN ('EMP','DEPT')
    AND TRUNC(dtp.high_value) ......
    I tried with the below query...
    SELECT      partition_name,table_name
    FROM dba_tab_partitions dtp
    WHERE TRUNC(dtp.high_value) <= TRUNC(SYSDATE) - 3;
    Got the error as "ORA-00932: Inconsistent datatype got NUMBER" :(
    Please help...
    Edited by: Sunil G on Sep 23, 2010 3:26 AM
    Edited by: Sunil G on Sep 23, 2010 4:57 AM

    Thanks for your reply.
    But below was the actual requirement ; which i initially posted.
    But the fetch was not happening properly if i do with last_analyzed.
    So thats why i posted this question.
    So how we can handle this case with respect to dynamic query?????
    ===========================================================================================
    -- This Procedure is created to purge the 3-days records by dropping older partitions
    PROCEDURE P_PUR_STG_REC(p_tab_name IN VARCHAR2)
    IS
    query_str VARCHAR2(4000);
    TYPE t_rec_part IS RECORD
    (     l_part_name dba_tab_partitions.partition_name%TYPE,
         l_part_tab dba_tab_partitions.partition_table%TYPE
    TYPE r_rec_part IS TABLE OF t_rec_part;
    BEGIN
    query_str := 'SELECT dtp.partition_name,dtp.table_name
                   FROM dba_tab_partitions dtp
                   WHERE dtp.table_name IN ' || p_tab_name ||
                   ' AND TRUNC(dtp.last_analyzed) <= TRUNC(SYSDATE) - 3' ;
    OPEN c_fetch FOR query_str ;
    EXECUTE IMMEDIATE query_str BULK COLLECT INTO r_rec_part;
    FOR i IN r_rec_part.first..r_rec_part.last LOOP
         DBMS_OUTPUT.PUT_LINE('r_rec_part(i).l_part_tab - '
                                  ||r_rec_part(i).l_part_tab
                                  ||' , '
                                  ||'r_rec_part(i).l_part_name - '
                                  ||r_rec_part(i).l_part_name
    EXECUTE IMMEDIATE 'ALTER TABLE '|| r_rec_part(i).l_part_tab ||
    ' DROP PARTITION '|| r_rec_part(i).l_part_name ||'UPDATE INDEXES ';
    END LOOP;
    EXCEPTION
    WHEN OTHERS THEN
              DBMS_OUTPUT.PUT_LINE('Exception occured at when-others -> SQLCODE-->'
              || SQLCODE
              ||' , '
              || 'SQLERRM-->'
              || SQLERRM);
    RAISE;
    END P_PUR_STG_REC;
    ===========================================================================================

  • Data Type Conversion - DUMP - Unable to interpret "ABC1234 " as a number.

    Hi Experts,
    Am getting dump, my code is,
    data:
    it_asset-anln1 type anla-anln1. (here its CHAR 12).
    unpack it_asset-anln1 to it_asset-anln1.
    here, when am getting the the values as ABC1234 into it_asset-anln1----
    > am getting DUMP, so, let me know that, How to fix it?
    thanq

    Pretty sure that you can not unpack a value when it has non-numeric characters, so you will want to check it before doing the UNPACK.
    if it_asset-anln1 CO '1234567890. '.
    unpack it_asset-anln1 to it_asset-anln1.
    endif.
    Regards,
    Rich Heilman

  • Currency Data type conversion to send as file.

    Hello, I have a requirement to pull the ID,total_amount field defined as currency from Salesforce and send  it to file as fixed width 10 bytes. Source values: 1  15.02  11.06 Amount 15.0 has to be changed to 2 decimals while sending it to file. I have multiplied 15.0 * 1.0 to make it 15.00 , but for the 11.06 * 1.0 , I am getting result 11.060. I have to get 11.06 as it is.I have coded the logic  this way.lpad(to_char(Total_Amount__c * 1.0) || '', 10, '0'). Any ideas.ThanksVara

    Hi, we are trying to connect to a server from where we have to fetch a fax documet or multiple ones using web services wsdl connection and using a metod call and get the  fax files and write it to salesforce. Below is the error I encounter:] [ERROR] Jul 14, 2015 7:44:47 AM org.ow2.easywsdl.schema.api.abstractElmt.AbstractIncludeImpl retrieveIncludeWARNING: This import is already include : http://ix1faxsvrtst.am.lilly.com:8000/OpenText/ImportingServiceBasic?xsd=xsd4. This probably mean there's a cyclic import Have attached the session log for reference. Connection DetailsConnection Name:CSP_RightFax to SFDC InboundDescription:
    Type:Webservices V2 (Informatica Cloud Labs)Created On:Jul 13, 2015 08:45:57 AMUpdated On:Jul 14, 2015 07:08:10 AMCreated By:
    Updated By:
    Webservices V2 Connection PropertiesRuntime Environment:mohawkWSDL Url:http://ix1faxsvrtst.AM.LILLY.COM:8000/OpenText/ImportingServiceBasic?wsdlHeader CSV Path:C:\CatchallBody CSV Path:C:\CatchallEndpointUrl:http://ix1faxsvrtst.AM.LILLY.COM:9001/OpenText/ImportingServiceBasicAuthentication Type:NoneUser Name:
    Pass Word:
    CertificatePath:
    Auto csv File Creation:Auto Creation of Body/Header csv filesDownload Path for Attachment:
    Upload Path for Attachment:
    Enable Logging:falseAllow Empty Tags:false

Maybe you are looking for

  • How to implement autotuning pid in labview in flow control process????

    I tried the same way as Example available in LabVIEW..... that is general auto PID simulator... But that didn't worked out for me.....

  • Tabpage

    How do i put a horizontal scroll bar in a data block inside a tabpage. Because my data block has too many columns so i don't want that the whole tabpage is scrolled-right. I tried to put a stacked canvas but Forms 6i does not allow me to put a stacke

  • Start/Stop Buttons and infinite loop exit

    I am trying to make a GUI with a Start/Stop and an Exit button. Initially the button will have the label "Start". When i push it, its label should become "Stop" and an infinite loop function will begin. I want the loop to run until i press the Stop o

  • Urgent : How to clear data in Buffer ?

    HI Experts, I have a problem in executing fox formula. After execution the formula reads some records but not changing / generating any. I think, The data it is reading is in buffer. How can i CLEAR the data in Buffer, if there is any data stored in

  • Mandatory field validation error occurs when user cancels out of blank "cre

    Hi - I'm building an application using Oracle 10g 9.0.5.2, with ADF/UIX/Struts. I followed the technique described in the tutorial http://otn.oracle.com/obe/obe9051jdev/uixtutorial/lesson_uix.htm In that example they have a page called BrowseDeptEmp.