Field lengths in unicode system.

Hi gurus,
I am creating a dynamic internal table. To get the structure of DDIC table at run time i use the following code to create field catalog:
DATA : idetails TYPE abap_compdescr_tab,
         xdetails TYPE abap_compdescr.
DATA : xfc TYPE lvc_s_fcat,
         ifc TYPE lvc_t_fcat.
ref_table_des ?=
        cl_abap_typedescr=>describe_by_name( p_ztab_name ).
    idetails[] = ref_table_des->components[].
    LOOP AT idetails INTO xdetails.
      CLEAR xfc.
      xfc-fieldname = xdetails-name .
      xfc-datatype = xdetails-type_kind.
      xfc-inttype = xdetails-type_kind.
      xfc-intlen = xdetails-length.
      xfc-decimals = xdetails-decimals.
      APPEND xfc TO ifc.
    ENDLOOP.
The xdetails-length is doubled in a unicode system.
However it is correct as field length of table in non-unicode system.
I am then writing the data from internall table to file using
OPEN DATASET ld_fullpath FOR OUTPUT IN TEXT MODE ENCODING UTF-8
For ex. a numeric field in the file are written as 00 when its actual value in table is 0.
Please suggest how to solve this problem?
Should i build field catalog in some other way.
Assured points for helpful answers.
Regards,
Abhishek

Hi,
use this function module to get the filed info.
DATA:lta_dfies type dfies occurs 0 with header line.
CALL FUNCTION 'DDIF_FIELDINFO_GET'
    EXPORTING
      TABNAME              = TABLE
    TABLES
      DFIES_TAB            = lta_dfies.
loop at lta_dfies.
if (condition to get required).
perform build_fcat.
endif.
endloop.
form build_fcat.
CLEAR xfc.
xfc-fieldname = lta_dfies-FIELDNAME .
xfc-datatype = lta_dfies-DATATYPE.
xfc-inttype = lta_dfies-inttype.
xfc-intlen = lta_dfies-INTLEN.
xfc-decimals = lta_dfies-decimals.
APPEND xfc TO ifc.
endform.
rgds,
bharat.
Message was edited by:
        Bharat Kalagara

