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 lotHi, 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.CHi,
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 -
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
ARCHIVEDear 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,
GopiHi,
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
"n435991ABAP 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 -
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. -
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
harithaHi 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 -
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
-
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