Memory inspector

Hi,
somebody know how does "Memory inspector" works ?
(I would like to know the size in memory my program used.)
Rgd
Frédéric

Hi Frederic,
In se38, go to menu <b>PROGRAM[/b<b>]->Check->Generation Limit</b> this will show the popup with all load info..
check it.
this is what you are expecting..
regards
vijay

Similar Messages

  • Need help with the memory inspector

    Hello my friends,
    I have a program thats while runnig use too much memory. I have watch my snapshots
    in the memory inspector and saw that it use lots of 'mm_total' memory. I looked up but
    could not find what does this 'mm_total' memory is.
    Is anyone knows what does the 'mm_total'  says?
    Is anyone had problem like mine before?
    If you can help please send me replay, its very urgent.
    Regards,
    Eitan Iluzz.

    In se38, go to menu PROGRAM</b>->Check->Generation Limit this will show the popup with all load info..
    check it.
    this is what you are expecting..
    regards
    Abhay
    <b>rewards point for useful answer.</b>

  • Is there a memory leak in IXML library?

    Hi,
    I wonder if there is a memory leak in the IXML library. Using the memory inspector I observed that memory consumed while building a DOM-tree is never released. Is there some special cleanup method I have to call to free all memory consumed by my DOM tree? I tried to explicitly remove the node to free memory, but that seems not to work (look at my example report below).
    Regards,
    Michael
    REPORT  Z_IXML_TEST                                               .
    data:
      lr_ixml type ref to if_ixml,
      lr_dom type ref to if_ixml_document,
      lr_element type ref to if_ixml_element,
      l_rc type i.
    class cl_ixml definition load.
    lr_ixml = cl_ixml=>create( type = 0 ).
    lr_dom = lr_ixml->create_document( ).
    at this point you see 1 string in Memory Inspector after creating a snapshot
    lr_element = lr_dom->create_element( name = 'root' ).
    call method lr_element->set_attribute( name = 'attrName1' value = 'attrValue1' ).
    call method lr_element->set_value( value = 'value1' ).
    call method lr_dom->append_child( new_child = lr_element ).
    at this point you see 5 strings in Memory Inspector after creating a snapshot
    l_rc = lr_dom->remove_child( old_child = lr_element ).
    lr_element->remove_node( ).
    lr_dom->remove_node( ).
    free lr_element.
    free lr_dom.
    free lr_ixml.
    at the latest at this point you would expect 1 string again, but there are still 5!

    Answer in
    SAP Note 1081257 Memory leak in the iXML library 

  • Help with memory issue - abap memory vs roll area

    Hi experts,
    with our customer we are using TRM and WebDynpro technology to process Tax forms. We have portal integration. Recently due to performance reasons we were forced to analyze memory consumption and actually we are unable to understand what is happening. In memory inspector we can see much higher total memory than for ABAP total.
    For Example, running simple application for form bundle search will produce following memory consumptions:
    We do not understand why the Total section is + 12 MB when all ABAP code is just 7 MB?
    Another example - opening of a form bundle (FB) leads to cca 32 MB consumption (no matter what type of FB we are opening). Visiting all pages of FB leads to 52 MBs (specific FB, this depends on FB type). Again, when we invoke memory inspector a lot of memory is in Roll Area.
    This look like roll area is almost always twice as big as the actual ABAP Application.
    Please any suggestions what is happening?
    May be just the misunderstanding of roll area. To our knowledge roll area is the area of the internal session managed by memory manager (usually mostly created by extended memory). But why is this area so large when the actual application needs half of the space?
    Some discussion suggests that this is due many dead objects released when memory inspector is started. But why is this space still available to the application and not put back to the extended pool? Is there any way how to identify those dead objects?
    Thanks a lot

    Hi, ORA-4031 in this case can be caused by unrestricted growth of the PGA, thus forcefully reducing the SGA.
    We've had this in the past also.
    The solution is in older versions to increase the shared_pool_size as you mentioned but with ASMM, this is no longer an option. You can however retrict the growth of the PGA by setting SGA_TARGET.
    On our system this now looks like:
    SQL> show parameter _target
    NAME                                 TYPE                 VALUE
    db_flashback_retention_target        integer              1440
    memory_max_target                    big integer          10G
    memory_target                        big integer          10G
    pga_aggregate_target                 big integer          0
    sga_target                           big integer          8GSee how we in fact set the max growth of the PGA to 2Gb ( 10Gb - 8Gb)
    Try this and see if ot works for you also
    Success!!
    FJFranken

  • How to configure memory snapshots used in /HMUSA?

    Dear experts,
    Does anybody know how to configure memory snapshots? I want to call the /HMUSA and have a look at the snapshot using the Memory Inspector. But I would like to get a itemized list of the memory used, for example for the TTAB buffer I would like to know which process or transaction has used certain amount of memory in this buffer. Thanks in advance.
    PS: I am using a system for test purpose and I am the only one using this system (it's not a system used in a real company, and I have an administrator account).

    Hi Sam,
    Please review the following note, as it might help you!!!
    Tuning Output Post Processor (OPP) to Improve Performance (Doc ID 1399454.1)
    R12: How to Configure the Account Analysis Report for Large Reports (Doc ID 737311.1)
    Thanks &
    Best Regards,

  • Memory Issue ---STORAGE_PARAMETERS_WRONG_SET

    Hi,
    I have an Internal table with 63683 records and when do the below operation
      LOOP AT <table_data> ASSIGNING <table_line_data>.
        CLEAR <data_line>.
        MOVE-CORRESPONDING <table_line_data> TO <data_line>.
        APPEND <data_line> TO <data>.
      ENDLOOP.
    using the internal table it is showing the runtime error STORAGE_PARAMETERS_WRONG_SET
    and this is the explanation for the error,
    "The current program had to be terminated because of an
    error when installing the R/3 System.
    The program had already requested 1095995136 bytes from the operating
    system with 'malloc' when the operating system reported after a
    further memory request that there was no more memory space
    available."
    Is there is any way to avoid this Error using coding.
    Regards,
    Shasiraj.C

    Hi,
    Try to clear the space occupied by internal tables in your program.
    check if there are so many variables and internal tables thats comsuing the memroy.
    check for the tables used in the program for buffering!!
    Try to use memory inspector.
    for  know-how chk this link:
    http://help.sap.com/saphelp_nw04/helpdata/en/98/bccab27c757c4ab202e63db2e4fbfe/frameset.htm
    regards,
    madhu

  • BW Upgrade Tool

    Hi All,
    We are developing a BW Upgrade Tool. A part of which gives information about System Landscape that may be useful before or after upgrade for a Basis Consultant. Following information is obtained as a output of the tool. So could you please glance through it & tell me is this information is relevent and what more should be there?
    As I'm a BW consultant I have very little knowlege of Basis.
    System status overview 
      SAP version          640
      operating system     Windows NT
      machine type         2x Intel 801586 (Mod 2 Step 7)
      node name            SAPBL5
      SAP system id        560
      database system      ORACLE
      database name        BL5
      database host        SAPBL5
      database owner       SAPBL5
      rsyn
      IP address           172.25.8.121
      kernel release       640
      database library     OCI_920_SHARE
      kernel compiled      NT 5.0 2195 Service Pack 4 x86 MS VC++ 13.10 Aug 21 2005 23
      kernel patch level   87
      supported SAP vers.  610, 620, 630, 640
      supported database   ORACLE 8.1.7.., ORACLE 9.2.0.., ORACLE 10.1.0..
      valid OP system      Windows NT 5.0, Windows NT 5.1, Windows NT 5.2
      OP system release    5.0
      ABAP load version    1521
      CUA load version     15
      kernel kind          opt
      relinfo              valid
      hot package level    13                                                         
    Oracle 
      Oracle9i Enterprise Edition Release 9.2.0.6.0 - Production
      PL/SQL Release 9.2.0.6.0 - Production
      CORE     9.2.0.6.0     Production
      TNS for 32-bit Windows: Version 9.2.0.6.0 - Production
      NLSRTL Version 9.2.0.6.0 - Production
      disp+work information
      kernel release                640
      kernel make variant           640_REL
      DBMS client library           OCI_920_SHARE
      DBSL shared library version   640.00
      compiled on                   NT 5.0 2195 Service Pack 4 x86 MS VC++ 13.10
      compilation mode              Non-Unicode
      compile time                  Aug 21 2005 23:40:31
      update level                  0
      patch number                  87
      source id                     0.087
      supported environment
      database (SAP, table SVERS)   610
                                    620
                                    630
                                    640
      DBMS server
         ORACLE 8.1.7..
         ORACLE 9.2.0..
         ORACLE 10.1.0..
      operating system
      Windows NT 5.0
      Windows NT 5.1
      Windows NT 5.2
      disp+work patch information
      ( 0.001) Strings in Inputfields cut off (note 676835)
      ( 0.001) Block insert not stable (note 699411)
      ( 0.001) Sending the SAP logon ticket to SAPJ2EE server (note 691253)
      ( 0.001) TPDA: Exclusive DBG Session Fix (note 698737)
      ( 0.001) SNC-enabled RFC connections (type 3) to unicode systems (note 695205)
      ( 0.001) Loop where with move of C field to N field (note 699528)
      ( 0.001) Multiple instances of same subscreen and f4 ocx (note 698564)
      ( 0.001) ABAP Unit: Support for calling private fixture methods (note 690059)
      ( 0.001) Bidi printing patch collection (note 353987)
      ( 0.001) Problems while debugging a dynpro (flow logic) (note 689633)
      ( 0.001) Sending the SAP logon ticket to SAPJ2EE server (note 691253)
      ( 0.001) SQL Trace: fix error in program name filter (note 697685)
      ( 0.001) Dynamic Invoke Class Constants Defaults (note 701926)
      ( 0.001) Empty title + varying line size (note 671796)
      ( 0.001) RTM/AAB logging inside HTTP request (note 687116)
      ( 0.001) Assertions/BPs: core during RFC (note 700868)
      ( 0.001) ITS ToolBar: toggle button state, get icon name (note 673134)
      ( 0.001) Implicit default table parameters (note 700146)
      ( 0.001) Ignore HTTP-server requests during ITS-processing (note 700871)
      ( 0.001) Kernel Methods: signature of c-macros changed (note 703161)
      ( 0.001) Dynamic Invoke Abstract Inherited Implemented (note 703413)
      ( 0.002) CST patch collection 50 2003 (note 687395)
      ( 0.002) TPDA: patch collection (note 703735)
      ( 0.002) LOOP ... WHERE memory leak (note 703397)
      ( 0.002) RUNT_ILLEGAL_SWITCH during garbage collection (note 702442)
      ( 0.002) Some errors in the debugger with special fieldnames (note 704384)
      ( 0.002) CALL TRANSFORMATION exceptions (note 701467)
      ( 0.002) HTML Escaping of ICF error documents (note 626073)
      ( 0.002) HTTP/External Debugging for RFC (III) (note 668256)
      ( 0.002) JavaScript: enhance roll ability in double hash code (note 703026)
      ( 0.002) Do not enter memcpyRChk during Cache reorg. (note 447519)
      ( 0.002) Dynamic types: get_components hat non unqiue ids (note 703020)
      ( 0.002) ST: initialize result STRING (note 703615)
      ( 0.002) Open SQL: joining tables w/ and w/o client (note 703710)
      ( 0.002) Output error by WRITE (*) using conversion exits (note 677893)
      ( 0.002) Avoid invocation of garbage collector in certain cases (note 704554)
      ( 0.002) ST: Load Size (note 705269)
      ( 0.002) Allocation strategy in ABAP shared objects (note 705956)
      ( 0.003) Correction of design error in Secure Storage (note 702647)
      ( 0.003) Unjustified syntax error when SETUP, TEARDOWN (note 705308)
      ( 0.003) Incoming UTF-8 RFC use UTF-8, not non-Unicode (note 647495)
      ( 0.003) ICU shared libraries upgrade (note 519753)
      ( 0.003) Sapdext: prevent loop of rabax DYNPRO_SAPDEXT_LOOP (note 703374)
      ( 0.003) Oracle multibyte codepage: Incorrect LIKE evaluation (note 695899)
      ( 0.003) Downward compatibility of table statistics (note 707005)
      ( 0.004) Correctly adapt occu of RTTI tables (note 707619)
      ( 0.004) AAB: truncated subkey values (note 708269)
      ( 0.004) Dbbuf: avoid deadlocks in export/import buffer (note 496511)
      ( 0.004) ST: no deserialization map (note 708597)
      ( 0.004) ITS TextEdit: selection functions improved (note 669904)
      ( 0.004) ITS TextEdit: new textstream interface (note 695802)
      ( 0.005) Memory in tmpfs is not released correctly (note 706071)
      ( 0.005) CST patch collection 09 2004 (note 708621)
      ( 0.005) CCMS: agent cannot monitor standalone enqueue server (note 694057)
      ( 0.005) Wrong Fido entries (note 708789)
      ( 0.005) ST: Apply in Loop (note 710150)
      ( 0.005) ST: xml header (note 708787)
      ( 0.005) UTF-8 writer; default namespace; lang(); external options (note 709649)
      ( 0.005) IMPORT: lang key handling (note 512518)
      ( 0.005) HashTab SHO-Read MoveToFront-Heuristik (note 707891)
      ( 0.005) Avoid shortdump DEBUGGER_ILLEGAL_VALUE in abDbgDisVar (note 708356)
      ( 0.005) Making RFC calls with an empty password (note 662390)
      ( 0.005) SYSTEM_CORE_DUMPED in addIDENT (gen/scsymbc.c) (note 685625)
      ( 0.005) SHO: cloning of objects, rehash at detach (note 708843)
      ( 0.006) Print control buffer overflow (note 707500)
      ( 0.006) InitStor:  missing free (note 707929)
      ( 0.006) Free_Area/Instance (note 709558)
      ( 0.006) Shared Objects core at table update (note 712739)
      ( 0.006) BOM / XmlDecl bug (note 592857)
      ( 0.006) Max shared string size (note 592857)
      ( 0.006) Default values of exp/imp function parameters (note 712280)
      ( 0.006) RTM bugfix in get_classname (note 711420)
      ( 0.006) SM51: Allow more than 1000 patch textes altogether (note 712811)
      ( 0.006) C-Call AB_GET_COUNTRY (note 685207)
      ( 0.006) TPDA: Avoid duplicate breakpoints (note 713456)
      ( 0.006) Too many frame characters (note 671796)
      ( 0.006) Check type load time stamp (note 713492)
      ( 0.006) Prevent two short dumps in one second (note 711982)
      ( 0.006) Default values of exp/imp function parameters (2) (note 712280)
      ( 0.007) Default values of exp/imp function parameters (3) (note 712280)
      ( 0.007) RFC Patch Collection  11.2004 (note 715274)
      ( 0.007) ST: Apply in Loop, Variables (note 710150)
      ( 0.007) ST: XML Position in Exception (note 715879)
      ( 0.007) Two Phase Pbag Search (note 713493)
      ( 0.007) LOAD_PROGRAM_CLASS_MISMATCH (note 716456)
      ( 0.007) Syntax error with VERI STRUCTINFO (note 716353)
      ( 0.007) XSLT Core by interface methods (note 709857)
      ( 0.007) Clean prev user after wp restart (note 715877)
      ( 0.007) Debugging rfc after server cleanup (note 715881)
      ( 0.007) CST patch collection 12 2004 (note 716915)
      ( 0.007) CLUSTD converter (deep) / EXPORT (SAP_UINT) (note 612359)
      ( 0.007) Core dump in LOAD_PROGRAM_CLASS_MISMATCH correction (note 716456)
      ( 0.007) SYSTEM_CORE_DUMPED at ATTACH / DETACH (note 718666)
      ( 0.008) SLIN: 640 AKK problem with SYNT_EXT_INFO (note 717012)
      ( 0.008) Error in ab_HshSetDelete (note 719413)
      ( 0.008) AKK violation: Newly appearing syntax error (note 719142)
      ( 0.008) SYSTEM_CORE_DUMPED in sc_program_env (gen/scsymbc.c) (note 719139)
      ( 0.008) Fix charref parsing (note 592857)
      ( 0.008) ALEWEBDOWNLOAD in Unicode systems (note 676835)
      ( 0.008) Support the displaying of  XML Docs in the ITS (note 717380)
      ( 0.008) Open SQL: missing syntax error message texts (note 710454)
      ( 0.008) HTTPS proxy authentication in ICF (note 717995)
      ( 0.008) Diag protocol: multiple codepages (note 621992)
      ( 0.008) Codepage conversion for PDF based jobs (note 719630)
      ( 0.008) Missing dynamic Texts in GUI-Status (note 717870)
      ( 0.008) READ DATASET: Suppress conversion exception if requested (note 709832)
      ( 0.008) Userswitch Inbound-/Outbound-Scheduler (note 212742)
      ( 0.008) CCMS Monitoring Patch Collection 2004/2 (note 694057)
      ( 0.008) SCANNER_MISSING_MESSAGE (note 719396)
      ( 0.008) Unicode: Core Dump in build_initrec, Modul dbntab (note 717717)
      ( 0.008) Snc/accept_insecure_rfc=U for system-to-system calls (note 713495)
      ( 0.009) Error in ab_HshSetDelete (II) (note 719413)
      ( 0.011) Error in ab_HshSetDelete (III) (note 719413)
      ( 0.011) Scroll BCALV_TEST_LIST -> scrolls correctly (note 721384)
      ( 0.011) Userswitch Inbound-/Outbound-Scheduler (note 716263)
      ( 0.011) ST: exception information; littleEndian; tables (note 715879)
      ( 0.011) ST: exception information; littleEndian; tables (note 720364)
      ( 0.011) Exceptions in CALL SCREEN (note 720908)
      ( 0.011) TPDA: prepare fix for dynp debugging (note 719967)
      ( 0.011) RSQL: Correction for MODIFY DBTAB FROM ITAB (note 716037)
      ( 0.011) Enhancements for ITS (note 720738)
      ( 0.011) Avoid short dump LOAD_NOT_FOUND_AFTER_GEN (old timestamp) (note 615022)
      ( 0.011) Display data references in the ABAP debugger (note 721223)
      ( 0.011) remove semaphore families and reorganize all ip__libs (note 721885)
      ( 0.012) Statistics: wrong data in rfc client destination records (note 724253)
      ( 0.012) Wrong length in copy operation in func check_usobt() (note 724528)
      ( 0.012) CST patch collection 15 2004 (note 723952)
      ( 0.012) Invalid Method Call Syntax (note 722346)
      ( 0.012) Invalid Warnung For Class Type (note 722347)
      ( 0.012) Update Memory Inspector (note 684660)
      ( 0.013) Wrong length in copy operation in func check_usobt() (note 724528)
      ( 0.013) Shared Objects: data references and detach (note 722884)
      ( 0.013) Selecting a context menu entry cause session hang up (note 713598)
      ( 0.013) MOVE_TO_LIT_NOTALLOWED with READ ... TRANSPORTING (note 722778)
      ( 0.013) Fix for searchhelp showing only one result value (note 697295)
      ( 0.013) Using keys in dropdown listboxes if no value is supplied (note 717871)
      ( 0.013) ITSP: Hitlist in Unicode systems (note 676835)
      ( 0.013) ShmFreeRemoveInactiveLocks with 2 locks (note 709558)
      ( 0.013) Shared Objects - itab line reference after detach (note 721190)
      ( 0.013) HTTPS proxy authentication in ICF (II) (note 717995)
      ( 0.013) Code pages, languages and locales, packet 37 + 38 (note 447519)
      ( 0.013) Code pages, languages and locales, packet 37 + 38 (note 722638)
      ( 0.013) Ixml_stl / runt / tidy (note 592857)
      ( 0.013) Empty dynprolist does not cancel control rendering any more (note 718292)
      ( 0.013) Enhancements for ITS (note 720738)
      ( 0.013) No debug after Dynp RABAX (note 721693)
      ( 0.013) Multiple instances of same subscreen and f4 ocx (2) (note 698564)
      ( 0.014) ITS640, supporting sap-accessibility (note 676835)
      ( 0.014) XSLT: Unicode in XPath Expressions (note 613113)
      ( 0.014) Search help and focus (note 728722)
      ( 0.014) Ab_PrepareStrh with lenght 0 return not NULL (note 729435)
      ( 0.014) ITS640, Response Container removed (note 676835)
      ( 0.014) Missing print controls (note 707500)
      ( 0.014) Support of ISO Latin-1 characters for certificates (note 723016)
      ( 0.014) EVENT parameter: LIKE, TYPE LINE OF not evaluated (note 724406)
      ( 0.014) MINCHAR, MAXCHAR wrong value (note 724304)
      ( 0.014) ITS640, supporting ~http_https on/off (note 676835)
      ( 0.014) ITS640, takeover logoff/exiturl (note 676835)
      ( 0.014) C-call for printing the cover page (note 720409)
      ( 0.014) Disabling ITS disables the 'Compiling...' progress indicator (note 725617)
      ( 0.014) Grid-View dump, Alewebdownload (note 676835)
      ( 0.014) Trfo Rabax Handling corrected (note 729202)
      ( 0.014) Code pages patch packet 39 (note 447519)
      ( 0.014) Memory allocation for strings reduced (note 721876)
      ( 0.014) READ ... BINARY for SORTED TABLE with attribute key (note 725720)
      ( 0.014) Bidi printing: Corrected rightadjustment of numbers (note 618988)
      ( 0.014) ITS640,takeover command logoff/endofsession SSO (note 676835)
      ( 0.014) CX_SHM_INCONSISTENT; CL_SHM_UTILITIES (note 727142)
      ( 0.014) Prevent 0x00 in database table SNAP (note 722444)
      ( 0.014) Error if print immediately for PDF based forms (note 727914)
      ( 0.015) Correct lookup on password history (note 732038)
      ( 0.015) CCMS Monitoring Patch Collection 2004/2 (note 694057)
      ( 0.015) Core in syntax check (offset length w/ interface comp.) (note 732367)
      ( 0.015) CST patch collection 18 2004 (note 730345)
      ( 0.015) Invalid sapgui codepage (note 700448)
      ( 0.015) NO_PDF flag for ADS spool jobs (note 685576)
      ( 0.015) FxReader set_error (note 722030)
      ( 0.015) Incorrect display of list search results in RTL mode (note 729558)
      ( 0.015) Support of ISO Latin-1 characters for certificates (note 723016)
      ( 0.016) CREATE for key table with default key (note 732922)
      ( 0.016) Rebuild rspoicon.c in krn/rspo (note 724736)
      ( 0.016) Tablesharing fault in MOVE-CORRESPONDING (note 732958)
      ( 0.016) Core at INSERT into table after SORT (note 733079)
      ( 0.016) Supporting ICF-Options for ITS (note 727137)
      ( 0.016) Cl_fx_reader update (note 722030)
      ( 0.016) ITS-Plugin 640: known problems (note 676835)
      ( 0.016) Enable ticket creation for ITS WebGUI/IAC (note 720738)
      ( 0.016) Invisible focus element (note 734746)
      ( 0.016) RFC legacy MDMP callers and Unicode callees (note 722193)
      ( 0.016) Redundant moves in itab operations (note 726657)
      ( 0.016) Attach_for_update returns shared lock (note 733184)
      ( 0.016) Application server hangs on Windows 2003 waiting for semaphore (note 724212)
      ( 0.016) ITS-Plugin 640: known bugs (note 676835)
      ( 0.016) 'CLASS ... FOR TESTING + INTERFACES' (note 722346)
      ( 0.016) Avoid SYSLOG message 'PXA recovery after reboot' (note 689497)
      ( 0.017) ST: alignment for variable-read (note 735543)
      ( 0.017) IMPORT: alignment handling for old exports (note 734897)
      ( 0.017) NT: sapstartsrv prozess auto restart feature (note 729945)
      ( 0.017) IMPORT: error with ignoring structure boundaries (note 737044)
      ( 0.017) Open SQL : Allow more than eight hints (note 735360)
      ( 0.017) Event SAP_SYSTEM_START with parameters (note 681516)
      ( 0.017) Sapgui 640 and tablecontrol column selections (note 735695)
      ( 0.017) Diag trace: unknown entries (note 736592)
      ( 0.017) Debugger: Auth. problems while saving table to local file (note 729616)
      ( 0.017) RFC Patch Collection 18 2004 (note 732744)
      ( 0.017) ABAP Shared Objects: Coredump at ATTACH WRITE (note 733969)
      ( 0.017) TIME_OUT oder Coredump in C-Funktion ab_ScanBase (note 733971)
      ( 0.017) ST: variables, iXML objects (note 737174)
      ( 0.017) destroyed dynpro load (note 207817)
      ( 0.017) Japanese characters were scrambled (note 736835)
      ( 0.017) XI-Editor (note 676835)
      ( 0.017) ITS-Plugin 640: known bugs (note 676835)
      ( 0.017) Correction in session management within function (note 676835)
      ( 0.017) SCAN STRUCTURE: GROUP BY in sub query (note 363992)
      ( 0.017) Segmentation Violation in db_ntab (Makro CHECK_ACC) (note 736340)
      ( 0.018) CREATE_DATA_UNKNOWN_TYPE during XML-ABAP deserialization (note 739134)
      ( 0.018) RUNT_INTERNAL_ERROR during XML-ABAP object (note 739233)
      ( 0.018) ST: deserialization with tt:copy (note 739825)
      ( 0.018) Dynpro Compress: CONTAINER_IGNORE for Table Control set (note 738808)
      ( 0.018) Code pages, languages and locales, packet 40 + 41 (note 447519)
      ( 0.018) RFC Patch Collection 18 2004 (note 732744)
      ( 0.018) Invalid sapgui codepage (note 700448)
      ( 0.018) ERROR trace: invalid value hacurrow hwcurrow (note 651566)
      ( 0.018) IMPORT: AS400 alignment handling (note 739164)
      ( 0.018) Forward POST parameter from ITS frameset (note 737798)
      ( 0.018) Code pages patch packet 42 (note 447519)
      ( 0.018) JavaScript linux64 correct INT_FITS_IN_JSVAL (note 740973)
      ( 0.018) CST patch collection 22 2004 (note 741110)
      ( 0.018) Login/password_charset, codeversion 'D' (note 735356)
      ( 0.019) Ixml shared memory corrections (note 592857)
      ( 0.019) CCMS Agent Patch Collection 2004/3 (note 694057)
      ( 0.019) ST: ignore irrelevant whitespace (note 742507)
      ( 0.019) Code pages patch packet 40 (NT) (note 447519)
      ( 0.020) NT: Optional sequential GUID generation (note 740418)
      ( 0.020) GUI_PATCHLEVEL for app server (note 591681)
      ( 0.020) List Tree, Hyperlinks (note 742066)
      ( 0.020) List Tree, Hyperlinks (note 742066)
      ( 0.020) New HTML(B) strEnc function (note 739619)
      ( 0.020) CST patch collection 25 2004 (note 744711)
      ( 0.021) Prepare for DBPROPERTIES (pack 44) (note 447519)
      ( 0.021) Missing wrapper object of class CX_SY_NO_HANDLER (note 745804)
      ( 0.021) XML-ABAP, SAP_BASIS 610: component names with namespaces (note 745935)
      ( 0.021) Possible Core after MESSAGE string TYPE 'X' (note 746144)
      ( 0.021) XSLT: Computation of xsl:sort attributes (note 746146)
      ( 0.021) SE30: Missing trace file after measurement (note 740184)
      ( 0.021) Wrong free of memory (note 745745)
      ( 0.021) NT: sapstartsrv fix for prozess auto restart feature (note 729945)
      ( 0.021) F1 on pushbuttons (note 744822)
      ( 0.021) ICF: Shortened Session-IDs in Developer-Traces (note 745722)
      ( 0.021) CALL TRANSFORMATION Option VALUE_HANDLING (note 727549)
      ( 0.021) CST patch collection 26 2004 (note 746373)
      ( 0.021) Invalid sapgui codepage (note 700448)
      ( 0.022) Alignment checks for packed numbers (note 747695)
      ( 0.022) Illegal dynpro state after RABAX (note 747694)
      ( 0.022) AsXML: suppress static interface attributes (note 747155)
      ( 0.022) Accept Dynpro Sourceversion 37 (note 743155)
      ( 0.022) ITS Plugin 640, known problems, item 23) security, buffer overwrite (note 676835)
      ( 0.022) Screens with GOS Containers (note 747140)
      ( 0.022) Empty search help dialogs (note 747270)
      ( 0.022) Too many SPOOL* files in global directory (note 749860)
      ( 0.022) New GUID and TID algorithm (note 650280)
      ( 0.022) Code pages patch packet 43 (note 447519) (note 447519)
      ( 0.022) Fixed a tight loop in julep, calling a function with an extra (note 747700)
      ( 0.022) ERROR trace: invalid value hacurrow hwcurrow (note 651566)
      ( 0.023) LZPL OTF driver (note 750002)
      ( 0.023) Correct 132-char limitation (note 750363)
      ( 0.023) RFC: additional returncode-check for ThSendToGui (note 685609)
      ( 0.023) TABLE_LINE_NOT_EXISTING at loop on a HASHED TABLE (note 750042)
      ( 0.023) INSERT of a loop reference into a hashed table (note 749075)
      ( 0.023) Semantics of the SUM statement (note 742683)
      ( 0.023) Diag enhancements for acc support (note 750543)
      ( 0.023) ITS-Plugin 640: Known problems (note 676835)
      ( 0.024) Error in step movenametab (note 745745)
      ( 0.025) HTTP debugging: Save memory ranking to local file (note 752659)
      ( 0.025) Avoid unnecessary calls to semaphore 49 (note 752473)
      ( 0.025) Buffer overflow in OMS command buffer (note 752977)
      ( 0.025) Correct handling of empty strings (note 740987)
      ( 0.027) Open SQL : Allow more than 8 hints in SELECT (note 754728)
      ( 0.027) Full path name to 255 char for temse (note 749150)
      ( 0.027) NT: Fix for occasional 'Service not started' error during Service inst (note 142100)
      ( 0.027) Diag trace: unknown entries (note 736592)
      ( 0.027) CST patch collection 28 2004 (note 751484)
      ( 0.027) Image does not fit (note 676835)
      ( 0.027) Strings and dynpro char fields (note 618120)
      ( 0.027) Core in ab_CxTableViewColOrder (note 751754)
      ( 0.027) ITS HTML Control: protocol not added if missing (note 747962)
      ( 0.027) Ixml stlport memory hole (note 545335)
      ( 0.027) CST patch collection 30 2004 (note 755912)
      ( 0.027) Wrong output of japanese characters II (note 670069)
      ( 0.027) Empty spool list for NEW-PAGE PRINT OFF (note 750153)
      ( 0.027) ABAP List Structure Recognition (1) (note 751494)
      ( 0.027) SHO: Area-constructor at INVALIDATE, setting area-properties (note 751882)
      ( 0.028) SYSTEM_RUDI_INVALID at CREATE OBJECT o TYPE (t) (note 757122)
      ( 0.028) Wrong syntax error at INTERFACES (note 757284)
      ( 0.028) ABAP List Structure Recognition (2) (note 751494)
      ( 0.029) Missing PUBLIC addition of CLASS (note 759104)
      ( 0.029) Open SQL: problem with extended portability check (note 758763)
      ( 0.029) SYSTEM_CORE_DUMPED in ABAP generation for type aliases (note 759109)
      ( 0.029) Codepage Conversion: New flag for Bidi support (note 716200)
      ( 0.029) ITS up/download: upload of files to unicode R/3 incorrect (note 758362)
      ( 0.029) Fixed multiple HtmlPPs bug for resourceless services (note 759228)
      ( 0.029) ITS640 Known bugs Item 26 (note 676835)
      ( 0.030) Check for infinite loops in random number generator (note 759735)
      ( 0.030) ABAP-XML transformation with PARAMETERS infloops (note 746332)
      ( 0.030) Correct SQL EXPLAIN function on UNICODE systems (note 760883)
      ( 0.030) Extend Structure Buffer (note 761324)
      ( 0.030) NT: work processes don't start due to different memory layout (note 761159)
      ( 0.030) RSQL: Correction for DELETE DBTAB FROM ITAB (note 753333)
      ( 0.030) Correct focus handling on F1 help (note 761377)
      ( 0.030) Dbbuf: invalid data read from single key buffer (note 625242)
      ( 0.030) DDIC-Types used by CALL METHOD ... CALLING (note 761843)
      ( 0.030) Warning at CALL METHOD (note 761933)
      ( 0.030) UTF-8 conversion for jobdata (note 739968)
      ( 0.030) CPIC calls for usertype SYSTEM, logon timestamping (note 760414)
      ( 0.030) DB Multiconnect: Closing idle secondary connections (note 762084)
      ( 0.030) TPDA: problems with BREAK-POINT ID  (note 762431)
      ( 0.030) ABAP List Structure Recognition (3) (note 751494)
      ( 0.030) SLC length (note 759208)
      ( 0.030) Corrected namespace handling (note 762678)
      ( 0.031) Correct INT4 I/O (note 627615)
      ( 0.031) No Selectionscreen generation for classes and interfaces (note 744856)
      ( 0.031) RABAX close unused snapfile (note 763333)
      ( 0.031) Data-References and ADD-CORRESPONDING (note 761850)
      ( 0.031) Code pages, languages and locales, packet 46 + 47 (note 447519)
      ( 0.031) SHO: DetachCommit with CompletionError (note 763653)
      ( 0.031) Code pages patch packet 48 (note 447519)
      ( 0.031) Fixed broken %-escaping of multibyte strings (note 763175)
      ( 0.031) Corrected dw_gui.sl linkage on hp platform (note 763292)
      ( 0.031) Runtime error UNEXPECTED_RUDI_TYPE (note 764185)
      ( 0.031) Runtime error SYSTEM_LOAD_OF_PROGRAM_FAILED (note 764186)
      ( 0.031) Runtime error SYSTEM_SHM_AREA_DETACHED (note 764187)
      ( 0.031) Runtime error SAPSQL_WA_WRONG_ALIGNMENT (note 764184)
      ( 0.032) SHO: DetachCommitCompletion failed (Part 2) (note 763653)
      ( 0.032) SHO free on local itab (note 749082)
      ( 0.032) Corrupted report sources/textes after unicode upgrade (note 765377)
      ( 0.032) Process OTF command BM in RTL (note 353987)
      ( 0.032) Trust-Manager: Error when encrypting PSE (note 765123)
      ( 0.032) Security Audit Log: some transaction starts not audited (note 763159)
      ( 0.032) CST patch collection 34 2004 (note 764321)
      ( 0.032) ABAP List Structure Recognition (4) (note 751494)
      ( 0.032) DYN_COMP_ILLEGAL with CREATE DATA (note 766330)
      ( 0.033) Reset SPATPAR flag (note 765605)
      ( 0.033) OMS support for AS400 (note 766732)
      ( 0.033) Open-SQL: SELECT INTO CORRESPONDING FIELDS and generic type of target (note 765822)
      ( 0.033) Rfc patch collection 35 2004 (note 766807)
      ( 0.033) Url form parameter scanning without = sign (note 764903)
      ( 0.033) ITS-Plugin 640: Known/fixed problems (note 676835)
      ( 0.033) ITS TextEdit Control: Text disappears after searchhelp (note 725839)
      ( 0.033) Code pages,converters (package 49) (note 447519)
      ( 0.033) NT: Check CPU timer frequency (note 532350)
      ( 0.033) Code pages patch packet 50 (note 447519)
      ( 0.034) Error in kernel call ABAP_CALLSTACK (note 769503)
      ( 0.034) Runtime error BCD_OVERFLOW converting empty strings (note 769508)
      ( 0.034) Core dump after implicit cast by ASSIGNING (note 766876)
      ( 0.034) Performance: do not read TSP02L for RDI/OTF (note 703798)
      ( 0.034) RFC patch collection 34 2004 (note 769890)
      ( 0.034) Gui scripting: missing loop field names (note 769420)
      ( 0.034) Integrated ITS: garbled hit lists (note 770161)
      ( 0.034) CST patch collection 37 2004 (note 770183)
      ( 0.035) PRINT_LINE_COUNT_TOO_LOW during printing (note 770335)
      ( 0.035) Wrong barcode printout (1) (note 770376)
      ( 0.035) Avoid syntax errors for correct usage of PROVIDE FIELDS (note 771600)
      ( 0.035) New frontend print for SAP GUI for HTML (note 771683)
      ( 0.035) Core or runtime error during modify on projection view (note 770318)
      ( 0.035) Unicode: RFC MDMP dest. garbled code pg., symptom S9 (note 647495)
      ( 0.035) ITS_Browser_Redirect und Content-Length (note 771183)
      ( 0.035) Fix memory corruption in move nametab / dipgntab (note 745745)
      ( 0.035) CALL TRANSFORMATION Parameter INITIAL_COMPONENTS (note 771161)
      ( 0.035) Forward POST parameter from ITS frameset (note 737798)
      ( 0.035) Ixml flush / bindata (note 545335)
      ( 0.035) Code pages,converter (package 51) (note 447519)
      ( 0.035) ITS640: process sap-sesscmd=USR_ABORT like OK-Code=/NEX (note 772251)
      ( 0.035) Core or runtime error during modify on projection view (note 770318)
      ( 0.036) PRINT_LINE_COUNT_TOO_LOW during printing (note 770335)
      ( 0.036) Active tabstrip button and F4 dialogs (note 772922)
      ( 0.036) Docker size and new i-mode (note 615047)
      ( 0.036) Paging related error trace entries (note 694628)
      ( 0.036) Logon error messages show '#' instead of digit chars (note 774211)
      ( 0.036) ITS Calendar: Set Color error fixed (note 767437)
      ( 0.037) AAB breakpoints in system programs (note 774627)
      ( 0.037) Update MemoryInspector II (note 684660)
      ( 0.037) CX_INVALID_TRANSFORMATION (note 773330)
      ( 0.037) Core at customer includes (note 774829)
      ( 0.037) TABLE_LINE with offset/length specification (note 774703)
      ( 0.037) ABAP: core dump at LIKE dref->*-component (note 772941)
      ( 0.037) Failed RFC system calls causing invalid SM20 records (note 774406)
      ( 0.037) ST: deserialization of type N (note 775699)
      ( 0.037) Conversion error in HTML Gui (note 775039)
      ( 0.038) Conversion exits with string parameters (note 776990)
      ( 0.038) Core in debugger data display (note 777203)
      ( 0.038) SLIN: Core dump while collecting cross ref data (note 776596)
      ( 0.038) Start transaktion via systemfunction DYNP_OKCODE_SET (note 776496)
      ( 0.038) Perfomance Fix READ DATASET in TEXT MODE (note 775375)
      ( 0.038) Structure alignment correction: Support for BIDI (note 716200)
      ( 0.038) CST patch collection 40 2004 (note 776283)
      ( 0.038) Steploop radio/checkbutton and label left/right (note 776514)
      ( 0.038) ITS 640 Plugin, known problems, issue 29 (note 676835)
      ( 0.038) Some bugs with lists in webgui fixed (note 762968)
      ( 0.038) ITS Up/Download: UrlDecode for Context Variable obsolet (note 766313)
      ( 0.038) ITS TextEdit: readonly mode in netscape fixed (note 768063)
      ( 0.038) Tolltip texts for columntree icons (note 776561)
      ( 0.038) Known bugs ( issue no 28 ) (note 676835)
      ( 0.038) Closing dangling RFC connections used with printing (note 753080)
      ( 0.038) Introducing strwidth (note 745460)
      ( 0.038) Comparing with a LOOP reference (note 767597)
      ( 0.038) SHO: Cores in GC (note 774465)
      ( 0.038) Trigger Garbage Collection when many PCBs used (note 628303)
      ( 0.038) ABAP-PH: Missing Unicode errors in syntax-check (note 777451)
      ( 0.038) RFC legacy caller, dump on LANG=space in Unicode system. (note 722193)
      ( 0.038) Code pages,converter (package 52) (note 447519)
      ( 0.038) Problems during transport into a Unicode system (note 775114)
      ( 0.038) No Frames Print Parameter (note 777337)
      ( 0.038) List display in Debugger (note 777338)
      ( 0.038) Sapgui/theme default value (note 610274)
      ( 0.038) No initialization of parameter of DESERIALIZE_HELPER (note 777339)
      ( 0.038) Automatic confirmation of Warnings (note 778467)
      ( 0.038) RUNT_ILLEGAL_SWITCH when resetting internal tables (note 778376)
      ( 0.039) # in Asian archived print lists (note 778095)
      ( 0.039) ABAP-SY: Core for dyn. arguments > 255 chars (note 777882)
      ( 0.039) PXA: Introducing PXA_CACHE (note 746984)
      ( 0.039) RTTI DDIC output length > 255 (note 777826)
      ( 0.039) RFC Patchcollection 41 2004 (note 779720)
      ( 0.039) Dynpro: TabStrip and Scrollbar SubScreen Area with CONT_IGN (note 673831)
      ( 0.040) No implicit commit during debugging (note 778582)
      ( 0.040) RFC Patch collection 40 2004 (note 778710)
      ( 0.041) Workprocess hangs on dumping OS process information when memory is low (note 781518)
      ( 0.041) BIDI: Support for fieldwise base direction (note 779879)
      ( 0.041) Foreign key check and chectables with strings (note 780473)
      ( 0.041) ALV grid view entries are not transferred (note 777995)
      ( 0.041) Agate crash when the last line of a grid view is copied (note 775672)
      ( 0.041) ALV grid view column header is not displayed (note 775679)
      ( 0.041) ALV grid view column selection incorrect after dial (note 776587)
      ( 0.041) ALV Gridview 'PAGE UP' leads to the announcement first (note 780570)
      ( 0.041) ITS-PLUGIN: Message handling for IAC (note 779543)
      ( 0.041) Suppress short dump lists in IACs (note 779543)
      ( 0.041) ITS640: enhanced sap-sesscmd handling for webgui (note 772251)
      ( 0.042) Provide kernel functionality for VMIT (note 781997)
      ( 0.042) Rollout rabax save (note 778921)
      ( 0.042) AB_GET_TEXT_FROM_CLUSTER:handling of 50 warnings per statement (note 816246)
      ( 0.059) ABAP-SY: Recursive INCLUDE nesting for classes (note 816247)
      ( 0.059) Error CALL_FUNCTION_ILLEGAL_P_TYPE (note 611004)
      ( 0.059) Diag protocol: multiple codepages (note 621992)
      ( 0.059) Replace strtok with ucafinduca (note 498369)
      ( 0.059) DBIF_RTAB_OUT_OF_CURSORS when using ITS (note 819494)
      ( 0.060) ALV Gridview optimized column width (note 766169)
      ( 0.060) SELECTION-SCREEN INCLUDE PARAMETERS and Listboxes (note 819057)
      ( 0.060) Release independent sapevt (note 802172)
      ( 0.060) RSQL: Correction concerning queries on projection views (note 809297)
      ( 0.060) Check CI include (note 818942)
      ( 0.060) Wrong change record when deactivating initial password (note 819855)
      ( 0.060) TRANSFER to file: Don't truncate East-Asian STRINGs (note 820055)
      ( 0.061) SAAB: Short dump with the minutes announcement in TA SAAB (note 821358)
      ( 0.061) NO F6H message by no record found in TST03 (note 806588)
      ( 0.061) Javascript: adopt binding to changes in note 800346 (note 821710)
      ( 0.061) Enable -SAP- encoding (note 819976)
      ( 0.061) BIDI: Support for fieldwise base direction (note 779879)
      ( 0.061) Menu: dynamic function texts (note 821701)
      ( 0.061) Batch-Input: SYSLOG TREAD - tcode active error (note 822479)
      ( 0.061) RFC patch collection 8 2005 (note 821964)
      ( 0.061) DB Multiconnect: Workprocess restart destroys connection mapping (note 796862)
      ( 0.061) ABAP-SY: Recursive INCLUDE nesting for classes (2) (note 822698)
      ( 0.061) Correction of INF -391 error (note 806993)
      ( 0.062) New frontend print (note 821519)
      ( 0.062) RFC sends large datapackets uncompressed to the SAPGUI (note 824428)
      ( 0.062) Load balance with SNC, provide sncname (note 817854)
      ( 0.062) Menu: dynamic function texts (note 821701)
      ( 0.062) Correct abend in update task debugging (note 824772)
      ( 0.062) Shared Objects: String-Sharing (note 824261)
      ( 0.063) Sharing hash tables (note 825452)
      ( 0.063) Corrections to the Unicode interface (note 522119)
      ( 0.063) Dispatch events in IMC (note 820333)
      ( 0.063) Call transformation: writing to string impr (note 824676)
      ( 0.063) Avoid DBIF_NTAB_TABLE_NOT_FOUND during garbage collection (note 826350)
      ( 0.063) ST: standalone decl / nested call in loop (note 825516)
      ( 0.063) XSLT: Debugger / escaping in namespaces (note 825517)
      ( 0.063) Missing utf8-support in agi-default for webgui (note 825652)
      ( 0.063) Code pages patch packet 62 (note 447519)
      ( 0.063) RUAPO4.1 ~DISCONNECTONCLOSE parameter not working (note 827375)
      ( 0.063) Do no core dump, when some pointers are missing in (note 563769)
      ( 0.064) Spooler level 2 trace bug (note 827514)
      ( 0.064) RTTI lock program (note 822900)
      ( 0.064) Strcpy_sU data misaligned on ntia64 (note 826536)
      ( 0.064) Enabling MSCS support for SAPMMC (note 828432)
      ( 0.064) ITS 6.40: control name = container name for IACs (note 828800)
      ( 0.064) Correct name for tpool proxies and check sum (note 823035)
      ( 0.065) Invalid sapgui input data (note 829096)
      ( 0.065) Protect read-only fields (note 830700)
      ( 0.065) Comparing data refs created via LOOP REF INTO (note 830819)
      ( 0.065) ABAP_ASSERT in extri loop, classical debugger (note 803140)
      ( 0.065) Would core in various ABAP/Dynp situations (note 830710)
      ( 0.065) ABAP-SY: AKK violation for DATA in system include (note 826284)
      ( 0.065) ABAP-SY: Coredump for >50 warnings per statement (2) (note 816246)
      ( 0.065) READ opt. for over specified non-matching key (note 825670)
      ( 0.065) INTERFACE ... DEFFERED in class pools (note 831232)
      ( 0.065) SE30: Avoid error nr 5 for CALL TRANSACTION USING (note 170470)
      ( 0.065) RFC patch collection 12 2005 (note 831456)
      ( 0.066) Rfc Patch Collection 11 2005 (note 828000)
      ( 0.066) FX: utf-8 conv error (note 825516)
      ( 0.066) Core in dy_tx_param() (note 831528)
      ( 0.066) Diagograph(): buffer size check (note 832017)
      ( 0.066) Batch-Input: No Message 00 255 when modify the ok-code (note 833001)
      ( 0.066) PXA/ATRA Patch Collection 12/2004 (note 802791)
      ( 0.066) Search help: F4 within F4 (note 832866)
      ( 0.066) EXCP_INTERNAL_ERROR during debugging (note 833453)
      ( 0.067) ABAP GC on 32-bit platforms when more than 3.4 GB used (note 833336)
      ( 0.067) Diag enhancements for acc support (note 750543)
      ( 0.067) SYSTEM_RUDI_INVALID at ASSIGN with length (note 834179)
      ( 0.067) SHO tab sharing hash collision error (note 829508)
      ( 0.067) SHO: ABAP_ASSERT during update lock with ASSIGING (II) (note 795666)
      ( 0.067) Kernel change for hide/display gridlines and customizing (note 825864)
      ( 0.067) CCMS Monitoring Patch Collection 2005/2 (note 809007) (note 809007)
      ( 0.067) Missing syntax error messages (note 826436)
      ( 0.067) Debugger (jump to statement)' (note 834640)
      ( 0.067) Integrated ITS 6.40: disconnectonclose for IACs in int. ITS)' (note 827375)
      ( 0.067) New ABAP Debugger problems with stack navigation (note 832192)
      ( 0.068) Re-sort of OTF table in ABAP (note 353987)
      ( 0.068) Spooler: Garbage text in REALSRV field (note 835703)
      ( 0.068) Integrated ITS and sap webdispatcher (note 835762)
      ( 0.068) OpenSQL: General support for ABAP-Hints on MAXDB (note 652096)
      ( 0.068) Open SQL: dynamic LIKE and ABAP field as pattern (note 835522)
      ( 0.068) Classic Debugger: itab search & download, watchpts (note 835010)
      ( 0.068) Int. ITS 6.40: ~disconnectonclose for IACs always turned on (note 827375)
      ( 0.068) ISeries: fdopen handling fixed (note 833895)
      ( 0.069) Avoid lockwaits on table TMDIR while debugging (note 837656)
      ( 0.069) Integrated ITS, version information in HTML page (note 838549)
      ( 0.069) Searchhelp select otions, select for blanks (note 836742)
      ( 0.069) RFC logon - security bugfixes (note 830528)
      ( 0.069) Memory leak using table sharing (note 837518)
      ( 0.069) New checks for DDIC type inconsistencies (note 837077)
      ( 0.069) Update list structure recognition 2 (note 751494)
      ( 0.069) WRITE UNDER and COMMON PART (note 825434)
      ( 0.069) Code pages, converters, locales. Package 636465 (note 447519)
      ( 0.069) SORTED TABLE: Memory consumption after MOVE/IMPORT (note 834807)
      ( 0.069) Shared Objects: Multi-Attach; Get_Current_Usage (note 838683)
      ( 0.069) Clear RTM buffer after flushing (note 838305)
      ( 0.069) Core dumps during session end in rare cases (note 838305)
      ( 0.069) CST patch collection 15 2005 (note 834501)
      ( 0.069) ASCII ABAP stack programs and SCS Unicode programs in one dir (note 837731)
      ( 0.069) Actionbar entries without fastpath (note 548709)
      ( 0.069) Fixes for enhanced ASCII support on OS/390 (note 595331)
      ( 0.069) LSR list ourput IV (note 751494)
      ( 0.069) Diag protocol: multiple codepages (note 621992)
      ( 0.069) Itab component access with length specification (note 838229)
      ( 0.069) Fixes for enhanced ASCII support on OS/390 (note 595331)
      ( 0.069) Integrated ITS, problems during conversion of indication (note 831959)
      ( 0.069) Userswitch Inbound-/Outbound-Scheduler (note 716263)
      ( 0.069) Toolbar control remember scroll position (note 806313)
      ( 0.069) Shared Objects: Performance Detach_Commit (note 838596)
      ( 0.070) Revert UTC BufferSync Timestamp until R3Trans and TP (note 749911)
      ( 0.071) Patch collection - logon routine, 1/2005 (note 835038)
      ( 0.071) 16-Byte alignment in rstg_get (note 837410)
      ( 0.071) CCMS RZ20: missing green alerts (note 839672)
      ( 0.071) CCMS RZ20: missing green alerts (note 746193)
      ( 0.071) D021S get each field separately (note 687334)
      ( 0.071) SE30: Avoid error nr. 5 in case of LEAVE SCREEN (note 170470)
      ( 0.071) Performance of compare for shared internal tables (note 839691)
      ( 0.071) Fixed textedit control problem with multipart/form-data ctype (note 841196)
      ( 0.071) ICM crash in HttpPlugInWriteErrorText (note 842609)
      ( 0.072) Enable printing of arabic-indic digits (note 842887)
      ( 0.072) Core after SORT within a LOOP (note 841997)
      ( 0.072) Its-plugin: Overlap of check boxes and radio buttons (note 839070)
      ( 0.072) Usob_authvaltrc for 610/620 (note 842157)
      ( 0.072) Program groups and CFW-modules (note 821158)
      ( 0.072) Program groups and CFW-modules (note 835127)
      ( 0.072) SELECT FOR UPDATE: release locks after commit (note 843042)
      ( 0.072) Set algorithm und key length of SSF PSEs (note 836367)
      ( 0.072) Downport rnd (no effect for disp+work) (note 836008)
      ( 0.073) Template invalidation fixed (note 840220)
      ( 0.073) ITS Up/Download: its plugin error in unicode R3 (note 841263)
      ( 0.073) ITS HTML Viewer: parameters of the sapevent incorrect (note 829669)
      ( 0.073) Correct quickinfo in TC (note 842040)
      ( 0.073) CLUSTER: COMP (note 772941)
      ( 0.076) Search help in mixed mode apps (note 849476)
      ( 0.076) ITS: Empty screen after warning message (note 849337)
      ( 0.076) Toolbarbutton menu (note 848805)
      ( 0.076) Searchelp error in MASSD (note 848289)
      ( 0.076) TABLE_LINE_NOT_EXISTING with MODIFY ... WHERE (note 845378)
      ( 0.076) RFC patch collection 22 2005 (note 850305)
      ( 0.076) Performance Verification Infrastructure-I (note 803789)
      ( 0.077) Catch zero length in ST command (OTF RTL handling) (note 353987)
      ( 0.077) Spooler: CJK string not printed (note 849315)
      ( 0.077) SapSSL-Update, support for OS/400 ASCII kernels (note 772517)
      ( 0.077) ST: Loops; deserial-state; extensibility (note 849075)
      ( 0.077) Dbbuf: enhance performance of single key buffer (note 826729)
      ( 0.077) Unsharing a HASHED TABLE within a loop (note 852036)
      ( 0.077) Fix memory corruption in move-nametab (note 745745)
      ( 0.077) Position of arabian printout (note 849072)
      ( 0.077) DBIF_NTAB_TABLE_NOT_FOUND during garbage collection-II (note 826350)
      ( 0.077) Integrierter ITS, MS Office 2003 session timeout (note 846857)
      ( 0.077) XSLT/iXML: Renderer memory consumption (note 844722)
      ( 0.077) Ixml file streams (note 834242)
      ( 0.077) I18n code page package 69 (late write permission) (note 447519)
      ( 0.077) I18n code page package 67+68 (F5,UMGCCTL,noDB,L) (note 447519)
      ( 0.077) ALV Grid:F4-Help on non-editable fields enabled (note 849656)
      ( 0.077) ALV Gridview dropdown lists are unavailable (note 850272)
      ( 0.077) ALV Gridview remember scroll position (note 839170)
      ( 0.077) Trim content of modified cells (note 850100)
      ( 0.077) CST patch collection 24 2005 (note 851195)
      ( 0.078) Syslog Message for wrong tablename in READ TABLE dbtab (note 851286)
      ( 0.078) CCMS Monitoring Patch Collection 2005/3 (note 809007) (note 809007)
      ( 0.078) Additional legacy RFC dest setup info (note 722193)
      ( 0.078) PROVIDE FIELDS: fix merging of intervals (note 853666)
      ( 0.078) ITS HTML Viewer: incorrect script paths for inserted scripts (note 853051)
      ( 0.078) Memory requests and error traces (note 853608)
      ( 0.078) Ab_BtreeBlockDelete() core on linuxia64 (note 854073)
      ( 0.078) HTML Tidy: get/set option (note 843855)
      ( 0.078) DBIF_NTAB_TABLE_NOT_FOUND during garbage collection (III) (note 826350)
      ( 0.078) Avoid short dump DBIF_REPO_PART_NOT_FOUND (note 854261)
      ( 0.078) Avoid short dump DBIF_REPO_PART_NOT_FOUND (note 854261)
      ( 0.079) PRESCRIBE barcode and subscript bu (note 854502)
      ( 0.079) SORT: use new GETST_TASK_NO_ETRACE (note 193529)
      ( 0.079) Call Transformation: initial refs; core in rabax (note 854572)
      ( 0.079) iXML: namespace context; XSLT: meta tag (note 854571)
      ( 0.079) Problems with CFW modules and ABAP Stack (GC) (note 856468)
      ( 0.079) Ab_BtreeBlockDelete() core, linuxia64 (II) (note 854073)
      ( 0.079) ALV Gridview RowID was not supplied correctly (note 853062)
      ( 0.079) Problems with CFW modules and ABAP Stack (GC) (II) (note 856468)
      ( 0.080) TRMSG-Messages for CALLING method (note 857551)
      ( 0.080) Fill attribute sqlmsg in class CX_SY_NATIVE_SQL_ERROR (note 853002)
      ( 0.080) ITS Up/Down: upload of files in BIN format (note 855475)
      ( 0.080) IXML Miniparser memory consumption (note 426351)
      ( 0.080) Get transaction code from SPA (note 840798)
      ( 0.080) File handling (note 846259)
      ( 0.080) JavaScript more than 65536 lines (note 858307)
      ( 0.080) Rabax trace for section (note 858362)
      ( 0.080) Protect read-only fields (II) (note 842040)
      ( 0.080) List input and control focus (note 858331)
      ( 0.080) Trust-Manager: create PSEs with keylength > 512 bit (note 509495)
      ( 0.080) Correct call of CTL moduls in 6.40 (note 858636)
      ( 0.080) RFC patch collection 26 2005 (note 858707)
      ( 0.080) SncSetMyName() in Unicode-binaries ignores name (note 856809)
      ( 0.080) MaxLength attribute is set to -1 if the backend is Unicode (note 758007)
      ( 0.081) Integrated ITS, error message on transaction selection screen (note 859213)
      ( 0.081) Acces violation in fct. EsIGblMthSlotsPrepare (note 860031)
      ( 0.081) Update Memory Inspector IV (note 684660)
      ( 0.081) Optimization of the algorithm for generating a job log (note 104185)
      ( 0.081) RFC patch collection 27 2005 (note 860531)
      ( 0.081) PXA: avoid mutex corruption after wp restart (note 802791)
      ( 0.081) ALV Gridview Inputlen of cell could be overwritten by column (note 857074)
      ( 0.081) CST Patch Collection 28 2005 (note 860319)
      ( 0.081) In ST01 some auth.objects displayed with garbage (note 855974)
      ( 0.082) ST02: Avoid core dump at NTAB buffers detailed analysis menu (note 859067)
      ( 0.082) AvaScript repair cg for chained jumps (note 861568)
      ( 0.082) Jobs with names in other code pages do not start (note 809888)
      ( 0.082) NT: sapstartsrv detecting J2EE Safe Mode (note 860654)
      ( 0.082) CCMS Monitoring Patch Collection 2005/4 (note 809007)
      ( 0.082) IMPORT: ignore conversion length errors (note 562988)
      ( 0.082) Preloading DLLs to avoid address space fragmentation (note 853696)
      ( 0.083) Definition of SLC flag (note 851307)
      ( 0.083) Syntax warning for MODIFY with INDEX on a HASHED TABLE (note 860304)
      ( 0.083) Error message on fcode /hmusa (note 862612)
      ( 0.083) Update Listparser (note 751494)
      ( 0.083) I18n code page package 7071 (no env, 45000) (note 447519)
      ( 0.083) Garbled double byte characters (note 670069)
      ( 0.083) Dump during abaplist PDF conversion (note 864429)
      ( 0.083) SE30 User Trace (note 716340)
      ( 0.083) SE30 missing trace data in case of particular units (note 864562)
      ( 0.083) Skip unknown sapgui connect data (note 864474)
      ( 0.084) SORT: sharing after phys. sort (note 863934)
      ( 0.084) Reject system okcodes while debuging BTC or VB (note 864607)
      ( 0.084) GC and tab sharing (note 862462)
      ( 0.084) Correct handling of NAZ messages (note 836869)
      ( 0.084) ABAP-SY: Core dump for type in COMMON PART (note 859631)
      ( 0.084) HTML tidy error trace (note 426351)
      ( 0.084) RTTC: illegal type for TYPE HANDLE (note 863747)
      ( 0.084) ABAP-SY: GEN_FRAGVIEW_EMPTY when accessing empty CI (note 865759)
      ( 0.084) SE30: Assure 610/620 compatible file format (note 866355)
      ( 0.084) Cua status traces (note 865763)
      ( 0.084) Core while unsharing a HASHED TABLE in a LOOP (note 866639)
      ( 0.085) MOVE-CORRESPONDING on empty CI-Includes (note 865759)
      ( 0.085) Foreign key messages in BI log (note 867390)
      ( 0.085) Compatibility of external breakpoints (Kernel 6.40, ABAP 6.10) (note 866347)
      ( 0.085) RFC Patchcollection 30 2005 (note 866360)
      ( 0.085) Default tooltip support (note 750543)
      ( 0.085) ST:  with result IXML (note 866256)
      ( 0.085) Patch collection - logon routine, 2/2005 (note 866327)
      ( 0.085) CST Patch Collection 31 2005 (note 867690)
      ( 0.085) Np printon stack (note 864122)
      ( 0.085) AUNIT test class friends (note 852745)
      ( 0.085) Perfomance Fix READ DATASET due to string resize (note 867936)
      ( 0.085) SHO: Commit registration of transactional Areas (note 865094)
      ( 0.085) Core dump when printing RTL documents (note 868178)
      ( 0.085) No trailing blanks of last (note 867921)
      ( 0.086) Code page patch package 74 (note 447519)
      ( 0.086) ICF Patch Collection 02/2005 (note 867361)
      ( 0.086) ALV Gridview core dump in CSapITSGridviewCol (note 869120)
      ( 0.086) Fix overflow, linuxx86_64 responds pretty badly to this (note 772075)
      ( 0.086) Another occurance of the same overflow problem of the ts structure (note 772078)
      ( 0.086) Definition of cellinfo flag (note 851307)
      ( 0.086) ITS Up/Down: implementing of ITS_DIRECTORY_LIST_FILES (note 856141)
      ( 0.086) ITS TextEdit: changed text could be saved in readonly mode sources (note 868919)
      ( 0.086) NT: Traceing deadlock during signal or alarm handling (note 869790)
      ( 0.086) IXML/XSLT: ABAP class registration (note 865779)
      ( 0.086) New diag supportbits (note 866219)
      ( 0.086) IXML conversion buffer (note 866208)
      ( 0.086) RFC patch collection 32 2005 (note 868767)
      ( 0.087) IMPORT: ign cnv len errors and truncation (note 562988)
      ( 0.087) Exit in LOOP AT SCREEN would remove block stack entries (note 870294)
      ( 0.087) ALV Gridview losing single row selection during its roundtrip (note 870999)
      ( 0.087) Patch lsr list output VII (note 779879)
      ( 0.087) ITS Html Viewer: javascript error for gecko Browser in framesets (note 864381)
      ( 0.087) ITS Html Viewer: caching for all binary documents enabled (note 870373)
      ( 0.087) Enhanced SAP encoding methods (note 866020)
      ( 0.087) New SSF Signer-Resultcodes for Certificate Revocation (note 870640)
      ( 0.087) GETWA_NOT_ASSIGNED since PL 84 (note 871851)
      ( 0.087) ALV Gridview Control AGate crash due to error in put_SelectedRows2 (note 865899)
      ( 0.087) ALV Gridview kernel change for expandable/collapsible totals/subtotals (note 861326)
      ( 0.087) Core with CLASS.Type or INTF.Type for data ref in XML-ABAP (note 871774)
      ( 0.087) No runtime type check with CLEANUP INTO  (note 871407)
      dbsl patch information
      ( 0.001) Support of doublebyte character sets (note 695899)
      ( 0.006) Sizecheck for tables includes LOBs (note 713281)
      ( 0.012) MAX_INT_CNT=1000 (note 634263)
      ( 0.019) Correction of ORA-01427 in dbdd_get_size (note 739536)
      ( 0.025) Correction of internal function DbSlPing() (note 748370)
      ( 0.032) Avoid dump when reading negative numbers into type P field (note 764005)
      ( 0.039) NT: work processes don't start due to different memory layout II (note 761159)
      ( 0.055) Secondary connection with multiple NLS environment (note 808505)
      ( 0.073) Automatic reconnect after ORA-03123, ORA-03127 (note 797792)
      ( 0.079) Enable and allow rel. 6.40 for Oracle 8.1.7 (note 851551)
    brbackup 
      BR0051I BRBACKUP 6.40 (12)
      Patch   Date        Note   Text
        3   2004-01-26   700733  Support for secure copy 'scp' command
       11   2004-06-25   749041  Workaround for ORA-12158 on Tru64 Unix
      release note               680046
      kernel release             640
      patch date                 2004-07-28
      patch level                12
      make platform              NTintel
      make mode                  OCI_920_SHARE
      make date                  Sep 19 2004
    brarchive 
      BR0002I BRARCHIVE 6.40 (12)
      Patch   Date        Note   Text
         3   2004-01-26   700733   Support for secure copy 'scp' command
        11   2004-06-25   749041   Workaround for ORA-12158 on Tru64 Unix
        12   2004-07-28   759839   BRARCHIVE fails for database in mount state
      release note               680046
      kernel release             640
      patch date                 2004-07-28
      patch level                12
      make platform              NTintel
      make mode                  OCI_920_SHARE
      make date                  Sep 19 2004
    brrestore 
      BR0401I BRRESTORE 6.40 (12)
      Patch   Date        Note   Text
        3   2004-01-26   700733  Support for secure copy 'scp' command
       11   2004-06-25   749041  Workaround for ORA-12158 on Tru64 Unix
      release note               680046
      kernel release             640
      patch date                 2004-07-28
      patch level                12
      make platform              NTintel
      make mode                  OCI_920_SHARE
      make date                  Sep 19 2004
    brtools 
      BR0651I BRTOOLS 6.40 (12)
      Patch   Date        Note   Text
      release note               680046
      kernel release             640
      patch date                 2004-07-28
      patch level                12
      make platform              NTintel
      make mode                  OCI_920_SHARE
      make date                  Sep 19 2004
    brconnect 
      BR0801I BRCONNECT 6.40 (12)
      Patch   Date        Note   Text
        5   2004-03-19   719581  Delete of old records in arch.log with BRCONNECT
      release note               680046
      kernel release             640
      patch date                 2004-07-28
      patch level                12
      make platform              NTintel
      make mode                  OCI_920_SHARE
      make date                  Sep 19 2004
    sapdba
    tp  
    R3trans 
    saposcol 
    SAPOSCOL version  COLL 20.88 640 - 20.51 NT 05/07/13, 32 bit, multithreaded, Non-Unicode
    compiled at   Aug 22 2005
    systemid      560 (PC with Windows NT)
    relno         6400
    patch text    COLL 20.88 640 - 20.51 NT 05/07/13
    patchno       87
    intno         20020600
    running on    SAPBL5 Windows NT 5.0 2195 Service Pack 4 2x Intel 801586 (Mod 2 Step 7)
    saplicense  
      SAPLICENSE version information
      slic (saplicense) version     3.00
      saplicense information
      kernel release                640
      kernel make variant           640_REL
      compiled on                   NT 5.0 2195 Service Pack 4 x86 MS VC++ 13.10
      compilation mode              Non-Unicode
      compile time                  Aug 21 2005 19:38:48
      update level                  0
      patch number                  48
      source id                     0.087
      supported environment
      database (SAP, table SVERS)   610
                                    620
                                    630
                                    640
      operating system
      Windows NT 5.0
      Windows NT 5.1
      Windows NT 5.2
    Operating System 
      Parameter                  Changed on     Status    Value
    Database 
      Parameter                                      Changed on  Status  Value
      ACTIVE_INSTANCE_COUNT                          15.06.2005  A
      AQ_TM_PROCESSES                                15.06.2005  A       0
      ARCHIVE

    Dear Pallavi,
    Very useful post!
    I am looking for similar accelerators for
    Software Inventory Accelerator
    Hardware Inventory Accelerator
    Interfaces Inventory
    Customization Assessment Accelerator
    Sizing Tool
    Which helps us to come up with the relevant Bill of Matetials for every area mentioned above, and the ones which I dont know...
    Request help on such accelerators... Any clues?
    Any reply, help is highly appreciated.
    Regards
    Manish Madhav

  • How to store multiple files from SAp in to Application server?

    Hi Guys,
                 Can anybody tell me how to store multiple files from SAP into Application server.in my application i have to get the data from SAP tables BSEG , BKPF , BSAK and BSIK that to daily i have to do.
                Any Logic  or Code for how to do is welcomed.
                        plz help me urgently.
    Thanks,
    Gopi

    Hi,
      directories creates basis. If you have task to store data in application server you already should have information into which folder you have to do it. If you don't have this information because it is just for example training for next task then you can use your personal folder into which you have access. To get list of all available folders please look at attached code and form get_directories (you get the list of folders you see in transaction AL11). But don't forget: If you are using open dataset you have to have rights to access application folder!
    Here you are code which I use to upload text files from local disc into application folder
    Regards,
      Karol
    *& Report  FILE_PC_TO_SAP
    REPORT  FILE_PC_TO_SAP.
    DATA: BEGIN OF searchpoints OCCURS 100,
            DIRNAME(200)     TYPE c, " name of directory.
            sp_name(100)     TYPE c," name of entry. (may end with *)
          END OF searchpoints.
    DATA: BEGIN OF isearchpoints OCCURS 10,
            dirname(75) TYPE c,            " name of directory.
            aliass(75)  TYPE c,            " alias for directory.
            svrname(75) TYPE c,            " svr where directory is availabl
            sp_name(75) TYPE c,            " name of entry. (may end with *)
            sp_cs(10)   TYPE c,            " ContainsString pattern for name
          END OF isearchpoints.
    data: l_file type filetable.
    data: l_rc   type i.
    data: itab   type TABLE OF string.
    data: g_tmp_file_path type rlgrap-filename.
    data: wa_itab type string.
    data: h_destin(100) type c.
    data: dat      type string.
    INITIALIZATION.
    perform get_directories.
    START-OF-SELECTION.
    parameters: in_file type string OBLIGATORY LOWER CASE.
    parameters: destin(100) type c OBLIGATORY LOWER CASE.
    CALL FUNCTION 'GUI_UPLOAD'
      EXPORTING
       FILENAME                      = in_file
       "FILETYPE                      = 'BIN'
       FILETYPE                      = 'ASC'
       HAS_FIELD_SEPARATOR           = ' '
       HEADER_LENGTH                 = 0
       READ_BY_LINE                  = 'X'
       DAT_MODE                      = ' '
      TABLES
        DATA_TAB                     = itab
    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.
      write: / 'Error during loading input file!'.
    ENDIF.
    if h_destin is INITIAL.
      h_destin = in_file.
    endif.
    CONCATENATE destin h_destin into dat SEPARATED BY '/'.
    *TRANSLATE dat TO UPPER CASE.
    OPEN DATASET dat FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.
    IF sy-SUBRC = 0.
      loop at itab into wa_itab.
         TRANSFER: wa_itab TO dat.
      endloop.
      CLOSE DATASET dat.
      write: / 'File uploaded!'.
    ELSE.
      write: / 'Not possible to open dataset'.
    ENDIF.
    at selection-screen on value-request for in_file.
      perform select_input_file_name.
      loop at l_file into g_tmp_file_path.
        move g_tmp_file_path to in_file.
        h_destin = ''.
        SPLIT g_tmp_file_path at '\' into table itab.
        loop at itab into g_tmp_file_path.
          h_destin = g_tmp_file_path.
        endloop.
      endloop.
    at selection-screen on value-request for destin.
      DATA: lt_dfies    TYPE TABLE OF dfies.
      DATA: lwa_dfies   TYPE dfies.
      CALL FUNCTION 'DDIF_FIELDINFO_GET'
        EXPORTING
          tabname    = '/BI0/PCO_AREA'
          lfieldname = 'CO_AREA'
        IMPORTING
          dfies_wa   = lwa_dfies.
      lwa_dfies-tabname = 'searchpoints'.
      lwa_dfies-REPTEXT   = 'Destination directory'.
      lwa_dfies-LENG      = 100.
      lwa_dfies-INTLEN    = 100.
      lwa_dfies-OUTPUTLEN = 100.
      lwa_dfies-fieldname = 'SP_NAME'.
      APPEND lwa_dfies TO lt_dfies.
      CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
        EXPORTING
          RETFIELD = 'SP_NAME'
          DYNPPROG = SY-REPID
          DYNPNR = SY-DYNNR
          DYNPROFIELD = 'destin'
          VALUE_ORG = 'S'
        TABLES
          VALUE_TAB = searchpoints
          FIELD_TAB = lt_dfies
        EXCEPTIONS
          PARAMETER_ERROR = 1
          NO_VALUES_FOUND = 2
          OTHERS = 3.
    *&      Form  select_input_file_name
    *       text
    form select_input_file_name.
    *  call function 'F4_FILENAME'
    *       exporting
    *            program_name  = sy-repid
    *            dynpro_number = sy-dynnr
    *            field_name    = 'PATH'
    *       importing
    *            file_name     = g_tmp_file_path.
      CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG
      EXPORTING
      WINDOW_TITLE = 'Please choose a file'
      "default_extension = '*.TXT'
      "default_filename = 'C:\*.txt'
      initial_directory = 'C:\'
      file_filter = '*.*'
      CHANGING
      FILE_TABLE = l_file
      RC = l_RC
      EXCEPTIONS
      FILE_OPEN_DIALOG_FAILED = 1
      CNTL_ERROR = 2
      ERROR_NO_GUI = 3
      NOT_SUPPORTED_BY_GUI = 4
      OTHERS = 5.
      IF SY-SUBRC <> 0.
        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    endform.                    "select_input_file_name
    *&      Form  WRITE_DB_HOME
    *       Write DB home directory
    *       no parameters
    FORM write_db_home.
      CASE sy-dbsys(3).
        WHEN 'ORA'.
          CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_ORAHOME'
                             ID 'VALUE' FIELD searchpoints-dirname.
    *--- C5056155 Start of ALV -------------------------------*
    *      PERFORM flip_flop(rsora000) USING cflag.
    *      WRITE: / 'DIR_ORAHOME',       30 searchpoints-dirname.
          MOVE: 'DIR_ORAHOME'        TO searchpoints-sp_name.
          APPEND searchpoints.
    *--- C5056155 End   of ALV -------------------------------*
        WHEN 'ADA'.
          CALL 'C_GETENV' ID 'NAME'  FIELD 'DBROOT'
                          ID 'VALUE' FIELD searchpoints-dirname.
    *--- C5056155 Start of ALV -------------------------------*
    *      PERFORM flip_flop(rsora000) USING cflag.
    *      WRITE: / 'DIR_ADA_DBROOT',    30 searchpoints-dirname.
          MOVE: 'DIR_ADA_DBROOT'     TO searchpoints-sp_name.
          APPEND searchpoints.
    *--- C5056155 End   of ALV -------------------------------*
        WHEN 'INF'.
          CALL 'C_GETENV' ID 'NAME'  FIELD 'INFORMIXDIR'
                          ID 'VALUE' FIELD searchpoints-dirname.
    *--- C5056155 Start of ALV -------------------------------*
    *      PERFORM flip_flop(rsora000) USING cflag.
    *      WRITE: / 'DIR_INF_INFORMIXDIR', 30 searchpoints-dirname.
          MOVE: 'DIR_INF_INFORMIXDIR' TO searchpoints-sp_name.
          APPEND searchpoints..
    *--- C5056155 End   of ALV -------------------------------*
        WHEN 'DB6'.
          CALL 'C_GETENV' ID 'NAME'  FIELD 'INSTHOME'
                          ID 'VALUE' FIELD searchpoints-dirname.
          IF sy-subrc = 0.
    *--- C5056155 Start of ALV -------------------------------*
    *        PERFORM flip_flop(rsora000) USING cflag.
    *        WRITE: / 'DIR_DB2_HOME',    30 searchpoints-dirname.
            MOVE: 'DIR_DB2_HOME'       TO searchpoints-sp_name.
            APPEND searchpoints.
    *--- C5056155 End   of ALV -------------------------------*
          ELSE.
            EXIT.
          ENDIF.
        WHEN OTHERS.
          EXIT.
      ENDCASE.
    ENDFORM.                    " WRITE_DB_HOME
    FORM get_directories.
    * get the name and aliases of ALL userdefined directories
      SELECT * FROM user_dir INTO isearchpoints
        WHERE svrname = sy-uname.
        MOVE isearchpoints-dirname to searchpoints-dirname.
        MOVE isearchpoints-aliass  to searchpoints-sp_name.
        APPEND searchpoints.
      ENDSELECT.
      SELECT * FROM user_dir INTO isearchpoints
        WHERE svrname = 'all'.
        MOVE isearchpoints-dirname to searchpoints-dirname.
        MOVE isearchpoints-aliass  to searchpoints-sp_name.
        APPEND searchpoints.
      ENDSELECT.
    * Get DB home
      IF sy-dbsys(3) = 'ADA'.
        PERFORM write_db_home.
      ENDIF.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_ATRA'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_ATRA'           TO searchpoints-sp_name.
      APPEND searchpoints.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_BINARY'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_BINARY'         TO searchpoints-sp_name.
      APPEND searchpoints.
    * get name of directory $DIR_CCMS
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_CCMS'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_CCMS'           TO searchpoints-sp_name.
      APPEND searchpoints.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_CT_LOGGING'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_CT_LOGGING'     TO searchpoints-sp_name.
      APPEND searchpoints.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_CT_RUN'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_CT_RUN'         TO searchpoints-sp_name.
      APPEND searchpoints.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_DATA'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_DATA'           TO searchpoints-sp_name.
      APPEND searchpoints.
    * Get DB home
      IF sy-dbsys(3) = 'DB6'.
        PERFORM write_db_home.
      ENDIF.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_DBMS'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_DBMS'           TO searchpoints-sp_name.
      APPEND searchpoints.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_EXECUTABLE'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_EXECUTABLE'     TO searchpoints-sp_name.
      APPEND searchpoints.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_EXE_ROOT'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_EXE_ROOT'       TO searchpoints-sp_name.
      APPEND searchpoints.
    *get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_GEN'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_GEN'            TO searchpoints-sp_name.
      APPEND searchpoints.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_GEN_ROOT'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_GEN_ROOT'       TO searchpoints-sp_name.
      APPEND searchpoints.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_GLOBAL'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_GLOBAL'         TO searchpoints-sp_name.
      APPEND searchpoints.
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_GRAPH_EXE'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_GRAPH_EXE'      TO searchpoints-sp_name.
      APPEND searchpoints.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_GRAPH_LIB'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_GRAPH_LIB'      TO searchpoints-sp_name.
      APPEND searchpoints.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_HOME'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_HOME'           TO searchpoints-sp_name.
      APPEND searchpoints.
    * Get DB home
      IF sy-dbsys(3) = 'INF'.
        PERFORM write_db_home.
      ENDIF.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_INSTALL'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_INSTALL'        TO searchpoints-sp_name.
      APPEND searchpoints.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_INSTANCE'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_INSTANCE'       TO searchpoints-sp_name.
      APPEND searchpoints.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_LIBRARY'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_LIBRARY'        TO searchpoints-sp_name.
      APPEND searchpoints.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_LOGGING'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_LOGGING'        TO searchpoints-sp_name.
      APPEND searchpoints.
    * get name of directory with the files written by the memory inspector
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_MEMORY_INSPECTOR'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_MEMORY_INSPECTOR' TO searchpoints-sp_name.
      APPEND searchpoints.
    * Get DB home
      IF sy-dbsys(3) = 'ORA'.
        PERFORM write_db_home.
      ENDIF.
    *get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_PAGING'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_PAGING'         TO searchpoints-sp_name.
      APPEND searchpoints.
    *get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_PUT'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_PUT'            TO searchpoints-sp_name.
      APPEND searchpoints.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_PERF'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_PERF'           TO searchpoints-sp_name.
      APPEND searchpoints.
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_PROFILE'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_PROFILE'        TO searchpoints-sp_name.
      APPEND searchpoints.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_PROTOKOLLS'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_PROTOKOLLS'     TO searchpoints-sp_name.
      APPEND searchpoints.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_REORG'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_REORG'          TO searchpoints-sp_name.
      APPEND searchpoints.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_ROLL'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_ROLL'           TO searchpoints-sp_name.
      APPEND searchpoints.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_RSYN'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_RSYN'           TO searchpoints-sp_name.
      APPEND searchpoints.
    * calculate directory for saphostagent (no sapparam available...)
      IF ( sy-opsys(3) = 'WIN' ) OR ( sy-opsys(3) = 'Win' ).
        DATA: windir_path(64),  programfiles_path(64).
    *   hoping that ProgramFiles is set in service user environment
        CALL 'C_GETENV' ID 'NAME'  FIELD 'ProgramFiles'
                        ID 'VALUE' FIELD programfiles_path.
        IF programfiles_path IS INITIAL.
    *     %ProgramFiles% not available. guess from windir
          CALL 'C_GETENV' ID 'NAME'  FIELD 'windir'
                          ID 'VALUE' FIELD windir_path.
    *     e.g. S:\WINDOWS ==> S:\Program Files
          CONCATENATE windir_path(3) 'Program Files' INTO programfiles_path.
        ENDIF.
        CONCATENATE programfiles_path '\SAP\hostctrl'
                                                 INTO searchpoints-dirname.
      ELSE.
    *   on UNIX, the path is hard coded
        searchpoints-dirname = '/usr/sap/hostctrl'.
      ENDIF.
      MOVE: 'DIR_SAPHOSTAGENT' TO searchpoints-sp_name.
      APPEND searchpoints.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_SAPUSERS'
                         ID 'VALUE' FIELD searchpoints-dirname.
      IF searchpoints-dirname = '.'.
        IF sy-opsys = 'Windows NT'.
          searchpoints-dirname = '.\'.
        ELSE.
          searchpoints-dirname = './'.
        ENDIF.
      ENDIF.
      MOVE: 'DIR_SAPUSERS'       TO searchpoints-sp_name.
      APPEND searchpoints.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_SETUPS'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_SETUPS'         TO searchpoints-sp_name.
      APPEND searchpoints.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_SORTTMP'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_SORTTMP'        TO searchpoints-sp_name.
      APPEND searchpoints.
    *get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_SOURCE'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_SOURCE'         TO searchpoints-sp_name.
      APPEND searchpoints.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_TEMP'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_TEMP'           TO searchpoints-sp_name.
      APPEND searchpoints.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_TRANS'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_TRANS'          TO searchpoints-sp_name.
      APPEND searchpoints.
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_TRFILES'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_TRFILES'        TO searchpoints-sp_name.
      APPEND searchpoints.
    * get name of directory with the error files
      CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'DIR_TRSUB'
                         ID 'VALUE' FIELD searchpoints-dirname.
      MOVE: 'DIR_TRSUB'          TO searchpoints-sp_name.
      APPEND searchpoints.
    *  get the name of the current server.
      CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'rdisp/myname'
                         ID 'VALUE' FIELD searchpoints-dirname.
      data: h_ind type i.
      LOOP AT searchpoints.
        h_ind = sy-tabix.
        IF searchpoints-sp_name IS INITIAL.
          DELETE searchpoints INDEX h_ind.
        ENDIF.
      ENDLOOP.
    ENDFORM.

  • How to improve the performance of this code

    Hi gurus
    code is given below with LDB
    this code look big but most of lines are commented
    plz help its urgent
    thanks in advance
    *& Report  ZSALES_RECON
    REPORT  ZSALES_RECON.
    TYPE-POOLS : SLIS.
    nodes: bseg , bkpf.
    data : begin of zbseg occurs 0,
    kunnr like bseg-kunnr,
    *lifnr like bseg-lifnr,
    dmbtr like bseg-dmbtr,
    *shkzg like bseg-shkzg,
    *gsber like bseg-gsber,
    bschl like bseg-bschl,
    *sgtxt like bseg-sgtxt,
    total like bseg-dmbtr,
    hkont like bseg-hkont,
    BUDAT LIKE Bkpf-BUDAT,
    belnr LIKE BSEG-belnr,
    cash like bseg-dmbtr,
    credit like bseg-dmbtr,
    abn_voucher like bseg-dmbtr,
    barista_voucher like bseg-dmbtr,
    accor like bseg-dmbtr,
    sodexho like bseg-dmbtr,
    gift like bseg-dmbtr,
    corp like bseg-dmbtr,
    card like bseg-dmbtr,
    miscellaneous like bseg-dmbtr,
    werks like bseg-werks,
    gjahr like bseg-gjahr,
    SR_NO TYPE I,
    shkzg like bseg-shkzg,
          end of zbseg,
          TP_TBL_DATA like ZBSEG.
        DATA  : idx TYPE sy-tabix.
    Report data to be shown.
    data: it_data like ZBSEG.
    Heading of the report.
    data: t_heading type slis_t_listheader.
    AT SELECTION-SCREEN.
    get bkpf.
    START-OF-SELECTION.
    data : sum_mis like bseg-dmbtr,
           sum_abn like bseg-dmbtr,
           sum_cash like bseg-dmbtr,
           sum_credit like bseg-dmbtr,
           sum_card like bseg-dmbtr,
           sum_barista_voucher like bseg-dmbtr,
           sum_accor like bseg-dmbtr,
           sum_sodexho like bseg-dmbtr,
           sum_gift like bseg-dmbtr,
           sum_corp like bseg-dmbtr.
    data : wa1_total like bseg-dmbtr.
    data : wa_belnr like bseg-belnr,
           wa_kunnr like bseg-kunnr,
           wa_werks like bseg-werks,
           belnr1 like bseg-belnr,
           wa_sr_no type i.
    GET BSEG.
    data : wa like line of zbseg.
    data : count type i,
           count1 type i.
    move-corresponding bseg to zbseg.
    *idx = sy-tabix.
    on change of zbseg-belnr.
    wa_kunnr = zbseg-kunnr.
    wa_kunnr = wa_kunnr+6(4).
    select single werks into wa_werks from bseg where belnr = zbseg-belnr
    and kunnr = '' and gjahr = zbseg-gjahr.
    if wa_kunnr = wa_werks.
    if zbseg-bschl <> '01'.
    clear: sum_mis,wa1_total,sum_abn,sum_cash,sum_credit,sum_card,
    sum_barista_voucher,sum_accor,sum_sodexho,sum_gift,sum_corp.
    wa-BUDAT = BKPF-BUDAT.
    wa-bschl = zbseg-bschl.
    wa-hkont = zbseg-hkont.
    wa-belnr = zbseg-belnr.
    wa_belnr = wa-belnr.
    wa-shkzg = zbseg-shkzg.
    wa-kunnr = zbseg-kunnr.
    count = wa-sr_no.
    *wa-sr_no = count + 1.
    idx = idx + 1.
    append wa to zbseg.
    **count = wa-sr_no.
    *wa-sr_no = wa-sr_no + 1.
    clear wa-total.
    endif.
    endif.
    endon.
    *clear : wa1_total.
    if wa_belnr = zbseg-belnr.
    loop at zbseg into wa.
    wa-total = wa1_total.
    wa-bschl = zbseg-bschl.
    wa-hkont = zbseg-hkont.
    count = sy-tabix.
    wa-sr_no = count.
    count1 = count.
    *wa_sr_no = count.
    modify zbseg from wa transporting sr_no.
    IF wa-bschl eq  '40' and wa-hkont eq '0024013020'.
    if sy-tabix = 1.
    wa-cash  = zbseg-dmbtr.
    sum_cash = sum_cash + wa-cash.
    wa-cash = sum_cash.
    modify zbseg index idx from wa transporting cash.
    endif.
    endif.
    IF wa-bschl eq  '40' and wa-hkont eq '0026060010'.
       if sy-tabix = 1.
    wa-credit  = zbseg-dmbtr.
    sum_credit = sum_credit + wa-credit.
    wa-credit = sum_credit.
    modify zbseg index idx from wa transporting credit.
    endif.
    endif.
    IF wa-bschl eq  '40' and wa-hkont eq '0026060015'.
    if sy-tabix = 1.
    wa-abn_voucher  = zbseg-dmbtr.
    sum_abn = sum_abn + wa-abn_voucher.
    wa-abn_voucher = sum_abn.
    modify zbseg index idx from wa transporting abn_voucher.
    endif.
    endif.
    IF wa-bschl eq  '40' and wa-hkont eq '0026060017'.
    if sy-tabix = 1.
    wa-barista_voucher  = zbseg-dmbtr.
    sum_barista_voucher = sum_barista_voucher + wa-barista_voucher.
    wa-barista_voucher = sum_barista_voucher.
    modify zbseg  index idx from wa transporting barista_voucher.
    endif.
    endif.
    IF wa-bschl eq  '40' and wa-hkont eq '0026060020'.
    if sy-tabix = 1.
    wa-sodexho  = zbseg-dmbtr.
    sum_sodexho = sum_sodexho + wa-sodexho.
    wa-sodexho = sum_sodexho.
    modify zbseg index idx from wa transporting sodexho.
    endif.
    endif.
    IF wa-bschl eq  '40' AND  wa-hkont eq '0026060030'.
    if sy-tabix = 1.
    wa-accor  = zbseg-dmbtr.
    sum_accor = sum_accor + wa-accor.
    wa-accor = sum_accor.
    modify zbseg  index idx from wa transporting accor.
    endif.
    endif.
    IF wa-bschl eq  '40' AND  wa-hkont eq '0026070040'.
    if sy-tabix = 1.
    wa-gift  = zbseg-dmbtr.
    sum_gift = sum_gift + wa-gift.
    wa-gift = sum_gift.
    modify zbseg index idx from wa transporting gift.
    endif.
    endif.
    IF wa-bschl eq  '40' AND  wa-hkont eq '0026060070'.
    if sy-tabix = 1.
    wa-card  = zbseg-dmbtr.
    sum_card = sum_card + wa-card.
    wa-card = sum_card.
    modify zbseg index idx from wa transporting card.
    endif.
    endif.
    IF wa-bschl eq  '40' AND  wa-hkont eq '0026060018'.
    if sy-tabix = 1.
    wa-corp  = zbseg-dmbtr.
    sum_corp = sum_corp + wa-corp.
    wa-corp = sum_corp.
    modify zbseg index idx from wa transporting corp.
    endif.
    endif.
    *IF wa-bschl eq  '11' .
    *wa-total  = zbseg-dmbtr.
    *modify zbseg index idx from wa transporting total.
    *endif.
    IF wa-bschl EQ  '40'  or wa-bschl = '01' .
    if sy-tabix = 1.
    wa-total = zbseg-dmbtr.
    wa1_total = wa1_total + wa-total.
    wa-total = wa1_total.
    *if idx = 2.
    *modify zbseg index 1 from wa transporting total.
    *else.
    modify zbseg  index idx from wa transporting total.
    *endif.
    endif.
    endif.
    *IF zbseg-TOTAL NE zbseg-DMBTR.
    IF wa-BSCHL NE '11' AND wa-BSCHL NE '40'. "AND wa-BSCHL NE '01'.
    if sy-tabix = 1.
    if wa-shkzg = 'S'.
    wa-miscellaneous = - wa-miscellaneous.
    endif.
    wa-miscellaneous =  ZBSEG-DMBTR.
    sum_mis = sum_mis + wa-miscellaneous.
    wa-miscellaneous = sum_mis.
    modify zbseg index idx from wa transporting miscellaneous.
    endif.
    ENDIF.
    *wa1-miscellaneous = wa-miscellaneous.
    *modify zbseg index idx from wa.
    *ENDIF.
    *append wa to zbseg.
    *clear:zbseg-dmbtr.
    endloop.
    endif.
    *****endif.
    *****endon.
    *ENDFORM.
    *append zbseg.
    *endloop.
    End-of-selection.
      perform build_alv using zbseg t_heading.
    *&      Form  build_alv
          Builds and display the ALV Grid.
    form build_alv using t_data
    *tp_tbl_data
                         t_heading  type slis_t_listheader.
    ALV required data objects.
    data: w_title   type lvc_title,
          w_repid   type syrepid,
          w_comm    type slis_formname,
          w_status  type slis_formname,
          x_layout  type slis_layout_alv,
          t_event    type slis_t_event,
          t_fieldcat type slis_t_fieldcat_alv,
          t_sort     type slis_t_sortinfo_alv.
    refresh t_fieldcat.
    refresh t_event.
    refresh t_sort.
    clear x_layout.
    clear w_title.
    Field Catalog
      perform set_fieldcat2 using:
    1 'SR_NO' 'SR_NO' 'BKPF' '5' space  space  'SR NO'  space  space space
    space space space space space t_fieldcat ,
    2 'BELNR' 'BELNR' 'BKPF' '10' space  space  'Document No'  space  space
    space space space space space space t_fieldcat ,
    3 'BUDAT' 'BUDAT' 'BKPF' '10' space  space  'Document Date'  space
    space space space space space space space t_fieldcat ,
    4 'KUNNR' space space  space space  space  'Site'  space  space
    space space space space space space t_fieldcat ,
    5 'TOTAL' space 'BSEG' space space  space  'Total'  space  space space
    space space space space 'X' t_fieldcat ,
    6 'CASH' 'CASH' 'BSEG' space space  space  'Cash Sales'
      space  space space space space space space 'X' t_fieldcat ,
    7 'CREDIT' 'CREDIT' 'BSEG' space space  space  'Credit Card'
    space space space space space space space 'X' t_fieldcat ,
    8 'ABN_VOUCHER' space 'BSEG' space space  space  'ABN Voucher'  space
    space
    space space space space space 'X' t_fieldcat ,
    9 'BARISTA_VOUCHER' space 'BSEG' '15' space  space  'BARISTA Voucher'
    space  space
    space space space space space 'X' t_fieldcat ,
    10 'CORP' 'CORP' 'BSEG' space space  space  'ABN Corp'  space  space
    space space space space space 'X' t_fieldcat ,
    11 'SODEXHO' 'SODEXHO' 'BSEG' space space  space  'Sodexho'  space
    space space space space space space 'X' t_fieldcat ,
    12 'ACCOR' 'ACCOR' 'BSEG' space space  space  'Accor'
    space  space space space space space space 'X' t_fieldcat ,
    13 'GIFT' 'GIFT' 'BSEG' space space  space  'Gift Coupon'
    space  space space space space space space 'X' t_fieldcat ,
    14 'CARD' 'CARD' 'BSEG' space space  space  'Diners Card'  space
    space space space space space space 'X' t_fieldcat ,
    15 'MISCELLANEOUS' space 'BKPF' '18' space  space
    'Miscellaneous Income' space space space space space space space 'X'
    t_fieldcat .
    *14 'KBETR' 'KBETR' 'KONP' '10' space  space  'Tax %age'  space  space
    *space space space space space space t_fieldcat ,
    *15 'MWSKZ1' 'MWSKZ1' 'RBKP' space space  space  'Tax Type'  space
    *space
    space space space space space space t_fieldcat ,
    *16 'AMT' 'AMT' 'RBKP' space space  space  'Amount Payable'  space
    *space
    space space space space space 'X' t_fieldcat ,
    *17 'WERKS' 'SITE' 'RSEG' space space  space  'State'  space  space
    *space space space space space space t_fieldcat .
    *18 'GSBER' 'GSBER' 'RBKP' space space  space  'Business Area'  space
    *space space space space space space space t_fieldcat .
    Layout
    x_layout-zebra = 'X'.
    Top of page heading
      perform set_top_page_heading using t_heading t_event.
    Events
      perform set_events using t_event.
    GUI Status
      w_status = ''.
      w_repid = sy-repid.
    Title
    w_title = <<If you want to set a title for
                the ALV, please, uncomment and edit this line>>.
    User commands
      w_comm   = 'USER_COMMAND'.
    Order
    Example
    PERFORM set_order USING '<field>' 'IT_DATA' 'X' space space t_sort.
    Displays the ALV grid
      call function 'REUSE_ALV_GRID_DISPLAY'
        exporting
          i_callback_program       = w_repid
          it_fieldcat              = t_fieldcat
          is_layout                = x_layout
          it_sort                  = t_sort
          i_callback_pf_status_set = w_status
          i_callback_user_command  = w_comm
          i_save                   = 'X'
          it_events                = t_event
          i_grid_title             = w_title
        tables
          t_outtab                 = zbseg
         t_data
        exceptions
          program_error            = 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.
    endform.                    " build_alv.
    *&      Form  set_top_page_heading
          Creates the report headings.
    form set_top_page_heading using t_heading type slis_t_listheader
                                    t_events  type slis_t_event.
    data: x_heading type slis_listheader,
          x_event   type line of slis_t_event.
    Report title
      clear t_heading[].
      clear x_heading.
      x_heading-typ = 'H'.
      x_heading-info = 'SALES RECONCILIATION REPORT'(001).
      append x_heading to t_heading.
    Top of page event
      x_event-name = slis_ev_top_of_page.
      x_event-form = 'TOP_OF_PAGE'.
      append x_event to t_events.
    endform.
    *&      Form  set_events
          Sets the events for ALV.
          The TOP_OF_PAGE event is alredy being registered in
          the set_top_page_heading subroutine.
    form set_events using t_events type slis_t_event.
    data: x_event   type line of slis_t_event.
    Example
    clear x_event.
    x_event-name = .
    x_event-form = .
    append x_event to t_event.
    endform.
    *&      Form  set_order
          Adds an entry to the order table.
    FORM set_order USING p_fieldname p_tabname p_up p_down p_subtot
                         t_sort TYPE slis_t_sortinfo_alv.
      DATA: x_sort TYPE slis_sortinfo_alv.
      CLEAR x_sort.
      x_sort-fieldname = p_fieldname.
      x_sort-tabname   = p_tabname.
      x_sort-up = p_up.
      x_sort-down = p_down.
      x_sort-subtot = p_subtot.
      APPEND x_sort TO t_sort.
    ENDFORM.                    "set_order
    *&      Form  set_fieldcat2
          Adds an entry to the field catalog.
       p_colpos: Column position.
       p_fieldname: Field of internal table which is being described by
    *            this record of the field catalog.
       p_ref_fieldname: (Optional) Table field / data element which
    *                describes the properties of the field.
    *                If this field is not given, it is copied from
    *                the fieldname.
       p_ref_tabname: (Optional) Table which holds the field referenced
    *              by <<p_ref_fieldname>>.
                      If this is not given, the parameter
                      <<p_ref_fieldname>> references a data element.
       p_outputlen: (Optional) Column width.
       p_noout: (Optional) If set to 'X', states that the field is not
    *           showed initially. If so, the field has to be
                included in the report at runtime using the display
                options.
       p_seltext_m: (Optional) Medium label to be used as column header.
       p_seltext_l: (Optional) Long label to be used as column header.
       p_seltext_s: (Optional) Small label to be used as column header.
       p_reptext_ddic: (Optional) Extra small (heading) label to be
    *                used as column header.
       p_ddictxt: (Optional) Set to 'L', 'M', 'S' or 'R' to select
                  whether to use SELTEXT_L, SELTEXT_M, SELTEXT_S,
                  or REPTEXT_DDIC as text for column header.
       p_hotspot: (Optional) If set to 'X', this field will be used
    *             as a hotspot area for cursor, alolowing the user
    *          to click on the field.
       p_showasicon: (Optional) If set to 'X', this field will be shown
                     as an icon and the contents of the field will set
    *             which icon to show.
       p_checkbox: (Optional) If set to 'X', this field will be shown
                   as a checkbox.
       p_edit: (Optional) If set to 'X', this field will be editable.
       p_dosum: (Optional) If set to 'X', this field will be summed
                (aggregation function) according to the grouping set
                by the order functions.
       t_fieldcat: Table which contains the whole fieldcat.
    FORM set_fieldcat2 USING
          p_colpos p_fieldname p_ref_fieldname p_ref_tabname
          p_outputlen p_noout
          p_seltext_m p_seltext_l p_seltext_s p_reptext_ddic p_ddictxt
          p_hotspot p_showasicon p_checkbox p_edit
          p_dosum
          t_fieldcat TYPE slis_t_fieldcat_alv.
      DATA: wa_fieldcat TYPE slis_fieldcat_alv.
      CLEAR wa_fieldcat.
    General settings
      wa_fieldcat-fieldname = p_fieldname.
      wa_fieldcat-col_pos = p_colpos.
      wa_fieldcat-no_out = p_noout.
      wa_fieldcat-hotspot = p_hotspot.
      wa_fieldcat-checkbox = p_checkbox.
      wa_fieldcat-icon = p_showasicon.
      wa_fieldcat-do_sum = p_dosum.
    Set reference fieldname, tablenam and rollname.
    If p_ref_tabname is not given, the ref_fieldname given
       is a data element.
    If p_ref_tabname is given, the ref_fieldname given is a
       field of a table.
    In case ref_fieldname is not given,
       it is copied from the fieldname.
      IF p_ref_tabname IS INITIAL.
        wa_fieldcat-rollname =   p_ref_fieldname.
      ELSE.
        wa_fieldcat-ref_tabname = p_ref_tabname.
        IF p_ref_fieldname EQ space.
          wa_fieldcat-ref_fieldname =   wa_fieldcat-fieldname.
        ELSE.
          wa_fieldcat-ref_fieldname =   p_ref_fieldname.
        ENDIF.
      ENDIF.
    Set output length.
      IF NOT p_outputlen IS INITIAL.
        wa_fieldcat-outputlen = p_outputlen.
      ENDIF.
    Set text headers.
      IF NOT p_seltext_m IS INITIAL.
        wa_fieldcat-seltext_m = p_seltext_m.
      ENDIF.
      IF NOT p_seltext_l IS INITIAL.
        wa_fieldcat-seltext_l = p_seltext_l.
      ENDIF.
      IF NOT p_seltext_s IS INITIAL.
        wa_fieldcat-seltext_s = p_seltext_s.
      ENDIF.
      IF NOT p_reptext_ddic IS INITIAL.
        wa_fieldcat-reptext_ddic = p_reptext_ddic.
      ENDIF.
      IF NOT p_ddictxt IS INITIAL.
        wa_fieldcat-ddictxt = p_ddictxt.
      ENDIF.
    Set as editable or not.
      IF NOT p_edit IS INITIAL.
        wa_fieldcat-input     = 'X'.
        wa_fieldcat-edit     = 'X'.
      ENDIF.
      APPEND wa_fieldcat TO t_fieldcat.
    ENDFORM.                   "set_fieldcat2
    ======================== Subroutines called by ALV ================
    *&      Form  top_of_page
          Called on top_of_page ALV event.
          Prints the heading.
    form top_of_page.
      call function 'REUSE_ALV_COMMENTARY_WRITE'
        exporting
        i_logo             = <<If you want to set a logo, please,
                             uncomment and edit this line>>
          it_list_commentary = t_heading.
    endform.                    " alv_top_of_page
    *&      Form  user_command
          Called on user_command ALV event.
          Executes custom commands.
    form user_command using r_ucomm     like sy-ucomm
                            rs_selfield type slis_selfield.
    Example Code
    Executes a command considering the sy-ucomm.
    CASE r_ucomm.
       WHEN '&IC1'.
         Set your "double click action" response here.
         Example code: Create and display a status message.
         DATA: w_msg TYPE string,
               w_row(4) TYPE n.
         w_row = rs_selfield-tabindex.
         CONCATENATE 'You have clicked row' w_row
                     'field' rs_selfield-fieldname
                     'with value' rs_selfield-value
                     INTO w_msg SEPARATED BY space.
         MESSAGE w_msg TYPE 'S'.
    ENDCASE.
    End of example code.
    endform.                    "user_command
    *********************************ldb code start from here *************************************************************
         DATABASE PROGRAM OF LOGICAL DATABASE ZBRM_3
      top-include and nxxx-include are generated automatically
      Do NOT change their names manually!!!
    *include DBZBRM_3TOP . " header
    *include DBZBRM_3NXXX . " all system routines
    include DBZBRM_3F001 . " user defined include
    PROGRAM SAPDBZBRM_3 DEFINING DATABASE ZBRM_3.
    TABLES:
        BKPF,
        BSEG.
    Hilfsfelder
    DATA:
       BR_SBUKRS LIKE BKPF-BUKRS,
        BR_SBELNR LIKE BKPF-BELNR,
        BR_SGJAHR LIKE BKPF-GJAHR,
        BR_SBUDAT LIKE BKPF-BUDAT,
        BR_SGSBER LIKE BSEG-GSBER.
       BR_SBUZEI LIKE BSEG-BUZEI,
       BR_SEBELN LIKE BSEG-EBELN,
       BR_SEBELP LIKE BSEG-EBELP,
       BR_SZEKKN LIKE BSEG-ZEKKN.
    working areas for the authority check                     "n435991
    for the company code                                      "n435991
    *TYPES : BEGIN OF STYPE_BUKRS,                               "n435991
             BUKRS              LIKE  T001-BUKRS,              "n435991
             WAERS              LIKE  T001-WAERS,              "n435991
             RETCODE            TYPE  N,                       "n435991
           END OF STYPE_BUKRS.                                 "n435991
                                                               "n435991
    *DATA : G_S_BUKRS             TYPE  STYPE_BUKRS,             "n435991
          G_T_BUKRS             TYPE  STYPE_BUKRS   OCCURS 0.  "n435991
                                                               "n435991
    for the document type                                     "n435991
    *TYPES : BEGIN OF STYPE_BLART,                               "n435991
             BLART              LIKE  BKPF-BLART,              "n435991
             RETCODE            TYPE  N,                       "n435991
           END OF STYPE_BLART.                                 "n435991
                                                               "n435991
    *DATA : G_S_BLART             TYPE  STYPE_BLART,             "n435991
          G_T_BLART             TYPE  STYPE_BLART   OCCURS 0.  "n435991
                                                               "n435991
    for the business area                                     "n435991
    *TYPES : BEGIN OF STYPE_GSBER,                               "n435991
             GSBER              LIKE  BSEG-GSBER,              "n435991
             RETCODE            TYPE  N,                       "n435991
           END OF STYPE_GSBER.                                 "n435991
                                                               "n435991
    *DATA : G_S_GSBER             TYPE  STYPE_GSBER,             "n435991
          G_T_GSBER             TYPE  STYPE_GSBER   OCCURS 0.  "n435991
                                                               "n435991
    for the purchasing organization                           "n435991
    *TYPES : BEGIN OF STYPE_EKORG,                               "n435991
             EKORG              LIKE  EKKO-EKORG,              "n435991
             RETCODE            TYPE  N,                       "n435991
           END OF STYPE_EKORG.                                 "n435991
                                                               "n435991
    *DATA : G_S_EKORG             TYPE  STYPE_EKORG,             "n435991
          G_T_EKORG             TYPE  STYPE_EKORG   OCCURS 0.  "n435991
                                                               "n435991
    for the plant                                             "n435991
    *TYPES : BEGIN OF STYPE_WERKS,                               "n435991
             WERKS              LIKE  EKPO-WERKS,              "n435991
             RETCODE            TYPE  N,                       "n435991
           END OF STYPE_WERKS.                                 "n435991
                                                               "n435991
    *DATA : G_S_WERKS             TYPE  STYPE_WERKS,             "n435991
          G_T_WERKS             TYPE  STYPE_WERKS   OCCURS 0.  "n435991
                                                               "n435991
    *DATA : G_F_TABIX             LIKE   SY-TABIX.               "n435991
                                                               "n435991
    working tables for array database access                  "n934526
    *types : begin of stype_key,                                 "n934526
             bukrs              type  bkpf-bukrs,              "n934526
             belnr              type  bkpf-belnr,              "n934526
             gjahr              type  bkpf-gjahr,              "n934526
           end of stype_key,                                   "n934526
                                                               "n934526
           stab_key             type  standard table of        "n934526
                                      stype_key                "n934526
                                      with default key.        "n934526
    Initialwerte setzen
    FORM INIT.
    ENDFORM.
    Selection Screen: Process before output
    FORM PBO.
    ENDFORM.
    Selection Screen: Process after input
    FORM PAI USING FNAME MARK.
      CHECK MARK = SPACE.
    ENDFORM.
    Lesen BKPF und Uebergabe an den Selektionsreport
    FORM PUT_BKPF.
    define locla working areas                                "n934526
    data : l_t_key             type  stab_key,                "n934526
            l_t_key_block       type  stab_key,                "n934526
            l_t_bkpf            type  standard table of bkpf.  "n934526
                                                               "n934526
    ----------------------------------------------------------"n934526
                                                                "n934526
    database seletion improved                                "n934526
    at first read all FI doc keys into a lean table           "n934526
    data: wa like bkpf-belnr.
      SELECT * FROM BKPF
    where budat in br_budat
          AND GJAHR EQ BR_GJAHR-LOW
          AND BLART = 'RV'.
         AND BLART IN BR_BLAR                               "n934526
                                                                "n934526
    check sy-subrc is initial.                                "n934526
                                                               "n934526
    then process the found FI doc keys in small blocks        "n934526
    do.                                                       "n934526
       if  l_t_key[] is initial.                               "n934526
         exit.        " no more keys -> leave this DO loop     "n934526
       endif.                                                  "n934526
                                                               "n934526
      form small blocks with 100 FI docs each                 "n934526
       refresh                  l_t_key_block.                 "n934526
       append lines of l_t_key  from 1 to 100                  "n934526
                                to  l_t_key_block.             "n934526
       delete l_t_key           from 1 to 100.                 "n934526
                                                               "n934526
      read the complete FI doc headers for the block          "n934526
       SELECT *                 FROM BKPF                      "n934526
         into  corresponding fields of table l_t_bkpf          "n934526
           for all entries in l_t_key_block                    "n934526
             WHERE BUKRS = l_t_key_block-BUKRS                 "n934526
               AND BELNR = l_t_key_block-BELNR                 "n934526
               AND GJAHR = l_t_key_block-GJAHR.                "n934526
                                                               "n934526
      provide the complete structure for the PUT              "n934526
       loop at l_t_bkpf         into  bkpf.                    "n934526
        process this company code  : authority and read T001  "n934526
         PERFORM                F1000_COMPANY_CODE.            "n934526
                                                               "n934526
        go on if the first authority check was successful     "n934526
         CHECK : G_S_BUKRS-RETCODE IS INITIAL.                 "n934526
                                                               "n934526
        set the currency key and save the keys                "n934526
         MOVE : G_S_BUKRS-WAERS TO  T001-WAERS,                "n934526
                BKPF-BUKRS      TO  BR_SBUKRS,                 "n934526
               MOVE  BKPF-BELNR       TO  BR_SBELNR.
               MOVE  BKPF-GJAHR      TO  BR_SGJAHR .               "n934526
                BKPF-GJAHR      TO  BR_SGJAHR.                 "n934526
          PUT                    BKPF.                          "n934526
       endloop.                                                "n934526
    enddo.                                                    "n934526
    ENDSELECT.
    ENDFORM.
    Lesen BSEG und Uebergabe an den Selektionsreport
    FORM PUT_BSEG.
    define local working areas                                "n934526
      data : l_t_bseg            type  standard table of bseg.  "n934526
                                                                "n934526
    ----------------------------------------------------------"n934526
    BR_SGSBER = BR_GSBER-LOW.
                                                                "n934526
      SELECT * FROM BSEG                                        "n934526
          WHERE  BELNR EQ BR_SBELNR
          AND GJAHR EQ BR_SGJAHR
          AND GSBER EQ BR_SGSBER.
    check sy-subrc is initial.                                "n934526
                                                                "n934526
    loop at l_t_bseg           into  bseg.                    "n934526
       MOVE BSEG-BUZEI TO BR_SBUZEI.
       MOVE BSEG-EBELN TO BR_SEBELN.
       MOVE BSEG-EBELP TO BR_SEBELP.
       MOVE BSEG-ZEKKN TO BR_SZEKKN.
        PUT BSEG.
      endSELECT.                                                  "n934526
    ENDFORM.
    "n435991
          FORM AUTHORITYCHECK_BKPF                            "n435991
    "n435991
                                                                "n435991
    *FORM AUTHORITYCHECK_BKPF.                                   "n435991
                                                                "n435991
    the authority-check for the company code was successful;  "n435991
    check authority for the document type here                "n435991
                                                                "n435991
    does the buffer contain this document type ?              "n435991
    READ  TABLE  G_T_BLART     INTO  G_S_BLART                "n435991
            WITH  KEY  BLART = BKPF-BLART  BINARY SEARCH.      "n435991
                                                               "n435991
    CASE  SY-SUBRC.                                           "n435991
       WHEN  0.       "document type is known                  "n435991
                                                               "n435991
       WHEN  4.       "docment type is new --> insert          "n435991
         MOVE  SY-TABIX         TO  G_F_TABIX.                 "n435991
         PERFORM                F1200_CREATE_BLART_ENTRY.      "n435991
         INSERT  G_S_BLART      INTO  G_T_BLART                "n435991
                                INDEX  G_F_TABIX.              "n435991
                                                               "n435991
       WHEN  8.       "document type is new --> append         "n435991
         PERFORM                F1200_CREATE_BLART_ENTRY.      "n435991
         APPEND  G_S_BLART      TO  G_T_BLART.                 "n435991
    ENDCASE.                                                  "n435991
                                                               "n435991
    set the return code                                       "n435991
    MOVE  G_S_BLART-RETCODE    TO  SY-SUBRC.                  "n435991
                                                               "n435991
    *ENDFORM.                     "authoritycheck_bkpf           "n435991
                                                               "n435991
    "n435991
          FORM AUTHORITYCHECK_BSEG                            "n435991
    "n435991
                                                                "n435991
    *FORM AUTHORITYCHECK_BSEG.                                   "n435991
                                                               "n435991
    does the buffer contain this document type ?              "n435991
    READ  TABLE  G_T_GSBER     INTO  G_S_GSBER                "n435991
            WITH  KEY  GSBER = BSEG-GSBER  BINARY SEARCH.      "n435991
                                                               "n435991
    CASE  SY-SUBRC.                                           "n435991
       WHEN  0.       "business area is known                  "n435991
                                                               "n435991
       WHEN  4.       "business area is new --> insert         "n435991
         MOVE  SY-TABIX         TO  G_F_TABIX.                 "n435991
         PERFORM                F1300_CREATE_GSBER_ENTRY.      "n435991
         INSERT  G_S_GSBER      INTO  G_T_GSBER                "n435991
                                INDEX  G_F_TABIX.              "n435991
                                                               "n435991
       WHEN  8.       "business area is new --> append         "n435991
         PERFORM                F1300_CREATE_GSBER_ENTRY.      "n435991
         APPEND  G_S_GSBER      TO  G_T_GSBER.                 "n435991
    ENDCASE.                                                  "n435991
                                                               "n435991
    set the return code                                       "n435991
    MOVE  G_S_GSBER-RETCODE    TO  SY-SUBRC.                  "n435991
                                                               "n435991
    *ENDFORM.                     "authoritycheck_bseg           "n435991
                                                               "n435991

    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
    1. Debuggerhttp://help.sap.com/saphelp_47x200/helpdata/en/c6/617ca9e68c11d2b2ab080009b43351/content.htm
    2. Run Time Analyser
    http://help.sap.com/saphelp_47x200/helpdata/en/c6/617cafe68c11d2b2ab080009b43351/content.htm
    3. SQL trace
    http://help.sap.com/saphelp_47x200/helpdata/en/d1/801f7c454211d189710000e8322d00/content.htm
    4. CATT - Computer Aided Testing Too
    http://help.sap.com/saphelp_47x200/helpdata/en/b3/410b37233f7c6fe10000009b38f936/frameset.htm
    5. Test Workbench
    http://help.sap.com/saphelp_47x200/helpdata/en/a8/157235d0fa8742e10000009b38f889/frameset.htm
    6. Coverage Analyser
    http://help.sap.com/saphelp_47x200/helpdata/en/c7/af9a79061a11d4b3d4080009b43351/content.htm
    7. Runtime Monitor
    http://help.sap.com/saphelp_47x200/helpdata/en/b5/fa121cc15911d5993d00508b6b8b11/content.htm
    8. Memory Inspector
    http://help.sap.com/saphelp_47x200/helpdata/en/a2/e5fc84cc87964cb2c29f584152d74e/content.htm
    9. ECATT - Extended Computer Aided testing tool.
    http://help.sap.com/saphelp_47x200/helpdata/en/20/e81c3b84e65e7be10000000a11402f/frameset.htm
    Performance tuning for Data Selection Statement
    http://www.sap-img.com/abap/performance-tuning-for-data-selection-statement.htm

  • Hi very urgent  How to improve the performence of the program

    Hi all please tell me how to improve the performence of this program......
    REPORT z03_gil010 NO STANDARD PAGE HEADING LINE-SIZE 130.
                                 INCLUDE                                 *
    INCLUDE: z00_bci010.                   " Gestion des anomalies.
                          Déclaration des données                        *
                       Tables de la bases de données                     *
    TABLES:
            ekpo,        " Poste document d'achat.
            lfa1,        " Base fournisseurs (généralités).
            marc,        " Données division de l'article.
            z03_bw_cmp1,
            eord,        "Répertoire des sources appro. Achats
            eina,        "Fiche infos-achats - données générales
            t024,        "Groupes d'acheteurs
            tvarv.                                              "FAE17345+
                       Déclaration des données internes                  *
    Déclaration de la table interne qui permet de recuperer les mois.
    DATA: BEGIN OF itb_months OCCURS 12.
            INCLUDE STRUCTURE t247.
    DATA: END OF itb_months.
    Table pour récupération d'infos sur les divisions
    DATA: BEGIN OF itb_t001w OCCURS 0,
            werks LIKE t001w-werks,
            fabkl LIKE t001w-fabkl," Clé du calendrier d'entreprise
          END OF itb_t001w.
    Déclaration de la table interne contenant les infos sur l'adresse du
    fournisseur.
    DATA: BEGIN OF itb_adresse OCCURS 0,
            lifnr LIKE lfa1-lifnr,           " Numéro de compte fournisseur.
            name1 LIKE lfa1-name1,                              " Nom 1.
            name2 LIKE lfa1-name2,                              " Nom 2.
            name3 LIKE lfa1-name3,                              " Nom 3.
            name4 LIKE lfa1-name4,                              " Nom 4.
            stras LIKE lfa1-stras,           " N° de rue et nom de la rue.
            pstlz LIKE lfa1-pstlz,           " Code postal.
            ort01 LIKE lfa1-ort01,           " Localité.
            pfach LIKE lfa1-pfach,           " Boîte postale.
            pstl2 LIKE lfa1-pstl2,           " Code de la boîte postale.
            land1 LIKE lfa1-land1,           " Clé de pays.
            landx LIKE t005t-landx,          " Pays.
            spras LIKE lfa1-spras,           " Code langue
    END OF itb_adresse.
    Déclaration d'une table interne pour les informations sur les
    prévisions de commande.
    DATA: BEGIN OF itb_prev_cde OCCURS 0,
            werks LIKE marc-werks,            " Division
            idnlf LIKE eina-idnlf,            " ADDsde ref article frn
            lifnr LIKE eord-lifnr,            " N° fournisseur.
            ekgrp LIKE marc-ekgrp,            " Groupe d'acheteurs
            dispo LIKE marc-dispo,            " Code gestionnaire MRP
            matnr LIKE eord-matnr,            " Article.
            maktx LIKE makt-maktx,            " Désignation article.
            bstmi LIKE marc-bstmi,            " Quantité de commande.
            men00 LIKE plaf-gsmng,            " Quantité du mois en cours M.
            men01 LIKE plaf-gsmng,            " Quantité pour le mois M+1.
            men02 LIKE plaf-gsmng,            " Quantité pour le mois M+2.
            men03 LIKE plaf-gsmng,            " Quantité pour le mois M+3.
            men04 LIKE plaf-gsmng,            " Quantité pour le mois M+4.
            men05 LIKE plaf-gsmng,            " Quantité pour le mois M+5.
            men06 LIKE plaf-gsmng.            " Quantité pour le mois M+6.
    DATA: END OF itb_prev_cde.
    Structure de travail pour les commandes convernant les PFC
    DATA str_pca_pfc  LIKE itb_prev_cde.
    *add sde
    DATA str_eord_pfc  LIKE itb_prev_cde.
    Structure de travail pour les prévisons PFC
    DATA str_prev_pfc LIKE itb_prev_cde.
    Déclaration d'une table interne pour les informations sur le
    portefeuille des commandes d'achat.
    DATA: BEGIN OF itb_pca OCCURS 0,
            werks LIKE ekpo-werks,    " Division
            idnlf LIKE eina-idnlf,     " ADDsde ref article frn
            lifnr LIKE eord-lifnr,    " N° fournisseur.
            ekgrp LIKE marc-ekgrp,    " Groupe d'acheteurs
            dispo LIKE marc-dispo,    " Code gestionnaire MRP
            matnr LIKE eord-matnr,    " Article.
            maktx LIKE makt-maktx,    " Désignation article.
            ebeln LIKE ekes-ebeln,    " Numéro du document d'achat.
            ebelp LIKE ekes-ebelp,    " Numéro de poste du document d'achat.
            slfdt LIKE eket-slfdt,    " Date de livraison statistique
            eindt LIKE ekes-eindt,    " Date de livraison indiquée dans la
                                      " confirmation de la cde.
            menge LIKE ekes-menge,    " Quantité indiquée dans la confirma-
                                      " tion de la commande.
            attdu LIKE eket-wemng,    " Portefeuille fournisseur.
            netpr LIKE ekpo-brtwr,    " Prix net du document d'achat dans
                                      " la devise du document.
            rtard TYPE i,             " Retard en jours ouvres.
            wemng LIKE eket-wemng,    " Quantité de l'entrée de marchandise.
            bldat LIKE mkpf-bldat,    " Date inscrite sur la pièce/sur le
                                      " document.
            qtran LIKE ekes-menge,    " Quantité en transit.
            dtran LIKE ekes-eindt.    " Date du dernier avis de transit.
    DATA: END OF itb_pca.
    DATA: w_i TYPE i,                "Compteur
          w_i_char(1) TYPE c,        "Texte pour récupérer compteur
          w_nm_zone(20) TYPE c,      "Nom zone pour assign au field-symbols
          w_nb_j TYPE i,             "Nb de jours ouvrés jusqu'à fin mois
          w_nb_j_tot TYPE i.         "Nb de jours ouvrés du mois
    FIELD-SYMBOLS:       TYPE ANY.
    Déclaration d'une table contenant les fiches info achat.
    DATA: BEGIN OF itb_eina OCCURS 0,
            matnr LIKE eina-matnr,
            lifnr LIKE eina-lifnr,
            idfnl LIKE eina-idnlf.
    DATA: END OF itb_eina.
    Déclaration d'une table contenant les infos groupe acheteur.
    *DATA: BEGIN OF itb_t024 OCCURS 0,
           ekgrp LIKE t024-ekgrp,
           eknam LIKE t024-eknam,
           ektel LIKE t024-ektel,
           telfx LIKE t024-telfx.
    *DATA: END OF itb_t024.
    Déclaration d'une table pour le transfert du fichier.
    DATA: BEGIN OF itb_transfert OCCURS 0,
            col00(8),                 "division
            col00bis(20),             "Reference article
            col01(18),                "No article
            col02(45),                "libelle article
            col021(17),               "Groupe acheteur
            col022(13),               "gestionnaire
            col03(17),                "qte commandée ou No de commande
            col04(13),                "Mois 1 ou No poste cde
            col05(20),                "Mois 2 ou délai initial
            col06(33),                "Mois 3 ou délai négocié
            col07(13),                "Mois 4 ou qté cdée
            col08(13),                "Mois 5 ou qté attendue
            col09(13),                "Mois 6 ou Montant attendu
            col10(13),                "Mois 7 ou retard
            col11(13),                "qte partielle livree
            col12(13),                "date livraison partielle
            col13(13),                "qté en transit
            col14(13).                "date
    DATA: END OF itb_transfert.
    Déclaration d'une table contenant la liste des fournisseurs.
    DATA: BEGIN OF itb_lifnr OCCURS 0,
            werks LIKE marc-werks,
            idfnl LIKE eina-idnlf,
            lifnr LIKE eord-lifnr,
            ekgrp LIKE marc-ekgrp,
            spras LIKE lfa1-spras,
            eknam LIKE t024-eknam,
            ektel LIKE t024-ektel,
            telfx LIKE t024-telfx.
    DATA: END OF itb_lifnr.
    Déclaration d'une structure pour la selection dans la table MSEG.
    DATA : BEGIN OF itb_mseg OCCURS 0,
             mblnr LIKE mseg-mblnr,
             mjahr LIKE mseg-mjahr,
             ebeln LIKE mseg-ebeln,
             ebelp LIKE mseg-ebelp,
           END OF itb_mseg.
    déclaration d'une structure pour la selection dans EKPO.
    DATA : BEGIN OF itb_ekpo OCCURS 0,
             lifnr LIKE ekko-lifnr,
             ebeln LIKE ekpo-ebeln,
             ebelp LIKE ekpo-ebelp,
             menge LIKE ekpo-menge,
             bpumz LIKE ekpo-bpumz,
             bpumn LIKE ekpo-bpumn,
             matnr LIKE ekpo-matnr,
             werks LIKE ekpo-werks,
             netpr LIKE ekpo-netpr,
             peinh LIKE ekpo-peinh,  "Base de prix FAE17345+
             ekgrp LIKE ekko-ekgrp,   "AFT++
             dispo LIKE marc-dispo,   "AFT++
           END OF itb_ekpo.
    déclaration d'une structure pour la selection dans EKPO.
    DATA : BEGIN OF itb_ekko OCCURS 0,
             ebeln LIKE ekko-ebeln,
             lifnr LIKE ekko-lifnr,
             spras LIKE ekko-spras,
           END OF itb_ekko.
    déclaration d'une structure pour la selection dans EKES.
    DATA : BEGIN OF itb_ekes OCCURS 0,
             ebeln LIKE eket-ebeln,
             ebelp LIKE eket-ebelp,
             ebtyp LIKE ekes-ebtyp,
             eindt LIKE ekes-eindt,
             menge LIKE ekes-menge,
             dabmg LIKE ekes-dabmg,
             etens LIKE ekes-etens,
           END OF itb_ekes.
    déclaration d'une structure pour la selection dans EKET
    DATA : BEGIN OF itb_eket OCCURS 0,
             ebeln LIKE eket-ebeln,
             ebelp LIKE eket-ebelp,
             menge LIKE eket-menge,
             wemng LIKE eket-wemng,
             eindt LIKE eket-eindt,
             slfdt LIKE eket-slfdt,
           END OF itb_eket.
    déclaration d'une structure pour la selection dans MKPF.
    DATA : BEGIN OF itb_mkpf OCCURS 0,
             mblnr LIKE mkpf-mblnr,
             mjahr LIKE mkpf-mjahr,
             bldat LIKE mkpf-bldat,
           END OF itb_mkpf.
    Déclaration d'une structure pour la sélection dans EORD.
    DATA : BEGIN OF itb_eord OCCURS 0,
             matnr LIKE eord-matnr,
             werks LIKE eord-werks,
             lifnr LIKE eord-lifnr,
             ekgrp LIKE marc-ekgrp,
             dispo LIKE marc-dispo,                             "DE3K924352
             disls LIKE marc-disls,
             bstfe LIKE marc-bstfe,
             bstrf LIKE marc-bstrf,
             bstmi LIKE marc-bstmi,
             bstma LIKE marc-bstma,
           END OF itb_eord.
    DATA : BEGIN OF itb_eordw OCCURS 0.
            INCLUDE STRUCTURE itb_eord.
    DATA : END OF itb_eordw.
    Déclaration d'une structure pour la sélection dans MAKT.
    DATA : BEGIN OF itb_makt OCCURS 0,
             matnr LIKE makt-matnr,
             spras LIKE makt-spras,
             maktx LIKE makt-maktx,
           END OF itb_makt.
    Déclaration d'une structure pour la sélection dans EBAN.
    DATA : BEGIN OF itb_eban OCCURS 0,
             matnr LIKE eban-matnr,
             werks LIKE eban-werks,
             flief LIKE eban-flief,
             lfdat LIKE eban-lfdat,
             menge LIKE eban-menge,
             bsmng LIKE eban-bsmng,
             webaz LIKE eban-webaz,
             ekgrp LIKE eban-ekgrp,
             ebeln LIKE eban-ebeln,
             banfn LIKE eban-banfn,
             bnfpo LIKE eban-bnfpo, "DB3K900702+
           END OF itb_eban.
    Déclaration d'une structure pour la sélection dans PLAF.
    DATA : BEGIN OF itb_plaf OCCURS 0,
             plnum LIKE plaf-plnum, "DB3K900702+
             matnr LIKE plaf-matnr,
             plwrk LIKE plaf-plwrk,
             flief LIKE plaf-flief,
             pedtr LIKE plaf-pedtr,
             gsmng LIKE plaf-gsmng,
             webaz LIKE plaf-webaz,
           END OF itb_plaf.
    Déclaration d'une structure pour la sélection dans MARC.
    DATA : BEGIN OF itb_marc OCCURS 0,
             matnr LIKE marc-matnr,
             werks LIKE marc-werks,
             disls LIKE marc-disls,
             bstrf LIKE marc-bstrf,
             bstmi LIKE marc-bstmi,
             bstma LIKE marc-bstma,
             bstfe LIKE marc-bstfe,
             ekgrp LIKE marc-ekgrp,
             dispo LIKE marc-dispo,
           END OF itb_marc.
    DATA : BEGIN OF itb_marc_eord OCCURS 0,
              matnr LIKE marc-matnr,
              werks LIKE marc-werks,
              strgr LIKE marc-strgr,   "groupe de stratégie planif
           END OF itb_marc_eord.
    DATA : BEGIN OF itb_z03_bw_cmp1 OCCURS 0,
             matnr LIKE z03_bw_cmp1-matnr,
             werks LIKE z03_bw_cmp1-werks,
             pdatu LIKE z03_bw_cmp1-pdatu,
             plnmg LIKE z03_bw_cmp1-plnmg,
           END OF itb_z03_bw_cmp1.
    Begin change BNI <DE3K937051>
    DATA : BEGIN OF itb_z03_bw_cmp2 OCCURS 0,
             matnr LIKE z03_bw_cmp2-matnr,
             werks LIKE z03_bw_cmp2-werks,
             pdatu LIKE z03_bw_cmp2-pdatu,
             plnmg LIKE z03_bw_cmp2-plnmg,
           END OF itb_z03_bw_cmp2.
    *End change BNI
    DATA : BEGIN OF str_index1,
             matnr LIKE eord-matnr,
             werks LIKE eord-werks,
          END OF str_index1.
    DATA : BEGIN OF str_index2,
             matnr LIKE eord-matnr,
             werks LIKE eord-werks,
          END OF str_index2.
    DATA : BEGIN OF str_index3_eord,
             matnr LIKE eord-matnr,
             werks LIKE eord-werks,
          END OF str_index3_eord.
    DATA : BEGIN OF str_index4,
             matnr LIKE eord-matnr,
             werks LIKE eord-werks,
          END OF str_index4.
    DATA : BEGIN OF str_index5,
             matnr LIKE eord-matnr,
             werks LIKE eord-werks,
    END OF str_index5.
    DATA : BEGIN OF str_index6,
             matnr LIKE eord-matnr,
             werks LIKE eord-werks,
    END OF str_index6.
    DATA : BEGIN OF str_index7,
             matnr LIKE eord-matnr,
             werks LIKE eord-werks,
    END OF str_index7.
    Déclaration des variables de debut et de fin de mois.
    DATA: w_debut_mois    LIKE sy-datum,
          w_debut_periode LIKE sy-datum,
          w_fin_mois      LIKE sy-datum,
          w_fin_periode   LIKE sy-datum.
    Déclaration des variables pour les dates.
    DATA: w_date0 LIKE sy-datum,
          w_date1 LIKE sy-datum,
          w_date2 LIKE sy-datum,
          w_date3 LIKE sy-datum,
          w_date4 LIKE sy-datum,
          w_date5 LIKE sy-datum,
          w_date6 LIKE sy-datum,
          w_datejour LIKE sy-datum,                             "FAE15269
          w_dat_da LIKE eban-lfdat,
          w_dat_op LIKE plaf-pedtr,
          w_mois0 LIKE t247-ltx,
          w_mois1 LIKE t247-ltx,
          w_mois2 LIKE t247-ltx,
          w_mois3 LIKE t247-ltx,
          w_mois4 LIKE t247-ltx,
          w_mois5 LIKE t247-ltx,
          w_mois6 LIKE t247-ltx,
          w_lendemain LIKE sy-datum.                            "FAE17345+
    Temoin d'un AR dans la commande d'achat.
    DATA: w_temoin_ar.
    Numéro de la confirmation de la commande
    DATA : w_etens LIKE ekes-etens.
    Déclaration des variables pour le nom des fichiers.
    DATA: w_nom_fichier LIKE rlgrap-filename,
          w_fichier LIKE rlgrap-filename,
          w_racine LIKE rlgrap-filename,
          w_file LIKE rlgrap-filename.
    Déclaration d'une table interne pour le transfert.
    DATA: BEGIN OF itb_trans OCCURS 0,
            w_ligne(320).
    DATA: END OF itb_trans.
    Déclaration d'une variable pour rechercher les enregistrements vides.
    DATA: w_compteur     TYPE i,
          w_compteur1    TYPE i,
          w_compteur2    TYPE i,
          w_retard       TYPE i,          " Retard en jours ouvres.
          w_trouve_pfc   TYPE c, "addsde
          w_trouve_pfs   TYPE c, "+DE3K937051
          w_trouve       TYPE c.
    *Index pour les LOOP
    DATA : w_index_ekpo LIKE sy-tabix,
           w_index_ekes LIKE sy-tabix,
           w_index_eket LIKE sy-tabix,
           w_index_mseg LIKE sy-tabix,
           w_index_eban LIKE sy-tabix,
           w_index_plaf LIKE sy-tabix,
           w_index_pca  LIKE sy-tabix,
           w_index_z03_bw_cmp1 LIKE sy-tabix,
           w_index_z03_bw_cmp2 LIKE sy-tabix."+DE3K937051
    RANGES : r_type_pfs   FOR marc-strgr.
    *fichier sur serveur +EDR231003
    DATA : w_chemin LIKE filename-fileintern,  "nom du fichier
           w_date_fichier(12) TYPE c,          "Date format DD_MM_AA
           w_csv(307) TYPE c.                  "ligne du fichier format CSV
    CONSTANTS: k_imputation_m LIKE eban-knttp VALUE 'M'.        "FAE19001+
                     Description de l écran de sélection                 *
                         Paramètres "UTILISATION"                        *
    Ouverture d'un block de sélection pour le(s) fournisseur(s).
    SELECTION-SCREEN BEGIN OF BLOCK block1 WITH FRAME TITLE text-bl1.
    Sélection division(s)
    SELECT-OPTIONS: s_werks FOR ekpo-werks.
    Sélection fournisseur(s).
    SELECT-OPTIONS: s_lifnr FOR lfa1-lifnr OBLIGATORY.
    Sélection du Groupe d'acheteur
    *SELECT-OPTIONS: s_ekgrp FOR marc-ekgrp.   "-FAE26446
    *SELECT-OPTIONS: s_dispo FOR marc-dispo.   "-FAE26446
    SELECTION-SCREEN END OF BLOCK block1.
    FAE 26446 : ajout
    SELECTION-SCREEN BEGIN OF BLOCK block3 WITH FRAME TITLE text-bl3.
    SELECTION-SCREEN BEGIN OF LINE.
    PARAMETER p_ekgrp RADIOBUTTON GROUP g3.
    SELECTION-SCREEN COMMENT 5(24) text-001 FOR FIELD p_ekgrp.
    SELECT-OPTIONS: s_ekgrp FOR marc-ekgrp.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    PARAMETER p_dispo RADIOBUTTON GROUP g3.
    SELECTION-SCREEN COMMENT 5(24) text-002 FOR FIELD p_dispo.
    SELECT-OPTIONS: s_dispo FOR marc-dispo.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN END OF BLOCK block3.
    FAE 26446 : fin ajout
                           Paramètres "SYSTEME"                          *
    Saut de 2 lignes.
    SELECTION-SCREEN: SKIP 2.
    Ouverture d'un block de sélection pour l'adresse physique du fichier.
    SELECTION-SCREEN BEGIN OF BLOCK block2 WITH FRAME TITLE text-bl2.
    PARAMETERS: p_pc       RADIOBUTTON GROUP rad1 DEFAULT 'X',  "+EDR231003
                p_fic_pc LIKE rlgrap-filename.                  "+EDR231003
    SELECTION-SCREEN SKIP.                                      "+EDR231003
    PARAMETERS     : p_serve   RADIOBUTTON GROUP rad1,          "+EDR231003
                     p_fic_se LIKE filename-fileintern          "+EDR231003
                              DEFAULT 'Z03_PREV_COMMANDES'.     "+EDR231003
    SELECTION-SCREEN END OF BLOCK block2.
                           Logique de traitement                         *
                              INITIALIZATION                             *
    INITIALIZATION.
    Date du jour
      MOVE sy-datum TO w_datejour.                              "FAE15269
    Gestion des anomalies.
      MOVE text-lb1 TO w_lb_traitement.
      PERFORM f930_init USING sy-cprog '30'.
    Fin de la gestions des anomalies.
    Récuperation des mois dans la table interne 'ITB_MONTHS'.
      CALL FUNCTION 'MONTH_NAMES_GET'
           EXPORTING
                language              = sy-langu
           TABLES
                month_names           = itb_months
           EXCEPTIONS
                month_names_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.
    Récupération des differentes periodes.
      PERFORM f100_recuperation_date TABLES itb_months.
    Récupération du debut du mois.
      CONCATENATE sy-datlo(6) '01' INTO w_debut_mois.
      MOVE: w_debut_mois TO w_debut_periode.
    Récupération du dernier jour du mois.
      CALL FUNCTION 'LAST_DAY_OF_MONTHS'
           EXPORTING
                day_in            = sy-datlo
           IMPORTING
                last_day_of_month = w_fin_mois
           EXCEPTIONS
                day_in_no_date    = 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.
                              TOP-OF-PAGE                                *
    TOP-OF-PAGE.
      CALL FUNCTION 'Z_00_BC_TOP_OF_PAGE'
           EXPORTING
                p_linsz   = k_ligne
                p_pagno   = sy-pagno
                p_prog    = sy-cprog
                p_projet  = k_projet
                p_societe = k_societe
                p_sujet   = sy-title.
                              END-OF-PAGE                                *
    END-OF-PAGE.
                            AT SELECTION-SCREEN                          *
    FAE 26446 : ajout
    AT SELECTION-SCREEN ON BLOCK block3.
      IF NOT ( s_ekgrp IS INITIAL )
      AND  NOT ( s_dispo IS INITIAL ).
        MESSAGE e394(z03_mm).
      ENDIF.
      IF p_ekgrp = 'X'.
        IF s_ekgrp IS INITIAL.
          MESSAGE e395(z03_mm).
        ENDIF.
      ELSE.
        IF s_dispo IS INITIAL.
          MESSAGE e396(z03_mm).
        ENDIF.
      ENDIF.
    fae26446 fin ajout
    AT SELECTION-SCREEN ON BLOCK block2.
      IF p_pc = 'X'.
        IF p_fic_pc IS INITIAL.
    *Attention, il n'y a aucune adresse de sauvegarde pour le(s) fichier(s)
          MESSAGE e021(z03_mm).
        ENDIF.
      ELSE.
        IF p_fic_se IS INITIAL.
    *Attention, il n'y a aucune adresse de sauvegarde pour le(s) fichier(s)
          MESSAGE e021(z03_mm).
        ENDIF.
      ENDIF.
    Création du matchcode pour la selection du fichier local.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_fic_pc.
      CALL FUNCTION 'WS_FILENAME_GET'
           EXPORTING
                def_filename     = p_fic_pc
                def_path         = 'C:'
                mask             = text-ma1
                mode             = 'S'
                title            = text-sel
           IMPORTING
                filename         = p_fic_pc
           EXCEPTIONS
                inv_winsys       = 1
                no_batch         = 2
                selection_cancel = 3
                selection_error  = 4
                OTHERS           = 5.
      IF sy-subrc NE 0 AND sy-subrc NE 3.
        MESSAGE e032(z03_mm).
      ENDIF.
                            START-OF-SELECTION                           *
    START-OF-SELECTION.
      PERFORM select_donnees.
    =================================================
    Liste des ARTICLES impactés pour les prévisions *
    =================================================
    ===================================
    PORTEFEUILLE DE COMMANDES D'ACHAT *
    ===================================
    Construction itb_pca à partir de EKKO/EKPO.
      w_index_ekpo  = 1.
      w_index_ekes  = 1.
      w_index_eket  = 1.
      w_index_mseg  = 1.
    SORT itb_ekko BY ebeln.           "-FAE26446
      SORT itb_ekpo BY ebeln ebelp.
      SORT itb_makt BY matnr spras.
      SORT itb_eket BY ebeln ebelp.
      SORT itb_ekes BY ebeln ebelp.
      SORT itb_mseg BY ebeln ebelp.
      SORT itb_mkpf BY mblnr mjahr.
      SORT itb_marc BY matnr werks.                             "+FAE26446
    FAE 26446 remplacement
    LOOP AT itb_ekko.
       LOOP AT itb_ekpo.
               FROM w_index_ekpo.
         IF itb_ekko-ebeln = itb_ekpo-ebeln.
      LOOP AT itb_ekpo.
        READ TABLE itb_marc WITH KEY
           matnr = itb_ekpo-matnr
           werks = itb_ekpo-werks BINARY SEARCH.
        CHECK sy-subrc = 0.
    FAE 26446 fin remplacement
        itb_pca-ebeln = itb_ekpo-ebeln.
        itb_pca-ebelp = itb_ekpo-ebelp.
      itb_pca-lifnr = itb_ekko-lifnr.   "-FAE26446
        itb_pca-lifnr = itb_ekpo-lifnr.                         "+FAE26446
        itb_pca-ekgrp = itb_ekpo-ekgrp.                         "+FAE26446
        itb_pca-dispo = itb_ekpo-dispo.                         "+FAE26446
        itb_pca-matnr = itb_ekpo-matnr.
        itb_pca-werks = itb_ekpo-werks.
      Recherche du libellé article
        READ TABLE itb_makt
                   WITH KEY matnr = itb_ekpo-matnr
                            spras = text-fra
                   BINARY SEARCH.
        IF sy-subrc = 0.
          itb_pca-maktx = itb_makt-maktx.
        ELSE.
          READ TABLE itb_makt
                    WITH KEY matnr = itb_ekpo-matnr
                             spras = text-ang
                    BINARY SEARCH.
          IF sy-subrc = 0.
            itb_pca-maktx = itb_makt-maktx.
          ENDIF.
        ENDIF.
        IF NOT itb_ekpo-bpumn IS INITIAL.
          itb_pca-menge = itb_ekpo-menge * itb_ekpo-bpumz /
                                           itb_ekpo-bpumn.
        ENDIF.
      Sélect° ds la table EKES des dates de livraisons et des qtés
      en transit
        CLEAR w_temoin_ar.
        CLEAR w_etens.
        LOOP AT itb_ekes
                FROM w_index_ekes.
          IF  itb_ekes-ebeln = itb_ekpo-ebeln
          AND itb_ekes-ebelp = itb_ekpo-ebelp.
            IF itb_ekes-ebtyp = text-arn.
              itb_pca-eindt = itb_ekes-eindt.
              w_temoin_ar = 'X'.
            ELSE.
            Si c'est une qté en transit alors on recupere
            la quantité et la date.
              IF itb_ekes-dabmg < itb_ekes-menge.
                itb_pca-qtran = itb_pca-qtran + itb_ekes-menge -
                                itb_ekes-dabmg.
              ENDIF.
              IF itb_ekes-etens > w_etens.
                w_etens = itb_ekes-etens.
                itb_pca-dtran = itb_ekes-eindt.
              ENDIF.
            ENDIF.
          ELSEIF itb_ekes-ebeln > itb_ekpo-ebeln
          OR ( itb_ekes-ebeln = itb_ekpo-ebeln
          AND itb_ekes-ebelp > itb_ekpo-ebelp ).
            w_index_ekes = sy-tabix.
            EXIT.
          ENDIF.
        ENDLOOP.
      S'il n'y a pas d'AR alors récupérat° de la date livraison dans EKET.
        LOOP AT itb_eket
                FROM w_index_eket.
          IF  itb_eket-ebeln = itb_ekpo-ebeln
          AND itb_eket-ebelp = itb_ekpo-ebelp.
            IF w_temoin_ar IS INITIAL.
              itb_pca-eindt = itb_eket-eindt.
            ENDIF.
            itb_pca-slfdt = itb_eket-slfdt.
          Calcul du portefeuille fournisseur à partir de la
          qté commandée et la qté reçue
            itb_pca-attdu = itb_pca-attdu + itb_eket-menge -
                            itb_eket-wemng.
          Calcul du montant du poste
            itb_pca-netpr = itb_ekpo-netpr * itb_pca-attdu.
            IF itb_ekpo-peinh NE 0.
              itb_pca-netpr = itb_pca-netpr / itb_ekpo-peinh.
            ENDIF.
          Calcul quantité réceptionnée.
            itb_pca-wemng = itb_pca-wemng + itb_eket-wemng.
          Calcul du retard en nombre de jours calendaires
          Le calcul du retard  ne doit pas prendre en compte
          le jour de livraison
            ADD 1 TO itb_eket-eindt.
            IF NOT itb_pca-attdu  IS INITIAL
            AND    itb_eket-eindt LT sy-datum.
            Calcul du retard en nombre de jours ouvrés
              CLEAR w_retard.
              CALL FUNCTION 'Z_00_BC_WORKDAYS_PER_PERIOD'
                   EXPORTING
                        date_deb = itb_eket-eindt
                        date_fin = sy-datum
                   IMPORTING
                        jours    = w_retard.
              itb_pca-rtard = itb_pca-rtard + w_retard .
            ENDIF.
          ELSEIF itb_eket-ebeln > itb_ekpo-ebeln
          OR (   itb_eket-ebeln = itb_ekpo-ebeln
          AND    itb_eket-ebelp > itb_ekpo-ebelp ).
            w_index_eket = sy-tabix.
            EXIT.
          ENDIF.
        ENDLOOP.
      Recherche de la derniere date de livraison.
        LOOP AT itb_mseg
                FROM w_index_mseg.
          IF  itb_mseg-ebeln = itb_ekpo-ebeln
          AND itb_mseg-ebelp = itb_ekpo-ebelp.
            READ TABLE itb_mkpf
                       WITH KEY mblnr = itb_mseg-mblnr
                                mjahr = itb_mseg-mjahr
                       BINARY SEARCH.
            IF sy-subrc = 0.
              IF itb_mkpf-bldat > itb_pca-bldat.
                itb_pca-bldat = itb_mkpf-bldat.
              ENDIF.
            ENDIF.
          ELSEIF itb_mseg-ebeln > itb_ekpo-ebeln
          OR (   itb_mseg-ebeln = itb_ekpo-ebeln
          AND    itb_mseg-ebelp > itb_ekpo-ebelp ).
            w_index_mseg = sy-tabix.
            EXIT.
          ENDIF.
        ENDLOOP.
        APPEND itb_pca.
        CLEAR itb_pca.
    FAE26446 suppression parag. suivant
         ELSEIF itb_ekpo-ebeln > itb_ekko-ebeln.
           w_index_ekpo = sy-tabix.
           EXIT.
         ENDIF.
       ENDLOOP.
    Fin FAE26446
      ENDLOOP.
    =========================
    PREVISIONS DE COMMANDES *
    =========================
      SORT itb_eord        BY matnr werks lifnr ekgrp.
      SORT itb_eban        BY matnr werks flief ekgrp.
      SORT itb_plaf        BY matnr plwrk flief.
      SORT itb_z03_bw_cmp1 BY matnr werks.
      SORT itb_z03_bw_cmp2 BY matnr werks."+DE3K937051
      SORT itb_pca         BY matnr werks lifnr.
      w_index_eban = 1.
      w_index_plaf = 1.
      w_index_z03_bw_cmp1 = 1.
      w_index_pca = 1.
      w_index_z03_bw_cmp2 = 1."+DE3K937051
    Remplissage de la table des prévisions de commande.
      LOOP AT itb_eord.
        CLEAR: str_prev_pfc,
               w_trouve.
        MOVE-CORRESPONDING itb_eord TO str_index1.
        MOVE-CORRESPONDING itb_eord TO str_index3_eord.
        MOVE-CORRESPONDING itb_eord TO itb_prev_cde.
      Recherche dans table division/article (MARC) afin de déterminer si
      article PFS (prod fabriqué à stock) ou PFC (Prod fabriqué sur cde)
        AT NEW werks.
          READ TABLE itb_marc_eord
                     WITH KEY matnr = itb_eord-matnr
                              werks = itb_eord-werks
                     BINARY SEARCH.
          IF sy-subrc NE 0.
            CLEAR itb_marc_eord.
          ENDIF.
        ENDAT.
    a - Prévisions pour les PFS : DA + OP *
    *Calcul des quantités de commande.
        IF itb_eord-disls = text-tl1.
          itb_prev_cde-bstmi =  itb_eord-bstfe.
        ELSEIF itb_eord-disls = text-tl2
        OR     itb_eord-disls = text-tl3.
          IF  itb_eord-bstrf NE 0
          AND itb_eord-bstmi = 0
          AND itb_eord-bstma = 0.
            itb_prev_cde-bstmi = itb_eord-bstrf.
          ELSEIF itb_eord-bstrf NE 0
          AND    itb_eord-bstmi NE 0.
            itb_prev_cde-bstmi = itb_eord-bstmi.
          ELSEIF itb_eord-bstrf = itb_eord-bstma
          AND    itb_eord-bstrf NE 0
          AND    itb_eord-bstmi = 0.
            itb_prev_cde-bstmi = itb_eord-bstma.
          ENDIF.
        ENDIF.
      si article PFS (Prod fabriqué à stock) recherche des
      demandes d'achat ou ordres planfiés
        IF itb_marc_eord-strgr IN r_type_pfs.
      Récupérat° calendrier de la division pour calcul correct lors de
      l'ajout de eban-webaz ou plaf-webaz jours ouvrés
          CLEAR w_trouve_pfs ."+DE3K937051
          READ TABLE itb_t001w
                     WITH KEY werks = itb_eord-werks
                     BINARY SEARCH.
          IF sy-subrc = 0.
            LOOP AT itb_eban
                    FROM w_index_eban.
              MOVE-CORRESPONDING itb_eban TO str_index2.
              IF str_index1 = str_index2.
                w_trouve_pfs = 'X'."+DE3K937051
              si qte commandées pour la DA  < quantité de la DA
                IF itb_eban-bsmng < itb_eban-menge.
                ajout de quantité de la DA - qte  commandée pour la DA
                  PERFORM affect_da.
                ENDIF.
              ELSEIF str_index2 > str_index1.
                w_index_eban = sy-tabix.
                EXIT.
              ENDIF.
            ENDLOOP.
          ENDIF.
        ajout des quantité des OP (ordres planifiés)
          LOOP AT itb_plaf
                  FROM w_index_plaf.
            MOVE-CORRESPONDING itb_plaf TO str_index4.
            str_index4-werks = itb_plaf-plwrk.
          str_index4-lifnr = itb_plaf-flief.
            IF str_index4 = str_index3_eord.
            Ajout de webaz jours ouvrés à pedtr
              CALL FUNCTION 'Z_03_MM_ADD_TO_FACTORYDATE'
                   EXPORTING
                        i_date        = itb_plaf-pedtr
                        i_calendar_id = itb_t001w-fabkl
                        i_nb_days     = itb_plaf-webaz
                   IMPORTING
                        o_date        = w_dat_op
                   EXCEPTIONS
                        conv_error    = 1
                        OTHERS        = 2.
              IF sy-subrc
       If forecasts found in Z03_BW_CMP2 for the article
       IF w_trouve_pfs = 'X'."-DE3K937602
    Recalculation prev month M in fct of Nb of wrought days of the month
        IF NOT itb_prev_cde-men00 IS INITIAL.
       one does not hold any more account of the day in progress
          w_lendemain = w_date0 + 1.
          CLEAR:w_nb_j,w_nb_j_tot.         "DE3K938206+
          CALL FUNCTION 'Z_00_BC_WORKDAYS_PER_PERIOD'
               EXPORTING
                    date_deb = w_lendemain
                    date_fin = w_fin_mois
               IMPORTING
                    jours    = w_nb_j.
          CALL FUNCTION 'Z_00_BC_WORKDAYS_PER_MONTH'
               EXPORTING
                    date  = w_lendemain
               IMPORTING
                    jours = w_nb_j_tot.
          itb_prev_cde-men00  = itb_prev_cde-men00 * w_nb_j / w_nb_j_tot
    *CLA DE3K925301 FAE27197
    *to round has the higher entirety
        itb_prev_cde-men00  = ceil( itb_prev_cde-men00 ). "DE3K938206-
        ENDIF.
       ENDIF."-DE3K937602
    *End change BNI
    b - Prévisions pour les PFC (Z03_BW_CMP1 puis rééquilibrage) *
      Recherche des previsions dans Z03_BW_CMP1
      si article PFC (Prod fabriqué sur cde) recherche des prévisions
        IF  NOT itb_marc_eord-strgr IN r_type_pfs.
          CLEAR str_prev_pfc.
          MOVE-CORRESPONDING itb_eord TO str_prev_pfc.
          CLEAR w_trouve_pfc .
          LOOP AT itb_z03_bw_cmp1
                  FROM w_index_z03_bw_cmp1.
            MOVE-CORRESPONDING itb_z03_bw_cmp1 TO str_index7.
            MOVE-CORRESPONDING itb_eord TO str_index6.
            IF str_index6 = str_index7.
          si on trouve des prévisions dans z03_bw_cmp1 pour la source
          d'appro eord alors c'est un article  PFC
              w_trouve_pfc = 'X'.
              CASE itb_z03_bw_cmp1-pdatu+0(6).
                WHEN w_date0+0(6).
                  str_prev_pfc-men00 = itb_z03_bw_cmp1-plnmg.
                WHEN w_date1+0(6).
                  str_prev_pfc-men01 = itb_z03_bw_cmp1-plnmg.
                WHEN w_date2+0(6).
                  str_prev_pfc-men02 = itb_z03_bw_cmp1-plnmg.
                WHEN w_date3+0(6).
                  str_prev_pfc-men03 = itb_z03_bw_cmp1-plnmg.
                WHEN w_date4+0(6).
                  str_prev_pfc-men04 = itb_z03_bw_cmp1-plnmg.
                WHEN w_date5+0(6).
                  str_prev_pfc-men05 = itb_z03_bw_cmp1-plnmg.
                WHEN w_date6+0(6).
                  str_prev_pfc-men06 = itb_z03_bw_cmp1-plnmg.
                WHEN OTHERS.
              ENDCASE.
            ELSEIF str_index7 > str_index6.
              w_index_z03_bw_cmp1 = sy-tabix.
              EXIT.
            ENDIF.
          ENDLOOP.
    *Begin change BNI
        Si des prévisions trouvées dans Z03_BW_CMP1 pour l'article
          IF w_trouve_pfc = 'X'.
          Recalcul prev mois M en fct du nb de jours ouvrés du mois
            IF NOT str_prev_pfc-men00 IS INITIAL.
            on ne tient plus compte du jour en cours
              w_lendemain = w_date0 + 1.
              CLEAR:w_nb_j,w_nb_j_tot.               "DE3K938206+
              CALL FUNCTION 'Z_00_BC_WORKDAYS_PER_PERIOD'
                   EXPORTING
                        date_deb = w_lendemain
                        date_fin = w_fin_mois
                   IMPORTING
                        jours    = w_nb_j.
              CALL FUNCTION 'Z_00_BC_WORKDAYS_PER_MONTH'
                   EXPORTING
                        date  = w_lendemain
                   IMPORTING
                        jours = w_nb_j_tot.
              str_prev_pfc-men00 = str_prev_pfc-men00 * w_nb_j / w_nb_j_tot.
    *CLA DE3K925301 FAE27197
    *arrondir a l'entier supèrieur
              str_prev_pfc-men00 = ceil( str_prev_pfc-men00 ).
            ENDIF.
          Equilibrage PFC : commande/prévision du mois
          Recherche COMMANDES cumulées pour M à M+6
            CLEAR str_pca_pfc.
            LOOP AT itb_pca
                    FROM w_index_pca.
              MOVE-CORRESPONDING itb_pca TO str_index5.
              IF str_index5 = str_index3_eord.
                IF NOT itb_pca-menge IS INITIAL.
                  CASE itb_pca-eindt+0(6).
                    WHEN w_date0+0(6).
                      IF itb_pca-eindt >= w_date0.
                      str_pca_pfc-men00 = str_pca_pfc-men00 + itb_pca-menge.
                      ENDIF.
                    WHEN w_date1+0(6).
                      str_pca_pfc-men01 = str_pca_pfc-men01 + itb_pca-menge.
                    WHEN w_date2+0(6).
                      str_pca_pfc-men02 = str_pca_pfc-men02 + itb_pca-menge.
                    WHEN w_date3+0(6).
                      str_pca_pfc-men03 = str_pca_pfc-men03 + itb_pca-menge.
                    WHEN w_date4+0(6).
                      str_pca_pfc-men04 = str_pca_pfc-men04 + itb_pca-menge.
                    WHEN w_date5+0(6).
                      str_pca_pfc-men05 = str_pca_pfc-men05 + itb_pca-menge.
                    WHEN w_date6+0(6).
                      str_pca_pfc-men06 = str_pca_pfc-men06 + itb_pca-menge.
                  ENDCASE.
                ENDIF."NOT itb_pca-menge IS INITIAL
              ELSEIF str_index5 > str_index3_eord.
                w_index_pca = sy-tabix.
                EXIT.
              ENDIF.
            ENDLOOP."itb_pca
    *. Equilibrer commande / prévision des mois : diminuer la quantité de
    prévision de chaque mois par le portefeuille de commande client du
    mois*. Si ce solde est négatif alors lui donner la valeur 0.
            w_i = 0.
          Ajustement commandes/prévisions pour les mois M à M+6
            WHILE w_i .
            Pour un mois, SI Prévisions > Commandes en cours
              IF .
              Prévisions = Prévisions - Commandes en cours
                 = 0.
              ENDIF.
            On passe au mois suivant
              w_i = w_i + 1.
            ENDWHILE.
            MOVE str_prev_pfc-men00 TO itb_prev_cde-men00.
            MOVE str_prev_pfc-men01 TO itb_prev_cde-men01.
            MOVE str_prev_pfc-men02 TO itb_prev_cde-men02.
            MOVE str_prev_pfc-men03 TO itb_prev_cde-men03.
            MOVE str_prev_pfc-men04 TO itb_prev_cde-men04.
            MOVE str_prev_pfc-men05 TO itb_prev_cde-men05.
            MOVE str_prev_pfc-men06 TO itb_prev_cde-men06.
     

    Hi
    You check in SM50 by executing the programing, You will come to know which select is taking more time and accordingly you modify that select.
    You can do SQL trace and Run time analysis and analyse and see.
    check this and use
    1) Dont use nested select statements
    2) If possible use for all entries in addition
    3) In the where addition make sure you give all the primary key
    4) Use Index for the selection criteria.
    5) You can also use inner joins
    6) You can try to put the data from the first select statement into an Itab and then in order to select the data from the second table use for all entries in.
    7) Use the runtime analysis SE30 and SQL Trace (ST05) to identify the performance and also to identify where the load is heavy, so that you can change the code accordingly
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/5d0db4c9-0e01-0010-b68f-9b1408d5f234
    ABAP performance depends upon various factors and in devicded in three parts:
    1. Database
    2. ABAP
    3. System
    Run Any program using SE30 (performance analys) to improve performance refer to tips and trics section of SE30, Always remember that ABAP perfirmance is improved when there is least load on Database.
    u can get an interactive grap in SE30 regarding this with a file.
    also if u find runtime of parts of codes then use :
    Switch on RTA Dynamically within ABAP Code
    *To turn runtim analysis on within ABAP code insert the following code
    SET RUN TIME ANALYZER ON.
    *To turn runtim analysis off within ABAP code insert the following code
    SET RUN TIME ANALYZER OFF.
    Always check the driver internal tables is not empty, while using FOR ALL ENTRIES
    Avoid for all entries in JOINS
    Try to avoid joins and use FOR ALL ENTRIES.
    Try to restrict the joins to 1 level only ie only for tables
    Avoid using Select *.
    Avoid having multiple Selects from the same table in the same object.
    Try to minimize the number of variables to save memory.
    The sequence of fields in 'where clause' must be as per primary/secondary index ( if any)
    Avoid creation of index as far as possible
    Avoid operators like <>, > , < & like % in where clause conditions
    Avoid select/select single statements in loops.
    Try to use 'binary search' in READ internal table. Ensure table is sorted before using BINARY SEARCH.
    Avoid using aggregate functions (SUM, MAX etc) in selects ( GROUP BY , HAVING,)
    Avoid using ORDER BY in selects
    Avoid Nested Selects
    Avoid Nested Loops of Internal Tables
    Try to use FIELD SYMBOLS.
    Try to avoid into Corresponding Fields of
    Avoid using Select Distinct, Use DELETE ADJACENT
    Check the following Links
    Re: performance tuning
    Re: Performance tuning of program
    http://www.sapgenie.com/abap/performance.htm
    http://www.thespot4sap.com/Articles/SAPABAPPerformanceTuning_PerformanceAnalysisTools.asp
    check the below link
    http://www.sap-img.com/abap/performance-tuning-for-data-selection-statement.htm
    See the following link if it's any help:
    http://www.thespot4sap.com/Articles/SAPABAPPerformanceTuning_PerformanceAnalysisTools.asp
    Check also http://service.sap.com/performance
    and
    books like
    http://www.sap-press.com/product.cfm?account=&product=H951
    http://www.sap-press.com/product.cfm?account=&product=H973
    http://www.sap-img.com/abap/more-than-100-abap-interview-faqs.htm
    http://www.thespot4sap.com/Articles/SAPABAPPerformanceTuning_PerformanceAnalysisTools.asp
    Performance tuning for Data Selection Statement
    http://www.sap-img.com/abap/performance-tuning-for-data-selection-statement.htm
    Debugger
    http://help.sap.com/saphelp_47x200/helpdata/en/c6/617ca9e68c11d2b2ab080009b43351/content.htm
    http://www.cba.nau.edu/haney-j/CIS497/Assignments/Debugging.doc
    http://help.sap.com/saphelp_erp2005/helpdata/en/b3/d322540c3beb4ba53795784eebb680/frameset.htm
    Run Time Analyser
    http://help.sap.com/saphelp_47x200/helpdata/en/c6/617cafe68c11d2b2ab080009b43351/content.htm
    SQL trace
    http://help.sap.com/saphelp_47x200/helpdata/en/d1/801f7c454211d189710000e8322d00/content.htm
    CATT - Computer Aided Testing Too
    http://help.sap.com/saphelp_47x200/helpdata/en/b3/410b37233f7c6fe10000009b38f936/frameset.htm
    Test Workbench
    http://help.sap.com/saphelp_47x200/helpdata/en/a8/157235d0fa8742e10000009b38f889/frameset.htm
    Coverage Analyser
    http://help.sap.com/saphelp_47x200/helpdata/en/c7/af9a79061a11d4b3d4080009b43351/content.htm
    Runtime Monitor
    http://help.sap.com/saphelp_47x200/helpdata/en/b5/fa121cc15911d5993d00508b6b8b11/content.htm
    Memory Inspector
    http://help.sap.com/saphelp_47x200/helpdata/en/a2/e5fc84cc87964cb2c29f584152d74e/content.htm
    ECATT - Extended Computer Aided testing tool.
    http://help.sap.com/saphelp_47x200/helpdata/en/20/e81c3b84e65e7be10000000a11402f/frameset.htm
    Just refer to these links...
    performance
    Performance
    Performance Guide
    performance issues...
    Performance Tuning
    Performance issues
    performance tuning
    performance tuning
    You can go to the transaction SE30 to have the runtime analysis of your program.Also try the transaction SCI , which is SAP Code Inspector.
    1 Always check the driver internal tables is not empty, while using FOR ALL ENTRIES
    2 Avoid for all entries in JOINS
    3 Try to avoid joins and use FOR ALL ENTRIES.
    4 Try to restrict the joins to 1 level only ie only for 2 tables
    5 Avoid using Select *.
    6 Avoid having multiple Selects from the same table in the same object.
    7 Try to minimize the number of variables to save memory.
    8 The sequence of fields in 'where clause' must be as per primary/secondary index ( if any)
    9 Avoid creation of index as far as possible
    10 Avoid operators like <>, > , < & like % in where clause conditions
    11 Avoid select/select single statements in loops.
    12 Try to use 'binary search' in READ internal table. Ensure table is sorted before using BINARY SEARCH.
    13 Avoid using aggregate functions (SUM, MAX etc) in selects ( GROUP BY , HAVING,)
    14 Avoid using ORDER BY in selects
    15 Avoid Nested Selects
    16 Avoid Nested Loops of Internal Tables
    17 Try to use FIELD SYMBOLS.
    18 Try to avoid into Corresponding Fields of
    19 Avoid using Select Distinct, Use DELETE ADJACENT.
    Regards
    Anji

  • How to reduce process time in report

    Hi all..
    Is there any technique to reduce process time in report on programmer side??
    Plz help me...

    Hi
    check this and ensure that your code is as per the stds
    1) Dont use nested select statements
    2) If possible use for all entries in addition
    3) In the where addition make sure you give all the primary key
    4) Use Index for the selection criteria.
    5) You can also use inner joins
    6) You can try to put the data from the first select statement into an Itab and then in order to select the data from the second table use for all entries in.
    7) Use the runtime analysis SE30 and SQL Trace (ST05) to identify the performance and also to identify where the load is heavy, so that you can change the code accordingly
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/5d0db4c9-0e01-0010-b68f-9b1408d5f234
    ABAP performance depends upon various factors and in devicded in three parts:
    1. Database
    2. ABAP
    3. System
    Run Any program using SE30 (performance analys) to improve performance refer to tips and trics section of SE30, Always remember that ABAP perfirmance is improved when there is least load on Database.
    u can get an interactive grap in SE30 regarding this with a file.
    also if u find runtime of parts of codes then use :
    Switch on RTA Dynamically within ABAP Code
    *To turn runtim analysis on within ABAP code insert the following code
    SET RUN TIME ANALYZER ON.
    *To turn runtim analysis off within ABAP code insert the following code
    SET RUN TIME ANALYZER OFF.
    Always check the driver internal tables is not empty, while using FOR ALL ENTRIES
    Avoid for all entries in JOINS
    Try to avoid joins and use FOR ALL ENTRIES.
    Try to restrict the joins to 1 level only ie only for tables
    Avoid using Select *.
    Avoid having multiple Selects from the same table in the same object.
    Try to minimize the number of variables to save memory.
    The sequence of fields in 'where clause' must be as per primary/secondary index ( if any)
    Avoid creation of index as far as possible
    Avoid operators like <>, > , < & like % in where clause conditions
    Avoid select/select single statements in loops.
    Try to use 'binary search' in READ internal table. Ensure table is sorted before using BINARY SEARCH.
    Avoid using aggregate functions (SUM, MAX etc) in selects ( GROUP BY , HAVING,)
    Avoid using ORDER BY in selects
    Avoid Nested Selects
    Avoid Nested Loops of Internal Tables
    Try to use FIELD SYMBOLS.
    Try to avoid into Corresponding Fields of
    Avoid using Select Distinct, Use DELETE ADJACENT
    Check the following Links
    Re: performance tuning
    Re: Performance tuning of program
    http://www.sapgenie.com/abap/performance.htm
    http://www.thespot4sap.com/Articles/SAPABAPPerformanceTuning_PerformanceAnalysisTools.asp
    check the below link
    http://www.sap-img.com/abap/performance-tuning-for-data-selection-statement.htm
    See the following link if it's any help:
    http://www.thespot4sap.com/Articles/SAPABAPPerformanceTuning_PerformanceAnalysisTools.asp
    Check also http://service.sap.com/performance
    and
    books like
    http://www.sap-press.com/product.cfm?account=&product=H951
    http://www.sap-press.com/product.cfm?account=&product=H973
    http://www.sap-img.com/abap/more-than-100-abap-interview-faqs.htm
    http://www.thespot4sap.com/Articles/SAPABAPPerformanceTuning_PerformanceAnalysisTools.asp
    Performance tuning for Data Selection Statement
    http://www.sap-img.com/abap/performance-tuning-for-data-selection-statement.htm
    Debugger
    http://help.sap.com/saphelp_47x200/helpdata/en/c6/617ca9e68c11d2b2ab080009b43351/content.htm
    http://www.cba.nau.edu/haney-j/CIS497/Assignments/Debugging.doc
    http://help.sap.com/saphelp_erp2005/helpdata/en/b3/d322540c3beb4ba53795784eebb680/frameset.htm
    Run Time Analyser
    http://help.sap.com/saphelp_47x200/helpdata/en/c6/617cafe68c11d2b2ab080009b43351/content.htm
    SQL trace
    http://help.sap.com/saphelp_47x200/helpdata/en/d1/801f7c454211d189710000e8322d00/content.htm
    CATT - Computer Aided Testing Too
    http://help.sap.com/saphelp_47x200/helpdata/en/b3/410b37233f7c6fe10000009b38f936/frameset.htm
    Test Workbench
    http://help.sap.com/saphelp_47x200/helpdata/en/a8/157235d0fa8742e10000009b38f889/frameset.htm
    Coverage Analyser
    http://help.sap.com/saphelp_47x200/helpdata/en/c7/af9a79061a11d4b3d4080009b43351/content.htm
    Runtime Monitor
    http://help.sap.com/saphelp_47x200/helpdata/en/b5/fa121cc15911d5993d00508b6b8b11/content.htm
    Memory Inspector
    http://help.sap.com/saphelp_47x200/helpdata/en/a2/e5fc84cc87964cb2c29f584152d74e/content.htm
    ECATT - Extended Computer Aided testing tool.
    http://help.sap.com/saphelp_47x200/helpdata/en/20/e81c3b84e65e7be10000000a11402f/frameset.htm
    Just refer to these links...
    performance
    Performance
    Performance Guide
    performance issues...
    Performance Tuning
    Performance issues
    performance tuning
    performance tuning
    You can go to the transaction SE30 to have the runtime analysis of your program.Also try the transaction SCI , which is SAP Code Inspector.
    1 Always check the driver internal tables is not empty, while using FOR ALL ENTRIES
    2 Avoid for all entries in JOINS
    3 Try to avoid joins and use FOR ALL ENTRIES.
    4 Try to restrict the joins to 1 level only ie only for 2 tables
    5 Avoid using Select *.
    6 Avoid having multiple Selects from the same table in the same object.
    7 Try to minimize the number of variables to save memory.
    8 The sequence of fields in 'where clause' must be as per primary/secondary index ( if any)
    9 Avoid creation of index as far as possible
    10 Avoid operators like <>, > , < & like % in where clause conditions
    11 Avoid select/select single statements in loops.
    12 Try to use 'binary search' in READ internal table. Ensure table is sorted before using BINARY SEARCH.
    13 Avoid using aggregate functions (SUM, MAX etc) in selects ( GROUP BY , HAVING,)
    14 Avoid using ORDER BY in selects
    15 Avoid Nested Selects
    16 Avoid Nested Loops of Internal Tables
    17 Try to use FIELD SYMBOLS.
    18 Try to avoid into Corresponding Fields of
    19 Avoid using Select Distinct, Use DELETE ADJACENT.
    Regards
    Anji

  • Performance tuning in t

    hi,
    I have to do perofrmance for one program, it is taking 67000 secs in back ground for execution and 1000 secs for some varints .It is an  ALV report.
    please suggest me how to proced to change the code.

    Performance tuning for Data Selection Statement
    <b>http://www.sap-img.com/abap/performance-tuning-for-data-selection-statement.htm</b>Debugger
    http://help.sap.com/saphelp_47x200/helpdata/en/c6/617ca9e68c11d2b2ab080009b43351/content.htm
    http://www.cba.nau.edu/haney-j/CIS497/Assignments/Debugging.doc
    http://help.sap.com/saphelp_erp2005/helpdata/en/b3/d322540c3beb4ba53795784eebb680/frameset.htm
    Run Time Analyser
    http://help.sap.com/saphelp_47x200/helpdata/en/c6/617cafe68c11d2b2ab080009b43351/content.htm
    SQL trace
    http://help.sap.com/saphelp_47x200/helpdata/en/d1/801f7c454211d189710000e8322d00/content.htm
    CATT - Computer Aided Testing Too
    http://help.sap.com/saphelp_47x200/helpdata/en/b3/410b37233f7c6fe10000009b38f936/frameset.htm
    Test Workbench
    http://help.sap.com/saphelp_47x200/helpdata/en/a8/157235d0fa8742e10000009b38f889/frameset.htm
    Coverage Analyser
    http://help.sap.com/saphelp_47x200/helpdata/en/c7/af9a79061a11d4b3d4080009b43351/content.htm
    Runtime Monitor
    http://help.sap.com/saphelp_47x200/helpdata/en/b5/fa121cc15911d5993d00508b6b8b11/content.htm
    Memory Inspector
    http://help.sap.com/saphelp_47x200/helpdata/en/a2/e5fc84cc87964cb2c29f584152d74e/content.htm
    ECATT - Extended Computer Aided testing tool.
    http://help.sap.com/saphelp_47x200/helpdata/en/20/e81c3b84e65e7be10000000a11402f/frameset.htm
    Just refer to these links...
    performance
    Performance
    Performance Guide
    performance issues...
    Performance Tuning
    Performance issues
    performance tuning
    performance tuning
    You can go to the transaction SE30 to have the runtime analysis of your program.Also try the transaction SCI , which is SAP Code Inspector.

  • Regarding performance tuning

    hi,
    i have developed a report program.its taking too much time to fetch the records.so what steps i have to consider to improve the performance. urgent plz.

    Hi,
    Check this links
    Performance tuning for Data Selection Statement & Others
    http://www.sap-img.com/abap/performance-tuning-for-data-selection-statement.htm
    http://www.sapdevelopment.co.uk/perform/performhome.htm
    http://www.thespot4sap.com/Articles/SAPABAPPerformanceTuning_PerformanceAnalysisTools.asp
    http://www.thespot4sap.com/Articles/SAPABAPPerformanceTuning_Introduction.asp
    1. Debugger
    http://help.sap.com/saphelp_47x200/helpdata/en/c6/617ca9e68c11d2b2ab080009b43351/content.htm
    http://www.cba.nau.edu/haney-j/CIS497/Assignments/Debugging.doc
    http://help.sap.com/saphelp_erp2005/helpdata/en/b3/d322540c3beb4ba53795784eebb680/frameset.htm
    2. Run Time Analyser
    http://help.sap.com/saphelp_47x200/helpdata/en/c6/617cafe68c11d2b2ab080009b43351/content.htm
    3. SQL trace
    http://help.sap.com/saphelp_47x200/helpdata/en/d1/801f7c454211d189710000e8322d00/content.htm
    6. Coverage Analyser
    http://help.sap.com/saphelp_47x200/helpdata/en/c7/af9a79061a11d4b3d4080009b43351/content.htm
    7. Runtime Monitor
    http://help.sap.com/saphelp_47x200/helpdata/en/b5/fa121cc15911d5993d00508b6b8b11/content.htm
    8. Memory Inspector
    http://help.sap.com/saphelp_47x200/helpdata/en/a2/e5fc84cc87964cb2c29f584152d74e/content.htm
    http://sap.genieholdings.com/abap/performance.htm
    http://www.dbis.ethz.ch/research/publications/19.pdf
    Reward Points if it is Useful.
    Thanks,
    Manjunath MS

  • How to improve the performance of the abap program

    hi all,
    I have created an abap program. And it taking long time since the number of records are more. And can anyone let me know how to improve the performance of my abap program.
    Using se30 and st05 transaction.
    can anyone help me out step by step
    regds
    haritha

    Hi Haritha,
    ->Run Any program using SE30 (performance analysis)
    Note: Click on the Tips & Tricks button from SE30 to get performance improving tips.
    Using this you can improve the performance by analyzing your code part by part.
    ->To turn runtim analysis on within ABAP code insert the following code
    SET RUN TIME ANALYZER ON.
    ->To turn runtim analysis off within ABAP code insert the following code
    SET RUN TIME ANALYZER OFF.
    ->Always check the driver internal tables is not empty, while using FOR ALL ENTRIES
    ->Avoid for all entries in JOINS
    ->Try to avoid joins and use FOR ALL ENTRIES.
    ->Try to restrict the joins to 1 level only ie only for tables
    ->Avoid using Select *.
    ->Avoid having multiple Selects from the same table in the same object.
    ->Try to minimize the number of variables to save memory.
    ->The sequence of fields in 'where clause' must be as per primary/secondary index ( if any)
    ->Avoid creation of index as far as possible
    ->Avoid operators like <>, > , < & like % in where clause conditions
    ->Avoid select/select single statements in loops.
    ->Try to use 'binary search' in READ internal table. -->Ensure table is sorted before using BINARY SEARCH.
    ->Avoid using aggregate functions (SUM, MAX etc) in selects ( GROUP BY , HAVING,)
    ->Avoid using ORDER BY in selects
    ->Avoid Nested Selects
    ->Avoid Nested Loops of Internal Tables
    ->Try to use FIELD SYMBOLS.
    ->Try to avoid into Corresponding Fields of
    ->Avoid using Select Distinct, Use DELETE ADJACENT
    Check the following Links
    Re: performance tuning
    Re: Performance tuning of program
    http://www.sapgenie.com/abap/performance.htm
    http://www.thespot4sap.com/Articles/SAPABAPPerformanceTuning_PerformanceAnalysisTools.asp
    check the below link
    http://www.sap-img.com/abap/performance-tuning-for-data-selection-statement.htm
    See the following link if it's any help:
    http://www.thespot4sap.com/Articles/SAPABAPPerformanceTuning_PerformanceAnalysisTools.asp
    Check also http://service.sap.com/performance
    and
    books like
    http://www.sap-press.com/product.cfm?account=&product=H951
    http://www.sap-press.com/product.cfm?account=&product=H973
    http://www.sap-img.com/abap/more-than-100-abap-interview-faqs.htm
    http://www.thespot4sap.com/Articles/SAPABAPPerformanceTuning_PerformanceAnalysisTools.asp
    Performance tuning for Data Selection Statement
    http://www.sap-img.com/abap/performance-tuning-for-data-selection-statement.htm
    Debugger
    http://help.sap.com/saphelp_47x200/helpdata/en/c6/617ca9e68c11d2b2ab080009b43351/content.htm
    http://www.cba.nau.edu/haney-j/CIS497/Assignments/Debugging.doc
    http://help.sap.com/saphelp_erp2005/helpdata/en/b3/d322540c3beb4ba53795784eebb680/frameset.htm
    Run Time Analyser
    http://help.sap.com/saphelp_47x200/helpdata/en/c6/617cafe68c11d2b2ab080009b43351/content.htm
    SQL trace
    http://help.sap.com/saphelp_47x200/helpdata/en/d1/801f7c454211d189710000e8322d00/content.htm
    CATT - Computer Aided Testing Too
    http://help.sap.com/saphelp_47x200/helpdata/en/b3/410b37233f7c6fe10000009b38f936/frameset.htm
    Test Workbench
    http://help.sap.com/saphelp_47x200/helpdata/en/a8/157235d0fa8742e10000009b38f889/frameset.htm
    Coverage Analyser
    http://help.sap.com/saphelp_47x200/helpdata/en/c7/af9a79061a11d4b3d4080009b43351/content.htm
    Runtime Monitor
    http://help.sap.com/saphelp_47x200/helpdata/en/b5/fa121cc15911d5993d00508b6b8b11/content.htm
    Memory Inspector
    http://help.sap.com/saphelp_47x200/helpdata/en/a2/e5fc84cc87964cb2c29f584152d74e/content.htm
    ECATT - Extended Computer Aided testing tool.
    http://help.sap.com/saphelp_47x200/helpdata/en/20/e81c3b84e65e7be10000000a11402f/frameset.htm
    Just refer to these links...
    performance
    Performance
    Performance Guide
    performance issues...
    Performance Tuning
    Performance issues
    performance tuning
    performance tuning
    You can go to the transaction SE30 to have the runtime analysis of your program.Also try the transaction SCI , which is SAP Code Inspector.
    edited by,
    Naveenan

  • Performance Analysis Notes

    Hi,
    I want some "Performance Analysis Notes or material"..
    Plz give me some links or send me on my id: [email protected]
    Thanks...

    Hi, this may help you.
    1) Dont use nested select statements
    2) If possible use for all entries in addition
    3) In the where addition make sure you give all the primary key
    4) Use Index for the selection criteria.
    5) You can also use inner joins
    6) You can try to put the data from the first select statement into an Itab and then in order to select the data from the second table use for all entries in.
    7) Use the runtime analysis SE30 and SQL Trace (ST05) to identify the performance and also to identify where the load is heavy, so that you can change the code accordingly
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/5d0db4c9-0e01-0010-b68f-9b1408d5f234
    ABAP performance depends upon various factors and in devicded in three parts:
    1. Database
    2. ABAP
    3. System
    Run Any program using SE30 (performance analys) to improve performance refer to tips and trics section of SE30, Always remember that ABAP perfirmance is improved when there is least load on Database.
    u can get an interactive grap in SE30 regarding this with a file.
    also if u find runtime of parts of codes then use :
    Switch on RTA Dynamically within ABAP Code
    *To turn runtim analysis on within ABAP code insert the following code
    SET RUN TIME ANALYZER ON.
    *To turn runtim analysis off within ABAP code insert the following code
    SET RUN TIME ANALYZER OFF.
    Always check the driver internal tables is not empty, while using FOR ALL ENTRIES
    Avoid for all entries in JOINS
    Try to avoid joins and use FOR ALL ENTRIES.
    Try to restrict the joins to 1 level only ie only for tables
    Avoid using Select *.
    Avoid having multiple Selects from the same table in the same object.
    Try to minimize the number of variables to save memory.
    The sequence of fields in 'where clause' must be as per primary/secondary index ( if any)
    Avoid creation of index as far as possible
    Avoid operators like <>, > , < & like % in where clause conditions
    Avoid select/select single statements in loops.
    Try to use 'binary search' in READ internal table. Ensure table is sorted before using BINARY SEARCH.
    Avoid using aggregate functions (SUM, MAX etc) in selects ( GROUP BY , HAVING,)
    Avoid using ORDER BY in selects
    Avoid Nested Selects
    Avoid Nested Loops of Internal Tables
    Try to use FIELD SYMBOLS.
    Try to avoid into Corresponding Fields of
    Avoid using Select Distinct, Use DELETE ADJACENT
    Check the following Links
    Re: performance tuning
    Re: Performance tuning of program
    http://www.sapgenie.com/abap/performance.htm
    http://www.thespot4sap.com/Articles/SAPABAPPerformanceTuning_PerformanceAnalysisTools.asp
    check the below link
    http://www.sap-img.com/abap/performance-tuning-for-data-selection-statement.htm
    See the following link if it's any help:
    http://www.thespot4sap.com/Articles/SAPABAPPerformanceTuning_PerformanceAnalysisTools.asp
    Check also http://service.sap.com/performance
    and
    books like
    http://www.sap-press.com/product.cfm?account=&product=H951
    http://www.sap-press.com/product.cfm?account=&product=H973
    http://www.sap-img.com/abap/more-than-100-abap-interview-faqs.htm
    http://www.thespot4sap.com/Articles/SAPABAPPerformanceTuning_PerformanceAnalysisTools.asp
    Performance tuning for Data Selection Statement
    http://www.sap-img.com/abap/performance-tuning-for-data-selection-statement.htm
    Debugger
    http://help.sap.com/saphelp_47x200/helpdata/en/c6/617ca9e68c11d2b2ab080009b43351/content.htm
    http://www.cba.nau.edu/haney-j/CIS497/Assignments/Debugging.doc
    http://help.sap.com/saphelp_erp2005/helpdata/en/b3/d322540c3beb4ba53795784eebb680/frameset.htm
    Run Time Analyser
    http://help.sap.com/saphelp_47x200/helpdata/en/c6/617cafe68c11d2b2ab080009b43351/content.htm
    SQL trace
    http://help.sap.com/saphelp_47x200/helpdata/en/d1/801f7c454211d189710000e8322d00/content.htm
    CATT - Computer Aided Testing Too
    http://help.sap.com/saphelp_47x200/helpdata/en/b3/410b37233f7c6fe10000009b38f936/frameset.htm
    Test Workbench
    http://help.sap.com/saphelp_47x200/helpdata/en/a8/157235d0fa8742e10000009b38f889/frameset.htm
    Coverage Analyser
    http://help.sap.com/saphelp_47x200/helpdata/en/c7/af9a79061a11d4b3d4080009b43351/content.htm
    Runtime Monitor
    http://help.sap.com/saphelp_47x200/helpdata/en/b5/fa121cc15911d5993d00508b6b8b11/content.htm
    Memory Inspector
    http://help.sap.com/saphelp_47x200/helpdata/en/a2/e5fc84cc87964cb2c29f584152d74e/content.htm
    ECATT - Extended Computer Aided testing tool.
    http://help.sap.com/saphelp_47x200/helpdata/en/20/e81c3b84e65e7be10000000a11402f/frameset.htm
    Just refer to these links...
    performance
    Performance
    Performance Guide
    performance issues...
    Performance Tuning
    Performance issues
    performance tuning
    performance tuning
    You can go to the transaction SE30 to have the runtime analysis of your program.Also try the transaction SCI , which is SAP Code Inspector.
    1 Always check the driver internal tables is not empty, while using FOR ALL ENTRIES
    2 Avoid for all entries in JOINS
    3 Try to avoid joins and use FOR ALL ENTRIES.
    4 Try to restrict the joins to 1 level only ie only for 2 tables
    5 Avoid using Select *.
    6 Avoid having multiple Selects from the same table in the same object.
    7 Try to minimize the number of variables to save memory.
    8 The sequence of fields in 'where clause' must be as per primary/secondary index ( if any)
    9 Avoid creation of index as far as possible
    10 Avoid operators like <>, > , < & like % in where clause conditions
    11 Avoid select/select single statements in loops.
    12 Try to use 'binary search' in READ internal table. Ensure table is sorted before using BINARY SEARCH.
    13 Avoid using aggregate functions (SUM, MAX etc) in selects ( GROUP BY , HAVING,)
    14 Avoid using ORDER BY in selects
    15 Avoid Nested Selects
    16 Avoid Nested Loops of Internal Tables
    17 Try to use FIELD SYMBOLS.
    18 Try to avoid into Corresponding Fields of
    19 Avoid using Select Distinct, Use DELETE ADJACENT.
    Regards
    Madhu