Similar Messages

  • Need to assign a multi datatype struct to a single field in Unicode system

    Hi all,
    I had posted an earlier question related to this to understand what the issue is. Few responses helped. Then now I have gone thru the conversion rules in Unicode systems related to assigning a structure (with different data types) to a single field and looking for a solution for my case. The current code written in 4.6 says
    l_bapiparex-valuepart1 = l_bape_vbap
    where
    l_bape_vbap is a structure of type bape_vbap and
    l_bapiparex of type bapiparex.
    So according to the rules, when I do this kind of an assignment in ECC , the first field's length (i.e. VBELN) must be min 240 characters long. Only then this assignment will be error free, am I right ?
    Or Is this an inadmissable assignment situation ?
    If not then is there any other way how I can achieve the same result by fixing this issue ? I am not able to think of any !! Has any one come across this kind of an issue during upgrade? Please do suggest.
    Just for your reference I have pasted the rule details from SAP help..
    Conversion in Unicode Programs
    The following rules apply in Unicode programs when converting a flat structure to a single field and vice versa:
    If a structure is purely character-like, it is processed during conversion like a data object of the type c (Casting). The single field can have any elementary data type.
    If the structure is not purely character-like, the single field must have the type c and the structure must begin with a character-like fragment that is at least as long as the single field. The assignment takes place only between this fragment and the single field. The character-like fragment of the structure is treated like a data object of the type c (Casting) in the assignment. If the structure is the target field, the remaining character-like fragments are filled with blanks and all other components with the initial value that corresponds to their type.
    No conversion rule is defined for any other cases, so that assignment is not possible.
    Note
    If a syntax error occurs due to an inadmissible assignment between flat structures and single fields, you can display the fragment view of the corresponding structure when displaying the syntax error in the ABAP Editor by choosing the pushbutton with the information icon.
    thanks

    Try this way
          call method cl_abap_container_utilities=>fill_container_c
            exporting
              im_value               = l_bape_vbap
            importing
              ex_container           = l_bapiparex-valuepart1
            exceptions
              illegal_parameter_type = 1
              others                 = 2.

  • Convertion To type x  to char field in unicode system......

    Hi all
    please refer the following code .i need to assign type xstructure to single char field where data are .........
    SRTFDHIGH =  xsrtfdhigh
    unicode system gives error to convertion
    DATA: BEGIN OF xsrtfdhigh,
              pernr LIKE pc2b0-pernr,
              restkey1(16) TYPE x VALUE 'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF',
              restkey2(16) TYPE x VALUE 'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF',
            END OF xsrtfdhigh.
       DATA: SRTFDHIGH LIKE PCL2-SRTFD VALUE                   
             '9999999999999999999999999999999999999999'.
    PCL2-SRTFD type char 40.
    pc2b0-pernr  type numc 8.
    is there any solution to convert this .....
    Edited by: Vikram  shirole on Feb 23, 2008 8:52 AM
    Edited by: Vikram  shirole on Feb 23, 2008 8:54 AM

    Read first some documentation like [Character String Processing|http://help.sap.com/saphelp_nw2004s/helpdata/en/79/c554d9b3dc11d5993800508b6b8b11/frameset.htm], usually hexadecimal fields contain control characters (line feed, carriage return, tabulations and the like), so use constants of class [CL_ABAP_CHAR_UTILITIES|http://help.sap.com/abapdocu_70/en/ABENCL_ABAP_CHAR_UTILITIES.htm].
    Regards,
    Raymond

  • Problem with FM NAMETAB_GET in Unicode system

    Hi everyone,
    I'm working in a landscape that has a non-unicode development, non-unicode testing, unicode testing and non-unicode production. The intention is to have a unicode production in the future.
    I have an application that has been developed to visualize IDocs so that end users will use this application instead of WE02, WE05, etc (don't know why and this can't be changed). The thing is that this application uses FM NAMETAB_GET to get the fields of the segment, the dictionary length and the offset in order to parse the IDoc.
    In non-unicode systems it works fine, but after testing in the unicode system, we found out that it wasn't parsing right, and the problem is that FM NAMETAB_GET is doubling the length of the fields (I guess because Unicode chars need 2 bytes). So the length and offset are wrong and my segment is parsed incorrectly. Does anyone know how to solve this? Is it anyway to tell this FM to work IN CHARACTER MODE? Remember that I can't divide the lenght by 2 because I have some non-unicode systems in the landscape.
    Best regards and thank you!
    Pablo

    Problem solved, I will directly use FM DDIF_NAMETAB_GET which gives me the desired data in DFIES_TAB: Thanks

  • Replacement for Underscore - Hexadecimal '1F' in Unicode System

    Hi gurus,
    Can anyone provide the replacement for hexadecimal value '1F' in a Unicode system? Is there any table available?
    Regards,
    Lijo Joseph

    Hai
    Check the following Statements
    data v_var1 type x value '1F'.
    data v_len(5) type n.
    constants:
    c_ecc6_tab(1) type c value cl_abap_char_utilities=>horizontal_tab.
    constants:
    c1(3) type c value 333.
    data: begin of itab occurs 0,
    line(20) type c,
    end of itab.
    data: begin of itab1 occurs 0,
    line1(20) type c,
    line2(20) type c,
    line3(20) type c,
    end of itab1.
    concatenate c1 c_ecc6_tab c1 c_ecc6_tab c1 c_ecc6_tab c1
    into itab-line.
    concatenate c1 v_var1 c1
    into itab-line.
    open dataset c1 for input in text mode encoding default.
    describe field c1 length v_len in character mode.
    do 5 times.
    append itab.
    enddo.
    data xtab1 like itab1.
    data v_newvar like itab1-line1.
    do 10 times.
    itab1-line1 = 'abc'.
    itab1-line2 = 'def'.
    itab1-line3 = 'ghi'.
    append itab1.
    clear itab1.
    enddo.
    v_tabix = sy-tabix.
    Thanks & regards
    Sreenivasulu P

  • CL_ABAP_TYPEDESCR - DESCRIBE_BY_DATA  field length is doubled

    I have a custom program developed on Non Unicode system, that is using CL_ABAP_TYPEDESCR -> DESCRIBE_BY_DATA  to get field lengths of the fields in a structure. The code works perfectly file on Non Unicode system where it is developed, However when the same code is imported on a UNICODE system the field lengths of the fields in the same structure are exactly doubled. Anybody has any idea, why this may be happening?

    > However when the same code is imported on a UNICODE system the field lengths of the fields in the same structure are exactly doubled. Anybody has any idea, why this may be happening?
    Yes - because Unicode uses two bytes to represent ONE character.
    Markus

  • Line incomaptibilty betwwen RAW and CHAR data types in SAP Unicode System.

    Hi Gurus,
    I am working in SAP Unicode system.
    We have transferred the standard programs for Non-Unicode to Unicode system.
    In one standard function module, <table name> is defined in TABLES parameter as a type of TLINE structure, which has two fields - one is 132 length CHAR and other is 2 length CHAR.
    In the same function module , one subroutine is being called, for which <table name>  is passed.
    But in the FORM of subroutine, this table is defined as a type of HLINE, which has only one field - 134 length RAW data type.
    So due to confilct in data types ( CHAR and RAW ) , I am getting an error that both data types are not line compatible.
    Do i need to use casting concept to remove the error.
    Please suggest me the way to handle this.

    hi,
    declare the table as same data type.
    dont go for any other types.
    if you still want the form table as HLINE, then before the form call declare a varibale with TLINE data type pass the values to HLINE.
    i think this will be little complex, because again it will be type incompatablity.
    we can forcefully pass the values to HLINE with a class.
    but i think no need, declaring with same data type might be easy.
    Thanks
    Vinod

  • Where to perform UCCHECK etc in a UNICODE System or  NonUNicode System

    Hi ,
    Inorder to find out Our system is Unicode System or not , generally we can do that by ...... System --> Status .
    Here in my case  My Sytem is not a Unicode System.
    But My project is a Combined Upgrade and Unicode . We are doing the UCCHECK for Unicode Errors.
    My doubt is We have to perform UCCHECK etc in a UNICODE System or in a NonUNicode System ?
    Thanks in advance
    Sriram..

    Hi
    The Link will be helpful to you.
    Re: Upgrade 4.6 to ECC - What are the responsibilites
    regarding Unicode influence in Standard programs
    Very good document:
    http://www.doag.org/pub/docs/sig/sap/2004-03/Buhlinger_Maxi_Version.pdf
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/d37d1ad9-0b01-0010-ed9f-bc3222312dd8
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/589d18d9-0b01-0010-ac8a-8a22852061a2
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/f8e316d9-0b01-0010-8e95-829a58c1511a
    You need to use the transaction UCCHECK.
    The report documentation is here
    ABAP Unicode Scan Tool UCCHECK
    You can use transaction UCCHECK to examine a Unicode program set for syntax errors without having to set the program attribute "Unicode checks active" for every individual program. From the list of Unicode syntax errors, you can go directly to the affected programs and remove the errors. It is also possible to automatically create transport requests and set the Unicode program attribute for a program set.
    Some application-specific checks, which draw your attention to program points that are not Unicode-compatible, are also integrated.
    Selection of Objects:
    The program objects can be selected according to object name, object type, author (TADIR), package, and original system. For the Unicode syntax check, only object types for which an independent syntax check can be carried out are appropriate. The following object types are possibilities:
    PROG Report
    CLAS Class
    FUGR Function groups
    FUGX Function group (with customer include, customer area)
    FUGS Function group (with customer include, SAP area)
    LDBA Logical Database
    CNTX Context
    TYPE Type pool
    INTF Interface
    Only Examine Programs with Non-Activated Unicode Flag
    By default, the system only displays program objects that have not yet set the Unicode attribute. If you want to use UCCHECK to process program objects that have already set the attribute, you can deactivate this option.
    Only Objects with TADIR Entry
    By default, the system only displays program objects with a TADIR entry. If you want to examine programs that don't have a TADIR entry, for example locally generated programs without a package, you can deactivate this option.
    Exclude Packages $*
    By default, the system does not display program objects that are in a local, non-transportable package. If you want to examine programs that are in such a package, you can deactivate this option.
    Display Modified SAP Programs Also
    By default, SAP programs are not checked in customer systems. If you also want to check SAP programs that were modified in a customer system (see transaction SE95), you can activate this option.
    Maximum Number of Programs:
    To avoid timeouts or unexpectedly long waiting times, the maximum number of program objects is preset to 50. If you want to examine more objects, you must increase the maximum number or run a SAMT scan (general program set processing). The latter also has the advantage that the data is stored persistently. Proceed as follows:
    - Call transaction SAMT
    - Create task with program RSUNISCAN_FINAL, subroutine SAMT_SEARCH
    For further information refer to documentation for transaction SAMT.
    Displaying Points that Cannot Be Analyzed Statically
    If you choose this option, you get an overview of the program points, where a static check for Unicode syntax errors is not possible. This can be the case if, for example, parameters or field symbols are not typed or you are accessing a field or structure with variable length/offset. At these points the system only tests at runtime whether the code is sufficient for the stricter Unicode tests. If possible, you should assign types to the variables used, otherwise you must check runtime behavior after the Unicode attribute has been set.
    To be able to differentiate between your own and foreign code (for example when using standard includes or generated includes), there is a selection option for the includes to be displayed. By default, the system excludes the standard includes of the view maintenance LSVIM* from the display, because they cause a large number of messages that are not relevant for the Unicode conversion. It is recommended that you also exclude the generated function group-specific includes of the view maintenance (usually L<function group name>F00 and L<function group name>I00) from the display.
    Similarly to the process in the extended syntax check, you can hide the warning using the pseudo comment ("#EC *).
    Applikation-Specific Checks
    These checks indicate program points that represent a public interface but are not Unicode-compatible. Under Unicode, the corresponding interfaces change according to the referenced documentation and must be adapted appropriately.
    View Maintenance
    Parts of the view maintenance generated in older releases are not Unicode-compatible. The relevant parts can be regenerated with a service report.
    UPLOAD/DOWNLOAD
    The function modules UPLOAD, DOWNLOAD or WS_UPLOAD and WS_DOWNLOAD are obsolete and cannot run under Unicode. Refer to the documentation for these modules to find out which routines serve as replacements.
    Regards
    Anji

  • GUI_DOWNLOAD problem in unicode system

    Hi Guru's,
    I am facing one prolem in gui_download. we are doing unicode remediation in one report. In the program  one internal table declared as of type c with length 255 and data filled into the internal table by importing the data ifrom cluster. After  that this internal table  used  by ws_download function moduel with  file type as BIN to download it  in word doc file. We replaced the function module with gui_download. It is working fine in non-unicode system but it is not downloading properly in the unicode system.
    i am unable to find what is the cause.. I tried with different different codepages giving in run time..it is not solving my problem.
    << Moderator message - Everyone's problem is important. Please do not ask for help quickly. >>
    Thanks & Regards,
    Sastry R
    Edited by: Rob Burbank on Dec 13, 2010 9:39 AM

    Hi Clemens.
    I replaced the ws_download function module with gui_download.
    here is my code
    Earlier before 6.0 code as follows
    CALL FUNCTION 'WS_DOWNLOAD'
       EXPORTING
         bin_filesize            = data_len
         filename                = p_file
         filetype                = 'BIN'
       TABLES
         data_tab                = data_tab
       EXCEPTIONS
         file_open_error         = 1
         file_write_error        = 2
         invalid_filesize        = 3
         invalid_table_width     = 4
         invalid_type            = 5
         no_batch                = 6
         unknown_error           = 7
         gui_refuse_filetransfer = 8
         OTHERS                  = 9.
    IF sy-subrc <> 0 AND no_error_dlg = space.
       MESSAGE i002(sy) WITH text-i03.    "FILE OPEN ERROR
    ENDIF.
    Replaced above with following code
      DATA:lv_fname TYPE string,
           lv_ftype(10) VALUE 'BIN',
           lv_codepage type abap_encod VALUE '4102'.
    CALL METHOD cl_gui_frontend_services=>gui_download
        EXPORTING
          bin_filesize            = data_len
          filename                = lv_fname
          filetype                = lv_ftype
          codepage                = lv_codepage
        CHANGING
          data_tab                = data_tab
        EXCEPTIONS
          file_write_error        = 1
          no_batch                = 2
          gui_refuse_filetransfer = 3
          invalid_type            = 4
          no_authority            = 5
          unknown_error           = 6
          header_not_allowed      = 7
          separator_not_allowed   = 8
          filesize_not_allowed    = 9
          header_too_long         = 10
          dp_error_create         = 11
          dp_error_send           = 12
          dp_error_write          = 13
          unknown_dp_error        = 14
          access_denied           = 15
          dp_out_of_memory        = 16
          disk_full               = 17
          dp_timeout              = 18
          file_not_found          = 19
          dataprovider_exception  = 20
          control_flush_error     = 21
          not_supported_by_gui    = 22
          error_no_gui            = 23
          OTHERS                  = 24.
      IF sy-subrc <> 0 AND no_error_dlg = space.
        MESSAGE i002(sy) WITH text-i03.    "FILE OPEN ERROR
      ENDIF.
    I tried with all othr code pages also like 4110/4103/1110/1100/1102. It is not working,
    It is giving problem in unicode system. File is downloading.but not properly..
    and when i am opening the word file it is asking me select encoding type to make document readble along with the  available text encoding formats.
    Please help me..
    Thanks & Regards,
    Sastry R

  • Export / Import   to memory Id 2 . ( Unicode System)

    hi all ,
    we get unicode syntax error for the statement
       EXPORT d1200  TO MEMORY ID 2.
    Error discription is -
    2 must be a character-type field (data type C, N, D, or T) . "INTERFACE".
    We get similar error in import statement as well.
    Please refer this code ..........
    DATA:  BEGIN OF d1200,
             form    LIKE mard-matnr,
             formbez LIKE makt-maktx,
             labst(10),
             zeichnr LIKE drad-doknr,
             zeichnr1 LIKE drad-doknr,
             produktion_brutto(08) TYPE p, " (16) type c
             reparatur(08) TYPE p,
             zaehlerstand(16),
             maxprod(08) TYPE p,
             kapazitaet(06) TYPE p DECIMALS 2,
             hoehe(07),
             gewicht(07),
             netto-gesamt(07) TYPE p,
             ausschuss-gesamt(07) TYPE p,
             brutto-gesamt(07) TYPE p,
           restmenge(07) TYPE p,
    *mico20000430
    *notwendig für korrekte Anzeige in Druckliste
             restmenge(08) TYPE p,
             datenuebernahme(16),
             menge(08) TYPE p decimals 0 ,
             maxprod2(08) TYPE p decimals 0,
             umwertung(08) TYPE p decimals 0,
             ohnefa(08) TYPE p decimals 0,
             charge like mchb-charg,
             fhmnr LIKE mara-matnr,
           END   OF d1200.
    EXPORT d1200  TO MEMORY ID 2.

    Unicode systems have a problem in that you can't define stuff as type X. Structures also have to be properly "bounded".  You can also no longer rely on code such as field1+7(9) .
    You could define your structure as a STRING and delimit the fields with say a tab symbol ( use the attribute in cl_abap_utilities to get the tab char in a unicode system).
    export the string to memory.
    on the import end use the SPLIT command on the string to re-create your data elements.
    You will then have to manage the decimal arithmetic yourself.
    It's a pain - but that's largely the point of Unicode --everything is treated as TYPE C.
    Structures containing anything other than type C data are also a real problem if you want to upload / download data. Handling Binary files is a nightmare.
    There are some SAP supplied utilities  / notes / documentations on converting to a Unicode system.
    Cheers
    jimbo

  • R/3 Field length 80, BW field max allowed 60

    Hi all,
    Field ABC is in R/3 production system.
    Its length is 80(CHAR).
    This field data is now to be extracted to BW.
    It is used in extract program and updated to an extract table(R/3), then this has be loaded into a master load(BW).
    But in BW the field length allowed is 60(Max).
    So how to get in this 80 char data into BW??
    Please let me know in detail.
    Also please share links pertaining to this if possible.
    Thanks,
    Sowrabh

    Hi Sowrabh,
    Create two Infoobjects one with length 60 and one with length 20.
    Now in transfer rules write routines for both.
    IOB1 = <r/3 field>+0(60)
    IOB2 = <r/3 field>+60(20)
    Regards,
    Mansi
    Edited by: mansi dandavate on Apr 23, 2009 6:23 PM

  • Native sql not populating correct data in ECC6.0 unicode system

    Hi,
    I am working in an upgrade upgrade project from 4.6c to ECC6.0.
    4.6c is non-unicode system. ECC6 is Unicode system.
    I am facing Native SQL problem in custom developed programe in ECC6.That means programe reading the data from oracle datbase and stored into internal table.
    But data not stored as normal character format that means its stored as different character format.
    I am suspecting this is due to unicode system. IF that is issue then please provide
    what syntax I have to use for Native SQL statment in unicode system.
    I have provided the code which we are using in programe.
      data:
        i_locn       type table of t_locn,
        v_locn       like line  of i_locn.
      field-symbols:
        <f_005t>        type t_005t.
    Get existing EIS_VIDEO_LOCN_CONV records
      EXEC SQL.
        OPEN C FOR
          SELECT EIS_LOCN
            FROM VIDADMIN.EIS_VIDEO_LOCN_CONV
      ENDEXEC.
      do.
        EXEC SQL.
          FETCH NEXT C
            INTO :V_LOCN-EIS_LOCN
        ENDEXEC.
        if sy-subrc ne 0.
          exit.
        endif.
        append v_locn to i_locn.
      enddo.
      EXEC SQL.
        CLOSE C
      ENDEXEC.
      sort i_locn.
    I am facing the problem in i_locn internal table. Please give me your input to solve this issue.
    - Anandakumar K

    Hi,
    We have resolved this issue with BASIS team help.
    We modified the data charcater set as UTF8  in Oracle data base in unicode system ECC6.0 then the programme returns the
    exact character format
    Regards
    K.Anandakumar

  • Conversion Error in IDOC  : Unicode to Non-Unicode System

    EBP system (Unicode) posting goods movement to 4.6C (non-Unicode) using message type MBGMCR ( Function module - IDOC_INPUT_MBGMCR).
    **In Non-Unicode System***
    Idoc INBOUND error : Status 51
    An error has occurred assigning data (E1BP2017_GM_ITEM_CREATE ).
    I found in debugging value assigned from EDIDD ( E1BP2017_GM_ITEM_CREATE = IDOC_DATA-SDATA ) for field AMOUNT_LC is "0000            0.00"
    system catch exception with CONVERSION_ERRORS
    **Unicode System**
    Value for Amount_lc is 0.00
    Can anybody help me how to solve above issue?
    regards,

    You can do something like this..
    TABLES E1BP2017_GM_ITEM_CREATE .
    E1BP2017_GM_ITEM_CREATE-AMOUNT_LC = <field value> .
    MOVE E1BP2017_GM_ITEM_CREATE TO IDOC_DATA-SDATA  .
    can u tell me what is the type and value of the variable whose value you are assigning to AMOUNT_LC .
    Reward points to all the helpful answers.
    Thanks.

  • Getting correct field length when creating formats for delimited flat files

    Using Data Services 3.2 to pull in tsv and Excel source files.
    When creating a new format for each file, DS tries to intelligently set the field size for each column. However, it seems to sample only a portion of the file. The end result is that it often determines too short a length for a field.
    Is there a way to force it to scan an entire file before it sets the field length? Or alternatively, how to get it to at least throw an error instead of silently truncating my data?

    I am not aware of any way to force DS to scan the whole file, or to log a warning when it truncates.  The field sizes DS sets by using a sample of the data is only really to give you a starting point, you need to try and determine the maximum possible lengths preferably from someone who understands the source of the data or through profiling.  But the profiling method will obviously only be based on the data you have at the time of profiling, new data added to the source later could exceed the field lengths.  The way I prefer to handle this is to set all the field lengths to longer than expected, eg. varchar(999) and then use a validation transform immediately after reading the file to check for any fields that exceed the maximum allowed for the target system and send these to an error file/table.

  • TABLE_ENTRIES_GET_VIA_RFC in unicode system

    Hi all,
    I know this is going to be a long initial post, but please please take the time to read it. Otherwise there would be many unnecessary questions.
    We are using a middleware for mobile devices that reads connects to SAP for reading table data (via a.m. RFC) and posting RFCs/BAPIs.
    Now we try to connect to an unicode SAP system (6.20). The statement
    SELECT * FROM (TABNAME) INTO TABLE TABENTRY WHERE (SEL_TAB)
    where TABENTRY is a table of type char(2048) does not work any more as in unicode systems the structure of the db table and the internal table have to be the same.
    So we found the fm CRM_CODEX_GET_TABLE_VIA_RFC in CRM which is built from a copy of the a.m. fm and solves this problem by
    1.) creating dynamically an internal table of the same type as the db table.
    2.) select the data into this new internal table
    3.) loop over the internal table and converting each field of its structure to a char variable and then appending it to a the result char(2048).
    Theoretically everything's ok. The fm works now and returns correct data. But there's still one problem, the middleware doesn't convert the data correctly, as the values of fields of type 'p' are passed differently.
    non unicode (standard fm):
    1000000000000280401011000COMPDL              200408 ###E8##############################
    unicode (changed fm):
    1000000000000280401016000COMPDL              200504 10.000       0.000        0.000        0.000
    As you can see, the select statement from the top of this post just puts the data into the string without actually converting the numbers in fields of type p (or QUAN, CURR in db).
    The changed fm with converting every field also converts the number values, now they appear as char fields.
    The middleware tries to convert the number values, but always returns 0 (I can only the results as the actually programming is a black box for me).
    Has anyone any idea how to solve this problem? (beside getting help from the middleware vendor, which is difficult, as there is a new release working with unicode systems. But we will stay on the old release for some months from now...)

    Hi Raja,
    thanks for your answer.
    I had already searched the forum and found your document about RFC_READ_TABLE which I think is quite interesting and a good solution.
    But unfortunately, I cannot change the middleware's RFC logic, e. g. change the BAPI or make changes to the in-/output streams.
    I now live with a workaround:
    I modified the RFC to convert all p type fields to character fields and also changed the metadata RFCs accordingly, which works OK.
    For all RFCs I use to post data to SAP, I write a wrapper RFC with character only structures and convert them to the internal RFCs inside SAP.
    This is not my preferred solution, but I am very short of time and it works pretty well.
    Regards,
    Hans

