Actual anf formal parameter in unicode system

Hi All,
         I am getting short dump error in a report program in a unicode system, It gives message like this :
Name of function module...............: "SXPG_COMMAND_EXECUTE"
Name of formal parameter..............: "TARGETSYSTEM"
Technical type of actual parameter....: "C"
Technical length of actual parameter..: 100 bytes
Technical type of formal parameter....: "C"
Technical length of formal parameter..: 1024 bytes
Name of formal parameter at caller....: "TARGETSYSTEM"
             should the actual parameter length and formal parameter length should be the same in unicode system.
thanks in advance,
kumaran

Hi Kumaran,
Yes, you are right 'actual parameter length and formal parameter length should be the same in unicode system'
Regards
Sudheer

Similar Messages

  • Subroutine-the actual parameter is incompatible with the formal parameter

    Hi,
    I have the following code that is outputting an error message during activation:
    DATA: I_RESBB TYPE TABLE OF RESBB,
          WA_RESBB TYPE RESBB.
    PERFORM OBTAIN_RESBB_DATA
    USING I_RESBB.
    *&      Form  OBTAIN_RESBB_DATA
    *       text
    *      -->P_I_RESBB  text
    FORM OBTAIN_RESBB_DATA  USING    VALUE(P_I_RESBB) TYPE RESBB.
    ENDFORM.                    " OBTAIN_RESBB_DATA
    However, I am getting the following messages during activation:
    In PERFORM or CALL FUNCTION "OBTAIN_RESBB_DATA", the actual parameter
    "I_RESBB" is incompatible with the formal parameter "P_I_RESBB".
    What am I doing wrong? I have checked through many different threads & sites but can't find a solution.
    Thanks,
    John

    John, since you seem quite familiar with the ABAP help and obsolete statements I'm now surprised what you were initially asking for.. .
    Anyhow, below a sample coding with the table being passed as a USING parameter. Avoid using VALUE on the parameter (i.e. pass by value) unless you need a copy of the parameter. Otherwise this leads to a performance overhead (requirement to copy the parameter), especially for large internal tables.
    TYPES T_RESBB_TAB TYPE STANDARD TABLE OF RESBB WITH NON-UNIQUE DEFAULT KEY.
    DATA I_RESBB TYPE T_RESBB_TAB.
    PERFORM OBTAIN_RESBB_DATA USING I_RESBB.
    FORM OBTAIN_RESBB_DATA  USING I_RESBB TYPE T_RESBB_TAB.
      FIELD-SYMBOLS: <RESBB> TYPE LINE OF T_RESBB_TAB.
      LOOP AT I_RESBB ASSIGNING <RESBB>.
        " Additional coding for evaluating/updating the table
      ENDLOOP.
    ENDFORM.
    Cheers, harald
    P.S.: Update of my posting: Just read your one comment. Looks like your only problem was attempting to define the table type in the parameters section of the form routine. This doesn't work. If you don't have a type you could use a generic type (i.e. simply just say <i>using i_resbb type table</i>), but in general I would stick to strong typing unless you have a generic routine that must handle different table types. So simply refer to a table type from dictionary or that you defined in your program.

  • How to assign string to structure in unicode system R/3 4.7 ?

    Hi All,
    We are upgrading system from non-unicode to unicode.
    While passing a string to a structure ( MOVE RECEIVERS-RECEIVER TO RECEIVER_OBJECT, where
    RECEIVERS_RECEIVER = string
    RECEIVER_OBJECT = structure )
    following error is thrown :
    "RECEIVER_OBJECT" and "RECEIVERS-RECEIVER" are not mutually convertible in a unicode program.
    To resolve this error, i hv used :
    CALL METHOD CL_ABAP_CONTAINER_UTILITIES=>FILL_CONTAINER_C
    EXPORTING
    IM_VALUE = RECEIVERS-RECEIVER
    IMPORTING
    EX_CONTAINER = RECEIVER_OBJECT
    EXCEPTIONS
    ILLEGAL_PARAMETER_TYPE = 1
    others = 2
    While activating the code, following error message is thrown :
    "RECEIVER_OBJECT" is not type-compatible with formal parameter "EX_CONTAINER".
    Please help me out to solve this issue ..
    I need to know what I am missing here to make my code correct.
    Thanks in advance.
    Priya

    Hi All,
    My issue is resolved by using following class and method : CL_ABAP_CONTAINER_UTILITIES=> READ_CONTAINER_C  and passing 'string' in export parameter and structure in 'import' parameter.
    Cheers !!
    Priya

  • OPEN DATASET...  in a Unicode system

    I'm discussing with a developer @ SAP about the correct use of OPEN DATASET in a Unicode system. I'm not sure I'm correct with my opinion so maybe someone could shed a light on it.
    The source of discussion is the (SAP standard) program RSQUEU01. This program is used to download data from the TemSE; in our case we use it to produce a file that is to be sent to auditors (component FI-AIS).
    Our system is a little endian Unicode system (codpage 4103). If we download the created data using that program we get a dump with "CONVT_CODEPAGE" because a character could not be converted from 4103 to 1100.
    The proposed correction by the developer is changing
    OPEN DATASET EXP_FILENAME FOR OUTPUT IN legacy BINARY MODE.
    to
    OPEN DATASET exp_filename                              
    FOR OUTPUT IN LEGACY BINARY MODE                     
    IGNORING CONVERSION ERRORS.
    I think, that correction is wrong. Since we have 12 languages in the system including some Asian the output might get corrupted.
    When I asked him about that I was told use an application server with a "correct codepage" then - I'm not sure what that means since I can't connect an ASCII application server to a Unicode system.
    I guess the statement should be
    OPEN DATASET EXP_FILENAME FOR OUTPUT IN BINARY MODE ENCODING DEFAULT.
    This makes sure that no data is cut (like doublebyte) and makes sure, the appropriate codepage (LE/BE) is used.
    Are my assumptions right?
    Markus
    (OSS 323320/2010)

    Hi Markus,
    Let's first clarify the difference ways for writing files:
    <ul style="list-style:circle!important;">
    <li>BINARY MODE: Means that we essentially dump a sequence of bytes, which isn't necessarily related to any code page (and characters). I.e. if I'd want to save for example an executable program, the individual bytes have no meaning when interpreted as characters (unless we look at strings stored in the program). Note that legacy binary mode actually allows you to specify a code page though, but in general the recommendation is not to use the legacy option.</li>
    <li>TEXT MODE: Here we have text information that has to be interpreted using a specific code page; thus usually the additional parameter ENCODING should be given, which specifies which code page is used.</li>
    </ul>
    Now, let's clear up a small typo in Ajay's response:
    Yes you are right if you want to have all double byte characters too then you need to use ENCODING DEFAULT which would use 4103 in Unicode system.
    That is incorrect. In a Unicode system [encoding default|http://help.sap.com/abapdocu_70/en/ABAPOPEN_DATASET_ENCODING.htm] corresponds to UTF-8, not UTF-16.
    Back to your problem. Your suggestion doesn't work, because you cannot specify encoding default for a binary output (the legacy binary mode allows you to specify a code page, but that's misleading and I wouldn't use any legacy mode). So when you try to use the syntax you proposed, you'd get a syntax error.
    Generally the recommendation is for Unicode enabled applications to use UTF-8 files with byte order mark, i.e. something like
    open dataset EXP_FILE in text mode encoding utf-8 with byte-order mark.
    However, the real question is what your external audit application expects and it sounds as if it's not Unicode enabled...
    Enough blabber, here's what I'd do: Since you're having issues with a audit-related standard SAP program I'd post the question in forum - other people must have run into that problem. Also, I checked OSS, but couldn't make much sense out of the few notes I've found (and nothing seemed relevant). Check what the expected input format is in the external audit system; possibly post a message to OSS.
    Cheers, harald

  • SOURCE_PACKAGE is INCOMPATIBLE with the FORMAL PARAMETER DATA_PACKAGE

    Hello Experts,
    Infocube A is getting updated from shopping carts DSO. I have added 3 new fields in SC DSO then cube transformations got inactive.  I do not want 3 new fields in cube. we have report on DSO. Below is syntax error when  checking transformations.
    Error: In PERFORM or CALL FUNCTION "ROUTINE_9998", the actual parameter "SOURCE_PACKAGE" is incompatible with the formal parameter "DATA_PACKAGE".
    3 New fields are available in tys_SC_1 but not available in tys_SC_1_full. I tried to insert 3 fields in tys_SC_1_full but still it is showing same syntax error.  And more TYPE is availalbe tys_TG_1_full.  This type does not have 3 fields.
    Please  advice.
    Thanks in advance.
    Regards
    Venkata.

    Hello Rathy,
    I have resolved issue by addinng fields to data package. Issue is becasue of 4 fields in source and I have added only 3 fields in data package. Added one more field to data package and no syntax errors when checked.
    Thanks for the input and points assigned.
    Regards
    Venkata Agraharam.

  • Not compatible with the formal parameter "NEW_ITEMS"

    Dear,
    I'm creating a very simple WD4A to just display the contents of the table.
    So in the COMPONENTCONTROLLERS I created the node ZPI_USERS, according to the type of the internal table ZPI_USERS we have on the PI system.
    Still in the COMPONENTCONTROLLER under methods I'm trying to implement this code in the 'wddoinit' event:
    METHOD wddoinit.
      DATA: lt_users    TYPE zpi_users,
            node_users  TYPE wd_this->element_users,
            lo_nd_users TYPE REF TO if_wd_context_node,
            lo_el_users TYPE REF TO if_wd_context_element.
    * navigate from <CONTEXT> to <USERS> via lead selection
      lo_nd_users = wd_context->get_child_node( name = wd_this->wdctx_users ).
      SELECT * FROM zpi_users
               INTO lt_users.
        lo_nd_users->bind_table( new_items = lt_users ).
      ENDMETHOD.
    On trying to activate I get the following error :
    Web Dynpro Comp. / Intf. ZPI_DISPLAY_MONIUSERS,Web Dynpro Component Controller COMPONENTCONTROLLER
    Method WDDOINIT
    "LT_USERS" is not type-compatible with formal parameter "NEW_ITEMS".
    I know I'm overseeing something very simple, though I get the feeling I'm running in circles. Again: the only thing I want to do is show an internal SAP table through a Web Dynpro.
    Kind regards,

    Hi,
    You have declared
    DATA: lt_users    TYPE zpi_users,
    This means that you are declaring a work area and not an internal table, whereas while binding we need to pass an internal table.
    Declare your table as follow,
    DATA: lt_users    TYPE TABLE OF zpi_users.
    " modify your select
        SELECT *
          FROM zpi_users
          INTO TABLE lt_users.
    Hope this helps!
    Regards,
    Radhika.

  • GUI_DOWNLOAD problems with CR+LF when transfering from unicode system

    Hi,
    I was successfuly used FM GUI_DOWNLOAD in a non-unicode systems for years. Lately I faced a challenge to rewrite my code for a unicode system. The configuration is:
    - SAP R/3 unicode system;
    - data to be downloaded at presentation server in a non-unicode codepage (cp 9504).
    I have successfuly used a GUI_DOWNLOAD-parameter CODEPAGE and the data is translated correctly when checking local file, but due to some reasons CRLF are replaced with '#' (which is default value of REPLACEMENT parameter of this function) - means at the end of each row as a result I have '##' instead of CRLF.
    My question is: how can I force correct behaviour of GUI_DOWNLOAD in order to get my output file at presentation server with CR+LF?
    Any help would be highly appreciated.
    Many thanks in advance.
    Regards,
    Ivaylo Mutafchiev
    SAP/ABAP consultant
    VBS Ltd.
    P.S. In order to find some other way to fix my problem I'm still playing with the instanciation of a CL_ABAP_CONV_OBJ and its methods create & convert, but without success for now - resulted strings are not as expected.

    Hi,
    in fact, I never placed CRLF in my lines before your suggestion. The rest was done by the FM 'GUI_DOWNLOAD'. It works fine even when I use unicode file as output - means I got my CRLF at the end of the record in MY OUTPUT FILE ONLY but not in my internal table - I never placed CR+LF in there.
    The problem occures when I tried to use GUI_DOWNLOAD with parameter CODEPAGE = '9504' (some non-unicode codepage), and the original data (my internal table) is in unicode. Then (in my opinion) this function doesn't translate the unicoded CR+LF into non-unicode ones (if thats possible at all, I can't be sure) and the result is '##' in the output file.
    I checked the value of CL_ABAP_CHAR_UTILITIES=>CR_LF by getting it in my variable - and it is '##'.
    Whet should I put into this class-attribute in order to get it working in this scenario? I have no idea...
    The attribute type is ABAP_CR_LF - which is char 2.
    What next?
    Thanks,
    Ivaylo

  • RFC Error when using SAPRFC against a Unicode System

    Hi Everybody,
    I try to use the PHP SAPRFC extension against a Unicode System. When I call the client.php which comes with the source package from http://saprfc.sourceforge.net/ where I added:
                   "CODEPAGE"=>"4103",                  // codepage Unicode
                   "UNICODE"=>"1",                      // Unicode
    to the $LOGIN array I get this error:
    Warning: RFC Error Info : Group : 103 Key : RFC_ERROR_LOGON_FAILURE Message : D
    in /var/www/saprfc/client.php on line 48
    RFC connection failed with error:RFC Error Info : Key : C
    Status : EXCEPTION SYSTEM_FAILURE RAISED Message : D Internal:
    there are two trace files after the call. One called dev_rfc.trc with this content:
    **** ERROR file opened at 20060605 050220 CEST, SAP-REL 640,0,119 RFC-VER 3 818129 MT-SL
    T:1079532480 Error in program 'apache2': ======> D
    T:1079532480 Error in program 'apache2':
    <* RfcReceive [1] : returns 3:RFC_SYS_EXCEPTION
    and a file called rfc27443_1079532480.trc:
    **** Trace file opened at 20060605 050500 CEST, SAP-REL 640,0,119 RFC-VER 3 818129 MT-SL
    <<< RfcOpenEx failed
    >TS> Mon Jun  5 05:05:06 2006
    resize I/O buffer to 16000 bytes
    >>>> [7] <unknown>    : EXT  <ac: 74> L sapserver.test.com >>> OPEN  
    UUID: ab_drvstate create uuid {44839DD5-9DCE-6B32-E200-12FDBA107532}
    >>>> [7] <unknown>    : EXT  <ac: 75> L sapserver.test.com >>> 45573492 (45573492)
      -{44839DD5-9DCE-6B32-E200-12FDBA107532}
    >>> RfcOpenEx ...
    Got following connect_param string:
       ASHOST=sapserver.test.com SYSNR=00 CLIENT=002 USER=developer PASSWD=*******
    LANG=EN CODEPAGE=4103 UNICODE=1 TRACE=1
    Send RFCHEADER: 01/LIT/IEEE/SPACE/4103
    Send UNICODE-RFCHEADER: cp:4103/ce:IGNORE/te:REJECT/cs:1/rc:0x00000023
    UUID: send_rfcuuid {44839DD5-9DCE-6B32-E200-12FDBA107532}
    >>> Logon check: calling RFCPING
    >>> RfcCall [7] ...
    *> RfcCall
      FUNCTION RFCPING
            handle = 7
            parameter   = <NULL>
            tables      = <NULL>
    UUID:  RfcCallNew send the uuid to the partner {44839DD5-9DCE-6B32-E200-12FDBA107532}
    >>>> [7] <unknown>    : EXT  <ac: 76> L sapserver.test.com >>> WRITE (45573492)
      -{44839DD5-9DCE-6B32-E200-12FDBA107532}
    000000 | D9C6C3F0 F0F0F0F0 F0F0F0E3 01010008 |................|
    000010 | 01010101 04010003 01010103 00040000 |................|
    000020 | 020B0103 0106000B 04010003 01000100 |................|
    000030 | 00002301 06000700 0F313237 2E302E30 |..#......127.0.0|
    000040 | 2E312020 20202020 00070011 00014500 |.1      ......E.|
    000050 | 11001200 04363430 20001200 13000436 |.....640 ......6|
    000060 | 34302000 13000800 20736172 67652D77 |40 ..... sarge-w|
    000070 | 77772020 20202020 20202020 20202020 |ww              |
    000080 | 20202020 20202020 20000800 0600803C |         ......<|
    000090 | 756E6B6E 6F776E3E 00000000 00000000 |unknown>........|
    0000a0 | 00000000 00000000 00000000 00000000 |................|
    0000b0 | 00000000 00000000 00000000 00000000 |................|
    0000c0 | 00000000 00000000 00000000 00000000 |................|
    0000d0 | 00000000 00000000 00000000 00000000 |................|
    0000e0 | 00000000 00000000 00000000 00000000 |................|
    0000f0 | 00000000 00000000 00000000 00000000 |................|
    000100 | 00000000 00000000 00000000 00000000 |................|
    000110 | 06051400 10D59D83 44CE9D32 6BE20012 |........D..2k...|
    000120 | FDBA1075 32051401 30000761 70616368 |...u2...0..apach|
    000130 | 65320130 01110009 44455645 4C4F5045 |e2.0....DEVELOPE|
    000140 | 52011101 17000D56 F94AFD31 E72211B4 |R......V.J.1."..|
    000150 | 1DCED7F3 01170114 00033030 32011401 |..........002...|
    000160 | 15000145 01150501 00010105 01050200 |...E............|
    000170 | 00050200 0B000336 3430000B 01020007 |.......640......|
    000180 | 52464350 494E4701 02051400 10D59D83 |RFCPING.........|
    000190 | 44CE9D32 6BE20012 FDBA1075 320514FF |D..2k......u2...|
    0001a0 | FF0000FF FF000000 00000000 00000000 |................|
    >>>> [7] <unknown>    : EXT  <ac: 77> L sapserver.test.com >>> FLUSH(WRITE) (45573492)
      -{44839DD5-9DCE-6B32-E200-12FDBA107532}
    <* RfcCall [7] : returns 0:RFC_OK
    >>>> [7] <unknown>    : EXT  <ac: 78> L sapserver.test.com >>> FLUSH(WRITE) (45573492)
      -{44839DD5-9DCE-6B32-E200-12FDBA107532}
    >>>> Listen/WaitForRequest (counter = 4)
    >>>> [7] <unknown>    : EXT  <ac: 79> L sapserver.test.com >>> LISTEN (45573492)
      -{44839DD5-9DCE-6B32-E200-12FDBA107532}
    000000 | 01010008 01010101 04010003 01010103 |................|
    000010 | 00040000 020B0103 0106000B 04010003 |................|
    000020 | 01000200 00002301 06001600 08310031 |......#......1.1|
    000030 | 00300030 00001600 07001E31 0030002E |.0.0.......1.0..|
    000040 | 00310032 0038002E 00330036 002E0031 |.1.2.8...3.6...1|
    000050 | 00350020 00200020 00000700 11000233 |.5. . . .......3|
    000060 | 00001100 12000836 00320030 00200000 |.......6.2.0. ..|
    000070 | 12001300 08360032 00300020 00001300 |.....6.2.0. ....|
    000080 | 08004064 00650063 00720030 0034005F |[email protected]._|
    000090 | 00430052 0034005F 00300030 00200020 |.C.R.4._.0.0. . |
    0000a0 | 00200020 00200020 00200020 00200020 |. . . . . . . . |
    0000b0 | 00200020 00200020 00200020 00200020 |. . . . . . . . |
    0000c0 | 00200000 08000601 003C756E 6B6E6F77 |. .......<unknow|
    0000d0 | 6E3E0000 00000000 00000000 00000000 |n>..............|
    0000e0 | 00000000 00000000 00000000 00000000 |................|
    0000f0 | 00000000 00000000 00000000 00000000 |................|
    000100 | 00000000 00000000 00000000 00000000 |................|
    000110 | 00000000 00000000 00000000 00000000 |................|
    000120 | 00000000 00000000 00000000 00000000 |................|
    000130 | 00000000 00000000 00000000 00000000 |................|
    000140 | 00000000 00000000 00000000 00000000 |................|
    000150 | 00000000 00000000 00000000 00000000 |................|
    000160 | 00000000 00000000 00000000 00000000 |................|
    000170 | 00000000 00000000 00000000 00000000 |................|
    000180 | 00000000 00000000 00000000 00000000 |................|
    000190 | 00000000 00000000 00000000 00000000 |................|
    0001a0 | 00000000 00000000 00000000 00000000 |................|
    0001b0 | 00000000 00000000 00000000 00000000 |................|
    0001c0 | 00000000 00000000 00000605 140010D5 |................|
    0001d0 | 9D8344CE 9D326BE2 0012FDBA 10753205 |..D..2k......u2.|
    0001e0 | 14050000 00050004 03002E43 0041004C |...........C.A.L|
    0001f0 | 004C005F 00460055 004E0043 00540049 |.L._.F.U.N.C.T.I|
    000200 | 004F004E 005F004E 004F0054 005F0046 |.O.N._.N.O.T._.F|
    000210 | 004F0055 004E0044 00040304 02004046 |.O.U.N.D......@F|
    000220 | 0075006E 00630074 0069006F 006E0020 |.u.n.c.t.i.o.n. |
    000230 | 006D006F 00640075 006C0065 00200022 |.m.o.d.u.l.e. ."|
    000240 | 00524643 50494E22 0020006E 006F0074 |.RFCPIN". .n.o.t|
    000250 | 00200066 006F0075 006E0064 002E0004 |. .f.o.u.n.d....|
    000260 | 02FFFF00 00FFFF00 00000000 00000000 |................|
    <* RfcListen [7] : returns 0:RFC_OK
    >>> RfcReceive [7] ...
    Received RFCHEADER [7]: 01/LIT/IEEE/SPACE/4103
    Received UNICODE-RFCHEADER [7]: cp:4103/ce:IGNORE/te:REJECT/cs:2/rc:0x00000023
    UUID: ab_rfccheck_uuid compare uuid's {44839DD5-9DCE-6B32-E200-12FDBA107532}
    Error in program 'apache2': ======> F
    >>>> [7] <unknown>    : EXT  <ac: 80> L sapserver.test.com >>> CLOSE abrfcrcv_mt.c 429 (45573492)
      -{44839DD5-9DCE-6B32-E200-12FDBA107532}
    *> RfcReceive
            handle = 7
            parameter   = <NULL>
            tables      = <NULL>
             Data conversion On
    Error in program 'apache2': <* RfcReceive [7] : returns 3:RFC_SYS_EXCEPTION
    >>>> [7] <unknown>    : EXT  <ac: 81> L sapserver.test.com >>> FREE abrfcio_mt.c 3517 (45573492)
      -{44839DD5-9DCE-6B32-E200-12FDBA107532}
    **** Trace file opened at 20060605 050506 CEST, SAP-REL 640,0,119 RFC-VER 3 818129 MT-SL
    <<< RfcOpenEx failed
    Our SAP Environment is:
    - SAP Web AS 6.20 Unicode Kernel Patchlevel 1602
    - Windows 2003 Server
    - Oracle
    On the PHP Side I use:
    - Debian GNU/Linux 3.1 (Sarge)
    - Apache 2 2.0.54-5
    - PHP4 4.3.10-16
    - SAPRFC 1.4.1
    - SAP RFC SDK non Unicode 6.20 and 6.40 (The problem occurs in both versions)
    Had anyone had sucess using SAPRFC against a Unicode System?
    Regards
    Gregor

    Hi Anton,
    I've just tried your suggestion. I've commented out the CODEPAGE and UNICODE values in my Array and placed:
    [code]saprfc_set_code_page($rfc, "4103");[/code]
    after the
    [code]$rfc = saprfc_open ($LOGIN);[/code]
    The error message I get now is:
    [code]Warning: RFC Error Info : Key : Status : EXCEPTION FU_NOT_FOUND RAISED Message :
    Internal: in /var/www/saprfc/client.php on line 58
    Discovering interface of function module RFC_READ_REPORT failed[/code]
    In the trace File I see:
    [code]>>>> [3] <unknown>    : EXT  <ac: 40> L sapserver.test.com >>> WRITE (80999721)
      -{44839E3E-9E3B-6B30-E200-0534B0CD3057}
    000000 | 05020000 0502000B 00063600 34003000 |..........6.4.0.|
    000010 | 000B0102 00385200 46004300 5F004700 |.....8R.F.C._.G.|
    000020 | 45005400 5F004600 55004E00 43005400 |E.T._.F.U.N.C.T.|
    000030 | 49004F00 4E005F00 49004E00 54004500 |I.O.N._.I.N.T.E.|
    000040 | 52004600 41004300 45005F00 50000102 |R.F.A.C.E._.P...|
    000050 | 05140010 3E9E8344 3B9E306B E2000534 |....>..D;.0k...4|
    000060 | B0CD3057 05140201 00104600 55004E00 |..0W......F.U.N.|
    000070 | 43004E00 41004D00 45000201 0203001E |C.N.A.M.E.......|
    000080 | 5246435F 52454144 5F524550 4F525420 |RFC_READ_REPORT |
    000090 | 20202020 20202020 20202020 20200203 |              ..|
    0000a0 | 03010010 50004100 52004100 4D005300 |....P.A.R.A.M.S.|
    0000b0 | 5F005000 03010330 00040000 00010330 |_.P....0.......0|
    0000c0 | 03020008 000000D8 00000000 0302FFFF |................|
    0000d0 | 0000FFFF 00000000 00000000 00000000 |................|
    >>>> [3] <unknown>    : EXT  <ac: 41> L sapserver.test.com >>> FLUSH(WRITE) (80999721)
      -{44839E3E-9E3B-6B30-E200-0534B0CD3057}
    <* RfcCall [3] : returns 0:RFC_OK
    >>> RfcReceive [3] ...
    >>>> [3] <unknown>    : EXT  <ac: 42> L sapserver.test.com >>> FLUSH(WRITE) (80999721)
      -{44839E3E-9E3B-6B30-E200-0534B0CD3057}
    >>>> [3] <unknown>    : EXT  <ac: 43> L sapserver.test.com >>> READ (80999721)
      -{44839E3E-9E3B-6B30-E200-0534B0CD3057}
    000000 | 05000000 05000415 00044600 4C000415 |..........F.L...|
    000010 | 04160002 45000416 04170006 30003400 |....E.......0.4.|
    000020 | 36000417 04010018 46005500 5F004E00 |6.......F.U._.N.|
    000030 | 4F005400 5F004600 4F005500 4E004400 |O.T._.F.O.U.N.D.|
    000040 | 0401FFFF 0000FFFF 00000000 00000000 |................|
    >>>> [3] <unknown>    : EXT  <ac: 44> L sapserver.test.com >>> FLUSH (READ) (80999721)
      -{44839E3E-9E3B-6B30-E200-0534B0CD3057}[/code]
    Regards
    Gregor

  • 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

  • Convert_otf in unicode system

    Hello,
    we have switched a CRM4.0 system from non-unicode to unicode. In this context we became two problems with the result of the function module 'CONVERT_OTF'. We call the function Module following:
      call function 'CONVERT_OTF'
       exporting
         format                      = 'PDF'
         max_linewidth               = 132
         copynumber                  = 0
       importing
         bin_filesize                = lv_bin_filesizepdf
        tables
         otf                         = it_otfdata
         lines                       = lt_lines_pdf
    the otf tabel is generated by a Smartform.
    Noticeable is, that the pdf table in the unicode system has similarly only the half quantity of rows than in the non-unicode system. (The parameter FLATE_COMPR_OFF in Report RSTXPDF3 allways is on)
    1. Problem
    We send the pdf table (lt_lines_pdf) via RFC to a non-unicode R/3 system and save it there on the file system. After switching to unicode, the document in the RFC system is damaged an cannot processed.
    2. Problem
    We transform the lt_lines_pdf for an archive in the following way.
    data: ls_data    type char1024
        , lv_134     type char134
        , ls_lines   type tline
        , lt_data    type standard table of tbl1024
    field-symbols: <fs> type tbl1024.
    assign ls_data to <fs> casting.
      lv_count = 0.
      loop at lt_lines_pdf into ls_lines.
        lv_134 = ls_lines.
        lv_offset = lv_count.
        lv_count = lv_count + 134.
        if lv_count < 1024.
          ls_data+lv_offset(134) = lv_134.
        else.
          lv_count = lv_count - 1024.
          lv_begin = 134 - lv_count.
          ls_data+lv_offset(lv_begin) = lv_134(lv_begin).
          append <fs> to lt_data.
          clear ls_data.
          if lv_count > 0.
            ls_data = lv_134+lv_begin(*).
          endif.
        endif.
      endloop.
      if ls_data is not initial.
        append <fs> to lt_data.
      endif.
    We need lt_data for the FM 'SCMS_AO_TABLE_CREATE'.
    I hope anybody can help me, I invest already much time in this problem!

    Hi,
    CONVERT_OTF packs two byte into one character of i-tab LINES on unicode systems. If you pass this via RFC to non-unicode systems data ist lost. The table contents are bytes when if the data type is character. The conversion routines between unicode and non-unicode do not know about this.
    However the function module contains an export paramter BIN_FILE. This parameter is of type XSTRING, which has always a byte-representation. This datatype will not be converted between RFC-calls.
    Greetings

  • Problem publishing database contents from non-unicode to unicode system

    Hello everyone!
    We just set up a new SAP WAS based on Netweaver 2004 as a unicode system. Out problem now is that we have a content management system on our non-unicode system and that we are publishing the contents via rfc to the WAS unicode system to display the contents online. the contents are stored in our own database tables.
    The problem thereby is that many texts pasted from microsoft word contain special characters like bullets, long minus or low-9 quotation marks which are not correctly displayed in the unicode system / on the website. we already found out that it has something to do with the codepage. the sap notes say we should use 1160 instead of 1100 and that the transaction SPUMG would be helpful. but we are not able to select any tables there.
    so now we do not know what to do exactly. do we have to change something in our non-unicode system or do we have to conversion in our unicode system. and what happends if content containing special microsoft word characters is published after the spumg conversion? do we have to to this frequently?
    We would be glad if anyone could help.
    Thanks a lot!

    Hi Martin,
    thanks for your quick answer.
    You got me right. We have a local non-Unicode SAP HCM Netweaver 2004 system running a self-developed web based content management system / wiki. The texts entered in the bsp application are stored in a string field in our database table. Actually we publish the contents to a WAS 6.20 non-Unicode system with the same database tables to provide the content via BSP for the public. Everything is working fine including the special characters.
    Now we want to replace the WAS 6.20 non-Unicode system by a new WAS 7.0/2004 Unicode system. But when publishing the contents via the same RFC function module to the new system the special characters seem to be damaged. We are not able to replace them with abap commands and when they are displayed on the website we only see "boxes".
    If I get you right we have to run SPUMG on our nw 2004 non-unicode productive hcm system, right? but isn't there a danger to damage existing contents?
    Best regards,
    Stefan

  • Question about NOCOPY in function formal parameter

    SQL> declare
    2 v_1 number(8);
    3 procedure p_1(parm_1 in out nocopy number) is
    4 begin
    5 parm_1 := parm_1 + 50;
    6 raise program_error ;
    7
    8 end;
    9 begin
    10 v_1 := 100 ;
    11 dbms_output.put_line('the value before call is : '|| v_1) ;
    12 p_1(v_1) ;
    13 dbms_output.put_line('the value after call is : '|| v_1) ;
    14 exception
    15 when others then
    16 dbms_output.put_line('outer exception handle') ;
    17 dbms_output.put_line('the value after call is : '|| v_1) ;
    18 end;
    19 /
    the value before call is : 100
    outer exception handle
    the value after call is : 100
    It was said that the keyword NOCOPY made the formal parameter recieve the reference of actual parameter.
    my question is : why the value after call is not 150 ?

    Thanks ,jeneesh.
    I have read the article,but there is a different situation.If there is exception-handling part in the inner block,such as
    procedure p_1(parm_1 in out nocopy number) is
    begin
    parm_1 := parm_1 + 50;
    raise program_error ;
    exception
    when others then
    dbms_output.put_line('the value in inter exception is : '|| parm_1) ;
    end p_1;
    it returns :
    the value before call is : 100
    the value in inter exception is : 150
    the value after call is : 150
    So , i put 'raise'
    exception
    when others then
    dbms_output.put_line('the value in inter exception is : '|| parm_1) ;
    raise;
    end p_1;
    it returns
    the value before call is : 100
    the value in inter exception is : 150
    outer exception handle
    the value after call is : 100
    It conflicts with the formal parameter reference-pass,doesn't it?

  • How to catch BCD_OVERFLOW error when passing value to formal parameter?

    Hi,
    catching runtime error BCD_OVERFLOW exception is simple. However, it's not possible to catch this error directly, if it results from assigning too big value to the formal parameter.
    Let's assume simple code with local class lcl_calculator implementing functional method add with two input parameters i_op1 and i_op2 both of type i and result value r_result of type i as well.
    The following code dumps, without the exception being caught:
    DATA:
       lo_calculator TYPE REF TO lcl_calculator,
       l_result TYPE i.
    START-OF-SELECTION.
       TRY.
           CREATE OBJECT lo_calculator.
           l_result = lo_calculator->add(
             i_op1 = 10000000000
             i_op2 = 1 ).
           WRITE:/ l_result.
         CATCH cx_sy_conversion_overflow.
           WRITE:/ 'Error'.
       ENDTRY.
    To solve this, the workaround has to be implemented with checking the values being passed to the method before the actual call is made:
    DATA:
       lo_calculator TYPE REF TO lcl_calculator,
       l_result TYPE i,
       l_op1 TYPE i,
       l_op2 TYPE i.
    START-OF-SELECTION.
       TRY.
           l_op1 = 10000000000.
           l_op2 = 1.      
           CREATE OBJECT lo_calculator.
           l_result = lo_calculator->add(
             i_op1 = l_op1
             i_op2 = l_op2 ).
           WRITE:/ l_result.
         CATCH cx_sy_conversion_overflow.
           WRITE:/ 'Error'.
       ENDTRY.
    It's the same with the function module call, so it's general unit interface issue. Also, using the exception handling related to the CALL METHOD command does not help here as it's not wrong parameter TYPING which causes the error. It's the VALUE of correctly typed parameter that causes the error.
    The CATCH apparently reacts different ways when the assignment is made to the variable and to the formal parameter of the unit. Any idea how to solve the above without using that workaround?
    Thank you
    Michal

    What about using numeric?
    CLASS lcl_calculator DEFINITION.
       PUBLIC SECTION.
         METHODS add IMPORTING i_op1 TYPE numeric i_op2 TYPE numeric RETURNING value(r_sum) TYPE i
                      RAISING cx_sy_conversion_overflow.
    ENDCLASS.                    "lcl_calculator DEFINITION
    CLASS lcl_calculator IMPLEMENTATION.
       METHOD add.
         TRY.
             r_sum = i_op1 + i_op2.
           CATCH cx_sy_arithmetic_overflow.
             RAISE EXCEPTION TYPE cx_sy_conversion_overflow.
         ENDTRY.
       ENDMETHOD.                    "add
    ENDCLASS.                    "lcl_calculator IMPLEMENTATION
    DATA:
        lo_calculator TYPE REF TO lcl_calculator,
        l_result TYPE i.
    START-OF-SELECTION.
       TRY.
           CREATE OBJECT lo_calculator.
           l_result = lo_calculator->add(
             i_op1 = 10000000000
             i_op2 = 1 ).
           WRITE:/ l_result.
         CATCH cx_sy_conversion_overflow.
           WRITE:/ 'Error'.
       ENDTRY.

  • SWN_CREATE_SHORTCUT not working for Unicoded system

    The FM "SWN_CREATE_SHORTCUT" is working fine for a non-unicoded system. While for an unicoded system the shortcut created is not working. Is there any parameter i need to set for an unicoded system or do we have to use another FM for it..?
    *"Create shortcut for transaction ZMSABSR02_NEW.
      CALL FUNCTION 'SWN_CREATE_SHORTCUT'
        EXPORTING
          I_TRANSACTION               = c_tran
          I_SYSID                     = SY-SYSID
          I_CLIENT                    = SY-MANDT
          I_USER                      = SY-UNAME
          I_LANGUAGE                  = SY-LANGU
          I_WINDOWSIZE                = c_window
          I_TITLE                     = c_title2
        IMPORTING
          SHORTCUT_STRING             = w_string
        EXCEPTIONS
          INCONSISTENT_PARAMETERS     = 1
          OTHERS                      = 2.

    Hello,
    I had the same problem today.
    I'm in a unicode system, the "SO_NEW_DOCUMENT_ATT_SEND_API1" FM creates a unicode shortcut that doesn't work fine.
    Solution : Add the following lines to your code:
    DATA: wlt_object_header TYPE TABLE OF solisti1,
          wls_object_header TYPE solisti1.
    REFRESH wlt_object_header.
    CLEAR wls_object_header.
    wls_object_header = '&SO_FORMAT=ASC'.
    APPEND wls_object_header TO wlt_object_header.
    And add the internal table wlt_object_header to the TABLES parameters object_header of the "SO_NEW_DOCUMENT_ATT_SEND_API1" FM call :
      TABLES
        object_header              = wlt_object_header
    Now, the shortcut is non-unicode and works fine.
    For information, my saplogin.ini gives : "DEFAULT_NON_UNICODE".
    Best regards,
    -Olivier-

  • How to install chinese language in sap ecc 6.0 unicode system

    Hi,
        I want to install chinese language in my sap ecc 6.0 unicode system,where i would get chinese language in maraketplace.
    guide me for the same where i have to get chinese language,how to install in sap.
    Thanku

    Hello,
    There must be already some value in zcsa/installed_languages in your instance profile.
    Now in SMLT check the language information for checking the relevant value for chinese language and add this value to the parameter : zcsa/installed_languages
    Regards,
    Siddhesh

