Replacement for the following obsolete function modules..

ADDRESS_GET_NUMBER
ADDRESS_INSERT
ARCHIVOBJECT_PREFETCH

Hello Thilak
The entire package SZA which contains the function group SAD2 with the function modules you mentioned is marked as obsolete.
Most likely these obsolete objects have been replaced by:
- Package: ZSA -> <b>ZSAD</b>
- Function Group SAD2 -> <b>SZA0</b>
- Fm ADDRESS_GET_NUMBER -> <b>ADDR_NUMBER_GET</b>
- Fm ADDRESS_INSERT -> <b>ADDR_INSERT</b>
- Fm ARCHIVOBJECT_PREFETCH -> <i>???</i>
Regards
  Uwe

Similar Messages

  • Tcode for the execution of function module

    Hi!
    A very simple question:
    What is the Tcode for the execution of function module? (Se38,???)
    I have to execute  the function module RRSI_INITIAL_LINE_INSERT with import parameter I_CHABASNM = 0REQUID.
    Thank you very much!
    regards
    Thom

    hi,
    You create new or edit Fm in SE37. You also put the code for that FM in SE37.
    You can call it through pattern button in SE38, where u pass the importing and exporting parameters of that Fm
    Hope this helps, Do rewad.

  • Replacement for fuction CONVERSION_EXIT_ALPHA_INPUT SAP Function module

    hi folks..
    do we have any replacement in terms of codes for the fuction CONVERSION_EXIT_ALPHA_INPUT SAP Function module.. i know the use of this fuction module as it converts data in numeric format to character format which is only accpetable in SAP.. cant we do it manualy using the abap codes.. or else it is the only option to do so????

    Hi Ram,
    I guess Isaac got a little confused, anyways try the below code, forgot to add...just curious to know the reason behind your post...any specific reason why you want to avoid the FMs.
    DATA: l_vbeln TYPE vbeln VALUE '12345',
          l_overlay TYPE vbeln VALUE '0000000000'.
    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
      EXPORTING
        input         = l_vbeln
    IMPORTING
       OUTPUT        = l_vbeln.
    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
      EXPORTING
        input         = l_vbeln
    IMPORTING
       OUTPUT        = l_vbeln.
    * Code to replace Conversion exit alpha input
    SHIFT l_vbeln RIGHT DELETING TRAILING space.
    OVERLAY l_vbeln WITH l_overlay.
    * Code to replace Conversion exit alpha output
    SHIFT l_vbeln LEFT DELETING LEADING '0'.
    IF sy-subrc EQ 0.
    ENDIF.
    Regards,
    Chen
    Edited by: Chen K V on Jun 2, 2011 2:17 PM
    Edited by: Chen K V on Jun 2, 2011 2:18 PM

  • Obsolete function modules

    Hi can you please provide alternate replacement function modules for the following obsolete function modules in ECC.
    LOG_SYSTEM_GET_RFC_DESTINATION
    NAMETAB_GET
    VALUES_GET
    VALUES_DISPLAY
    WS_QUERY
    HELPSCREEN_NA_CREATE

    for WS_QUERY replacement are...
    GUI_GET_DESKTOP_INFO
    GUI_GET_FILE_INFO
    GUI_EXEC
    GUI_RUN
    CL_GUI_FRONTEND_SERVICES=>FILE_EXIST or WS_QUERY-Directory Exist is CL_GUI_FRONTEND_SERVICES=>DIRECTORY_EXIST
    also, check...
    http://help.sap.com/saphelp_46c/helpdata/en/d2/42f955cafe11d1ad0c080009b0fb56/content.htm
    Message was edited by:
            Ramesh Babu Chirumamilla

  • Regarding Obsolete Function Modules

    Hi all,
            can anybody tell me the alternative ECC6.0 function modules of the following Obsolete function modules
    DOWNLOAD
    UPLOAD
    WS_DOWNLOAD
    WS_UPLOAD
    WS_FILENAME_GET
    WS_QUERY
    POPUP_TO_CONFIRM_STEP
    POPUP_TO_CONFIRM_WITH_MESSAGE
    thnks
    Sandeep

    here are replacement function modules for the obsolete ones.
    award points in case u feel this useful
    1. Obsolete Function Module: WS_UPLOAD.
          Replacement FM: GUI_UPLOAD.
    Note:
      1. If the FM ‘WS_UPLOAD' has file type as ASC, then we can use same file    
        type ASC for GUI_UPLOAD also.
    2. But if the FM 'WS_UPLOAD' has file type as DAT, we can not use DAT for  
      'GUI_UPLOAD' as it will give short dump.
        In this case we need use file type as ASC
          and
          HAS_FIELD_SEPARATOR = ‘X’.
    3. If the file name or file type of ws_upload have variables or constants   
        Instead of hard coding, then don’t use hard code values for gui_upload.
    3. The data type of file name always should be of character type for gui_upload
          The file type should be of Type Character and length 10.
      4. Always uncomment the exceptions for gui_upload.
      5. And also uncomment the code inside IF SY-SUBRC <> 0. and ENDIF after    
          gui_upload if the customer has not handled any exception in 46c version.
          If there is any code inside IF SY-SUBRC <> 0 and ENDIF for ws_upload in 46c
          version, Please use the same code in ECC also after gui_upload.
    Example:
       Example for File type ASC:
    CALL FUNCTION 'WS_UPLOAD'
          EXPORTING
               FILENAME                = P_FILE
               FILETYPE                = 'ASC'
         IMPORTING
              FILELENGTH              =
          TABLES
               DATA_TAB                = P_I_DATA
          EXCEPTIONS
               CONVERSION_ERROR        = 1
               FILE_OPEN_ERROR         = 2
               FILE_READ_ERROR         = 3
               INVALID_TABLE_WIDTH     = 4
               INVALID_TYPE            = 5
               NO_BATCH                = 6
               UNKNOWN_ERROR           = 7
               GUI_REFUSE_FILETRANSFER = 8
               CUSTOMER_ERROR          = 9
               OTHERS                  = 10.
    Replacement FM:
    DATA L_P_FILE TYPE STRING.
         L_P_FILE = P_FILE.
    CALL FUNCTION 'GUI_UPLOAD'
      EXPORTING
        FILENAME                      = L_P_FILE
        FILETYPE                      = ‘ASC’
      TABLES
        DATA_TAB                      = P_I_DATA
    EXCEPTIONS
       FILE_OPEN_ERROR               = 1
       FILE_READ_ERROR               = 2
       NO_BATCH                      = 3
       GUI_REFUSE_FILETRANSFER       = 4
       INVALID_TYPE                  = 5
       NO_AUTHORITY                  = 6
       UNKNOWN_ERROR                 = 7
       BAD_DATA_FORMAT               = 8
       HEADER_NOT_ALLOWED            = 9
       SEPARATOR_NOT_ALLOWED         = 10
       HEADER_TOO_LONG               = 11
       UNKNOWN_DP_ERROR              = 12
       ACCESS_DENIED                 = 13
       DP_OUT_OF_MEMORY              = 14
       DISK_FULL                     = 15
       DP_TIMEOUT                    = 16
       OTHERS                        = 17
      IF SY-SUBRC NE 0.
        MESSAGE E033 WITH P_FILE ' could not be opened'(E03).
      ENDIF.
    Example for file type DAT:
    CALL FUNCTION 'WS_UPLOAD'
          EXPORTING
               FILENAME                = P_FILE
               FILETYPE                = 'DAT'
         IMPORTING
              FILELENGTH              =
          TABLES
               DATA_TAB                = P_I_DATA
          EXCEPTIONS
               CONVERSION_ERROR        = 1
               FILE_OPEN_ERROR         = 2
               FILE_READ_ERROR         = 3
               INVALID_TABLE_WIDTH     = 4
               INVALID_TYPE            = 5
               NO_BATCH                = 6
               UNKNOWN_ERROR           = 7
               GUI_REFUSE_FILETRANSFER = 8
               CUSTOMER_ERROR          = 9
               OTHERS                  = 10.
    Replacement FM:
    DATA L_P_FILE TYPE STRING.
         L_P_FILE = P_FILE.
    CALL FUNCTION 'GUI_UPLOAD'
      EXPORTING
        FILENAME                      = L_P_FILE
        FILETYPE                      = ‘ASC’
        HAS_FIELD_SEPARATOR           = ‘X’
      TABLES
        DATA_TAB                      = P_I_DATA
    EXCEPTIONS
       FILE_OPEN_ERROR               = 1
       FILE_READ_ERROR               = 2
       NO_BATCH                      = 3
       GUI_REFUSE_FILETRANSFER       = 4
       INVALID_TYPE                  = 5
       NO_AUTHORITY                  = 6
       UNKNOWN_ERROR                 = 7
       BAD_DATA_FORMAT               = 8
       HEADER_NOT_ALLOWED            = 9
       SEPARATOR_NOT_ALLOWED         = 10
       HEADER_TOO_LONG               = 11
       UNKNOWN_DP_ERROR              = 12
       ACCESS_DENIED                 = 13
       DP_OUT_OF_MEMORY              = 14
       DISK_FULL                     = 15
       DP_TIMEOUT                    = 16
       OTHERS                        = 17
    IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
             WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    Else.
    2. Obsolete FM       : WS_DOWNLOAD
        Replacement FM: GUI_DOWNLOAD.
    Note:
      1. If the FM ‘WS_DOWNLOAD' has file type as ASC, then we can use same file    
        Type ASC for GUI_DOWNLOAD also.
    2. If the FM 'WS_DOWNLOAD' has file type as DAT, we can use DAT for  
      'GUI_DOWNLOAD' 
    3. If the file name or file type of ws_upload have variables or constants   
        Instead of hard coding,then don’t use hard code values for gui_download.
        Declare variables and assign the ws_download variables to new variables  
        and use These in the new FM.
    4. The data type of file name always should be of character type for gui_upload
          The file type should be of Type Character and length 10.
    5. The data type of file name always should be of character type for gui_ download.
      6. Always uncomment the exceptions for gui_download.
      7. And also uncomment the code inside IF SY-SUBRC <> 0. and ENDIF after    
          Gui_upload if the customer has not handled any exception in 46c version.
          If there is any code inside IF SY-SUBRC <> 0 and ENDIF for ws_ download in 
          46c  version, Please use the same code in ECC also after gui_download.
    Example:
    CALL FUNCTION 'WS_DOWNLOAD'
          EXPORTING
               FILENAME            = P_FILENM
               FILETYPE            = 'DAT'       " split into records
          TABLES
               DATA_TAB            = L_ITAB
               FIELDNAMES          = T_HEAD
          EXCEPTIONS
               FILE_OPEN_ERROR     = 01
               FILE_WRITE_ERROR    = 02
               INVALID_FILESIZE    = 03
               INVALID_TABLE_WIDTH = 04
               INVALID_TYPE        = 05
               NO_BATCH            = 06
               UNKNOWN_ERROR       = 07.
    Replacement FM for above FM:
    DATA L_P_FILE TYPE STRING.
         L_P_FILE = P_FILENM.
    CALL FUNCTION 'GUI_DOWNLOAD'
      EXPORTING
       FILENAME                        = L_P_FILE
       FILETYPE                        = ‘DAT’
      TABLES
       DATA_TAB                        = L_ITAB
       FIELDNAMES                      = T_HEAD
    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
       OTHERS                          = 22.
    CALL FUNCTION 'POPUP_TO_CONFIRM_STEP'
    *EXPORTING
    *defaultoption  = 'N'
    *     extline1 = 'Soll das Include überschrieben werden?'(034)
    *     extline2 = i_inc-include
    *     itel     = 'Include existiert bereits!'(039)
    START_COLUMN   = 25
    START_ROW      = 6
    CANCEL_DISPLAY = 'X'
    IMPORTING
    answer = answer
    EXCEPTIONS
    OTHERS = 1.
    Replacement Method :
    DATA : l_question type string.
    Concatenate   'Soll das Include überschrieben werden?'(034)
                  i_inc-include
    into          l_question.
    CALL FUNCTION 'POPUP_TO_CONFIRM'
      EXPORTING
    TITLEBAR = 'Prepack deletion'(019)
    DIAGNOSE_OBJECT = ' '
    TEXT_QUESTION = l_question
    TEXT_BUTTON_1 = 'Yes'(020)
    *ICON_BUTTON_1  = ' '
    TEXT_BUTTON_2  = 'No'(021)
    *ICON_BUTTON_2  = ' '
    *DEFAULT_BUTTON = '2'
    DISPLAY_CANCEL_BUTTON = 'X'
    *USERDEFINED_F1_HELP  = ' '
    *START_COLUMN = 25
    *START_ROW = 6
    *POPUP_TYPE =
    *IV_QUICKINFO_BUTTON_1  = ' '
    *IV_QUICKINFO_BUTTON_2  = ' '
    IMPORTING
       ANSWER = answer
    TABLES
    *PARAMETER =
    EXCEPTIONS
    TEXT_NOT_FOUND = 1
    OTHERS = 2    .
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    Note : 
       In FM  POPUP_TO_CONFIRM_STEP' , the value for import parameter ANSWER is
           J (YES),
           N (NO).
    But for  POPUP_TO_CONFIRM , the value for import parameter ANSWER is
           1 (YES),
           2 (NO).
    So, please change these values accordingly while replacing with the new FM.
       CALL FUNCTION 'POPUP_TO_CONFIRM_WITH_MESSAGE'
            EXPORTING
                 DIAGNOSETEXT1 = TEXT-900
                 DIAGNOSETEXT2 = SY-MSGV1
                 DIAGNOSETEXT3 = TEXT-901
                 TEXTLINE1     = TEXT-902
                 TEXTLINE2     = TEXT-903
                 TITEL         = TEXT-904
            IMPORTING
                 ANSWER        = UP_ANSWER.
    replacement:
    The Diagnose object parameter Z_ZIMPCHK1_POPUP_TO_CONFIRM'
      is created in SE61 transaction as DIALOG TEXT object
        DATA: W_PARAM      TYPE SPAR,
               I_PARAMETERS TYPE STANDARD TABLE OF SPAR,
               W_TEXT_Q     TYPE STRING.
        MOVE TEXT-900   TO W_PARAM-VALUE.
        MOVE 'TEXT1'    TO W_PARAM-PARAM.
        APPEND W_PARAM TO I_PARAMETERS.
        WRITE SY-MSGV1  TO W_PARAM-VALUE.
        MOVE 'TEXT2'    TO W_PARAM-PARAM.
        APPEND W_PARAM TO I_PARAMETERS.
        WRITE TEXT-901  TO W_PARAM-VALUE.
        MOVE 'TEXT3'    TO W_PARAM-PARAM.
        APPEND W_PARAM TO I_PARAMETERS.
        CONCATENATE TEXT-902
                    TEXT-903
                    INTO
                    W_TEXT_Q.
        CALL FUNCTION 'POPUP_TO_CONFIRM'
          EXPORTING
           TITLEBAR                    = TEXT-904
           DIAGNOSE_OBJECT             = 'Z_ZIMPCHK1_POPUP_TO_CONFIRM'
           TEXT_QUESTION               = W_TEXT_Q
         IMPORTING
           ANSWER                      = UP_ANSWER
         TABLES
           PARAMETER                   = I_PARAMETERS
         EXCEPTIONS
           TEXT_NOT_FOUND              = 1
           OTHERS                      = 2
        IF SY-SUBRC <> 0.
         MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                 WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        ENDIF.
    call function 'UPLOAD'
             exporting
                  filename = umsfile
                  filetype = 'ASC'
             tables
                  data_tab = umsatz.
    replacement :
    DATA : I_FILE_TABLE1 TYPE  TABLE OF FILE_TABLE,
           W_FILETABLE1  TYPE  FILE_TABLE,
           W_RC1         TYPE  I,
           W_P_DEF_FILE1 TYPE  STRING,
           W_P_FILE1     TYPE STRING,
           w_usr_act1    TYPE I.
      W_P_DEF_FILE1 = umsfile.
      CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG
           EXPORTING
            WINDOW_TITLE            =
            DEFAULT_EXTENSION       =
              DEFAULT_FILENAME        = W_P_DEF_FILE1
           CHANGING
              FILE_TABLE              = I_FILE_TABLE1
              RC                      = W_RC1
              USER_ACTION             = w_usr_act1
            FILE_ENCODING           =
           EXCEPTIONS
             FILE_OPEN_DIALOG_FAILED = 1
             CNTL_ERROR              = 2
             ERROR_NO_GUI            = 3
             NOT_SUPPORTED_BY_GUI    = 4
             others                  = 5      .
    IF sy-subrc = 0
          AND w_usr_act <>
          CL_GUI_FRONTEND_SERVICES=>ACTION_CANCEL.
         LOOP AT I_FILE_TABLE1  INTO W_FILETABLE1.
            W_P_FILE1 = W_FILETABLE1.
            EXIT.
          ENDLOOP.
      CALL FUNCTION 'GUI_UPLOAD'
        EXPORTING
          FILENAME                      = W_P_FILE1
         FILETYPE                      = 'ASC'
        TABLES
          DATA_TAB                      = umsatz
       EXCEPTIONS
         FILE_OPEN_ERROR               = 1
         FILE_READ_ERROR               = 2
         NO_BATCH                      = 3
         GUI_REFUSE_FILETRANSFER       = 4
         INVALID_TYPE                  = 5
         NO_AUTHORITY                  = 6
         UNKNOWN_ERROR                 = 7
         BAD_DATA_FORMAT               = 8
         HEADER_NOT_ALLOWED            = 9
         SEPARATOR_NOT_ALLOWED         = 10
         HEADER_TOO_LONG               = 11
         UNKNOWN_DP_ERROR              = 12
         ACCESS_DENIED                 = 13
         DP_OUT_OF_MEMORY              = 14
         DISK_FULL                     = 15
         DP_TIMEOUT                    = 16
         OTHERS                        = 17
      IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDIF.
      CALL FUNCTION 'DOWNLOAD'
               EXPORTING
               BIN_FILESIZE            = ' '
               CODEPAGE                = ' '
                    FILENAME                = PT_FILE
                    FILETYPE                = 'DAT'
               ITEM                    = ' '
               MODE                    = ' '
               WK1_N_FORMAT            = ' '
               WK1_N_SIZE              = ' '
               WK1_T_FORMAT            = ' '
               WK1_T_SIZE              = ' '
               FILEMASK_MASK           = ' '
               FILEMASK_TEXT           = ' '
               FILETYPE_NO_CHANGE      = ' '
               FILEMASK_ALL            = ' '
               FILETYPE_NO_SHOW        = ' '
               SILENT                  = 'S'
               COL_SELECT              = ' '
               COL_SELECTMASK          = ' '
               NO_AUTH_CHECK           = ' '
          IMPORTING
               ACT_FILENAME            =
               ACT_FILETYPE            =
               FILESIZE                =
               CANCEL                  =
               TABLES
                    DATA_TAB                = BELEGE
               FIELDNAMES              =
               EXCEPTIONS
                    INVALID_FILESIZE        = 1
                    INVALID_TABLE_WIDTH     = 2
                    INVALID_TYPE            = 3
                    NO_BATCH                = 4
                    UNKNOWN_ERROR           = 5
                    GUI_REFUSE_FILETRANSFER = 6
                    OTHERS                  = 7.
    replacement:
    DATA: l_filename    TYPE string,
           l_filen       TYPE string,
           l_path        TYPE string,
           l_fullpath    TYPE string,
           l_usr_act     TYPE I.
    l_filename = PT_FILE.
    CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_SAVE_DIALOG
      EXPORTING
        DEFAULT_FILE_NAME    = l_filename
      CHANGING
        FILENAME             = l_filen
        PATH                 = l_path
        FULLPATH             = l_fullpath
        USER_ACTION          = l_usr_act
      EXCEPTIONS
        CNTL_ERROR           = 1
        ERROR_NO_GUI         = 2
        NOT_SUPPORTED_BY_GUI = 3
        others               = 4.
    IF sy-subrc = 0
          AND l_usr_act <>
          CL_GUI_FRONTEND_SERVICES=>ACTION_CANCEL.
    CALL FUNCTION 'GUI_DOWNLOAD'
      EXPORTING
      BIN_FILESIZE                    =
        FILENAME                        = l_fullpath
       FILETYPE                        = 'DAT'
      TABLES
        DATA_TAB                        = BELEGE
      FIELDNAMES                      =
    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
       OTHERS                          = 22
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    ENDIF.

  • Replacement of Obsolete Function Modules MATNR_BAPI_CONV_FROM_EXTERNAL

    Hello Friends ,
    I am working in Upgradation project. I come across Two Obsolete Function Modules which i need replace.
                  1)   MATNR_BAPI_CONV_FROM_EXTERNAL
                 2)     MATNR_CONV_RANGES_3
    Please help me in getting replacement of these two Obsolete Function Modules .
    Awaiting your reply.
    Thank you .
    Regards,
    Kiran...

    Hi Saravanan,
    Thanks alot for givning the answer. but how do i select the suitable function modules for the two obsolete FMs.
    MATNR_BAPI_CONV_FROM_EXTERNAL
    MATNR_CONV_RANGES_3
    Thank you.
    Regards,
    Kiran.

  • Replacement for these Obsolete Function Modules

    Hi,
      Can anyone tell me the replacement for these Obsolete Function Modules .
    1) K_BUSINESS_PROCESS_READ
    2) HELP_VALUES_GET_WITH_TABLE_EXT
    3) G_SET_AVAILABLE
    Regards,
    Arun

    hi check thes for any function modeules...
    http://www.erpgenie.com/abap/functions.htm
    http://www.sap-img.com/abap/function-list.htm
    regards,
    venkat.

  • Replacements for obsolete function modules

    Hi,
    What is the best way to find out the replacement for the obsolete function modules? We are starting an upgrade project and are required to replace the obsolete function modules used in that. So before starting that I want to keep a list of obsolete function modules and their replacements ready.
    SS

    Hi,
    RODIR table gives not only FM, all obsoletes types.
    if you dont find, best way is when we check EPC for the program,
    in call function interface warnings shows, obsolete function modules.
    or do UCCHECK it will both obsolete and suggested replacements.
    Thanks
    Vinod

  • Function modules for the following

    Hi,
    I want to know the function modules for the following purposes.
    1) Check whether a date is valid or not
    2) Calculate the no of days between two dates.
    Expecting an early response.
    Thanks n Regards,
    Amit

    Hi,
    PARAMETERS: p_list LIKE t009b-bumon AS LISTBOX
                         VISIBLE LENGTH 11 OBLIGATORY ,
                p_list1 LIKE t009b-bdatj OBLIGATORY.
    SELECTION-SCREEN POSITION POS_HIGH.
    PARAMETERS: p_list2 LIKE t009b-bumon AS LISTBOX
                          VISIBLE LENGTH 11 OBLIGATORY,
                p_list3 LIKE t009b-bdatj OBLIGATORY.
    Calling Function Module for calculating no of days between the
    selected period
        CALL FUNCTION 'NUMBER_OF_DAYS_PER_MONTH_GET'
             EXPORTING
                  par_month = p_list
                  par_year  = p_list1
             IMPORTING
                  par_days  = ws_n_days.
        CALL FUNCTION 'NUMBER_OF_DAYS_PER_MONTH_GET'
             EXPORTING
                  par_month = p_list2
                  par_year  = p_list3
             IMPORTING
                  par_days  = ws_n_days1.
    For Concatenating the month and year into the date format
        CONCATENATE  p_list1  p_list ws_i INTO ws_c_date1.
        CONCATENATE p_list3  p_list2 ws_n_days1 INTO ws_c_date2.
      date = ws_c_date1 - ws_c_date2.
    In the above sample code the selection screen has month and year as input.
    Also check this link
    http://www.sapdevelopment.co.uk/tips/date/datehome.htm
    Check FM
    <b>RP_CALC_DATE_IN_INTERVAL</b> Add/subtract years/months/days from a date
    <b>SD_DATETIME_DIFFERENCE</b> Give the difference in Days and Time for 2 dates
    <b>Also for checking valid date:</b>
    U can specify the date field as
    Select-options:  s_date like likp-date(similar to ur requirement)
    This itself ceck for the valid date no seperate validation needed.
    Thanks & Regards,
    Judith.

  • A replacement for the Quicksort function in the C++ library

    Hi every one,
    I'd like to introduce and share a new Triple State Quicksort algorithm which was the result of my research in sorting algorithms during the last few years. The new algorithm reduces the number of swaps to about two thirds (2/3) of classical Quicksort. A multitude
    of other improvements are implemented. Test results against the std::sort() function shows an average of 43% improvement in speed throughout various input array types. It does this by trading space for performance at the price of n/2 temporary extra spaces.
    The extra space is allocated automatically and efficiently in a way that reduces memory fragmentation and optimizes performance.
    Triple State Algorithm
    The classical way of doing Quicksort is as follows:
    - Choose one element p. Called pivot. Try to make it close to the median.
    - Divide the array into two parts. A lower (left) part that is all less than p. And a higher (right) part that is all greater than p.
    - Recursively sort the left and right parts using the same method above.
    - Stop recursion when a part reaches a size that can be trivially sorted.
     The difference between the various implementations is in how they choose the pivot p, and where equal elements to the pivot are placed. There are several schemes as follows:
    [ <=p | ? | >=p ]
    [ <p | >=p | ? ]
    [ <=p | =p | ? | >p ]
    [ =p | <p | ? | >p ]  Then swap = part to middle at the end
    [ =p | <p | ? | >p | =p ]  Then swap = parts to middle at the end
    Where the goal (or the ideal goal) of the above schemes (at the end of a recursive stage) is to reach the following:
    [ <p | =p | >p ]
    The above would allow exclusion of the =p part from further recursive calls thus reducing the number of comparisons. However, there is a difficulty in reaching the above scheme with minimal swaps. All previous implementation of Quicksort could not immediately
    put =p elements in the middle using minimal swaps, first because p might not be in the perfect middle (i.e. median), second because we don’t know how many elements are in the =p part until we finish the current recursive stage.
    The new Triple State method first enters a monitoring state 1 while comparing and swapping. Elements equal to p are immediately copied to the middle if they are not already there, following this scheme:
    [ <p | ? | =p | ? | >p ]
    Then when either the left (<p) part or the right (>p) part meet the middle (=p) part, the algorithm will jump to one of two specialized states. One state handles the case for a relatively small =p part. And the other state handles the case for a relatively
    large =p part. This method adapts to the nature of the input array better than the ordinary classical Quicksort.
    Further reducing number of swaps
    A typical quicksort loop scans from left, then scans from right. Then swaps. As follows:
    while (l<=r)
    while (ar[l]<p)
    l++;
    while (ar[r]>p)
    r--;
    if (l<r)
    { Swap(ar[l],ar[r]);
    l++; r--;
    else if (l==r)
    { l++; r--; break;
    The Swap macro above does three copy operations:
    Temp=ar[l]; ar[l]=ar[r]; ar[r]=temp;
    There exists another method that will almost eliminate the need for that third temporary variable copy operation. By copying only the first ar[r] that is less than or equal to p, to the temp variable, we create an empty space in the array. Then we proceed scanning
    from left to find the first ar[l] that is greater than or equal to p. Then copy ar[r]=ar[l]. Now the empty space is at ar[l]. We scan from right again then copy ar[l]=ar[r] and continue as such. As long as the temp variable hasn’t been copied back to the array,
    the empty space will remain there juggling left and right. The following code snippet explains.
    // Pre-scan from the right
    while (ar[r]>p)
    r--;
    temp = ar[r];
    // Main loop
    while (l<r)
    while (l<r && ar[l]<p)
    l++;
    if (l<r) ar[r--] = ar[l];
    while (l<r && ar[r]>p)
    r--;
    if (l<r) ar[l++] = ar[r];
    // After loop finishes, copy temp to left side
    ar[r] = temp; l++;
    if (temp==p) r--;
    (For simplicity, the code above does not handle equal values efficiently. Refer to the complete code for the elaborate version).
    This method is not new, a similar method has been used before (read: http://www.azillionmonkeys.com/qed/sort.html)
    However it has a negative side effect on some common cases like nearly sorted or nearly reversed arrays causing undesirable shifting that renders it less efficient in those cases. However, when used with the Triple State algorithm combined with further common
    cases handling, it eventually proves more efficient than the classical swapping approach.
    Run time tests
    Here are some test results, done on an i5 2.9Ghz with 6Gb of RAM. Sorting a random array of integers. Each test is repeated 5000 times. Times shown in milliseconds.
    size std::sort() Triple State QuickSort
    5000 2039 1609
    6000 2412 1900
    7000 2733 2220
    8000 2993 2484
    9000 3361 2778
    10000 3591 3093
    It gets even faster when used with other types of input or when the size of each element is large. The following test is done for random large arrays of up to 1000000 elements where each element size is 56 bytes. Test is repeated 25 times.
    size std::sort() Triple State QuickSort
    100000 1607 424
    200000 3165 845
    300000 4534 1287
    400000 6461 1700
    500000 7668 2123
    600000 9794 2548
    700000 10745 3001
    800000 12343 3425
    900000 13790 3865
    1000000 15663 4348
    Further extensive tests has been done following Jon Bentley’s framework of tests for the following input array types:
    sawtooth: ar[i] = i % arange
    random: ar[i] = GenRand() % arange + 1
    stagger: ar[i] = (i* arange + i) % n
    plateau: ar[i] = min(i, arange)
    shuffle: ar[i] = rand()%arange? (j+=2): (k+=2)
    I also add the following two input types, just to add a little torture:
    Hill: ar[i] = min(i<(size>>1)? i:size-i,arange);
    Organ Pipes: (see full code for details)
    Where each case above is sorted then reordered in 6 deferent ways then sorted again after each reorder as follows:
    Sorted, reversed, front half reversed, back half reversed, dithered, fort.
    Note: GenRand() above is a certified random number generator based on Park-Miller method. This is to avoid any non-uniform behavior in C++ rand().
    The complete test results can be found here:
    http://solostuff.net/tsqsort/Tests_Percentage_Improvement_VC++.xls
    or:
    https://docs.google.com/spreadsheets/d/1wxNOAcuWT8CgFfaZzvjoX8x_WpusYQAlg0bXGWlLbzk/edit?usp=sharing
    Theoretical Analysis
    A Classical Quicksort algorithm performs less than 2n*ln(n) comparisons on the average (check JACEK CICHON’s paper) and less than 0.333n*ln(n) swaps on the average (check Wild and Nebel’s paper). Triple state will perform about the same number of comparisons
    but with less swaps of about 0.222n*ln(n) in theory. In practice however, Triple State Quicksort will perform even less comparisons in large arrays because of a new 5 stage pivot selection algorithm that is used. Here is the detailed theoretical analysis:
    http://solostuff.net/tsqsort/Asymptotic_analysis_of_Triple_State_Quicksort.pdf
    Using SSE2 instruction set
    SSE2 uses the 128bit sized XMM registers that can do memory copy operations in parallel since there are 8 registers of them. SSE2 is primarily used in speeding up copying large memory blocks in real-time graphics demanding applications.
    In order to use SSE2, copied memory blocks have to be 16byte aligned. Triple State Quicksort will automatically detect if element size and the array starting address are 16byte aligned and if so, will switch to using SSE2 instructions for extra speedup. This
    decision is made only once when the function is called so it has minor overhead.
    Few other notes
    - The standard C++ sorting function in almost all platforms religiously takes a “call back pointer” to a comparison function that the user/programmer provides. This is obviously for flexibility and to allow closed sourced libraries. Triple State
    defaults to using a call back function. However, call back functions have bad overhead when called millions of times. Using inline/operator or macro based comparisons will greatly improve performance. An improvement of about 30% to 40% can be expected. Thus,
    I seriously advise against using a call back function when ever possible. You can disable the call back function in my code by #undefining CALL_BACK precompiler directive.
    - Like most other efficient implementations, Triple State switches to insertion sort for tiny arrays, whenever the size of a sub-part of the array is less than TINY_THRESH directive. This threshold is empirically chosen. I set it to 15. Increasing this
    threshold will improve the speed when sorting nearly sorted and reversed arrays, or arrays that are concatenations of both cases (which are common). But will slow down sorting random or other types of arrays. To remedy this, I provide a dual threshold method
    that can be enabled by #defining DUAL_THRESH directive. Once enabled, another threshold TINY_THRESH2 will be used which should be set lower than TINY_THRESH. I set it to 9. The algorithm is able to “guess” if the array or sub part of the array is already sorted
    or reversed, and if so will use TINY_THRESH as it’s threshold, otherwise it will use the smaller threshold TINY_THRESH2. Notice that the “guessing” here is NOT fool proof, it can miss. So set both thresholds wisely.
    - You can #define the RANDOM_SAMPLES precompiler directive to add randomness to the pivoting system to lower the chances of the worst case happening at a minor performance hit.
    -When element size is very large (320 bytes or more). The function/algorithm uses a new “late swapping” method. This will auto create an internal array of pointers, sort the pointers array, then swap the original array elements to sorted order using minimal
    swaps for a maximum of n/2 swaps. You can change the 320 bytes threshold with the LATE_SWAP_THRESH directive.
    - The function provided here is optimized to the bone for performance. It is one monolithic piece of complex code that is ugly, and almost unreadable. Sorry about that, but inorder to achieve improved speed, I had to ignore common and good coding standards
    a little. I don’t advise anyone to code like this, and I my self don’t. This is really a special case for sorting only. So please don’t trip if you see weird code, most of it have a good reason.
    Finally, I would like to present the new function to Microsoft and the community for further investigation and possibly, inclusion in VC++ or any C++ library as a replacement for the sorting function.
    You can find the complete VC++ project/code along with a minimal test program here:
    http://solostuff.net/tsqsort/
    Important: To fairly compare two sorting functions, both should either use or NOT use a call back function. If one uses and another doesn’t, then you will get unfair results, the one that doesn’t use a call back function will most likely win no matter how bad
    it is!!
    Ammar Muqaddas

    Thanks for your interest.
    Excuse my ignorance as I'm not sure what you meant by "1 of 5" optimization. Did you mean median of 5 ?
    Regarding swapping pointers, yes it is common sense and rather common among programmers to swap pointers instead of swapping large data types, at the small price of indirect access to the actual data through the pointers.
    However, there is a rather unobvious and quite terrible side effect of using this trick. After the pointer array is sorted, sequential (sorted) access to the actual data throughout the remaining of the program will suffer heavily because of cache misses.
    Memory is being accessed randomly because the pointers still point to the unsorted data causing many many cache misses, which will render the program itself slow, although the sort was fast!!.
    Multi-threaded qsort is a good idea in principle and easy to implement obviously because qsort itself is recursive. The thing is Multi-threaded qsort is actually just stealing CPU time from other cores that might be busy running other apps, this might slow
    down other apps, which might not be ideal for servers. The thing researchers usually try to do is to do the improvement in the algorithm it self.
    I Will try to look at your sorting code, lets see if I can compile it.

  • [svn:bz-trunk] 20970: Add or enhance include functionality for the following configuration elements :

    Revision: 20970
    Revision: 20970
    Author:   [email protected]
    Date:     2011-03-25 14:26:37 -0700 (Fri, 25 Mar 2011)
    Log Message:
    Add or enhance include functionality for the following configuration elements:
    - Adapters
    - Channel definitions
    - Security Constraints
    - Destinations
    - Services
    The following elements are now allowed and can specify either the "file-path" attribute or the "directory-path" attribute.
    The "directory-path" attribute references a directory of XML files (names ending in .xml) that will be treated as a sequence of include files.
    Added unit tests for all the above.
    Fixed a bug in the unit test code that was terminating the verification early.
    Add the confirmation of the security constraints at the top level.
    Updated the example config file with usage examples.
    Modified Paths:
        blazeds/trunk/modules/common/src/flex/messaging/config/ClientConfigurationParser.java
        blazeds/trunk/modules/common/src/flex/messaging/config/ConfigurationConstants.java
        blazeds/trunk/modules/common/src/flex/messaging/errors.properties
        blazeds/trunk/modules/core/src/flex/messaging/config/SecuritySettings.java
        blazeds/trunk/modules/core/src/flex/messaging/config/ServerConfigurationParser.java
        blazeds/trunk/modules/core/test/src/flex/messaging/config/ConfigurationConfirmation.java
        blazeds/trunk/modules/core/test/src/flex/messaging/config/services/1c.xml
        blazeds/trunk/modules/core/test/src/flex/messaging/config/services/1e.xml
        blazeds/trunk/modules/core/test/src/flex/messaging/config/services/1e_destination_include .xml
        blazeds/trunk/modules/core/test/src/flex/messaging/config/services/1f_service_include.xml
        blazeds/trunk/modules/core/test/src/flex/messaging/config/services/Confirm1c.java
    Added Paths:
        blazeds/trunk/modules/core/test/src/flex/messaging/config/services/1e_adapter_include.xml
        blazeds/trunk/modules/core/test/src/flex/messaging/config/services/1e_channel_include.xml
        blazeds/trunk/modules/core/test/src/flex/messaging/config/services/1e_constraint_include. xml
        blazeds/trunk/modules/core/test/src/flex/messaging/config/services/1i.xml
        blazeds/trunk/modules/core/test/src/flex/messaging/config/services/1j.xml
        blazeds/trunk/modules/core/test/src/flex/messaging/config/services/Confirm1i.java
        blazeds/trunk/modules/core/test/src/flex/messaging/config/services/Confirm1j.java

    SDN is the place to discuss technical problems..
    Please avoid such weird post.
    G@urav.

  • How to find the Obsolete function module in ECC 6.0

    Hi Guys,
    How we can find the all obsolete function in ECC 6.0, is any T-code to finding the obsolete function modules, or any other way to find.
    Could you please help me.
    Thanks,
    Gourisankar.

    Hi Gouri,
    If you are looking at determining whether a single FM is obsolete or not is by this method:
    Go to FM in SE37 -> Goto Attributes Tab -> General Data section -> look above the Edit Lock field ... where SAP places the release status and date of the FM, if the FM is obsolete, the text Function Obsolete appears
    This is one way of finding out one FM @ a time
    However if you want to check on a mass scale, I dont have a SAP system here hence cant confirm, however, all FMs are stored in TFDIR database table. Please scroll through the fields of the DB table to check whether any field relates to release status or the like. If it does, then from SE16, you can put the value corresponding to "Obsolete" in the field and run to check all FMs.
    Cheers,
    Aditya

  • How to get the "last changed by" for a set of function modules?

    How to get the "last changed by" for a set of function modules?
    is there any table to get it??

    See [this|Re: Date of creation of function module] I posted earlier.
    >TFDIR will give you the name of the function group program and the include number.
    >E.g. SAPLZFUNCGROUP Include 01.
    >From this you can construct the include name: LZFUNCGROUPU01.
    >You can look this up in TRDIR to find the creation date (CDAT) of the function module.
    In your case, you need unam and udat.
    matt

  • How to find out the Area Menu for a Report/ Table/Function Module

    Hi,
    Is there any procedure to find out the <b>"AREA MEANU"</b> for a Report/Table/Function Module...
    Or is there any Transaction code / Report is available to find out all the report for a particular "AREA MENU".
    Thank you for your quick response...
    Regards,
    Thiru
    <b></b>

    Hi,
    Check these below threads:
    user log in & log out time SAO
    How to find user log-out time ?
    Regards,
    Nitin

  • Obsolete function module in ECC6 - what to use instead of that

    I have to upgrade from SAP 4.7 to ECC6 .
    Some obsolete function module are as follows:
    ADDRESS_MAINTAIN
    ADDRESS_UPDATE_OLD
    DD_PR_REDEFINE
    GRAPH_DIALOG
    HELPSCREEN_NA_CREATE
    Can anybody assist me which function module to use in place of this function module or which class methods to be used instead of these function modules ?
    Thanks...

    Hi Deepak,
    For ADDRESS_MAINTAIN you can go this way for now.
    DATA : func_name TYPE rs38l_fnam.
    func_name = 'ADDRESS_MAINTAIN'. "To escape the EPC Check
        DO.
          CALL FUNCTION func_name
            EXPORTING
              adrswa_in         = sadr
              processing_status = mode
              kennzeichen       = kz
              save_intern       = 'X'
              title             = am_title
            IMPORTING
              adrswa_out        = sadr
              returncode        = return
              update_flag       = am_save
            EXCEPTIONS
              not_found         = 4.
    we haven't found any replacement for this. so doing it this way.
    ADDRESS_UPDATE_OLD - No Replacement for this.
    DD_PR_REDEFINE - No Replacement for this.
    GRAPH_DIALOG - No Replacement for this.
    All the Above 3 FMs are still being used in ECC standard programs.
    Thanks,
    Sai
    Edited by: Sai Krishna Kowluri on Dec 5, 2008 7:34 AM
    Edited by: Sai Krishna Kowluri on Dec 5, 2008 7:37 AM

Maybe you are looking for

  • My apple tv keeps restarting

    I have checked my cables and replaced them but it still keep restarting. I also tried restore the software and it's still the same. Anybody have encounter this?

  • Windows requirement

    I have windows ME. can i use a ipd mini with this? i can't download the cd on my computer.

  • Barcode using flash - Denes, Pavel's examples use SVG, not flash

    Has anyone tried creating barcode using flash charts available in Apex ? I came across 2 examples, which are given below. These examples use SVG, but SVG is being retired by Adobe Denes Kubicek: Barcode ??? Pavel MAREK: Re: Barcodes in HTMLDB - solve

  • My Applications Icons are not Show

    My applications Icons are no showing on some of the applications, like Bridge, Audition, Encore, Prelude, After the instalation with the Adobe Application Manager from Adobe Creative Cloud. Im using a My Configuration Windows 7 Ultimate 64bits Intel

  • CT5508 for two networks

    Hello Following customer request/desire I am exploring a "strange" CT5508 config. Before diving in to it deeply I would like to know if my idea is possible at all. This is what I need to start from: 1. Network is divided in two pieces , let's say "LE