Maybe you are looking for

  • HELP! How come I can't 'save and quit' any longer with this new ver of Firefox? Does anyone know how to fix this?

    When I updated Firefox I have now discovered I can no longer action the 'save and quit' function when closing down Firefox! Is this a common problem and more to the point is there a solution to this?? ie, change settings or some form of patch?? Any h

  • String Array Constant Addition

    Is there an elegant way of marking the last element in a string array constant? i.e. I take an Array constant, and add a simple string to it, so that it becomes a String Array Constant. Now I add elements 1 and 2 and 3. But now I want to take element

  • Problem synching photos folder

    Hi. I have a fairly new Touch - mostly it syncs OK with everything in the photos folder that I pointed iTunes to... but it refuses to synch to *just one* of the folders, (called "2010", no quotes obviously). Inside it are more folders called 2010 Jan

  • Find/Change whole words in CS3

    Maybe I'm just being dense, but when I do a find/change in ID CS3 I can't find the option to search for whole words only. The default is set to ignore whole words, so I end up finding a lot of undesirable matches. My last search was for "air," so you

  • How to Add Transport Value in TAX CODE

    Hi Experts I define the code BED 8 %, Ecess 2 % HEC 1 % & VAT  4% but i want to add Transport value in that TAX CODE.SO could you tell me How to define the Transport Value in these Tax Code. Regards Amol