Maybe you are looking for

  • Is there any power pivot feature similar to" conditional block " property in cognos reports?

    I have a report with multiple power pivot charts. My requirement is to create a prompt which prompts the user with the list of charts and based on his selection , one of the charts will be displayed at a time. ie, user will have a choice for display

  • HT4356 Epson Artisan 837 will not print from IPhone

    I have an IPhone 5 and an Epson Artisan 837 printer. When I attempt to print from my Ihone 5 I always receive an error message: "out of paper, paper jammed, or incorrect paper size". In reality,it is none of these things. I can print from my IPhone 5

  • HDV just one large mpeg file after capture?

    Hi, i have captured one hour HD Video from a HDV tape into PE8. But then the cature is done it gets only one laaaaarge file. Why doens't the scene dectection works? I have tried to do Auto analyze afterwords but it doesn't work either. One more quest

  • MacBook Pro. 500g, Got a virus. now runs crappy.

    MacBook Pro Don't know my operating system but I updated it very recently, as in within the past two weeks. got a virus about a year ago.  thought we'd "encapsulated" it but machine is running slow and quirky tried running system help on it.  No good

  • Forms testing

    Hello there, We have an application that has lot of forms. We use most buttons of oracle toolbar in all these forms. I was trying to write a regression test plan to test all the forms. Say for example: Form1, click on Search and replace. replaces 2 f