4 Replies Latest reply: May 7, 2008 2:58 PM by Manali Subhedar RSS

Unicode Compliant: Sample test plan

Manali Subhedar
Currently Being Moderated

We are trying to make all Z objects Unicode compliant in Non-Unicode system.

 

After checking Unicode flag in program attributes, what are the important points which any developer should check to make sure changes are working Ok

  • Re: Unicode Compliant: Sample test plan
    Uwe Schieferstein
    Currently Being Moderated

    Hello Manali

     

    You need to run transaction UCCHECK (SAP release >= 6.20) and remove all errors displayed with a red LED.

     

    Warnings (yellow LED) may be corrected as well but usually there are so many of them that you do not have the time to remove them.

     

    You need to test the ABAP file interface (OPEN DATASET) very carefully because it makes a difference whether you open or write a file as UTF-8 / NON-UTF-8 on Unicode / non-Unicode system.

     

    Further reading: [SAP Network Blog: Unicode File Handling in ABAP|/people/ulrich.brink/blog/2005/08/18/unicode-file-handling-in-abap]

     

     

    Regards

      Uwe

  • Re: Unicode Compliant: Sample test plan
    Peter Knight
    Currently Being Moderated

    Off the top of my head... (ok not really, I did a little looking back at old code)

    -"Open Dataset" needs the "encoding" statement added to it. Like

     

    OPEN  DATASET F_FILELIST FOR INPUT IN TEXT MODE encoding default.

     

    -Anywhere where you have inserted a carriage return/Line feed could need attention. Like....

    data: v_cr(1) type c.   "Carrage return = '0D'
    FORM get_CR_character .
      data: f_cr_hex(5) type c value ''.
    * Unicode/4.7 Upgrade Fix 21/9/2005
      CALL FUNCTION 'STPU1_HEX_TO_CHAR'
        EXPORTING
          HEX_STRING       = '\X\0D'      "Carrage return
        IMPORTING
          CHAR_STRING       = f_cr_hex.
      v_cr = f_cr_hex.
    ENDFORM.                    " get_CR_character

     

    -Closing files that didn't open properly

       

    OPEN DATASET V_DEV_NULL FOR OUTPUT FILTER V_COMMAND in text mode encoding default.
      IF SY-SUBRC <> 0.
        RAISE WORKFILE_DELETE_ERROR.
      ENDIF.
    * Unicode/4.7 Upgrade Fix 
    * Added the TRY/CATCH as now if there are no files to process,
    * then core dumps when it tries to CLOSE it
      try.
        CLOSE DATASET V_DEV_NULL.
        catch CX_SY_FILE_CLOSE.
      endtry.

     

     

    -Describe statements

    DESCRIBE FIELD IT_DATA_MEDIUM LENGTH F_MEDIUM_SIZE in character mode.

     

     

    -Structure assigning (or overlaying)

    * Unicode/4.7 Upgrade Fix 
    field-symbols: <G_FROM_STRUCT> type x.
    field-symbols: <G_TO_STRUCT>   type x.
    *  F_RECORD = IT_RAW.
      assign IT_RAW           to <G_FROM_STRUCT> casting.
      assign F_RECORD         to <G_TO_STRUCT>   casting.
      <G_TO_STRUCT> =  <G_FROM_STRUCT>.

     

    -Tab characters

    CONSTANTS:  c_delimiter TYPE c VALUE cl_abap_char_utilities=>horizontal_tab.

     

    -Substring commands can cause issues

     

    -Function Module WS_UPLOAD and WS_DOWNLOAD changed to GUI_UPLOAD and GUI_DOWNLOAD

  • Re: Unicode Compliant: Sample test plan
    Manali Subhedar
    Currently Being Moderated

    Thanks for all these suggestion..

    -We did UCCheck

    -Complied all list

    -Made required changes in development

    -Now we have to check Unicode flag and test program.

     

    I am trying to come up with generic test script which will be applicable to most of the ABAP..

     

    I was thinking of dividing testing in following categories..

    -Interface

         *Inbound

         *Outbound

     

    -Function Group

    -Class/Methods

    -Reports

    -User exits / enhancements and bolt-ons

    -BSPs

     

     

    As suggested by you for interfaces it is important to test

    -open/close data set is functioning as per expectation

    -Describe is length is returning right count etc

     

    I want to understand, excluding above, are there any important steps which should be included in test script.

Actions