Maybe you are looking for

  • CTS+ Transports in SAP PI 7.1

    Hi experts, we have a new installed SAP PI 7.1. Our scenario is that we have a single SLD for each PI System on dev, test and prod. Now we are facings some troubles regarding the SLD setup. Our target is to use CTS+ to transport IR and ID objects. In

  • Cheque print through F-53

    Dear friendsu2026 while I am trying to print Cehque through F-58 I am able to get print preview of Cehque. But I am not getting Payment advice u2026 In the Cehque format system giving message that u2026 u201CWe are sending you separate payment advice

  • How to execute an ABAP Mapping after a Java Mapping

    Hi, i have found a Bug in XI and SAP said to me that the only solution is to execute an ABAP mapping after my java mapping. I have an IDOC to FILE scenario Could anyone orient me on what do i have to configure, so after my java mapping i can execute

  • What's the background of making Adobe Audition?

    It's a rhetorical question. As I can see, Adobe Audition is a poser software, not for doing things efficiently, but just to pose with Adobe family. This family is too big and no one is a outstanding. Maybe Premiere, but that's another story. I was a

  • Can anyone tell me whar error frm 90928 on forms is?

    hello all: i try to run forms and an error appear when trying to load the applet. the error is: frm - 90928 positional parameter after key on command line. and what can i do to solve that error. Thanks