Techniques in ABAP program

What are the techniques involved in using SAP supplied programs? do you prefer to write your own programs to load master data? why ?

Chandru,
<i>What are the techniques involved in using SAP supplied programs?</i>
The above question is not clear,what actually you are looking for.
<i>Do you prefer to write your own programs to load master data? why ?</i>
To load transaction data we can use LSMW,SCATT,BDC or BAPI.
BDC is mostly used when uploading data is w.r.t some validations.If it is just a simple upload then we can use LSMW or SCATT.If a BAPI is available then it is the best way to upload data.
K.Kiran.

Similar Messages

  • How to check whether a batch input session is completed in ABAP program

    I have created a ABAP program to create a batch input session (reference to RSBDCSUB). After the creation of the batch input session, I kick it to start and read the execution log. However, sometimes I cannot read anything from the execution log as the execution of the batch input is a synchronized process to the execution of my program, i.e. at the time being that I try to read the log of a particular transaction, that transaction is being processing / haven't start processing.
    How can I check whether a batch input session is completed in the program?
    The code that corresponding to the triggering of batch input session:
    SUBMIT (SUBREPORT)
       USER MTAB-USERID
       VIA JOB MTAB-GROUPID
       NUMBER JNUMB
       WITH QUEUE_ID  EQ MTAB-QID
       WITH MAPPE     EQ MTAB-GROUPID
       WITH MODUS     EQ 'N'
       WITH LOGALL    EQ LMODUS
    Or is there any method to wait here until the process is completed before further processing?

    Hi gundam,
    1. Or is there any method to wait here until the process is completed before further processing?
    There is no such direct method to wait.
    2. Immediately after submitting in background,
       we cannot wait
      neither can we LOOP and go on detecting
      whether the b/g process has completed or not !
    3. To over come such problems,
      we have to use another technique.
    4. we have to submit another
       job which will get triggered
       on event SAP_END_OF_JOB
       ie. when the original job will finish,
      our new job will AUTOMATICALLY get triggered,
    5. This new job / program
       will do the FURTHER actions !
    regards,
    amit m.

  • Performance issue in abap program

    hi,
    how can we improve the performance of  abap program

    hi,
    read the follwing links
    ABAP provides few tools to analyse the perfomance of the objects, which was developed by us.
    Run time analysis transaction SE30
    This transaction gives all the analysis of an ABAP program with respect to the database and the non-database processing.
    SQL Trace transaction ST05
    by using this tool we can analyse the perfomance issues related to DATABASE calls.
    Perfomance Techniques for improve the perfomance of the object.
    1) ABAP/4 programs can take a very long time to execute, and can make other processes have to wait before executing. Here are some tips to speed up your programs and reduce the load your programs put on the system:
    2) Use the GET RUN TIME command to help evaluate performance. It's hard to know whether that optimization technique REALLY helps unless you test it out.
    3) Using this tool can help you know what is effective, under what kinds of conditions. The GET RUN TIME has problems under multiple CPUs, so you should use it to test small pieces of your program, rather than the whole program.
    4) Generally, try to reduce I/O first, then memory, then CPU activity. I/O operations that read/write to hard disk are always the most expensive operations. Memory, if not controlled, may have to be written to swap space on the hard disk, which therefore increases your I/O read/writes to disk. CPU activity can be reduced by careful program design, and by using commands such as SUM (SQL) and COLLECT (ABAP/4).
    5) Avoid 'SELECT *', especially in tables that have a lot of fields. Use SELECT A B C INTO instead, so that fields are only read if they are used. This can make a very big difference.
    6) Field-groups can be useful for multi-level sorting and displaying. However, they write their data to the system's paging space, rather than to memory (internal tables use memory). For this reason, field-groups are only appropriate for processing large lists (e.g. over 50,000 records). If you have large lists, you should work with the systems administrator to decide the maximum amount of RAM your program should use, and from that, calculate how much space your lists will use. Then you can decide whether to write the data to memory or swap space.
    Use as many table keys as possible in the WHERE part of your select statements.
    7)Whenever possible, design the program to access a relatively constant number of records (for instance, if you only access the transactions for one month, then there probably will be a reasonable range, like 1200-1800, for the number of transactions inputted within that month). Then use a SELECT A B C INTO TABLE ITAB statement.
    8) Get a good idea of how many records you will be accessing. Log into your productive system, and use SE80 -> Dictionary Objects (press Edit), enter the table name you want to see, and press Display. Go To Utilities -> Table Contents to query the table contents and see the number of records. This is extremely useful in optimizing a program's memory allocation.
    9) Try to make the user interface such that the program gradually unfolds more information to the user, rather than giving a huge list of information all at once to the user.
    10) Declare your internal tables using OCCURS NUM_RECS, where NUM_RECS is the number of records you expect to be accessing. If the number of records exceeds NUM_RECS, the data will be kept in swap space (not memory).
    11) Use SELECT A B C INTO TABLE ITAB whenever possible. This will read all of the records into the itab in one operation, rather than repeated operations that result from a SELECT A B C INTO ITAB... ENDSELECT statement. Make sure that ITAB is declared with OCCURS NUM_RECS, where NUM_RECS is the number of records you expect to access.
    12) If the number of records you are reading is constantly growing, you may be able to break it into chunks of relatively constant size. For instance, if you have to read all records from 1991 to present, you can break it into quarters, and read all records one quarter at a time. This will reduce I/O operations. Test extensively with GET RUN TIME when using this method.
    13) Know how to use the 'collect' command. It can be very efficient.
    14) Use the SELECT SINGLE command whenever possible.
    15) Many tables contain totals fields (such as monthly expense totals). Use these avoid wasting resources by calculating a total that has already been calculated and stored.
    Some tips:
    1) Use joins where possible as redundant data is not fetched.
    2) Use select single where ever possible.
    3) Calling methods of a global class is faster than calling function modules.
    4) Use constants instead of literals
    5) Use WHILE instead of a DO-EXIT-ENDDO.
    6) Unnecessary MOVEs should be avoided by using the explicit work area operations
    see the follwing links for a brief insifght into performance tuning,
    http://www.thespot4sap.com/Articles/SAPABAPPerformanceTuning_Introduction.asp
    http://help.sap.com/saphelp_nw2004s/helpdata/en/d1/801f7c454211d189710000e8322d00/frameset.htm
    regards
    Rohan

  • ABAP program "SAPLCNTL" in "CHECK_OO": MESSAGE_TYPE_X

    Hi,
    I have a problem with a program with ALV-list. Sometimes it terminates with a dump. I can not reproduce the dumps and I can not find the reason for it. I do not know, if it only terminates on some clients.
    In the program the alv table is refreshed with CL_GUI_ALV_GRID=>REFRESH_TABLE_DISPLAY. After this there is also a statement CALL METHOD cl_gui_cfw=>flush.
    Can anyone help?
    Kindly regards
    Frank
    Runtime Error          MESSAGE_TYPE_X                                                              
    Date and Time          11.11.2008 11:24:28                                                                               
    ShrtText                                                                               
    The current application triggered a termination with a short dump.                            
    What happened?                                                                               
    The current application program detected a situation which really                             
        should not occur. Therefore, a termination with a short dump was                              
        triggered on purpose by the key word MESSAGE (type X).                                        
    What can you do?                                                                               
    Print out the error message (using the "Print" function)                                      
        and make a note of the actions and input that caused the                                      
        error.                                                                               
    To resolve the problem, contact your SAP system administrator.                                
        You can use transaction ST22 (ABAP Dump Analysis) to view and administer                      
         termination messages, especially those beyond their normal deletion                          
        date.                                                                               
    is especially useful if you want to keep a particular message.                                
    Error analysis                                                                               
    Short text of error message:                                                                  
        Control Framework: Invalid Processing of ABAP Object Control                                                                               
    Technical information about the message:                                                      
         Diagnosis                                                                               
    You want to edit a control created with ABAP objects techniques                          
             (class-based Control Framework) using a function module (function                        
             module-based Control Framework). The system does not support this.                       
             The Class ID of the control is SAP.DataProvider.1.                                       
         System response                                                                               
    The transaction is terminated.                                                           
         Procedure                                                                               
    Contact the person responsible for the SAP System.                                       
        Message classe...... "DC"                                                                     
        Number.............. 007                                                                      
        Variable 1.......... "SAP.DataProvider.1"                                                     
        Variable 2.......... " "                                                                      
        Variable 3.......... " "                                                                      
        Variable 4.......... " "                                                                      
        Variable 3.......... " "                                                                      
        Variable 4.......... " "                                                                      
    How to correct the error                                                                               
    Probably the only way to eliminate the error is to correct the program.                                                                               
    You may able to find an interim solution to the problem                                       
        in the SAP note system. If you have access to the note system yourself,                       
        use the following search criteria:                                                                               
    "MESSAGE_TYPE_X" C                                                                               
    "SAPLCNTL" or "LCNTLF01"                                                                      
        "CHECK_OO"                                                                               
    If you cannot solve the problem yourself and you wish to send                                 
        an error message to SAP, include the following documents:                                                                               
    1. A printout of the problem description (short dump)                                         
           To obtain this, select in the current display "System->List->                              
           Save->Local File (unconverted)".                                                                               
    2. A suitable printout of the system log                                                      
           To obtain this, call the system log through transaction SM21.                              
           Limit the time interval to 10 minutes before and 5 minutes                                 
           after the short dump. In the display, then select the function                             
           "System->List->Save->Local File (unconverted)".                                                                               
    3. If the programs are your own programs or modified SAP programs,                            
           supply the source code.                                                                    
           To do this, select the Editor function "Further Utilities->                                
           Upload/Download->Download".                                                                               
    4. Details regarding the conditions under which the error occurred                            
           or which actions and input led to the error.                                               
    System environment                                                                               
    SAP Release.............. "640"                                                                               
    Application server....... "gl3ap4"                                                            
        Network address.......... "194.69.46.206"                                                     
        Operating system......... "AIX"                                                               
        Release.................. "5.3"                                                               
        Hardware type............ "00C2809E4C00"                                                      
        Character length......... 16 Bits                                                             
        Pointer length........... 64 Bits                                                             
        Work process number...... 8                                                                   
        Short dump setting....... "full"                                                                               
    Database server.......... "glince215"                                                         
        Database type............ "ORACLE"                                                            
        Database name............ "GL3"                                                               
        Database owner........... "SAPSR3"                                                                               
    Character set............ "C"                                                                               
    SAP kernel............... "640"                                                               
        Created on............... "Feb 18 2008 23:36:16"                                              
        Created in............... "AIX 1 5 00538A4A4C00"                                              
        Database version......... "OCI_920 "                                                                               
    Patch level.............. "221"                                                               
        Patch text............... " "                                                                               
    Supported environment....                                                                     
        Database................. "ORACLE 9.2.0.*.*, ORACLE 10.1.0.*.*, ORACLE                        
         10.2.0.*.*"                                                                               
    SAP database version..... "640"                                                               
        Operating system......... "AIX 1 5, AIX 2 5, AIX 3 5, AIX 1 6"                                                                               
    Memory usage.............                                                                     
        Roll..................... 16192                                                               
        EM....................... 16759424                                                            
        Heap..................... 0                                                                   
        Page..................... 139264                                                              
        MM Used.................. 4672968                                                             
        MM Free.................. 3703952                                                             
        SAP Release.............. "640"                                                                               
    User and Transaction                                                                               
    Client.............. 001                                                                      
        User................ "PB754"                                                                  
        Language key........ "D"                                                                      
        Transaction......... "ZVLA "                                                                  
        Program............. "SAPLCNTL"                                                               
        Screen.............. "ZTCOCKPT 2000"                                                          
        Screen line......... 4                                                                        
    Information on where terminated                                                                   
        The termination occurred in the ABAP program "SAPLCNTL" in "CHECK_OO".                        
        The main program was "ZTCOCKPT ".                                                                               
    The termination occurred in line 178 of the source code of the (Include)                      
         program "LCNTLF01"                                                                               
    of the source code of program "LCNTLF01" (when calling the editor 1780).                      
    Source Code Extract                                                                               
    Line  SourceCde                                                                               
    148 *---------------------------------------------------------------------*                     
      149 *       FORM %_CONTROL_DISPATCH                                       *                     
      150 *---------------------------------------------------------------------*                     
      151 *                                                                               
    152 *---------------------------------------------------------------------*                     
      153 *  -->  OKCODE                                                        *                     
      154 *---------------------------------------------------------------------*                     
      155 FORM %_CONTROL_DISPATCH.                                                                    
      156 * CALL FUNCTION 'CONTROL_DISPATCH'                                                          
      157 *      EXPORTING                                                                               
    158 *           FCODE        = SY-UCOMM                                                         
      159 *      EXCEPTIONS                                                                           
      160 *           CB_NOT_FOUND = 1                                                                
      161 *           OTHERS       = 2.                                                               
      162 ENDFORM.                                                                               
    163                                                                               
    164 FORM REGISTERGLOBALOCXEVENT                                                                 
      165 USING SHELLID TYPE I EVENT TYPE I.                                                          
      166     CALL METHOD OF CL_GUI_OBJECT=>H_GUI 'RegisterGlobalOCXevent'                            
      167       NO FLUSH                                                                               
    168       EXPORTING #1 = SHELLID                                                                
      169                 #2 = EVENT.                                                                 
      170 ENDFORM.                                                                               
    171                                                                               
    172 form check_OO using p_handle type cntl_handle.                                              
      173 *  check sy-uname = 'KSCHMIDT'.                                                             
      174   call method cl_gui_cfw=>get_subscriber_by_id                                              
      175        exporting shellid = p_handle-shellid                                                 
      176        exceptions others = 1.                                                               
      177   if sy-subrc = 0.                                                                          
    >>>>>     message X007 with p_handle-clsid.                                                       
      179   endif.                                                                               
    180                                                                               
    181 endform.                                                                               
    182                                                                               
    183 form check_oo_2 using p_shellid type i.                                                     
      184   data l_handle type cntl_handle.                                                           
      185 *  check sy-uname = 'KSCHMIDT'.                                                             
      186   call method cl_gui_cfw=>get_subscriber_by_id                                              
      187        exporting shellid = p_shellid                                                        
      188        exceptions others = 1.                                                               
      189   if sy-subrc = 0.                                                                          
      190     call function 'CNTH_HANDLE_BY_SHELLID'                                                  
      191          exporting shellid = p_shellid                                                      
      192          importing h_control = l_handle                                                     
      193          exceptions others = 1.                                                             
      194     message X007 with l_handle-clsid.                                                       
      195   endif.                                                                               
    196 endform.                                                                               
    Contents of system fields                                                                         
    Name     Val.                                                                               
    SY-SUBRC 0                                                                               
    SY-INDEX 0                                                                               
    SY-TABIX 12                                                                               
    SY-DBCNT 1                                                                               
    SY-FDPOS 1                                                                               
    SY-LSIND 0                                                                               
    SY-PAGNO 0                                                                               
    SY-LINNO 1                                                                               
    SY-COLNO 1                                                                               
    SY-PFKEY STAT2000                                                                               
    SY-UCOMM NSEL                                                                               
    SY-TITLE ZTCOCKPT Cockpit: Transporte Aufträge Lieferungen                                        
    SY-MSGTY X                                                                               
    SY-MSGID DC                                                                               
    SY-MSGNO 007                                                                               
    SY-MSGV1 SAP.DataProvider.1                                                                       
    SY-MSGV2                                                                               
    SY-MSGV3                                                                               
    SY-MSGV4                                                                               
    Active Calls/Events                                                                               
    No.   Ty.          Program                             Include                             Line   
          Name                                                                               
    11 FORM         SAPLCNTL                            LCNTLF01                              178  
          CHECK_OO                                                                               
    10 FUNCTION     SAPLCNTL                            LCNTLU13                               16  
          CONTROL_DESTROY                                                                               
    9 FUNCTION     SAPLCNDP                            LCNDPU07                               22  
          DP_DESTROY                                                                               
    8 FUNCTION     SAPLCNDP                            LCNDPU10                              103  
          DP_CONTROL_ASSIGN_TABLE                                                                     
        7 METHOD       CL_GUI_ALV_GRID_BASE==========CP    CL_GUI_ALV_GRID_BASE==========CM01U    37  
          CL_GUI_ALV_GRID_BASE=>SET_TOOLBAR_BUTTONS                                                   
        6 METHOD       CL_GUI_ALV_GRID===============CP    CL_GUI_ALV_GRID===============CM01M    52  
          CL_GUI_ALV_GRID=>SET_TOOLBAR                                                                
        5 METHOD       CL_GUI_ALV_GRID===============CP    CL_GUI_ALV_GRID===============CM01P   432  
          CL_GUI_ALV_GRID=>SOFT_REFRESH_TABLE_DISPLAY                                                 
        4 METHOD       CL_GUI_ALV_GRID===============CP    CL_GUI_ALV_GRID===============CM00T   116  
          CL_GUI_ALV_GRID=>REFRESH_TABLE_DISPLAY                                                      
        3 MODULE (PBO) ZTCOCKPT                            ZTCOCKPT                              652  
          PBO_ALV_2000                                                                               
    2 FORM         ZTCOCKPT                            ZTCOCKPT                              167  
          ALVAUSGABE                                                                               
    1 EVENT        ZTCOCKPT                            ZTCOCKPT_INC                          213  
          START-OF-SELECTION                                                                          
    Chosen variables                                                                               
    Name                                                                               
    Val.                                                                               
    No.      11 Ty.          FORM                                                                     
    Name  CHECK_OO                                                                               
    SY-REPID                                                                               
    SAPLCNTL                                                                               
    0000000000000000000000000000000000000000                                                      
        0000000000000000000000000000000000000000                                                      
        5454445422222222222222222222222222222222                                                      
        310C3E4C00000000000000000000000000000000                                                      
    %_VIASELSCR                                                                               
    0                                                                               
    4                                                                               
    P_HANDLE-SHELLID                                                                               
    128                                                                               
    0008                                                                               
    0000                                                                               
    BS_CENTER                                                                               
    768                                                                               
    0000                                                                               
    0030                                                                               
    %_DUMMY$$                                                                               
    0000                                                                               
    0000                                                                               
    2222                                                                               
    0000                                                                               
    FONT_ITALIC                                                                               
    1                                                                               
    0000                                                                               
    0001                                                                               
    SY-SUBRC                                                                               
    0                                                                               
    0000                                                                               
    0000                                                                               
    SY-XFORM                                                                               
    XAB_READ                                                                               
    000000000000000000000000000000                                                                
        000000000000000000000000000000                                                                
        544554442222222222222222222222                                                                
        812F25140000000000000000000000                                                                
    SY-MSGID                                                                               
    DC                                                                               
    00000000000000000000                                                                               
    00000000000000000000                                                                               
    44222222222222222222                                                                               
    43000000000000000000                                                                          
    SS_SIMPLE                                                                               
    11                                                                               
    0000                                                                               
    000B                                                                               
    SS_BLACKRECT                                                                               
    4                                                                               
    0000                                                                               
    0004                                                                               
    SPACE                                                                               
    0                                                                               
    0                                                                               
    2                                                                               
    0                                                                               
    SY-MSGNO                                                                               
    007                                                                               
    000                                                                               
    000                                                                               
    333                                                                               
    007                                                                               
    SY-MSGV1                                                                               
    SAP.DataProvider.1                                                                               
    00000000000000000000000000000000000000000000000000                                            
        00000000000000000000000000000000000000000000000000                                            
        54524676576766672322222222222222222222222222222222                                            
        310E414102F69452E100000000000000000000000000000000                                            
    P_HANDLE-CLSID                                                                               
    SAP.DataProvider.1                                                                               
    0000000000000000000000000000000000000000000000000000000000000000000000                        
        0000000000000000000000000000000000000000000000000000000000000000000000                        
        5452467657676667232222222222222222222222222222222222222222222222222222                        
        310E414102F69452E10000000000000000000000000000000000000000000000000000                        
    SY-MSGV2                                                                               
    00000000000000000000000000000000000000000000000000                                            
        00000000000000000000000000000000000000000000000000                                            
        22222222222222222222222222222222222222222222222222                                            
        00000000000000000000000000000000000000000000000000                                            
    SY-MSGV3                                                                               
    00000000000000000000000000000000000000000000000000                                            
        00000000000000000000000000000000000000000000000000                                            
        22222222222222222222222222222222222222222222222222                                            
        00000000000000000000000000000000000000000000000000                                            
    SY-MSGV4                                                                               
    00000000000000000000000000000000000000000000000000                                            
        00000000000000000000000000000000000000000000000000                                            
        22222222222222222222222222222222222222222222222222                                            
        00000000000000000000000000000000000000000000000000                                            
    No.      10 Ty.          FUNCTION                                                                 
    Name  CONTROL_DESTROY                                                                             
    NO_FLUSH                                                                               
    X                                                                               
    0                                                                               
    0                                                                               
    5                                                                               
    8                                                                               
    H_CONTROL                                                                               
    OBJHOLE2##                                   7263                                       ####  
        00000000FF000000000000000000000000000000000000000000000000000000000000000000000000000000000000
        00000000FF000000000000000000000000000000000000000000000000000000000000000000000000000000000000
        44444443FF222222222222222222222222222222222223333222222222222222222222222222222222222222080022
        F2A8FC52FF000000000000000000000000000000000007263000000000000000000000000000000000000000000A00
    BS_DEFPUSHBUTTON                                                                               
    1                                                                               
    0000                                                                               
    0001                                                                               
    BS_LEFT                                                                               
    256                                                                               
    0000                                                                               
    0010                                                                               
    THIS_DUMMY_VALUE                                                                               
    0                                                                               
    0000                                                                               
    0000                                                                               
    BS_PUSHBUTTON                                                                               
    0                                                                               
    0000                                                                               
    0000                                                                               
    H_CONTROL-OBJ+16(4)                                                                               
    -1                                                                               
    FFFF                                                                               
    FFFF                                                                               
    SYST-REPID                                                                               
    SAPLCNTL                                                                               
    0000000000000000000000000000000000000000                                                      
        0000000000000000000000000000000000000000                                                      
        5454445422222222222222222222222222222222                                                      
        310C3E4C00000000000000000000000000000000                                                      
    H_CONTROL-HANDLE_TYPE                                                                               
    NO_OC                                                                               
    0000000000                                                                               
    0000000000                                                                               
    4454422222                                                                               
    EFFF300000                                                                               
    CNTL_TYPE_OCX                                                                               
    OCX                                                                               
    0000000000                                                                               
    0000000000                                                                               
    4452222222                                                                               
    F380000000                                                                               
    CNTL_TRUE                                                                               
    1                                                                               
    0000                                                                               
    0001                                                                               
    IS_ITSAC_767A497173BF11D28BB                                                                               
    0                                                                               
    0                                                                               
    2                                                                               
    0                                                                               
    AC_EXPORTS_4E238C5273BF11D28BB                                                                    
        Table[initial]                                                                               
    AC_EXPO_WA_4E238C5273BF11D28BB                                                                               
    000000000                                                     
        0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
        0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
        2222222222222222222222222222222233333333322222222222222222222222222222222222222222222222222222
        0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
    No.       9 Ty.          FUNCTION                                                                 
    Name  DP_DESTROY                                                                               
    H_DP                                                                               
    OBJHOLE2##                                   7263                                       ####  
        00000000FF000000000000000000000000000000000000000000000000000000000000000000000000000000000000
        00000000FF000000000000000000000000000000000000000000000000000000000000000000000000000000000000
        44444443FF222222222222222222222222222222222223333222222222222222222222222222222222222222080022
        F2A8FC52FF000000000000000000000000000000000007263000000000000000000000000000000000000000000A00
    G_STRETCH_UNICODE_COLS_VALID                                                                      
        X                                                                               
    0                                                                               
    0                                                                               
    5                                                                               
    8                                                                               
    %_DUMMY$$                                                                               
    0000                                                                               
    0000                                                                               
    2222                                                                               
    0000                                                                               
    SY-SUBRC                                                                               
    0                                                                               
    0000                                                                               
    0000                                                                               
    SYST-REPID                                                                               
    SAPLCNDP                                                                               
    0000000000000000000000000000000000000000                                                      
        0000000000000000000000000000000000000000                                                      
        5454444522222222222222222222222222222222                                                      
        310C3E4000000000000000000000000000000000   

    Hi Frank,
    I doubt it is related to function 'LVC_FIELDCATALOG_MERGE' since the current SAP help documentation talks about using this function for the purpose that I'm sure you are using it.  The short dump states that the problem is caused by the use of an "old" function-module-based control framework function combined with the class-based OO CFW. 
         Diagnosis                                                                               
    You want to edit a control created with ABAP objects techniques                          
             (class-based Control Framework) using a function module (function                        
             module-based Control Framework). The system does not support this.
    If you look at the call sequence in the short dump, function module 'CONTROL_DESTROY' is being called (which then calls function 'CHECK_OO' from which the error is sent).  Function module 'CONTROL_DESTROY' is in function group CNTL which is part of the "old" function-module-based CFW. 
    Since the 'CONTROL_DESTROY' function is ultimately called as a result of your Z-program legitimately calling the standard SAP method CL_GUI_ALV_GRID=>REFRESH_TABLE_DISPLAY, I'd say you might want to consider opening a customer message with SAP providing as much detail and background as possible.  But before you bother to do that (or while you are waiting to hear back from SAP) you may want to double-check your Z-program to make sure you aren't calling some other function modules from function groups CNTL or CNT0 (the "old" CFW function modules).
    I've included just the call sequence from your short dump here for easier reference.  Notice the order of the calls from 1 to 11, ending with functions 'CONTROL_DESTROY' and 'CHECK_OO'.  I think 'CONTROL_DESTROY' may be causing the problem (??):
    Active Calls/Events                                                                               
    No.   Ty.          Program                             Include                             Line   
          Name                                                                               
    11 FORM         SAPLCNTL                            LCNTLF01                              178  
          CHECK_OO                                                                               
    10 FUNCTION     SAPLCNTL                            LCNTLU13                               16  
          CONTROL_DESTROY                                                                               
    9 FUNCTION     SAPLCNDP                            LCNDPU07                               22  
          DP_DESTROY                                                                               
    8 FUNCTION     SAPLCNDP                            LCNDPU10                              103  
          DP_CONTROL_ASSIGN_TABLE                                                                     
        7 METHOD       CL_GUI_ALV_GRID_BASE==========CP    CL_GUI_ALV_GRID_BASE==========CM01U    37  
          CL_GUI_ALV_GRID_BASE=>SET_TOOLBAR_BUTTONS                                                   
        6 METHOD       CL_GUI_ALV_GRID===============CP    CL_GUI_ALV_GRID===============CM01M    52  
          CL_GUI_ALV_GRID=>SET_TOOLBAR                                                                
        5 METHOD       CL_GUI_ALV_GRID===============CP    CL_GUI_ALV_GRID===============CM01P   432  
          CL_GUI_ALV_GRID=>SOFT_REFRESH_TABLE_DISPLAY                                                 
        4 METHOD       CL_GUI_ALV_GRID===============CP    CL_GUI_ALV_GRID===============CM00T   116  
          CL_GUI_ALV_GRID=>REFRESH_TABLE_DISPLAY                                                      
        3 MODULE (PBO) ZTCOCKPT                            ZTCOCKPT                              652  
          PBO_ALV_2000                                                                               
    2 FORM         ZTCOCKPT                            ZTCOCKPT                              167  
          ALVAUSGABE                                                                               
    1 EVENT        ZTCOCKPT                            ZTCOCKPT_INC                          213  
          START-OF-SELECTION
    Regards,
    Jamie
    P.S. Please report back here if you find a solution (or if SAP finds one as a result of your customer message).

  • Unzip files using ABAP program

    Hi All,
    Can anybody guide me how to Unzip a .zip file using ABAP program... Appreciate your immediate reply...
    actually, my scenario is to check whether zip file is created in appl.server or not.., and if zip file created then i need to check whether its blank file or any content exist inside the file...
    Thanks in advance
    Bhasker

    hi
    good
    parameters: command(236) lower case.
    data: std_lines(255) occurs 0 with header line.
      call function 'RFC_REMOTE_PIPE'
        destination 'SERVER_EXEC'
        exporting
          command = command
          read = 'X'
        tables
          pipedata = std_lines
        exceptions
          communication_failure = 1
          system_failure = 2.
    You should put your Unix command in the command parameter. "gunzip /yourfilepath/yourfilename" works on my Unix system. Once you determine the proper Unix command, you should be set. This technique is also nice because it provides you with echos back from Unix in table std_lines. For more complex Unix activity, you may want to consider throwing together a Unix script, and calling that via this code.
    reward point if helpful.
    thanks
    mrutyun^

  • ALE triggering ABAP program instead of iDoc

    Is it possible to have ALE trigger an ABAP program instead of an iDoc?
    We need to send changes in Master Data to a system that can't handle iDoc, but does know what to do with SOAP.

    We're talking about an All-in-One system on NetWeaver 700 and ECC 6.0. My company has developed an Add-On for Business One and now they want to develop a similar Add-On for All-in-One. That Add-On should integrate an Open Source system into an SAP system, or at least make the flow of data seem seamless.
    I should be very careful with my comments, as I'm not really understanding enough about your requirements. I must admit key words changes in master data and ALE triggered my initial comment.
    On second thought it might actually be worthwhile to think about other alternatives. E.g. you could look at the technique SAP uses for BW extractors, which might also be suitable.
    I might just be able to hook into the Change Doc system by defining new Change Doc and Change Pointer Types.
    Well, per my comment above, maybe you don't even need change pointers. However, if you do, you can mostly rely on existing change documents unless you're dealing with some odd or custom object.
    Am I right if I think that IDocs handle those Change Pointers from some kind of scheduled background job?
    Part of the setup for change pointers for a specific message type is to define which function module is used for evaluating the change pointers. All change pointers are then evaluated via transaction BD21, program RBDMIDOC, which can also be scheduled in the background.
    but we only need less than 5% of the information contained in an iDoc
    Well, in theory SAP offers some options: You can filter segments via ALE, use reduced message types or define IDoc views. However, depending on the technique this sometimes requires that the actual application (function module creating the IDocs) has to support it (because it's additional API calls that have to be present).
    Defining new IDoc types isn't that attractive to us.
    Though I do understand such statement in specific cases, it's hard to relate to it on a general level. I.e. in the latter case it's often more driven by strange company policies than by good design choices.
    Anyhow, in the end I'm tempted to think that change pointers with IDocs are one option among many. In your specific case however it sounds as if there's possibly other techniques that might be more suitable. So I'll stop for now before I tell you too much crap pushing you in a wrong direction...

  • How  to debug  the abap program ?

    how  to debug  the abap program ?Can anybody explain  me in details.

    Hi
    Debugger
    This section of the ABAP Workbench documentation provides information on how to use the Debugger as a test tool for finding errors in the source code of an ABAP program.
    Functional Overview
    Use
    The ABAP Debugger is an integrated test tool within the ABAP Workbench. You use it to check the program logic and to find errors in the source code of an ABAP program. In the Debugger, you can step through the source code of a program. The running program is interrupted after each step, allowing you to check its processing logic and the results of individual statements.
    As of Release 6.10, you can also run Business Server Pages (BSP) in the debugging mode. You can also display and set breakpoints here. Business Server Pages can be displayed in the Object Navigator when you select an appropriate application under BSP Application.
    Features
    The Debugger provides an efficient means of identifying errors in ABAP programs. It contains the following functions:
    Ways of starting the Debugger
    Choosing different views
    Choosing different execution options in the Debugger
    Displaying source code in the Debugger
    • Setting and deleting breakpoints
    • Setting and deleting watchpoints
    • Stopping a program at a particular statement or event
    Displaying and changing field contents at runtime
    Displaying ABAP Objects and references
    Displaying and positioning strings
    Setting and deleting database locks
    Opening the ABAP Editor, or Object Navigator
    System settings and runtime warnings
    Starting the Debugger
    There are two possible strategies for starting the Debugger in the ABAP Workbench:
    By setting breakpoints then running the program
    By running the program in debugging mode.
    Setting Breakpoints
    A breakpoint is a signal in a specific line of the program source code. This signal indicates to the ABAP runtime processor to stop the program at the relevant line and start the ABAP Debugger. A distinction is made between static and dynamic breakpoints. For further information about the different types of breakpoints and how to use them, refer to Breakpoints.
    Direct Processing
    You can start the Debugger without previously having set breakpoints. This is the best procedure to use when you want to test a program right from the beginning. It is also a useful procedure if you are not overly familiar with the program and therefore are not sure where best to set breakpoints. You can start the Debugger as follows:
    From the Object Navigator
    Select a report or transaction and choose Program ® Test ® Debugging.
    From the ABAP Editor
    Choose Program ® Execute ® Debugging (or the Debugging pushbutton).
    From any screen
    Choose System ® Utilities ® Debug ABAP.
    From any screen
    Enter /h in the command field.
    Display Modes in the Debugger
    When you are debugging a program, there are various display modes that you can use. All of the display modes have the same structure. The top part of the screen displays an extract of the program source code. The bottom part displays the information specifically available in that display mode. There are also pushbuttons on the screen allowing you to switch to the most frequently-used display modes.
    Display Modes Available Using Pushbuttons
    Fields
    The scrollable field display contains the contents of up to eight fields. The contents of the three most important system fields are always displayed. This is the default display mode in the Debugger. See also Processing Fields
    Table
    Displays the contents of an internal table. This mode allows you to display and edit the entries in an internal table. See also Processing Internal Tables
    Breakpoints
    A scrollable display containing up to 30 breakpoints. Next to each breakpoint is a counter. You can also delete breakpoints in this display. See also Managing Dynamic Breakpoints
    Watchpoints
    You can set a watchpoint for a field so that the program is interrupted whenever the value of that field changes. This display mode contains a list of watchpoints, the fields and programs to which they are assigned, the current values of the fields, and the conditions upon which the watchpoint is activated. See also Setting Watchpoints
    Calls
    This mode displays the current sequence of events, and the sequence of calls up to the current breakpoint. The last active call is displayed at the top of the list; previous calls are listed in reverse chronological order. When an event (for example, START-OF-SELECTION) concludes, it is deleted from the display.
    Overview
    This mode displays the structure of the program. It lists its events, subroutines, and modules, and shows which sections belong to which events. It also displays the section currently being processed.
    Settings
    This mode displays the current Debugger settings. You can change the settings by selecting or deselecting various options. For further information, refer to Settings and Warnings
    Other Display Modes
    You can access other display modes by choosing Goto ® Display data object.
    Single field
    Displays the contents and technical attributes of a field.
    Structured
    field
    Displays the components of a structure, along with their contents and attributes. If you double-click a component, the system displays detailed information for it.
    Strings
    Display the content and current length of the string. You can also display part of the content by means of offset and length.
    Internal table
    Displays the type, line numbers and contents of an internal table.
    Object
    Displays the structure of an ABAP Object.
    For further information on these displays, refer to Displaying Attributes and Displaying ABAP Objects
    Checking System Programs for Errors
    To check a program or program component that is part of the ABAP Workbench (for example, the Screen Painter), you must use the system Debugger. To start the system Debugger, choose System ® Utilities ® Debug System from any screen. To stop the system Debugger, choose Debugger ® Debugging off.
    Displaying Program Attributes
    You can display the attributes Fixed Point Arithmetic, System Program, and Unicode Checks of the program that has just been executed by choosing Goto ® Further Information ® Program Attributes.
    Restarting the Debugger
    If you choose Debugging ® Restart, debugging mode is stopped and the system takes you to the initial screen of the last transaction you called. If, for example, you started an ABAP program in debugging mode from transaction SE38 (ABAP Editor), choosing Debugging ® Restart will take you back to the screen titled ABAP Editor: Initial Screen. If you want to restart the program in debugging mode, choose Debugging.
    Breakpoints
    Apart from direct execution of an ABAP program in the Debugger, it is also possible to start the Debugger call by the exact setting of a breakpoint. This is achieved by setting one or more of these breakpoints in the program. A breakpoint is a signal at a particular point in the program that tells the ABAP runtime processor to interrupt processing and start the Debugger. The program runs normally until the breakpoint is reached.
    There is also a special kind of breakpoint called a watchpoint. When you use watchpoints, the Debugger is not activated until the contents of a particular field change. For further information, refer to Watchpoints.
    Breakpoint Variants
    The Debugger contains different breakpoint variants:
    Static
    The BREAK-POINT statement in an ABAP program. Static breakpoints are not normally user-specific. However, you can make them user-specific.
    Directly-set
    dynamic breakpoints
    Can be set in the ABAP Editor or the Debugger. Dynamic breakpoints are always user-specific, and are deleted when you log off from the R/3 System.
    Breakpoints
    at statement
    The Debugger stops the program directly before the specified statement is executed.
    Breakpoints
    at subroutine
    The Debugger stops the program directly before the specified subroutine is called.
    Breakpoint at function module
    The Debugger stops the program directly before the specified function module is called.
    Breakpoint at method
    The Debugger stops the program directly before the specified method is called.
    Breakpoints at system exceptions
    The Debugger stops the program directly after a system exception, that is, after a runtime error has been intercepted.
    Static Breakpoints
    Static breakpoints are not normally user-specific. Once a user has inserted the statement BREAK-POINT or BREAK name in an ABAP program, the system always interrupts the program at that point for that user or only for the user name. This procedure is only useful in the development phase of an application, when the program execution is always to be interrupted at the same place. For further information, refer to Static Breakpoints.
    In HTTP sessions, a static breakpoint is skipped if you did not set additional dynamic HTTP breakpoints in the editor of a BSP page. Instead, a corresponding system log entry is written, which can be checked using transaction SM21.
    Dynamic Breakpoints
    Dynamic breakpoints are user-specific. Therefore, you should use them if you only want the program to be interrupted when you run it yourself, not when it is being executed by other users. All dynamic breakpoints are deleted when you log off from the R/3 System.
    Dynamic breakpoints are more flexible than static breakpoints, because you can deactivate or delete them at runtime. They have the following advantages:
    You do not have to change the program code
    You can set them even when the program is locked by another programmer
    You can define a counter that only activates the breakpoint after it has been reached
    Special dynamic breakpoints are useful when you want to interrupt a program directly before a particular ABAP statement, a subroutine, or an event, but do not know exactly where to find it in the source code. Event here is used to refer to the occurrence of a particular statement, for example, or calling up a method. Special dynamic breakpoints are user-specific. You can only set them in the Debugger. For further information, refer to Dynamic Breakpoints.
    In HTTP sessions, the system stops both at static and dynamic breakpoints if a dynamic breakpoint was set in the editor of a BSP page before program execution.
    Lifetime and Transfer of Breakpoints
    A static breakpoint remains intact as long as the BREAK-POINT or BREAK-POINT name statement is not removed from the source code. Without saving, dynamic breakpoints only remain intact in the relevant internal session. However, they are effective during the entire user session, if they are saved by choosing Breakpoints ® Save in the ABAP Debugger. For more details on the subject of sessions and user sessions, refer to Modularization Techniques in the ABAP keyword documentation.
    If you call an HTTP session during a user session, only the HTTP breakpoints are loaded when the HTTP session is started. You activate HTTP debugging in the ABAP Editor by choosing Utilities ® Settings ® HTTP Debugging. Depending on the setting, the system then displays either the HTTP or standard breakpoints in the Editor.
    If you call an update session during a user session, breakpoints that were defined beforehand in the calling processing unit are copied to the new update session, where they can be displayed under Breakpoints. If, in the ABAP Debugger, you check Update Debugging under Settings and then, for example, call the update module func using CALL FUNCTION func IN UPDATE TASK, a new window is opened in which you can debug this function module in the update session. All the breakpoints that were set in the calling processing unit can also be processed here.
    Breakpoints at Statements
    You can use this special kind of dynamic breakpoint to interrupt a program directly before an ABAP statement is processed.
    Prerequisites
    You must already be running the program in the Debugger.
    Procedure
    To set a breakpoint at an ABAP statement:
    1.Choose Breakpoint ® Breakpoint at ® Statement...
    The following dialog box appears:
    2.Enter the ABAP statement.
    The system sets a breakpoint at all points in the program at which the ABAP statement occurs.
    3.Choose ENTER.
    The breakpoint applies to all lines containing the specified statement.
    Result
    The system confirms the breakpoint and adds it to the list in the display. When you finish your debugging session, the breakpoint is automatically deleted unless you have explicitly saved it.
    Breakpoints at Subroutines
    You can use this special kind of dynamic breakpoint to interrupt a program directly before a subroutine is called.
    Prerequisites
    You must already be running the program in the Debugger.
    Procedure
    To set a breakpoint for a subroutine:
    Choose Breakpoint ® Breakpoint at ® Event/Subroutine.
    The following dialog box then appears:
    Enter the name of the subroutine before which you want to interrupt the program. By default, the Program field contains the name of the program that is currently active. The system sets a breakpoint wherever the specified subroutine occurs in the program code.
    Choose ENTER.
    Result
    The system confirms the breakpoint. The breakpoint is added to the breakpoints displayed.
    Breakpoints at Function Module
    You can use this kind of dynamic breakpoint to interrupt a program directly before a function module is called.
    Prerequisites
    You must already be running the program in the Debugger.
    Procedure
    To set a breakpoint for a function module:
    Choose Breakpoint ® Breakpoint at ® Function module...
    The following dialog box appears:
    Enter the name of the function module before which you want to interrupt the program. The system sets a breakpoint wherever the specified event, module pool, or subroutine occurs in the program code.
    Choose ENTER.
    Result
    If you entered a valid function module name, the system confirms that the breakpoint has been set. If the function module exists in the system, the new breakpoint is added to the display list.
    Breakpoints at Methods
    You can use this special kind of dynamic breakpoint to interrupt a program directly before a method is called.
    Prerequisites
    You must be already running the program in the debugger.
    Procedure
    To set a breakpoint for methods:
    1. Choose Breakpoint ® Breakpoint at ® Method...
    The following dialog box then appears:
    2. Enter the name of the method and class before which you want to interrupt the program. A breakpoint is then set each time the specified processing block appears in the source code.
    3. Choose ENTER.
    Result
    The system confirms the breakpoint. The breakpoint is added to the list in the display.
    Breakpoints at System Exceptions
    You can use this special form of dynamic breakpoint to interrupt a program immediately after a runtime error has occurred.
    Prerequisites
    You must already be running the program in the Debugger.
    Procedure
    To set a breakpoint at a system exception:
    Choose Breakpoint ® Breakpoint at ® System exception.
    Result
    The system confirms the breakpoint. The breakpoint is added to the breakpoints displayed.
    When a system exception is triggered, a warning triangle appears in the line containing the statement that caused it. If you double-click the warning triangle, the internal name of the runtime error appears.
    Static Breakpoints
    You should only use static breakpoints during the development phase of an application. You must remove them from your program before you transport it.
    Setting Breakpoints
    To set a static breakpoint, use the ABAP statement BREAK-POINT . Place the breakpoint in the line at which you want to interrupt the program.
    program RSDEBUG_01.
    if SY-SUBRC 0.
    break-point.
    endif.
    When you run the program, the runtime processor interrupts it when the breakpoints occur. You can number your breakpoints to make them easier to identify ( BREAK-POINT 1, BREAK-POINT 2 …).
    Static breakpoints are not normally user-specific. The program is, therefore, always interrupted as soon as the runtime processor reaches the line containing the breakpoint. The program is interrupted regardless of the user who executes it.
    However, you can set user-specific static breakpoints using the BREAK statement followed by your user name. For example, if you use the statement BREAK SMITH , the program is only interrupted when user Smith runs it. Although user-specific breakpoints appear in the program code, they are not active when other users run the program. You should, however, be careful if an application is being used by several users with the same name.
    Deleting Breakpoints
    Since static breakpoints apply to all users, you must remove them from the program once you have finished testing it. In the ABAP Editor, you can find breakpoints quickly by choosing Utilities ® Global search. You can also use the Extended Program Check to find them.
    If you do not remove static breakpoints from your program, they will be transported to your production system. This could cause serious problems in the production system.
    Dynamic Breakpoints
    You can set up to 30 dynamic breakpoints without changing the program code. Dynamic breakpoints can be set either in the ABAP Editor or directly in the Debugger.
    Setting Dynamic Breakpoints in the ABAP Editor
    You can set dynamic breakpoints in the ABAP Editor regardless of whether you are in display or change mode. You can also set breakpoints directly from within the Debugger at runtime. To set a dynamic breakpoint in the ABAP Editor:
    Position the cursor on the line of the source code at which you want to set the breakpoint.
    Choose Utilities ® Breakpoints ® Set or the Stop icon. The system confirms that the breakpoint has been set.
    To display a list of all dynamic breakpoints in a program, choose Utilities ® Breakpoints ® Display. You can use this list to navigate to a particular breakpoint or to delete one or more breakpoints from the program.
    Setting Dynamic Breakpoints in Debugging Mode
    To set a dynamic breakpoint in the Debugger:
    Position the cursor on the line in which you want to set the breakpoint.
    Select the line by double-clicking it or choosing Breakpoint ® Set/delete.
    The system sets the breakpoint, and displays a small stop sign to the left of the relevant line. If the line already contained a breakpoint, it is deleted.
    When you finish your debugging session, the breakpoint is automatically deleted unless you have explicitly saved it.
    Saving Breakpoints
    If you want to leave the Debugger temporarily, you can save your dynamic breakpoints so that they are still active when you return to the Debugger within the same terminal session.
    To save the breakpoints that you have set in the Debugger:
    Choose Breakpoint ® Save.
    The system saves all of the breakpoints that you have set in the current program. These breakpoints will remain active until you either explicitly delete them or log off from the system.
    You can also delete breakpoints that you have saved:
    By deleting individual breakpoints from the display and then saving again. In this case, only your selected breakpoints will be deleted.
    By choosing Breakpoint ® Delete all. In this case, the system deletes all dynamic breakpoints.
    Managing Dynamic Breakpoints
    The ABAP Debugger provides a convenient user interface for managing breakpoints. To open the breakpoint display, choose Breakpoints, or, from the menu, Goto ® Control debugging ® Breakpoints.
    Example
    Functions
    This display mode contains the following functions for breakpoints:
    Breakpoint Display
    The scrollable breakpoint display contains up to 30 dynamic breakpoints. For breakpoints that you set directly, the program name and line number at which the breakpoint occurs are displayed. For special breakpoint forms, the list displays the statements, events, subroutines, and module calls at which the relevant breakpoints are set.
    Counter
    In the breakpoint display, you can specify a counter. When you use a counter, the breakpoint is not activated until it has been reached a specified number of times. For example, if you enter 5 for the counter, the breakpoint is not activated until it is reached for the fifth time. After the breakpoint has been activated, it remains so, and the counter no longer appears in the breakpoint display.
    Deleting Breakpoints
    Position the cursor on the breakpoint that you want to delete, and either double-click the line or choose Breakpoint ® Set/delete. To delete all breakpoints, choose Breakpoint ® Delete all.
    Activating and Deactivating Breakpoints
    Position the cursor on the breakpoint that you want to activate or deactivate and choose Breakpoint ® Activate/deactivate.
    Watchpoints
    Like a breakpoint, a watchpoint is an indicator in a program that tells the ABAP runtime processor to interrupt the program at a particular point. Unlike breakpoints, however, watchpoints are not activated until the contents of a specified field change. Watchpoints, like dynamic breakpoints, are user-specific, and so do not affect other users running the same program. You can only define watchpoints in the Debugger.
    Use
    You set watchpoints in the Debugger to monitor the contents of specific fields. They inform you when the value of a field changes. When the value changes, the Debugger interrupts the program.
    Features
    You can set up to five watchpoints in a program.
    See also Setting Watchpoints.
    You can also specify the conditions on which a watchpoint is to become active.
    You can specify logical conditions between up to five conditional watchpoints.
    See Specifying a Logical Expression.
    You can define watchpoints as either local or global. If you define a global watchpoint, it is active in all called programs. Local watchpoints are only active in the specified program.
    You can change and delete watchpoints.
    See Changing Watchpoints.
    You can use watchpoints to display changes to the references of strings, data and object references, and internal tables.
    See Memory Monitoring with Watchpoints
    Setting Watchpoints
    If you want to interrupt a program when the contents of a field or structure change, use a watchpoint. You can set up to five watchpoints, including watchpoints for strings.
    A watchpoint can be either local or global. Local watchpoints are only valid in the specified program. Global watchpoints are valid in the specified program, and also in all the other programs it calls.
    Procedure
    To set a watchpoint, start the Debugger and proceed as follows:
    Choose Breakpoint ® Create watchpoint or the corresponding pushbutton. The Create Watchpoint dialog box appears:
    Decide whether you want to set a local or global watchpoint.
    Enter the program and the name of the field for which you want to set the watchpoint. In the Program field, the name of the program currently running is always defaulted.
    If you want your watchpoint to be activated each time the contents of the field change, the definition is now complete, and you can return to the Debugger by pressing ENTER .
    To create a conditional watchpoint, that is only activated when a particular situation arises, choose one of the following relational operators.
    Operator
    Meaning
    <
    Less than
    <=
    Less than or equal
    =
    Equal
    <>
    Not equal
    =
    Greater than or equal
    Greater than
    You can use the Comparison field option to specify whether the comparison is to be carried out with a value that you specify or with the contents of another field. Depending on your choice from step 6, enter a value or a field for the comparison.
    Result
    The system confirms the watchpoint and adds it to the list in the display. When you finish your debugging session, the watchpoint is automatically deleted unless you have explicitly saved it.
    Specifying Logical Links
    If you have more than one conditional watchpoint, you can specify a logical link between them:
    OR
    Only one of the specified conditions must be met
    AND
    All of the conditions must be met.
    Changing Watchpoints
    Choose Goto ® Control debugging ® Watchpoints or the Watchpoints pushbutton to display the watchpoint list. The following dialog box appears:
    Choose the pencil icon in the line containing the watchpoint you want to change.
    Change the watchpoint attributes in the Create/Change Watchpoint.
    Choose ENTER .
    Deleting Watchpoints
    You cannot delete watchpoints by choosing Breakpoint ® Delete or Breakpoint ® Deactivate/activate. Instead, proceed as follows:
    Choose Goto ® Control debugging ® Watchpoints or the Watchpoints pushbutton to display the watchpoint list.
    Choose the trashcan icon in the line containing the watchpoint you want to delete.
    Memory Monitoring with Watchpoints
    You can use watchpoints to display changes to the references of strings, data and object references, and internal tables. By placing an ampersand (&) in front of the object name, you can display the reference in question in hexadecimal format. With internal tables, you can also display the table header by placing an asterisk (*) at the beginning of the name.
    &objectname
    Displays the references of strings, internal tables as well as data and object references
    *itab
    Displays the table header of the internal table itab
    Example
    If a watchpoint is set for the object in question at runtime, the program is stopped as soon as the reference is changed. A short dump can be intercepted in this way to stop the program being terminated when the memory is overwritten.
    Analyzing Source Code
    The Debugger contains an extensive range of functions that help you to analyze the source code of a program. You can step through the source code of a program in four different ways. For further information, refer to Stepping Through the Source Code
    For information about functions within the source code display, see Displaying the Source Code
    There are also different display modes that provide various information and display the contents of individual fields, tables, and so on:
    Reward if usefull

  • Can i load the cube through an customised abap program??

    Hi all,
    I have loaded the ODS using the customised abap pgrm. is it possible to load the CUBES through the abap program.
    If not what is the reasons for not loading it?
    Thanks
    Pooja

    Hi Pooja,
    For me ..
    I'm afraid to upload directly by program to info cube tables .. Because, i don't know what tables it will be taken into account for uploading ..
    But ..
    If the requirement is to upload it by ABAP Program ..
    I make like this ..
    1. I create the ABAP Program to create .csv files. So all uploaded data will be written into .csv files.
    2. I create info-package, that upload data from file. And i define the path to refer to that corresponding .csv files.
    3. Beside ABAP Program is used to write .csv files, i also use it to trigger the info-package.
    So by that techniques, i'm able to upload data by ABAP Program.
    Hopefully it can help you a lot.
    Regards,
    Niel.

  • Is it possible to call ms-dos command in abap program?

    Hi,
    is it possible to call ms-dos command in abap program?
    Thanks.

    Hi Cemil,
    You probably have your answer here:
    [Re: DOS/Windows command in app server;
    You create your external command with SM69 (you can test it with SM49).
    Then you call this command with function module "SXPG_COMMAND_EXECUTE".
    (See function group SXPT for all the calls to external commands).
    Regards,
    Thomas

  • Can we use is null in our select statement in ABAP program

    hi,
    I want to use 'is nul' or 'not null' in select statement of my ABAP program for any field. I have written below query but I am getting sy-subrc = 4 and getting no data. Can anyone resolve this.

    Hi,
    I think you've posted your question on the wrong forum. This is the SAP Business One development forum which is not part of ERP and doesn't include any ABAP or Netweaver programming.
    For a list of forums please see here:
    http://forums.sdn.sap.com/index.jspa
    Kind Regards,
    Owen

  • How to upload Excel file in BI using function module in abap program

    How to upload Excel file in BI using function module in abap program?

    Hi Anuj,
    To upload the file , you can try a standard program "RSEPSFTP" .
    while you execute the program , a selection screen appears in which the inputs should be give as
    RFC destination - The target server name
    FTP command- PUT
    local file - your file name
    local directory - path of your local file
    remote file - your target file name
    remote directory - where it has to be stored
    Hope this is useful for you
    Thanks & regards
    Anju

  • How to get a parameter from BPC and use it in ABAP program

    Hello gurus!
    I got a problem...
    SAP BPC will send parameters such as year, division, category, company code and so on via script logic to SAP BW.
    I need to get these parameters from BPC and use them in a ABAP program as a filter.
    This ABAP program will do several routines and return new values to BPC. It must be made on ABAP and I need to filter data to avoid performance issues.
    Does anybody knows how to do it? or have a example of it?
    Thank you in advance.
    Regards,
    Rubens Kumori

    Hello, I'm looking for a suggest.
    I need to pass two parameters (users can input them in a data manager package in bpc) to a BAdI.
    In this BAdI I write a code that store those parameters in a InfoObject.
    The problem is:
    - one parameter is for CATEGORY value. CATEGORY is a dimension of the application and I read the value with a code like this:
          READ TABLE it_cv INTO l_s_it_cv
               WITH TABLE KEY dim_upper_case = 'C_CATEGORY'.
    - other parameter is a generic DATE. this parameter is not a dimension of the application and I don't know how I can retrieve this value in BAdI.
          READ TABLE it_cv INTO l_s_it_cv
               WITH TABLE KEY dim_upper_case = '.....'.
    The data manager dynamic script is:
    PROMPT(SELECTINPUT,,,,"%CATEGORY_DIM%")
    PROMPT(TEXT,%SELECTED_DAY%,"Write the date (format YYYYMMDD)",)
    I also have a dynamic constant that assign the name %CATEGORY_DIM% to "C_CATEGORY" value.
    Can anyone help me?
    thanks a lot
    Edited by: Luca Novali on Feb 13, 2012 3:49 PM

  • How to copy/download  all ABAP programs in a text with a single report  ?

    How to copy/download  all ABAP programs in a text format with a single report/TC  ?
    How to copy/download  ABAP source code with all include programs ?....
    we need to search & copy all include programs everytime....

    Hi,
    check this link
    downloading programs
    Regards

  • How To Call a Broadcasting Template within an ABAP program

    I was wondering if anyone knew how to call the Broadcast template via an ABAP program so it will execute?  The scenario that I have is we are doing validations via BW.  We put the data (for conversion reasons) through validation rules and then load a data target.  From this, there are 2 situations that could occur:
    1) There are errors
    2) There are not any errors
    If #1 is true, then I would like to execute the Query Broadcasting Template that I have created.  If #2 is true, then I would like to execute another process via the ABAP program.  In the past, I was successful using exception reporting via reporting agent, since I was able to call that program but the report did not look good at all.  Please let me know if there is a program that I could call in order to execute this broadcast that I have set up.
    Best Regards,
    Tim

    Hello,
    although this is an old threat, but do you have any hints on how to dynamically change the template when broadcasting?
    kind regards
    Murat

  • Sometimes RSCRM ABAP program is taking much time

    Hi,
    I am working in SAP BW 3.1 system. We have one RSCRM Abap program to send the data to Data stage team.
    We kept this process in process chain. Some times it takes much time. If i cancel that job and repeat this process it will complete in few minutes.
    Please suggest me what would be the reason.
    Thanks

    You may want to take a look at the following OSS Notes:
    [OSS Note 605213 - RSCRM: Performance|https://websmp130.sap-ag.de/sap(bD1lbiZjPTAwMQ==)/bc/bsp/spn/sapnotes/index2.htm?numm=605213]
    [OSS Note 989461 - RSCRM:code for improving performance in VALUES_READ|https://websmp130.sap-ag.de/sap(bD1lbiZjPTAwMQ==)/bc/bsp/spn/sapnotes/index2.htm?numm=989461]
    [OSS Note 1137302 - RSCRM: Memory usage optimization|https://websmp130.sap-ag.de/sap(bD1lbiZjPTAwMQ==)/bc/bsp/spn/sapnotes/index2.htm?numm=1137302]

Maybe you are looking for

  • HT204053 How can I have 3 iCloud accounts and keep all pictures, contacts, messages separate ?

    I have one Apple account and would like to use iCloud. I would like to have 3 iCloud accounts. One for each person in my family. One person has an iPhone3gs, one has a iPhone 4, and I have a iPad and an iPhone 4s. I would like all pictures, contacts,

  • How to open a Camera Raw Alias open in Photoshop or Light room or Bridge?

    Please Help. I have about 20 images that I was trying to Burn in a DVD but , I ended up getting CR2 Alias  files with an arrow at the bottom left corner. I want to open the images either in Photoshop CS6 or in Light Room 4 or in Bridge. PLEASE HELP m

  • How to change double i = Math.random(); value to (int) value

    I am trying to find out how to convert a given double value to integer, which is, to conver double myNumber = Math.random() to (int) value. Here is the sample program look like this. Thank you for the help. import javax.swing.JOptionPane; public clas

  • Auditing / Restricting Users Use

    We are planning on giving some of our marketing people Oracle SQL Developer. I have been asked to what extent it is possible to restrict and monitor what users are doing. I realise restricting access and monitoring is mainly done in the databases and

  • Deploying Windows Service Fails Every Other Time

    I'm using Release Management 2013 to deploy a Windows service.  I go through the steps listed below to deploy it.  It fails on the first step (Delete Service) every other time.  When I run it again, it works.  It seems like it's saying it failed, but